Function at 0x4360c0
Capabilities:
Manipulate console buffer

Disassembly:
sub esp, 0x1c
push ebp
mov ebp, ecx
push esi
push edi
cmp dword [ebp], 0xffffffff
je 0x436547
push ebx
call fcn.0078de05
test eax, eax
je 0x43641e
call fcn.0078dce0
mov bl, al
test bl, bl
je 0x4360f5
movsx eax, bl
cmp eax, 0xe0
jne 0x4360fc
call fcn.0078dce0
mov bl, al
mov al, byte [0x81c644]
test al, al
jne 0x436116
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x43612a
sub eax, ecx
jmp 0x436132
mov ecx, dword [0x83f454]
add eax, ecx
movsx ecx, bl
mov dword [ebp + 0xc], eax
mov eax, ecx
sub eax, 8
je 0x436362
dec eax
je 0x436210
sub eax, 0x12
mov al, byte [ebp + 0x115]
je 0x436198
test al, al
je 0x436166
push ecx
mov ecx, ebp
call fcn.00436a50
jmp 0x43638c
cmp bl, 0x20
je 0x43617c
push ecx
call fcn.0078d392
add esp, 4
test eax, eax
je 0x43638c
mov edx, dword [ebp + 0x10]
mov byte [edx + 0x7f7dec], bl
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp + 0x10], eax
mov byte [0x81e648], 0
jmp 0x43638c
test al, al
je 0x4361e8
push 0x7f6724
call fcn.0042d140
add esp, 4
mov byte [ebp + 0x115], 0
push str._n_n_n_n
push ebp
call fcn.00435b00
add esp, 8
push str._n_n_n_n
push ebp
call fcn.00435b00
add esp, 8
push str._n_n_n_n
push ebp
call fcn.00435b00
add esp, 8
push str._n_n_n_n
push ebp
call fcn.00435b00
add esp, 8
push str._r_______________________________________________________________________________r_
push ebp
call fcn.00435e60
mov dword [ebp + 0x10], 1
add esp, 8
mov byte [0x7f7dec], 0x3e
mov byte [0x7f7ded], 0
jmp 0x43638c
mov eax, dword [ebp + 0x10]
mov edi, 0x81e648
or ecx, 0xffffffff
mov byte [eax + 0x7f7dec], 0
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x43624e
mov edi, 0x7f7ded
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x81e348
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x100
push 0x81e748
push 0x81e548
push 0x81e648
push 0x81e348
call fcn.00428990
mov edi, 0x81e548
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x81e648
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
push str._r_n
push ebp
mov esi, eax
call fcn.00435e60
add esp, 8
push str._r_n
push ebp
call fcn.00435e60
mov edi, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
add esp, 8
test esi, esi
je 0x4362e5
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 4]
mov dword [esp + 0x10], eax
mov word [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
push ecx
push edx
call edi
push 0x81e748
push str._r_n_s_r
push ebp
call fcn.00435e60
add esp, 0xc
test esi, esi
je 0x436316
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 4]
mov dword [esp + 0x10], eax
mov word [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
push ecx
push edx
call edi
push 0x81e548
push str._r_______________________________________________________________________________r__s
push ebp
call fcn.00435e60
mov edi, 0x81e548
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x7f7ded
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x7f7dec
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp + 0x10], ecx
jmp 0x43638c
mov eax, dword [ebp + 0x10]
cmp eax, 1
jle 0x43637c
dec eax
push 0x7f8008
mov dword [ebp + 0x10], eax
mov byte [0x81e648], 0
jmp 0x436383
jne 0x43638c
push 0x7f8004
push ebp
call fcn.00435e60
add esp, 8
mov eax, dword [ebp + 0x10]
cmp eax, 1
jle 0x436399
cmp bl, 0xd
je 0x4363a0
cmp eax, 0xc8
jle 0x43641e
push str._r_n_______________________________________________________________________________r_
push ebp
mov byte [eax + 0x7f7dec], 0
call fcn.00435e60
push 0x7f7ded
call fcn.004287e0
add esp, 0xc
push 0x7f7fac
push ebp
call fcn.00435e60
add esp, 8
mov dword [ebp + 0x10], 1
mov byte [0x7f7dec], 0x3e
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x43641e
mov al, byte [0x82023c]
mov ecx, dword [esp + 0x18]
test al, al
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
push ecx
push 0x190
jne 0x436412
push 0x1b
jmp 0x436414
push 0x70
mov edx, dword [ebp + 4]
push edx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
mov eax, dword [0x7f7ef0]
pop ebx
dec eax
test eax, eax
mov dword [0x7f7ef0], eax
jg 0x436547
mov al, byte [0x81c644]
mov dword [0x7f7ef0], 0x64
test al, al
jne 0x436456
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x43646c
sub eax, ecx
mov esi, eax
jmp 0x436475
mov ecx, dword [0x83f454]
lea esi, [ecx + eax]
mov eax, dword [0x81e848]
cmp esi, eax
jae 0x436485
mov eax, esi
mov dword [0x81e848], eax
cmp dword [ebp + 0x10], 1
jne 0x436547
mov edi, dword [ebp + 0xc]
mov edx, esi
sub edx, edi
cmp edx, 0x7530
jbe 0x436547
mov ecx, esi
sub ecx, eax
cmp ecx, 0xea60
jbe 0x436547
mov eax, dword [0x820d9c]
test eax, eax
je 0x436547
mov eax, dword [eax + 0x554]
mov ecx, dword [0x7f7eec]
cmp eax, ecx
je 0x436547
push str.game_info
mov dword [0x7f7eec], eax
call fcn.004287e0
add esp, 4
push 0x7f8004
push ebp
call fcn.00435e60
add esp, 8
mov dword [0x81e848], esi
mov eax, dword [ebp + 4]
lea edx, [esp + 0x10]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x436547
mov al, byte [0x82023c]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], 0
push ecx
push edx
test al, al
push 0x190
jne 0x43653b
mov eax, dword [ebp + 4]
push 0x1b
push eax
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
pop edi
pop esi
pop ebp
add esp, 0x1c
ret
mov eax, dword [ebp + 4]
push 0x70
push eax
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
pop edi
pop esi
pop ebp
add esp, 0x1c
ret