object GridUnit {
	section object {
		BlockTypes, PieceUnit
	}
	section module {
 		string
	}
	section data {
		int rax = 0
		int rbx = 0
		int rcx = 0
		int rdx = 0
		int rsi = 0
		int rdi = 0
		int r8 = 0
		int r9 = 0
		int r10 = 0
		int r11 = 0
		int r12 = 0
		int r13 = 0
		int r14 = 0
		ptr _tmpptr0 = null
		ptr _tmpptr1 = null
		ptr _tmpptr10 = null
		ptr _tmpptr11 = null
		ptr _tmpptr12 = null
		ptr _tmpptr13 = null
		ptr _tmpptr14 = null
		ptr _tmpptr15 = null
		ptr _tmpptr16 = null
		ptr _tmpptr17 = null
		ptr _tmpptr18 = null
		ptr _tmpptr19 = null
		ptr _tmpptr2 = null
		ptr _tmpptr20 = null
		ptr _tmpptr21 = null
		ptr _tmpptr22 = null
		ptr _tmpptr23 = null
		ptr _tmpptr24 = null
		ptr _tmpptr25 = null
		ptr _tmpptr26 = null
		ptr _tmpptr27 = null
		ptr _tmpptr28 = null
		ptr _tmpptr29 = null
		ptr _tmpptr3 = null
		ptr _tmpptr30 = null
		ptr _tmpptr31 = null
		ptr _tmpptr32 = null
		ptr _tmpptr33 = null
		ptr _tmpptr34 = null
		ptr _tmpptr4 = null
		ptr _tmpptr5 = null
		ptr _tmpptr6 = null
		ptr _tmpptr7 = null
		ptr _tmpptr8 = null
		ptr _tmpptr9 = null
		ptr arg0 = null
		string str_0 = "MATCH ["
		string str_1 = "] ("
		string str_2 = ","
		string str_3 = ")="
		string str_4 = " ("
		string str_5 = "NULL"
		string str_6 = "CLEAR"
		string str_7 = "RED1"
		string str_8 = "RED2"
		string str_9 = "RED3"
		string str_10 = "GREEN1"
		string str_11 = "GREEN2"
		string str_12 = "GREEN3"
		string str_13 = "BLUE1"
		string str_14 = "BLUE2"
		string str_15 = "BLUE3"
		string str_16 = "WILD"
		string str_17 = "?"
		string str_18 = "V-R123"
		string str_19 = "V-R321"
		string str_20 = "V-G123"
		string str_21 = "V-G321"
		string str_22 = "V-B123"
		string str_23 = "V-B321"
		string str_24 = "H-R123"
		string str_25 = "H-R321"
		string str_26 = "H-G123"
		string str_27 = "H-G321"
		string str_28 = "H-B123"
		string str_29 = "H-B321"
		string str_30 = "DR-R123"
		string str_31 = "DR-R321"
		string str_32 = "DR-G123"
		string str_33 = "DR-G321"
		string str_34 = "DR-B123"
		string str_35 = "DR-B321"
		string str_36 = "UR-R123"
		string str_37 = "UR-R321"
		string str_38 = "UR-G123"
		string str_39 = "UR-G321"
		string str_40 = "UR-B123"
		string str_41 = "UR-B321"
		string fmt_int = "%lld "
		string fmt_str = "%s "
		string newline = "\n"
		ptr grid_blocks = null
		ptr grid_clear = null
		ptr grid_flash = null
		ptr grid_original = null
		int game_level = 0
		int game_lines = 0
		int game_over = 0
		int GridSet_x = 0
		int GridSet_y = 0
		int GridSet_val = 0
		int GridSetClear_x = 0
		int GridSetClear_y = 0
		int GridSetClear_val = 0
		int GridSetFlash_x = 0
		int GridSetFlash_y = 0
		int GridSetFlash_val = 0
		int GridClearAll_i = 0
		int SetPieceOnGrid_i = 0
		int SetPieceOnGrid_px = 0
		int SetPieceOnGrid_py = 0
		int GridKeyDown_cd = 0
		int GridKeyRotateLeft_save_x0 = 0
		int GridKeyRotateLeft_save_y0 = 0
		int GridKeyRotateLeft_save_x1 = 0
		int GridKeyRotateLeft_save_y1 = 0
		int GridKeyRotateLeft_save_x2 = 0
		int GridKeyRotateLeft_save_y2 = 0
		int GridKeyRotateLeft_save_pos = 0
		int GridKeyRotateRight_save_x0 = 0
		int GridKeyRotateRight_save_y0 = 0
		int GridKeyRotateRight_save_x1 = 0
		int GridKeyRotateRight_save_y1 = 0
		int GridKeyRotateRight_save_x2 = 0
		int GridKeyRotateRight_save_y2 = 0
		int GridKeyRotateRight_save_pos = 0
		ptr LogMatch_dir = null
		int LogMatch_x1 = 0
		int LogMatch_y1 = 0
		int LogMatch_x2 = 0
		int LogMatch_y2 = 0
		int LogMatch_x3 = 0
		int LogMatch_y3 = 0
		int ClearBlock_x = 0
		int ClearBlock_y = 0
		int ClearBlock_expected = 0
		int ClearBlock_idx = 0
		int GridIndex_x = 0
		int GridIndex_y = 0
		int __funcret_GridIndex = 0
		int GridInBounds_x = 0
		int GridInBounds_y = 0
		int __funcret_GridInBounds = 0
		int GridGet_x = 0
		int GridGet_y = 0
		int __funcret_GridGet = 0
		int GridGetClear_x = 0
		int GridGetClear_y = 0
		int __funcret_GridGetClear = 0
		int GridGetFlash_x = 0
		int GridGetFlash_y = 0
		int __funcret_GridGetFlash = 0
		int CheckPieceAt_px0 = 0
		int CheckPieceAt_py0 = 0
		int CheckPieceAt_px1 = 0
		int CheckPieceAt_py1 = 0
		int CheckPieceAt_px2 = 0
		int CheckPieceAt_py2 = 0
		int CheckPieceAt_b = 0
		int __funcret_CheckPieceAt = 0
		int CheckPieceDelta_dx = 0
		int CheckPieceDelta_dy = 0
		int __funcret_CheckPieceDelta = 0
		int CheckBlock_x = 0
		int CheckBlock_y = 0
		int CheckBlock_btype = 0
		int CheckBlock_b = 0
		int __funcret_CheckBlock = 0
		int BlockName_b = 0
		ptr __funcret_BlockName = null
		int ProcBlocks_x = 0
		int ProcBlocks_y = 0
		int __funcret_ProcBlocks = 0
		int ProcMoveDown_x = 0
		int ProcMoveDown_y = 0
		int ProcMoveDown_b1 = 0
		int ProcMoveDown_b2 = 0
		int ProcMoveDown_idx = 0
		int ProcMoveDown_cv = 0
		int ProcMoveDown_did_update = 0
		int __funcret_ProcMoveDown = 0
		int __funcret_IsGameOver = 0
		int __funcret_GetLevel = 0
		int __funcret_GetLines = 0
	}
	section code {
	function PROC_UNIT_INIT:
		alloc grid_blocks, 8, 440
		alloc grid_clear, 8, 440
		alloc grid_flash, 8, 440
		alloc grid_original, 8, 440
		ret
	function PROC_GridSet:
		mov GridSet_x, rbx
		mov GridSet_y, rcx
		mov GridSet_val, rdx
		mov rbx, GridSet_x
		mov rcx, GridSet_y
		push GridSet_x
		push GridSet_y
		push GridSet_val
		call FUNC_GridInBounds
		pop GridSet_val
		pop GridSet_y
		pop GridSet_x
		mov rbx, rax
		cmp rbx, 1
		je CMP_TRUE_2
		mov rcx, 0
		jmp CMP_END_3
	CMP_TRUE_2:
		mov rcx, 1
	CMP_END_3:
		cmp rcx, 0
		je ELSE_0
		push rbx
		push rcx
		mov rbx, GridSet_x
		mov rcx, GridSet_y
		push GridSet_x
		push GridSet_y
		push GridSet_val
		call FUNC_GridIndex
		pop GridSet_val
		pop GridSet_y
		pop GridSet_x
		pop rcx
		pop rbx
		mov rdx, rax
		cmp rdx, 0
		jl IDX_OOB_5
		cmp rdx, 439
		jg IDX_OOB_5
		jmp IDX_OK_4
	IDX_OOB_5:
		exit 1
	IDX_OK_4:
		mov rsi, rdx
		store GridSet_val, grid_blocks, rsi, 8
	ELSE_0:
	PROC_END_GridSet:
		ret
	function PROC_GridSetClear:
		mov GridSetClear_x, rbx
		mov GridSetClear_y, rcx
		mov GridSetClear_val, rdx
		mov rbx, GridSetClear_x
		mov rcx, GridSetClear_y
		push GridSetClear_x
		push GridSetClear_y
		push GridSetClear_val
		call FUNC_GridInBounds
		pop GridSetClear_val
		pop GridSetClear_y
		pop GridSetClear_x
		mov rbx, rax
		cmp rbx, 1
		jne ELSE_6
		push rbx
		push rcx
		mov rbx, GridSetClear_x
		mov rcx, GridSetClear_y
		push GridSetClear_x
		push GridSetClear_y
		push GridSetClear_val
		call FUNC_GridIndex
		pop GridSetClear_val
		pop GridSetClear_y
		pop GridSetClear_x
		pop rcx
		pop rbx
		mov rdx, rax
		cmp rdx, 0
		jl IDX_OOB_11
		cmp rdx, 439
		jg IDX_OOB_11
		jmp IDX_OK_10
	IDX_OOB_11:
		exit 1
	IDX_OK_10:
		mov rsi, rdx
		store GridSetClear_val, grid_clear, rsi, 8
	ELSE_6:
	PROC_END_GridSetClear:
		ret
	function PROC_GridSetFlash:
		mov GridSetFlash_x, rbx
		mov GridSetFlash_y, rcx
		mov GridSetFlash_val, rdx
		mov rbx, GridSetFlash_x
		mov rcx, GridSetFlash_y
		push GridSetFlash_x
		push GridSetFlash_y
		push GridSetFlash_val
		call FUNC_GridInBounds
		pop GridSetFlash_val
		pop GridSetFlash_y
		pop GridSetFlash_x
		mov rbx, rax
		cmp rbx, 1
		je CMP_TRUE_14
		mov rcx, 0
		jmp CMP_END_15
	CMP_TRUE_14:
		mov rcx, 1
	CMP_END_15:
		cmp rcx, 0
		je ELSE_12
		push rbx
		push rcx
		mov rbx, GridSetFlash_x
		mov rcx, GridSetFlash_y
		push GridSetFlash_x
		push GridSetFlash_y
		push GridSetFlash_val
		call FUNC_GridIndex
		pop GridSetFlash_val
		pop GridSetFlash_y
		pop GridSetFlash_x
		pop rcx
		pop rbx
		mov rdx, rax
		cmp rdx, 0
		jl IDX_OOB_17
		cmp rdx, 439
		jg IDX_OOB_17
		jmp IDX_OK_16
	IDX_OOB_17:
		exit 1
	IDX_OK_16:
		mov rsi, rdx
		store GridSetFlash_val, grid_flash, rsi, 8
	ELSE_12:
	PROC_END_GridSetFlash:
		ret
	function PROC_GridClearAll:
		mov GridClearAll_i, 0
	FOR_18:
		cmp GridClearAll_i, 439
		jg ENDFOR_19
		cmp GridClearAll_i, 0
		jl IDX_OOB_22
		cmp GridClearAll_i, 439
		jg IDX_OOB_22
		jmp IDX_OK_21
	IDX_OOB_22:
		exit 1
	IDX_OK_21:
		mov rbx, GridClearAll_i
		store 0, grid_blocks, rbx, 8
		cmp GridClearAll_i, 0
		jl IDX_OOB_24
		cmp GridClearAll_i, 439
		jg IDX_OOB_24
		jmp IDX_OK_23
	IDX_OOB_24:
		exit 1
	IDX_OK_23:
		mov rbx, GridClearAll_i
		store 0, grid_clear, rbx, 8
		cmp GridClearAll_i, 0
		jl IDX_OOB_26
		cmp GridClearAll_i, 439
		jg IDX_OOB_26
		jmp IDX_OK_25
	IDX_OOB_26:
		exit 1
	IDX_OK_25:
		mov rbx, GridClearAll_i
		store 0, grid_flash, rbx, 8
		cmp GridClearAll_i, 0
		jl IDX_OOB_28
		cmp GridClearAll_i, 439
		jg IDX_OOB_28
		jmp IDX_OK_27
	IDX_OOB_28:
		exit 1
	IDX_OK_27:
		mov rbx, GridClearAll_i
		store 0, grid_original, rbx, 8
	FOR_CONTINUE_20:
		add GridClearAll_i, 1
		jmp FOR_18
	ENDFOR_19:
		mov game_level, 1
		mov game_lines, 0
		mov game_over, 0
		mov PieceUnit.rbx, 10
		mov PieceUnit.rcx, 0
		push GridClearAll_i
		call PieceUnit.PROC_PieceNew
		pop GridClearAll_i
	PROC_END_GridClearAll:
		ret
	function PROC_SetPieceOnGrid:
		mov SetPieceOnGrid_i, 0
	FOR_29:
		cmp SetPieceOnGrid_i, 2
		jg ENDFOR_30
		mov rbx, SetPieceOnGrid_i
		mov _tmpptr0, PieceUnit.piece_x
		load rcx, _tmpptr0, rbx, 8
		mov SetPieceOnGrid_px, rcx
		mov rbx, SetPieceOnGrid_i
		mov _tmpptr1, PieceUnit.piece_y
		load rdx, _tmpptr1, rbx, 8
		mov SetPieceOnGrid_py, rdx
		push rcx
		push rdx
		mov rbx, SetPieceOnGrid_px
		mov rcx, SetPieceOnGrid_py
		push SetPieceOnGrid_i
		push SetPieceOnGrid_px
		push SetPieceOnGrid_py
		call FUNC_GridInBounds
		pop SetPieceOnGrid_py
		pop SetPieceOnGrid_px
		pop SetPieceOnGrid_i
		pop rdx
		pop rcx
		mov rbx, rax
		cmp rbx, 1
		jne ELSE_32
		mov rdi, SetPieceOnGrid_i
		mov _tmpptr2, PieceUnit.piece_type
		load r8, _tmpptr2, rdi, 8
		push rbx
		push rcx
		push rdx
		push rsi
		mov rbx, SetPieceOnGrid_px
		mov rcx, SetPieceOnGrid_py
		mov rdx, r8
		push SetPieceOnGrid_i
		push SetPieceOnGrid_px
		push SetPieceOnGrid_py
		call PROC_GridSet
		pop SetPieceOnGrid_py
		pop SetPieceOnGrid_px
		pop SetPieceOnGrid_i
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push r8
		mov rbx, SetPieceOnGrid_px
		mov rcx, SetPieceOnGrid_py
		mov rdx, 0
		push SetPieceOnGrid_i
		push SetPieceOnGrid_px
		push SetPieceOnGrid_py
		call PROC_GridSetClear
		pop SetPieceOnGrid_py
		pop SetPieceOnGrid_px
		pop SetPieceOnGrid_i
		pop r8
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push r8
		mov rbx, SetPieceOnGrid_px
		mov rcx, SetPieceOnGrid_py
		mov rdx, 0
		push SetPieceOnGrid_i
		push SetPieceOnGrid_px
		push SetPieceOnGrid_py
		call PROC_GridSetFlash
		pop SetPieceOnGrid_py
		pop SetPieceOnGrid_px
		pop SetPieceOnGrid_i
		pop r8
		pop rsi
		pop rdx
		pop rcx
		pop rbx
	ELSE_32:
		cmp SetPieceOnGrid_py, 0
		jne ELSE_36
		mov game_over, 1
	ELSE_36:
	FOR_CONTINUE_31:
		add SetPieceOnGrid_i, 1
		jmp FOR_29
	ENDFOR_30:
	PROC_END_SetPieceOnGrid:
		ret
	function PROC_GridKeyLeft:
		mov rbx, 0
		sub rbx, 1
		mov rcx, 0
		call FUNC_CheckPieceDelta
		mov rcx, rax
		cmp rcx, 1
		je CMP_TRUE_42
		mov rdx, 0
		jmp CMP_END_43
	CMP_TRUE_42:
		mov rdx, 1
	CMP_END_43:
		cmp rdx, 0
		je ELSE_40
		push rbx
		push rcx
		push rdx
		call PieceUnit.PROC_PieceMoveLeft
		pop rdx
		pop rcx
		pop rbx
	ELSE_40:
	PROC_END_GridKeyLeft:
		ret
	function PROC_GridKeyRight:
		mov rbx, 1
		mov rcx, 0
		call FUNC_CheckPieceDelta
		mov rbx, rax
		cmp rbx, 1
		je CMP_TRUE_46
		mov rcx, 0
		jmp CMP_END_47
	CMP_TRUE_46:
		mov rcx, 1
	CMP_END_47:
		cmp rcx, 0
		je ELSE_44
		push rbx
		push rcx
		call PieceUnit.PROC_PieceMoveRight
		pop rcx
		pop rbx
	ELSE_44:
	PROC_END_GridKeyRight:
		ret
	function PROC_GridKeyDown:
		mov rbx, 0
		mov rcx, 1
		push GridKeyDown_cd
		call FUNC_CheckPieceDelta
		pop GridKeyDown_cd
		mov rbx, rax
		mov GridKeyDown_cd, rbx
		cmp GridKeyDown_cd, 1
		jne ELSE_48
		push rbx
		push rcx
		push GridKeyDown_cd
		call PieceUnit.PROC_PieceMoveDown
		pop GridKeyDown_cd
		pop rcx
		pop rbx
		jmp ENDIF_49
	ELSE_48:
		push rbx
		push rcx
		push GridKeyDown_cd
		call PROC_SetPieceOnGrid
		pop GridKeyDown_cd
		pop rcx
		pop rbx
		push rbx
		push rcx
		mov PieceUnit.rbx, 10
		mov PieceUnit.rcx, 0
		push GridKeyDown_cd
		call PieceUnit.PROC_PieceNew
		pop GridKeyDown_cd
		pop rcx
		pop rbx
	ENDIF_49:
	PROC_END_GridKeyDown:
		ret
	function PROC_GridKeyShiftUp:
		call PieceUnit.PROC_PieceShiftUp
	PROC_END_GridKeyShiftUp:
		ret
	function PROC_GridKeyShiftDown:
		call PieceUnit.PROC_PieceShiftDown
	PROC_END_GridKeyShiftDown:
		ret
	function PROC_GridKeyRotateLeft:
		mov rbx, 0
		mov _tmpptr3, PieceUnit.piece_x
		load rcx, _tmpptr3, rbx, 8
		mov GridKeyRotateLeft_save_x0, rcx
		mov rbx, 0
		mov _tmpptr4, PieceUnit.piece_y
		load rdx, _tmpptr4, rbx, 8
		mov GridKeyRotateLeft_save_y0, rdx
		mov rbx, 1
		mov _tmpptr5, PieceUnit.piece_x
		load rsi, _tmpptr5, rbx, 8
		mov GridKeyRotateLeft_save_x1, rsi
		mov rbx, 1
		mov _tmpptr6, PieceUnit.piece_y
		load rdi, _tmpptr6, rbx, 8
		mov GridKeyRotateLeft_save_y1, rdi
		mov rbx, 2
		mov _tmpptr7, PieceUnit.piece_x
		load r8, _tmpptr7, rbx, 8
		mov GridKeyRotateLeft_save_x2, r8
		mov rbx, 2
		mov _tmpptr8, PieceUnit.piece_y
		load r9, _tmpptr8, rbx, 8
		mov GridKeyRotateLeft_save_y2, r9
		mov rbx, PieceUnit.piece_position
		mov GridKeyRotateLeft_save_pos, rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push GridKeyRotateLeft_save_x0
		push GridKeyRotateLeft_save_y0
		push GridKeyRotateLeft_save_x1
		push GridKeyRotateLeft_save_y1
		push GridKeyRotateLeft_save_x2
		push GridKeyRotateLeft_save_y2
		push GridKeyRotateLeft_save_pos
		call PieceUnit.PROC_PieceRotateLeft
		pop GridKeyRotateLeft_save_pos
		pop GridKeyRotateLeft_save_y2
		pop GridKeyRotateLeft_save_x2
		pop GridKeyRotateLeft_save_y1
		pop GridKeyRotateLeft_save_x1
		pop GridKeyRotateLeft_save_y0
		pop GridKeyRotateLeft_save_x0
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, 0
		mov rcx, 0
		push GridKeyRotateLeft_save_x0
		push GridKeyRotateLeft_save_y0
		push GridKeyRotateLeft_save_x1
		push GridKeyRotateLeft_save_y1
		push GridKeyRotateLeft_save_x2
		push GridKeyRotateLeft_save_y2
		push GridKeyRotateLeft_save_pos
		call FUNC_CheckPieceDelta
		pop GridKeyRotateLeft_save_pos
		pop GridKeyRotateLeft_save_y2
		pop GridKeyRotateLeft_save_x2
		pop GridKeyRotateLeft_save_y1
		pop GridKeyRotateLeft_save_x1
		pop GridKeyRotateLeft_save_y0
		pop GridKeyRotateLeft_save_x0
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 0
		jne ELSE_52
		cmp 0, 0
		jl IDX_OOB_57
		cmp 0, 2
		jg IDX_OOB_57
		jmp IDX_OK_56
	IDX_OOB_57:
		exit 1
	IDX_OK_56:
		mov r9, 0
		mov _tmpptr9, PieceUnit.piece_x
		store GridKeyRotateLeft_save_x0, _tmpptr9, r9, 8
		cmp 0, 0
		jl IDX_OOB_59
		cmp 0, 2
		jg IDX_OOB_59
		jmp IDX_OK_58
	IDX_OOB_59:
		exit 1
	IDX_OK_58:
		mov r9, 0
		mov _tmpptr10, PieceUnit.piece_y
		store GridKeyRotateLeft_save_y0, _tmpptr10, r9, 8
		cmp 1, 0
		jl IDX_OOB_61
		cmp 1, 2
		jg IDX_OOB_61
		jmp IDX_OK_60
	IDX_OOB_61:
		exit 1
	IDX_OK_60:
		mov r9, 1
		mov _tmpptr11, PieceUnit.piece_x
		store GridKeyRotateLeft_save_x1, _tmpptr11, r9, 8
		cmp 1, 0
		jl IDX_OOB_63
		cmp 1, 2
		jg IDX_OOB_63
		jmp IDX_OK_62
	IDX_OOB_63:
		exit 1
	IDX_OK_62:
		mov r9, 1
		mov _tmpptr12, PieceUnit.piece_y
		store GridKeyRotateLeft_save_y1, _tmpptr12, r9, 8
		cmp 2, 0
		jl IDX_OOB_65
		cmp 2, 2
		jg IDX_OOB_65
		jmp IDX_OK_64
	IDX_OOB_65:
		exit 1
	IDX_OK_64:
		mov r9, 2
		mov _tmpptr13, PieceUnit.piece_x
		store GridKeyRotateLeft_save_x2, _tmpptr13, r9, 8
		cmp 2, 0
		jl IDX_OOB_67
		cmp 2, 2
		jg IDX_OOB_67
		jmp IDX_OK_66
	IDX_OOB_67:
		exit 1
	IDX_OK_66:
		mov r9, 2
		mov _tmpptr14, PieceUnit.piece_y
		store GridKeyRotateLeft_save_y2, _tmpptr14, r9, 8
		mov PieceUnit.piece_position, GridKeyRotateLeft_save_pos
	ELSE_52:
	PROC_END_GridKeyRotateLeft:
		ret
	function PROC_GridKeyRotateRight:
		mov rbx, 0
		mov _tmpptr15, PieceUnit.piece_x
		load rcx, _tmpptr15, rbx, 8
		mov GridKeyRotateRight_save_x0, rcx
		mov rbx, 0
		mov _tmpptr16, PieceUnit.piece_y
		load rdx, _tmpptr16, rbx, 8
		mov GridKeyRotateRight_save_y0, rdx
		mov rbx, 1
		mov _tmpptr17, PieceUnit.piece_x
		load rsi, _tmpptr17, rbx, 8
		mov GridKeyRotateRight_save_x1, rsi
		mov rbx, 1
		mov _tmpptr18, PieceUnit.piece_y
		load rdi, _tmpptr18, rbx, 8
		mov GridKeyRotateRight_save_y1, rdi
		mov rbx, 2
		mov _tmpptr19, PieceUnit.piece_x
		load r8, _tmpptr19, rbx, 8
		mov GridKeyRotateRight_save_x2, r8
		mov rbx, 2
		mov _tmpptr20, PieceUnit.piece_y
		load r9, _tmpptr20, rbx, 8
		mov GridKeyRotateRight_save_y2, r9
		mov rbx, PieceUnit.piece_position
		mov GridKeyRotateRight_save_pos, rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push GridKeyRotateRight_save_x0
		push GridKeyRotateRight_save_y0
		push GridKeyRotateRight_save_x1
		push GridKeyRotateRight_save_y1
		push GridKeyRotateRight_save_x2
		push GridKeyRotateRight_save_y2
		push GridKeyRotateRight_save_pos
		call PieceUnit.PROC_PieceRotateRight
		pop GridKeyRotateRight_save_pos
		pop GridKeyRotateRight_save_y2
		pop GridKeyRotateRight_save_x2
		pop GridKeyRotateRight_save_y1
		pop GridKeyRotateRight_save_x1
		pop GridKeyRotateRight_save_y0
		pop GridKeyRotateRight_save_x0
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, 0
		mov rcx, 0
		push GridKeyRotateRight_save_x0
		push GridKeyRotateRight_save_y0
		push GridKeyRotateRight_save_x1
		push GridKeyRotateRight_save_y1
		push GridKeyRotateRight_save_x2
		push GridKeyRotateRight_save_y2
		push GridKeyRotateRight_save_pos
		call FUNC_CheckPieceDelta
		pop GridKeyRotateRight_save_pos
		pop GridKeyRotateRight_save_y2
		pop GridKeyRotateRight_save_x2
		pop GridKeyRotateRight_save_y1
		pop GridKeyRotateRight_save_x1
		pop GridKeyRotateRight_save_y0
		pop GridKeyRotateRight_save_x0
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 0
		jne ELSE_68
		cmp 0, 0
		jl IDX_OOB_73
		cmp 0, 2
		jg IDX_OOB_73
		jmp IDX_OK_72
	IDX_OOB_73:
		exit 1
	IDX_OK_72:
		mov r9, 0
		mov _tmpptr21, PieceUnit.piece_x
		store GridKeyRotateRight_save_x0, _tmpptr21, r9, 8
		cmp 0, 0
		jl IDX_OOB_75
		cmp 0, 2
		jg IDX_OOB_75
		jmp IDX_OK_74
	IDX_OOB_75:
		exit 1
	IDX_OK_74:
		mov r9, 0
		mov _tmpptr22, PieceUnit.piece_y
		store GridKeyRotateRight_save_y0, _tmpptr22, r9, 8
		cmp 1, 0
		jl IDX_OOB_77
		cmp 1, 2
		jg IDX_OOB_77
		jmp IDX_OK_76
	IDX_OOB_77:
		exit 1
	IDX_OK_76:
		mov r9, 1
		mov _tmpptr23, PieceUnit.piece_x
		store GridKeyRotateRight_save_x1, _tmpptr23, r9, 8
		cmp 1, 0
		jl IDX_OOB_79
		cmp 1, 2
		jg IDX_OOB_79
		jmp IDX_OK_78
	IDX_OOB_79:
		exit 1
	IDX_OK_78:
		mov r9, 1
		mov _tmpptr24, PieceUnit.piece_y
		store GridKeyRotateRight_save_y1, _tmpptr24, r9, 8
		cmp 2, 0
		jl IDX_OOB_81
		cmp 2, 2
		jg IDX_OOB_81
		jmp IDX_OK_80
	IDX_OOB_81:
		exit 1
	IDX_OK_80:
		mov r9, 2
		mov _tmpptr25, PieceUnit.piece_x
		store GridKeyRotateRight_save_x2, _tmpptr25, r9, 8
		cmp 2, 0
		jl IDX_OOB_83
		cmp 2, 2
		jg IDX_OOB_83
		jmp IDX_OK_82
	IDX_OOB_83:
		exit 1
	IDX_OK_82:
		mov r9, 2
		mov _tmpptr26, PieceUnit.piece_y
		store GridKeyRotateRight_save_y2, _tmpptr26, r9, 8
		mov PieceUnit.piece_position, GridKeyRotateRight_save_pos
	ELSE_68:
	PROC_END_GridKeyRotateRight:
		ret
	function PROC_LogMatch:
		mov LogMatch_dir, arg0
		mov LogMatch_x1, rbx
		mov LogMatch_y1, rcx
		mov LogMatch_x2, rdx
		mov LogMatch_y2, rsi
		mov LogMatch_x3, rdi
		mov LogMatch_y3, r8
		print fmt_str, str_0
		print fmt_str, LogMatch_dir
		print fmt_str, str_1
		print fmt_int, LogMatch_x1
		print fmt_str, str_2
		print fmt_int, LogMatch_y1
		print fmt_str, str_3
		mov rbx, LogMatch_x1
		mov rcx, LogMatch_y1
		push LogMatch_dir
		push LogMatch_x1
		push LogMatch_y1
		push LogMatch_x2
		push LogMatch_y2
		push LogMatch_x3
		push LogMatch_y3
		call FUNC_GridGet
		pop LogMatch_y3
		pop LogMatch_x3
		pop LogMatch_y2
		pop LogMatch_x2
		pop LogMatch_y1
		pop LogMatch_x1
		pop LogMatch_dir
		mov rbx, rax
		push LogMatch_dir
		push LogMatch_x1
		push LogMatch_y1
		push LogMatch_x2
		push LogMatch_y2
		push LogMatch_x3
		push LogMatch_y3
		call FUNC_BlockName
		pop LogMatch_y3
		pop LogMatch_x3
		pop LogMatch_y2
		pop LogMatch_x2
		pop LogMatch_y1
		pop LogMatch_x1
		pop LogMatch_dir
		mov _tmpptr27, arg0
		print fmt_str, _tmpptr27
		print fmt_str, str_4
		print fmt_int, LogMatch_x2
		print fmt_str, str_2
		print fmt_int, LogMatch_y2
		print fmt_str, str_3
		push rbx
		mov rbx, LogMatch_x2
		mov rcx, LogMatch_y2
		push LogMatch_dir
		push LogMatch_x1
		push LogMatch_y1
		push LogMatch_x2
		push LogMatch_y2
		push LogMatch_x3
		push LogMatch_y3
		call FUNC_GridGet
		pop LogMatch_y3
		pop LogMatch_x3
		pop LogMatch_y2
		pop LogMatch_x2
		pop LogMatch_y1
		pop LogMatch_x1
		pop LogMatch_dir
		pop rbx
		mov rcx, rax
		push rbx
		mov rbx, rcx
		push LogMatch_dir
		push LogMatch_x1
		push LogMatch_y1
		push LogMatch_x2
		push LogMatch_y2
		push LogMatch_x3
		push LogMatch_y3
		call FUNC_BlockName
		pop LogMatch_y3
		pop LogMatch_x3
		pop LogMatch_y2
		pop LogMatch_x2
		pop LogMatch_y1
		pop LogMatch_x1
		pop LogMatch_dir
		pop rbx
		mov _tmpptr27, arg0
		print fmt_str, _tmpptr27
		print fmt_str, str_4
		print fmt_int, LogMatch_x3
		print fmt_str, str_2
		print fmt_int, LogMatch_y3
		print fmt_str, str_3
		push rbx
		push rcx
		mov rbx, LogMatch_x3
		mov rcx, LogMatch_y3
		push LogMatch_dir
		push LogMatch_x1
		push LogMatch_y1
		push LogMatch_x2
		push LogMatch_y2
		push LogMatch_x3
		push LogMatch_y3
		call FUNC_GridGet
		pop LogMatch_y3
		pop LogMatch_x3
		pop LogMatch_y2
		pop LogMatch_x2
		pop LogMatch_y1
		pop LogMatch_x1
		pop LogMatch_dir
		pop rcx
		pop rbx
		mov rdx, rax
		push rbx
		push rcx
		mov rbx, rdx
		push LogMatch_dir
		push LogMatch_x1
		push LogMatch_y1
		push LogMatch_x2
		push LogMatch_y2
		push LogMatch_x3
		push LogMatch_y3
		call FUNC_BlockName
		pop LogMatch_y3
		pop LogMatch_x3
		pop LogMatch_y2
		pop LogMatch_x2
		pop LogMatch_y1
		pop LogMatch_x1
		pop LogMatch_dir
		pop rcx
		pop rbx
		mov _tmpptr27, arg0
		print fmt_str, _tmpptr27
		print newline
	PROC_END_LogMatch:
		ret
	function PROC_ClearBlock:
		mov ClearBlock_x, rbx
		mov ClearBlock_y, rcx
		mov ClearBlock_expected, rdx
		mov rbx, ClearBlock_x
		mov rcx, ClearBlock_y
		push ClearBlock_x
		push ClearBlock_y
		push ClearBlock_expected
		push ClearBlock_idx
		call FUNC_GridIndex
		pop ClearBlock_idx
		pop ClearBlock_expected
		pop ClearBlock_y
		pop ClearBlock_x
		mov rbx, rax
		mov ClearBlock_idx, rbx
		cmp ClearBlock_idx, 0
		jl IDX_OOB_85
		cmp ClearBlock_idx, 439
		jg IDX_OOB_85
		jmp IDX_OK_84
	IDX_OOB_85:
		exit 1
	IDX_OK_84:
		mov rcx, ClearBlock_idx
		store ClearBlock_expected, grid_original, rcx, 8
		push rbx
		mov rbx, ClearBlock_x
		mov rcx, ClearBlock_y
		mov rdx, 1
		push ClearBlock_x
		push ClearBlock_y
		push ClearBlock_expected
		push ClearBlock_idx
		call PROC_GridSet
		pop ClearBlock_idx
		pop ClearBlock_expected
		pop ClearBlock_y
		pop ClearBlock_x
		pop rbx
		push rbx
		mov rbx, ClearBlock_x
		mov rcx, ClearBlock_y
		mov rdx, 1
		push ClearBlock_x
		push ClearBlock_y
		push ClearBlock_expected
		push ClearBlock_idx
		call PROC_GridSetClear
		pop ClearBlock_idx
		pop ClearBlock_expected
		pop ClearBlock_y
		pop ClearBlock_x
		pop rbx
		push rbx
		mov rbx, ClearBlock_x
		mov rcx, ClearBlock_y
		mov rdx, 0
		push ClearBlock_x
		push ClearBlock_y
		push ClearBlock_expected
		push ClearBlock_idx
		call PROC_GridSetFlash
		pop ClearBlock_idx
		pop ClearBlock_expected
		pop ClearBlock_y
		pop ClearBlock_x
		pop rbx
	PROC_END_ClearBlock:
		ret
	function PROC_AddScore:
		add game_lines, 1
		mov rcx, game_lines
		mod rcx, 6
		cmp rcx, 0
		jne ELSE_86
		cmp game_level, 7
		jge ELSE_90
		add game_level, 1
	ELSE_90:
	ELSE_86:
	PROC_END_AddScore:
		ret
	function FUNC_GridIndex:
		mov GridIndex_x, rbx
		mov GridIndex_y, rcx
		mov __funcret_GridIndex, GridIndex_y
		mul __funcret_GridIndex, 20
		add __funcret_GridIndex, GridIndex_x
	FUNC_END_GridIndex:
		mov rax, __funcret_GridIndex
		ret
	function FUNC_GridInBounds:
		mov GridInBounds_x, rbx
		mov GridInBounds_y, rcx
		cmp GridInBounds_x, 0
		jl AND_ZERO_100
		cmp GridInBounds_x, 20
		jge AND_ZERO_100
		mov rdx, 1
		jmp AND_END_101
	AND_ZERO_100:
		mov rdx, 0
	AND_END_101:
		cmp GridInBounds_y, 0
		jl AND_ZERO_104
		cmp rdx, 0
		je AND_ZERO_104
		mov rdi, 1
		jmp AND_END_105
	AND_ZERO_104:
		mov rdi, 0
	AND_END_105:
		cmp GridInBounds_y, 22
		jge ELSE_94
		cmp rdi, 0
		je ELSE_94
		mov __funcret_GridInBounds, 1
		jmp ENDIF_95
	ELSE_94:
		mov __funcret_GridInBounds, 0
	ENDIF_95:
	FUNC_END_GridInBounds:
		mov rax, __funcret_GridInBounds
		ret
	function FUNC_GridGet:
		mov GridGet_x, rbx
		mov GridGet_y, rcx
		mov rbx, GridGet_x
		mov rcx, GridGet_y
		push GridGet_x
		push GridGet_y
		call FUNC_GridInBounds
		pop GridGet_y
		pop GridGet_x
		mov rbx, rax
		cmp rbx, 1
		jne ELSE_110
		push rbx
		push rcx
		mov rbx, GridGet_x
		mov rcx, GridGet_y
		push GridGet_x
		push GridGet_y
		call FUNC_GridIndex
		pop GridGet_y
		pop GridGet_x
		pop rcx
		pop rbx
		mov rdx, rax
		mov rsi, rdx
		load rdi, grid_blocks, rsi, 8
		mov __funcret_GridGet, rdi
		jmp ENDIF_111
	ELSE_110:
		mov __funcret_GridGet, 0
		sub __funcret_GridGet, 1
	ENDIF_111:
	FUNC_END_GridGet:
		mov rax, __funcret_GridGet
		ret
	function FUNC_GridGetClear:
		mov GridGetClear_x, rbx
		mov GridGetClear_y, rcx
		mov rbx, GridGetClear_x
		mov rcx, GridGetClear_y
		push GridGetClear_x
		push GridGetClear_y
		call FUNC_GridInBounds
		pop GridGetClear_y
		pop GridGetClear_x
		mov rbx, rax
		cmp rbx, 1
		jne ELSE_114
		push rbx
		push rcx
		mov rbx, GridGetClear_x
		mov rcx, GridGetClear_y
		push GridGetClear_x
		push GridGetClear_y
		call FUNC_GridIndex
		pop GridGetClear_y
		pop GridGetClear_x
		pop rcx
		pop rbx
		mov rdx, rax
		mov rsi, rdx
		load rdi, grid_clear, rsi, 8
		mov __funcret_GridGetClear, rdi
		jmp ENDIF_115
	ELSE_114:
		mov __funcret_GridGetClear, 0
	ENDIF_115:
	FUNC_END_GridGetClear:
		mov rax, __funcret_GridGetClear
		ret
	function FUNC_GridGetFlash:
		mov GridGetFlash_x, rbx
		mov GridGetFlash_y, rcx
		mov rbx, GridGetFlash_x
		mov rcx, GridGetFlash_y
		push GridGetFlash_x
		push GridGetFlash_y
		call FUNC_GridInBounds
		pop GridGetFlash_y
		pop GridGetFlash_x
		mov rbx, rax
		cmp rbx, 1
		jne ELSE_118
		push rbx
		push rcx
		mov rbx, GridGetFlash_x
		mov rcx, GridGetFlash_y
		push GridGetFlash_x
		push GridGetFlash_y
		call FUNC_GridIndex
		pop GridGetFlash_y
		pop GridGetFlash_x
		pop rcx
		pop rbx
		mov rdx, rax
		mov rsi, rdx
		load rdi, grid_flash, rsi, 8
		mov __funcret_GridGetFlash, rdi
		jmp ENDIF_119
	ELSE_118:
		mov __funcret_GridGetFlash, 0
	ENDIF_119:
	FUNC_END_GridGetFlash:
		mov rax, __funcret_GridGetFlash
		ret
	function FUNC_CheckPieceAt:
		mov CheckPieceAt_px0, rbx
		mov CheckPieceAt_py0, rcx
		mov CheckPieceAt_px1, rdx
		mov CheckPieceAt_py1, rsi
		mov CheckPieceAt_px2, rdi
		mov CheckPieceAt_py2, r8
		mov __funcret_CheckPieceAt, 1
		mov rbx, CheckPieceAt_px0
		mov rcx, CheckPieceAt_py0
		push CheckPieceAt_px0
		push CheckPieceAt_py0
		push CheckPieceAt_px1
		push CheckPieceAt_py1
		push CheckPieceAt_px2
		push CheckPieceAt_py2
		push CheckPieceAt_b
		call FUNC_GridGet
		pop CheckPieceAt_b
		pop CheckPieceAt_py2
		pop CheckPieceAt_px2
		pop CheckPieceAt_py1
		pop CheckPieceAt_px1
		pop CheckPieceAt_py0
		pop CheckPieceAt_px0
		mov rbx, rax
		mov CheckPieceAt_b, rbx
		mov rcx, 0
		sub rcx, 1
		cmp CheckPieceAt_b, rcx
		je CMP_TRUE_124
		mov rdx, 0
		jmp CMP_END_125
	CMP_TRUE_124:
		mov rdx, 1
	CMP_END_125:
		cmp CheckPieceAt_b, 0
		je AND_ZERO_130
		cmp CheckPieceAt_b, 1
		je AND_ZERO_130
		mov r8, 1
		jmp AND_END_131
	AND_ZERO_130:
		mov r8, 0
	AND_END_131:
		cmp rdx, 0
		jne OR_ONE_132
		cmp r8, 0
		je ELSE_122
	OR_ONE_132:
		mov __funcret_CheckPieceAt, 0
		jmp FUNC_END_CheckPieceAt
	ELSE_122:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, CheckPieceAt_px1
		mov rcx, CheckPieceAt_py1
		push CheckPieceAt_px0
		push CheckPieceAt_py0
		push CheckPieceAt_px1
		push CheckPieceAt_py1
		push CheckPieceAt_px2
		push CheckPieceAt_py2
		push CheckPieceAt_b
		call FUNC_GridGet
		pop CheckPieceAt_b
		pop CheckPieceAt_py2
		pop CheckPieceAt_px2
		pop CheckPieceAt_py1
		pop CheckPieceAt_px1
		pop CheckPieceAt_py0
		pop CheckPieceAt_px0
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		mov CheckPieceAt_b, r9
		mov r9, 0
		sub r9, 1
		cmp CheckPieceAt_b, r9
		je CMP_TRUE_136
		mov r10, 0
		jmp CMP_END_137
	CMP_TRUE_136:
		mov r10, 1
	CMP_END_137:
		cmp CheckPieceAt_b, 0
		je AND_ZERO_142
		cmp CheckPieceAt_b, 1
		je AND_ZERO_142
		mov r12, 1
		jmp AND_END_143
	AND_ZERO_142:
		mov r12, 0
	AND_END_143:
		cmp r10, 0
		jne OR_ONE_144
		cmp r12, 0
		je ELSE_134
	OR_ONE_144:
		mov __funcret_CheckPieceAt, 0
		jmp FUNC_END_CheckPieceAt
	ELSE_134:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, CheckPieceAt_px2
		mov rcx, CheckPieceAt_py2
		push CheckPieceAt_px0
		push CheckPieceAt_py0
		push CheckPieceAt_px1
		push CheckPieceAt_py1
		push CheckPieceAt_px2
		push CheckPieceAt_py2
		push CheckPieceAt_b
		call FUNC_GridGet
		pop CheckPieceAt_b
		pop CheckPieceAt_py2
		pop CheckPieceAt_px2
		pop CheckPieceAt_py1
		pop CheckPieceAt_px1
		pop CheckPieceAt_py0
		pop CheckPieceAt_px0
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		mov CheckPieceAt_b, r9
		mov r9, 0
		sub r9, 1
		cmp CheckPieceAt_b, r9
		je CMP_TRUE_148
		mov r10, 0
		jmp CMP_END_149
	CMP_TRUE_148:
		mov r10, 1
	CMP_END_149:
		cmp CheckPieceAt_b, 0
		je AND_ZERO_154
		cmp CheckPieceAt_b, 1
		je AND_ZERO_154
		mov r12, 1
		jmp AND_END_155
	AND_ZERO_154:
		mov r12, 0
	AND_END_155:
		cmp r10, 0
		jne OR_ONE_156
		cmp r12, 0
		je ELSE_146
	OR_ONE_156:
		mov __funcret_CheckPieceAt, 0
	ELSE_146:
	FUNC_END_CheckPieceAt:
		mov rax, __funcret_CheckPieceAt
		ret
	function FUNC_CheckPieceDelta:
		mov CheckPieceDelta_dx, rbx
		mov CheckPieceDelta_dy, rcx
		mov rbx, 0
		mov _tmpptr27, PieceUnit.piece_x
		load rcx, _tmpptr27, rbx, 8
		mov rbx, rcx
		add rbx, CheckPieceDelta_dx
		mov rdx, 0
		mov _tmpptr28, PieceUnit.piece_y
		load rsi, _tmpptr28, rdx, 8
		mov rdx, rsi
		add rdx, CheckPieceDelta_dy
		mov rdi, 1
		mov _tmpptr29, PieceUnit.piece_x
		load r8, _tmpptr29, rdi, 8
		mov rdi, r8
		add rdi, CheckPieceDelta_dx
		mov r9, 1
		mov _tmpptr30, PieceUnit.piece_y
		load r10, _tmpptr30, r9, 8
		add r10, CheckPieceDelta_dy
		mov r9, 2
		mov _tmpptr31, PieceUnit.piece_x
		load r11, _tmpptr31, r9, 8
		add r11, CheckPieceDelta_dx
		mov r9, 2
		mov _tmpptr32, PieceUnit.piece_y
		load r12, _tmpptr32, r9, 8
		add r12, CheckPieceDelta_dy
		mov r9, rdx
		mov r13, rdi
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rcx, r9
		mov rdx, r13
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push CheckPieceDelta_dx
		push CheckPieceDelta_dy
		call FUNC_CheckPieceAt
		pop CheckPieceDelta_dy
		pop CheckPieceDelta_dx
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		mov r14, rax
		mov __funcret_CheckPieceDelta, r14
	FUNC_END_CheckPieceDelta:
		mov rax, __funcret_CheckPieceDelta
		ret
	function FUNC_CheckBlock:
		mov CheckBlock_x, rbx
		mov CheckBlock_y, rcx
		mov CheckBlock_btype, rdx
		mov rbx, CheckBlock_x
		mov rcx, CheckBlock_y
		push CheckBlock_x
		push CheckBlock_y
		push CheckBlock_btype
		push CheckBlock_b
		call FUNC_GridGet
		pop CheckBlock_b
		pop CheckBlock_btype
		pop CheckBlock_y
		pop CheckBlock_x
		mov rbx, rax
		mov CheckBlock_b, rbx
		cmp CheckBlock_b, CheckBlock_btype
		je OR_ONE_164
		cmp CheckBlock_b, 11
		jne ELSE_158
	OR_ONE_164:
		mov __funcret_CheckBlock, 1
		jmp ENDIF_159
	ELSE_158:
		mov __funcret_CheckBlock, 0
	ENDIF_159:
	FUNC_END_CheckBlock:
		mov rax, __funcret_CheckBlock
		ret
	function FUNC_BlockName:
		mov BlockName_b, rbx
		cmp BlockName_b, 0
		jne ELSE_166
		mov __funcret_BlockName, str_5
		jmp ENDIF_167
	ELSE_166:
		cmp BlockName_b, 1
		jne ELSE_170
		mov __funcret_BlockName, str_6
		jmp ENDIF_171
	ELSE_170:
		cmp BlockName_b, 2
		jne ELSE_174
		mov __funcret_BlockName, str_7
		jmp ENDIF_175
	ELSE_174:
		cmp BlockName_b, 3
		jne ELSE_178
		mov __funcret_BlockName, str_8
		jmp ENDIF_179
	ELSE_178:
		cmp BlockName_b, 4
		jne ELSE_182
		mov __funcret_BlockName, str_9
		jmp ENDIF_183
	ELSE_182:
		cmp BlockName_b, 5
		jne ELSE_186
		mov __funcret_BlockName, str_10
		jmp ENDIF_187
	ELSE_186:
		cmp BlockName_b, 6
		jne ELSE_190
		mov __funcret_BlockName, str_11
		jmp ENDIF_191
	ELSE_190:
		cmp BlockName_b, 7
		jne ELSE_194
		mov __funcret_BlockName, str_12
		jmp ENDIF_195
	ELSE_194:
		cmp BlockName_b, 8
		jne ELSE_198
		mov __funcret_BlockName, str_13
		jmp ENDIF_199
	ELSE_198:
		cmp BlockName_b, 9
		jne ELSE_202
		mov __funcret_BlockName, str_14
		jmp ENDIF_203
	ELSE_202:
		cmp BlockName_b, 10
		jne ELSE_206
		mov __funcret_BlockName, str_15
		jmp ENDIF_207
	ELSE_206:
		cmp BlockName_b, 11
		jne ELSE_210
		mov __funcret_BlockName, str_16
		jmp ENDIF_211
	ELSE_210:
		invoke inttostr, BlockName_b
		return _tmpptr33
		invoke strlen, str_17
		return r9
		invoke strlen, _tmpptr33
		return r10
		mov r11, r9
		add r11, r10
		add r11, 1
		alloc _tmpptr34, 1, r11
		invoke strncpy, _tmpptr34, str_17, r9
		invoke strncat, _tmpptr34, _tmpptr33, r10
		mov __funcret_BlockName, _tmpptr34
	ENDIF_211:
	ENDIF_207:
	ENDIF_203:
	ENDIF_199:
	ENDIF_195:
	ENDIF_191:
	ENDIF_187:
	ENDIF_183:
	ENDIF_179:
	ENDIF_175:
	ENDIF_171:
	ENDIF_167:
		free _tmpptr33
	FUNC_END_BlockName:
		mov arg0, __funcret_BlockName
		ret
	function FUNC_ProcBlocks:
		mov __funcret_ProcBlocks, 0
		mov ProcBlocks_x, 0
	FOR_214:
		cmp ProcBlocks_x, 19
		jg ENDFOR_215
		mov ProcBlocks_y, 0
	FOR_217:
		cmp ProcBlocks_y, 21
		jg ENDFOR_218
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		mov rbx, rax
		cmp rbx, 1
		je CMP_TRUE_222
		mov rcx, 0
		jmp CMP_END_223
	CMP_TRUE_222:
		mov rcx, 1
	CMP_END_223:
		mov rdx, ProcBlocks_y
		add rdx, 1
		mov rsi, rdx
		push rbx
		push rcx
		push rdx
		mov rbx, ProcBlocks_x
		mov rcx, rsi
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop rdx
		pop rcx
		pop rbx
		mov rdi, rax
		cmp rdi, 1
		jne AND_ZERO_226
		cmp rcx, 0
		je AND_ZERO_226
		mov r9, 1
		jmp AND_END_227
	AND_ZERO_226:
		mov r9, 0
	AND_END_227:
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r9
		mov rbx, ProcBlocks_x
		mov rcx, r10
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r9
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne ELSE_220
		cmp r9, 0
		je ELSE_220
		mov r9, ProcBlocks_y
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_18
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, ProcBlocks_x
		mov rsi, r9
		mov rdi, ProcBlocks_x
		mov r8, r10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_220:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_238
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_238
		mov r11, 1
		jmp AND_END_239
	AND_ZERO_238:
		mov r11, 0
	AND_END_239:
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_232
		cmp r11, 0
		je ELSE_232
		mov r9, ProcBlocks_y
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_19
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, ProcBlocks_x
		mov rsi, r9
		mov rdi, ProcBlocks_x
		mov r8, r10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_232:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_250
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_250
		mov r11, 1
		jmp AND_END_251
	AND_ZERO_250:
		mov r11, 0
	AND_END_251:
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_244
		cmp r11, 0
		je ELSE_244
		mov r9, ProcBlocks_y
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_20
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, ProcBlocks_x
		mov rsi, r9
		mov rdi, ProcBlocks_x
		mov r8, r10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_244:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_262
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_262
		mov r11, 1
		jmp AND_END_263
	AND_ZERO_262:
		mov r11, 0
	AND_END_263:
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_256
		cmp r11, 0
		je ELSE_256
		mov r9, ProcBlocks_y
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_21
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, ProcBlocks_x
		mov rsi, r9
		mov rdi, ProcBlocks_x
		mov r8, r10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_256:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_274
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_274
		mov r11, 1
		jmp AND_END_275
	AND_ZERO_274:
		mov r11, 0
	AND_END_275:
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_268
		cmp r11, 0
		je ELSE_268
		mov r9, ProcBlocks_y
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_22
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, ProcBlocks_x
		mov rsi, r9
		mov rdi, ProcBlocks_x
		mov r8, r10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_268:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_286
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_286
		mov r11, 1
		jmp AND_END_287
	AND_ZERO_286:
		mov r11, 0
	AND_END_287:
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_280
		cmp r11, 0
		je ELSE_280
		mov r9, ProcBlocks_y
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_23
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, ProcBlocks_x
		mov rsi, r9
		mov rdi, ProcBlocks_x
		mov r8, r10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_y
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, r9
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_280:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_298
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_298
		mov r11, 1
		jmp AND_END_299
	AND_ZERO_298:
		mov r11, 0
	AND_END_299:
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_292
		cmp r11, 0
		je ELSE_292
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_x
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_24
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, ProcBlocks_y
		mov rdi, r10
		mov r8, ProcBlocks_y
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_292:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_310
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_310
		mov r11, 1
		jmp AND_END_311
	AND_ZERO_310:
		mov r11, 0
	AND_END_311:
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_304
		cmp r11, 0
		je ELSE_304
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_x
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_25
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, ProcBlocks_y
		mov rdi, r10
		mov r8, ProcBlocks_y
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_304:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_322
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_322
		mov r11, 1
		jmp AND_END_323
	AND_ZERO_322:
		mov r11, 0
	AND_END_323:
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_316
		cmp r11, 0
		je ELSE_316
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_x
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_26
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, ProcBlocks_y
		mov rdi, r10
		mov r8, ProcBlocks_y
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_316:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_334
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_334
		mov r11, 1
		jmp AND_END_335
	AND_ZERO_334:
		mov r11, 0
	AND_END_335:
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_328
		cmp r11, 0
		je ELSE_328
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_x
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_27
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, ProcBlocks_y
		mov rdi, r10
		mov r8, ProcBlocks_y
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_328:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_346
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_346
		mov r11, 1
		jmp AND_END_347
	AND_ZERO_346:
		mov r11, 0
	AND_END_347:
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_340
		cmp r11, 0
		je ELSE_340
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_x
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_28
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, ProcBlocks_y
		mov rdi, r10
		mov r8, ProcBlocks_y
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_340:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne AND_ZERO_358
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r11, rax
		cmp r11, 1
		jne AND_ZERO_358
		mov r11, 1
		jmp AND_END_359
	AND_ZERO_358:
		mov r11, 0
	AND_END_359:
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r10, rax
		cmp r10, 1
		jne ELSE_352
		cmp r11, 0
		je ELSE_352
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_x
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_29
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, ProcBlocks_y
		mov rdi, r10
		mov r8, ProcBlocks_y
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_352:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_366
		mov r10, 0
		jmp CMP_END_367
	CMP_TRUE_366:
		mov r10, 1
	CMP_END_367:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		add r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_370
		cmp r10, 0
		je AND_ZERO_370
		mov r11, 1
		jmp AND_END_371
	AND_ZERO_370:
		mov r11, 0
	AND_END_371:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_364
		cmp r11, 0
		je ELSE_364
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		add r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_30
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_364:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_378
		mov r10, 0
		jmp CMP_END_379
	CMP_TRUE_378:
		mov r10, 1
	CMP_END_379:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		add r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_382
		cmp r10, 0
		je AND_ZERO_382
		mov r11, 1
		jmp AND_END_383
	AND_ZERO_382:
		mov r11, 0
	AND_END_383:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_376
		cmp r11, 0
		je ELSE_376
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		add r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_31
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_376:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_390
		mov r10, 0
		jmp CMP_END_391
	CMP_TRUE_390:
		mov r10, 1
	CMP_END_391:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		add r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_394
		cmp r10, 0
		je AND_ZERO_394
		mov r11, 1
		jmp AND_END_395
	AND_ZERO_394:
		mov r11, 0
	AND_END_395:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_388
		cmp r11, 0
		je ELSE_388
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		add r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_32
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_388:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_402
		mov r10, 0
		jmp CMP_END_403
	CMP_TRUE_402:
		mov r10, 1
	CMP_END_403:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		add r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_406
		cmp r10, 0
		je AND_ZERO_406
		mov r11, 1
		jmp AND_END_407
	AND_ZERO_406:
		mov r11, 0
	AND_END_407:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_400
		cmp r11, 0
		je ELSE_400
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		add r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_33
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_400:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_414
		mov r10, 0
		jmp CMP_END_415
	CMP_TRUE_414:
		mov r10, 1
	CMP_END_415:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		add r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_418
		cmp r10, 0
		je AND_ZERO_418
		mov r11, 1
		jmp AND_END_419
	AND_ZERO_418:
		mov r11, 0
	AND_END_419:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_412
		cmp r11, 0
		je ELSE_412
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		add r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_34
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_412:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_426
		mov r10, 0
		jmp CMP_END_427
	CMP_TRUE_426:
		mov r10, 1
	CMP_END_427:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		add r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_430
		cmp r10, 0
		je AND_ZERO_430
		mov r11, 1
		jmp AND_END_431
	AND_ZERO_430:
		mov r11, 0
	AND_END_431:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_424
		cmp r11, 0
		je ELSE_424
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		add r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_35
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		add r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		add r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_424:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_438
		mov r10, 0
		jmp CMP_END_439
	CMP_TRUE_438:
		mov r10, 1
	CMP_END_439:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		sub r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_442
		cmp r10, 0
		je AND_ZERO_442
		mov r11, 1
		jmp AND_END_443
	AND_ZERO_442:
		mov r11, 0
	AND_END_443:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_436
		cmp r11, 0
		je ELSE_436
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		sub r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_36
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_436:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_450
		mov r10, 0
		jmp CMP_END_451
	CMP_TRUE_450:
		mov r10, 1
	CMP_END_451:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		sub r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_454
		cmp r10, 0
		je AND_ZERO_454
		mov r11, 1
		jmp AND_END_455
	AND_ZERO_454:
		mov r11, 0
	AND_END_455:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_448
		cmp r11, 0
		je ELSE_448
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		sub r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_37
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 4
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 3
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 2
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_448:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_462
		mov r10, 0
		jmp CMP_END_463
	CMP_TRUE_462:
		mov r10, 1
	CMP_END_463:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		sub r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_466
		cmp r10, 0
		je AND_ZERO_466
		mov r11, 1
		jmp AND_END_467
	AND_ZERO_466:
		mov r11, 0
	AND_END_467:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_460
		cmp r11, 0
		je ELSE_460
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		sub r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_38
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_460:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_474
		mov r10, 0
		jmp CMP_END_475
	CMP_TRUE_474:
		mov r10, 1
	CMP_END_475:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		sub r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_478
		cmp r10, 0
		je AND_ZERO_478
		mov r11, 1
		jmp AND_END_479
	AND_ZERO_478:
		mov r11, 0
	AND_END_479:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_472
		cmp r11, 0
		je ELSE_472
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		sub r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_39
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 7
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 6
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 5
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_472:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_486
		mov r10, 0
		jmp CMP_END_487
	CMP_TRUE_486:
		mov r10, 1
	CMP_END_487:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		sub r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_490
		cmp r10, 0
		je AND_ZERO_490
		mov r11, 1
		jmp AND_END_491
	AND_ZERO_490:
		mov r11, 0
	AND_END_491:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_484
		cmp r11, 0
		je ELSE_484
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		sub r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_40
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_484:
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		je CMP_TRUE_498
		mov r10, 0
		jmp CMP_END_499
	CMP_TRUE_498:
		mov r10, 1
	CMP_END_499:
		mov r9, ProcBlocks_x
		add r9, 1
		mov r11, ProcBlocks_y
		sub r11, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r10
		mov rbx, r9
		mov rcx, r11
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r10
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne AND_ZERO_502
		cmp r10, 0
		je AND_ZERO_502
		mov r11, 1
		jmp AND_END_503
	AND_ZERO_502:
		mov r11, 0
	AND_END_503:
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push r11
		mov rbx, r9
		mov rcx, r10
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call FUNC_CheckBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r11
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r12, rax
		cmp r12, 1
		jne ELSE_496
		cmp r11, 0
		je ELSE_496
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		mov r11, ProcBlocks_x
		add r11, 2
		mov r12, ProcBlocks_y
		sub r12, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov arg0, str_41
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, r9
		mov rsi, r10
		mov rdi, r11
		mov r8, r12
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_LogMatch
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_AddScore
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcBlocks_x
		mov rcx, ProcBlocks_y
		mov rdx, 10
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 1
		mov r10, ProcBlocks_y
		sub r10, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 9
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcBlocks_x
		add r9, 2
		mov r10, ProcBlocks_y
		sub r10, 2
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, r9
		mov rcx, r10
		mov rdx, 8
		push ProcBlocks_x
		push ProcBlocks_y
		call PROC_ClearBlock
		pop ProcBlocks_y
		pop ProcBlocks_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcBlocks, 1
		jmp FUNC_END_ProcBlocks
	ELSE_496:
	FOR_CONTINUE_219:
		add ProcBlocks_y, 1
		jmp FOR_217
	ENDFOR_218:
	FOR_CONTINUE_216:
		add ProcBlocks_x, 1
		jmp FOR_214
	ENDFOR_215:
	FUNC_END_ProcBlocks:
		mov rax, __funcret_ProcBlocks
		ret
	function FUNC_ProcMoveDown:
		mov __funcret_ProcMoveDown, 0
		mov ProcMoveDown_x, 0
	FOR_508:
		cmp ProcMoveDown_x, 19
		jg ENDFOR_509
		mov ProcMoveDown_y, 0
	FOR_511:
		cmp ProcMoveDown_y, 20
		jg ENDFOR_512
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call FUNC_GridGet
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		mov rbx, rax
		mov ProcMoveDown_b1, rbx
		mov rcx, ProcMoveDown_y
		add rcx, 1
		push rbx
		mov rbx, ProcMoveDown_x
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call FUNC_GridGet
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop rbx
		mov rdx, rax
		mov ProcMoveDown_b2, rdx
		cmp ProcMoveDown_b1, 0
		je AND_ZERO_520
		cmp ProcMoveDown_b1, 1
		je AND_ZERO_520
		mov r8, 1
		jmp AND_END_521
	AND_ZERO_520:
		mov r8, 0
	AND_END_521:
		mov r9, 0
		sub r9, 1
		cmp ProcMoveDown_b1, r9
		je AND_ZERO_524
		cmp r8, 0
		je AND_ZERO_524
		mov r9, 1
		jmp AND_END_525
	AND_ZERO_524:
		mov r9, 0
	AND_END_525:
		cmp ProcMoveDown_b2, 0
		jne ELSE_514
		cmp r9, 0
		je ELSE_514
		mov r9, ProcMoveDown_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, r9
		mov rdx, ProcMoveDown_b1
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSet
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcMoveDown_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, r9
		mov rdx, 0
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSetClear
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, ProcMoveDown_y
		add r9, 1
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, r9
		mov rdx, 0
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSetFlash
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		mov rdx, 0
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSet
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		mov rdx, 0
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSetClear
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		mov rdx, 0
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSetFlash
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov __funcret_ProcMoveDown, 1
		jmp FUNC_END_ProcMoveDown
	ELSE_514:
	FOR_CONTINUE_513:
		add ProcMoveDown_y, 1
		jmp FOR_511
	ENDFOR_512:
	FOR_CONTINUE_510:
		add ProcMoveDown_x, 1
		jmp FOR_508
	ENDFOR_509:
		mov ProcMoveDown_did_update, 0
		mov ProcMoveDown_x, 0
	FOR_530:
		cmp ProcMoveDown_x, 19
		jg ENDFOR_531
		mov ProcMoveDown_y, 0
	FOR_533:
		cmp ProcMoveDown_y, 21
		jg ENDFOR_534
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call FUNC_GridGet
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		cmp r9, 1
		jne ELSE_536
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call FUNC_GridIndex
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		mov r9, rax
		mov ProcMoveDown_idx, r9
		load r10, grid_clear, r9, 8
		add r10, 1
		mov ProcMoveDown_cv, r10
		cmp ProcMoveDown_idx, 0
		jl IDX_OOB_541
		cmp ProcMoveDown_idx, 439
		jg IDX_OOB_541
		jmp IDX_OK_540
	IDX_OOB_541:
		exit 1
	IDX_OK_540:
		mov r9, ProcMoveDown_idx
		store ProcMoveDown_cv, grid_clear, r9, 8
		mov r9, ProcMoveDown_idx
		load r10, grid_flash, r9, 8
		add r10, 1
		cmp ProcMoveDown_idx, 0
		jl IDX_OOB_543
		cmp ProcMoveDown_idx, 439
		jg IDX_OOB_543
		jmp IDX_OK_542
	IDX_OOB_543:
		exit 1
	IDX_OK_542:
		mov r9, ProcMoveDown_idx
		store r10, grid_flash, r9, 8
		cmp ProcMoveDown_cv, 50
		jle ELSE_544
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		mov rdx, 0
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSet
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		mov rdx, 0
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSetClear
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
		push rbx
		push rcx
		push rdx
		push rsi
		push rdi
		push r8
		mov rbx, ProcMoveDown_x
		mov rcx, ProcMoveDown_y
		mov rdx, 0
		push ProcMoveDown_x
		push ProcMoveDown_y
		push ProcMoveDown_b1
		push ProcMoveDown_b2
		push ProcMoveDown_idx
		push ProcMoveDown_cv
		push ProcMoveDown_did_update
		call PROC_GridSetFlash
		pop ProcMoveDown_did_update
		pop ProcMoveDown_cv
		pop ProcMoveDown_idx
		pop ProcMoveDown_b2
		pop ProcMoveDown_b1
		pop ProcMoveDown_y
		pop ProcMoveDown_x
		pop r8
		pop rdi
		pop rsi
		pop rdx
		pop rcx
		pop rbx
	ELSE_544:
		mov ProcMoveDown_did_update, 1
	ELSE_536:
	FOR_CONTINUE_535:
		add ProcMoveDown_y, 1
		jmp FOR_533
	ENDFOR_534:
	FOR_CONTINUE_532:
		add ProcMoveDown_x, 1
		jmp FOR_530
	ENDFOR_531:
		mov __funcret_ProcMoveDown, ProcMoveDown_did_update
	FUNC_END_ProcMoveDown:
		mov rax, __funcret_ProcMoveDown
		ret
	function FUNC_IsGameOver:
		mov __funcret_IsGameOver, game_over
	FUNC_END_IsGameOver:
		mov rax, __funcret_IsGameOver
		ret
	function FUNC_GetLevel:
		mov __funcret_GetLevel, game_level
	FUNC_END_GetLevel:
		mov rax, __funcret_GetLevel
		ret
	function FUNC_GetLines:
		mov __funcret_GetLines, game_lines
	FUNC_END_GetLines:
		mov rax, __funcret_GetLines
		ret
	}
}