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
}
}