Function at 0x140001560
Capabilities:
Manipulate console buffer

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
call fcn.140001070
xor esi, esi
lea rdi, [0x140023cd0]
nop dword [rax]
call fcn.140001380
mov r9d, dword [0x140023e68]
test r9d, r9d
je 0x140001789
cmp r9d, 0x18
je 0x140001789
mov r10d, dword [0x140023cd8]
test r10d, r10d
je 0x140001789
cmp r10d, 0x4e
je 0x140001789
mov r11d, dword [0x140023cd4]
mov dword [0x140023cb4], 1
cmp r11d, 1
jle 0x140001612
mov eax, 1
mov edx, eax
mov ecx, eax
mov r8d, eax
nop dword [rax]
cdqe
cmp dword [rdi + rax*4 + 8], r10d
jne 0x1400015fd
movsxd rax, ecx
mov edx, r8d
cmp dword [rdi + rax*4 + 0x198], r9d
je 0x140001789
lea eax, [rdx + 1]
mov dword [0x140023cb4], eax
mov ecx, eax
mov edx, eax
mov r8d, eax
cmp eax, r11d
jl 0x1400015e0
cmp r10d, dword [0x140023cc0]
jne 0x140001778
cmp r9d, dword [0x140023cc4]
jne 0x140001778
nop dword [rax]
xor ecx, ecx
call fcn.140008324
mov rcx, rax
call fcn.140005724
call fcn.1400056f8
mov r8d, eax
mov eax, 0xdd67c8a7
imul r8d
add edx, r8d
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x4a
sub r8d, ecx
add r8d, 2
mov dword [0x140023cc0], r8d
call fcn.1400056f8
mov ebx, dword [0x140023cd4]
mov r11d, eax
mov eax, 0x2e8ba2e9
mov dword [0x140023cb4], esi
imul r11d
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x16
mov edx, dword [0x140023cc0]
sub r11d, ecx
inc r11d
mov dword [0x140023cc4], r11d
test ebx, ebx
jle 0x1400016f4
mov eax, esi
mov r9d, esi
mov r10d, esi
mov r8d, esi
nop dword [rax + rax]
movsxd rcx, eax
cmp dword [rdi + rcx*4 + 8], edx
jne 0x1400016dd
movsxd rax, r8d
mov r9d, r10d
cmp dword [rdi + rax*4 + 0x198], r11d
je 0x140001630
lea eax, [r9 + 1]
mov dword [0x140023cb4], eax
mov r8d, eax
mov r9d, eax
mov r10d, eax
cmp eax, ebx
jl 0x1400016c0
and edx, 0x80000001
jge 0x140001703
dec edx
or edx, 0xfffffffe
inc edx
test edx, edx
jne 0x140001630
movzx eax, word [0x140023cc0]
mov ecx, 0xfffffff5
mov word [rsp + 0x30], ax
movzx eax, word [0x140023cc4]
mov word [rsp + 0x32], ax
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edx, dword [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
lea rcx, [0x14001f7e4]
call fcn.140001010
mov ecx, dword [0x140023cd0]
inc dword [0x140023cd4]
sub ecx, 5
add dword [0x140023cb0], 0xa
mov dword [0x140023cd0], ecx
mov dword [0x140023cb8], 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140001580
mov ecx, dword [0x140023cd0]
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140001580
mov ecx, 0xfffffff5
mov dword [rsp + 0x30], 0xc0027
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edx, dword [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
lea rcx, str.Game_Over__n
call fcn.140001010
mov ecx, 0xfffffff5
mov dword [rsp + 0x30], 0xd0027
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edx, dword [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov edx, dword [0x140023cb0]
lea rcx, [0x14001f800]
call fcn.140001010
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rbx, qword [rsp + 0x38]
xor eax, eax
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret