Function at 0x485564
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd8c
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x270], edx
mov dword [ebp - 0x274], edx
mov dword [ebp - 0x26c], edx
mov dword [ebp - 0x268], edx
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x234], edx
mov dword [ebp - 0x18], edx
mov esi, eax
lea edi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
push ebp
push 0x485b13
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov word [ebp - 0x20], 0
mov word [ebp - 0x1e], 0
mov eax, dword [0x48e6a0]
mov byte [eax], 0x2e
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0xc], eax
xor ebx, ebx
mov dword [ebp - 0x14], 1
mov dl, 1
mov eax, dword [0x417a44]
call fcn.00403ce8
mov dword [ebp - 0x1c], eax
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x448]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x48562b
mov eax, dword [0x48e4c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x48565d
mov eax, dword [0x48e4c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x368]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x48565d
mov eax, dword [0x48e4c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x485663
mov byte [ebp - 0x25], 1
jmp 0x485667
mov byte [ebp - 0x25], 0
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x20]
push 0x50
lea eax, [ebp - 0x22d]
push eax
mov eax, dword [0x48e6ac]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_ReadConsoleOutputCharacterA
lea eax, [ebp - 0x234]
lea edx, [ebp - 0x22d]
mov ecx, 0x1f5
call fcn.00404d74
mov edx, dword [ebp - 0x234]
mov eax, 0x485b2c
call fcn.00405108
mov ebx, eax
dec ebx
cmp ebx, 0xffffffff
jg 0x4856dc
inc word [ebp - 0x1e]
cmp word [ebp - 0x1e], 0x14
jle 0x485667
mov word [ebp - 0x1e], 0
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll_GetExitCodeProcess
cmp dword [ebp - 4], 2
jbe 0x485add
jmp 0x485667
cmp dword [ebp - 4], 2
jbe 0x485acc
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x20]
push 0x50
lea eax, [ebp - 0x22d]
push eax
mov eax, dword [0x48e6ac]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_ReadConsoleOutputCharacterA
cmp byte [ebp + ebx - 0x22d], 0x5b
jne 0x485ab5
lea eax, [ebp - 0x18]
call fcn.00404b04
lea esi, [ebx + 1]
mov eax, 0x41
sub eax, esi
mov dword [ebp - 0x10], eax
cmp byte [ebp - 0x25], 0
je 0x4858dd
lea eax, [ebp - 0x240]
mov dl, byte [ebp + ebx - 0x234]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x240]
lea eax, [ebp - 0x244]
call fcn.004033d4
lea eax, [ebp - 0x248]
mov dl, byte [ebp + ebx - 0x233]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x248]
lea eax, [ebp - 0x244]
mov cl, 2
call fcn.004033a4
lea edx, [ebp - 0x244]
lea eax, [ebp - 0x24c]
call fcn.004033d4
lea eax, [ebp - 0x248]
mov dl, byte [ebp + ebx - 0x232]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x248]
lea eax, [ebp - 0x24c]
mov cl, 3
call fcn.004033a4
lea edx, [ebp - 0x24c]
lea eax, [ebp - 0x254]
call fcn.004033d4
lea eax, [ebp - 0x248]
mov dl, byte [ebp + ebx - 0x231]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x248]
lea eax, [ebp - 0x254]
mov cl, 4
call fcn.004033a4
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x25c]
call fcn.004033d4
lea eax, [ebp - 0x248]
mov dl, byte [ebp + ebx - 0x230]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x248]
lea eax, [ebp - 0x25c]
mov cl, 5
call fcn.004033a4
lea edx, [ebp - 0x25c]
lea eax, [ebp - 0x264]
call fcn.004033d4
lea eax, [ebp - 0x248]
mov dl, byte [ebp + ebx - 0x22f]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x248]
lea eax, [ebp - 0x264]
mov cl, 6
call fcn.004033a4
lea edx, [ebp - 0x264]
lea eax, [ebp - 0x23c]
call fcn.00404d68
mov eax, dword [ebp - 0x23c]
lea edx, [ebp - 0x238]
call fcn.00408e88
mov edx, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x1c]
mov al, 0x2f
call fcn.004826ec
lea ecx, [ebp - 0x268]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x268]
call fcn.004094cc
cmp eax, dword [ebp - 0x14]
jne 0x4858cb
mov edx, esi
add edx, dword [ebp - 8]
cmp edx, 0x40
jg 0x4858cb
lea eax, [ebp + edx - 0x22d]
cmp byte [eax], 0x2a
jne 0x4858cb
inc dword [ebp - 8]
inc dword [ebp - 0xc]
inc edx
inc eax
cmp edx, 0x41
jne 0x4858b9
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x10]
jne 0x4858fd
inc dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x4858fd
mov edx, esi
add edx, dword [ebp - 8]
cmp edx, 0x40
jg 0x4858fd
lea eax, [ebp + edx - 0x22d]
cmp byte [eax], 0x2a
jne 0x4858fd
inc dword [ebp - 8]
inc edx
inc eax
cmp edx, 0x41
jne 0x4858ee
cmp byte [ebp - 0x25], 0
je 0x48594b
lea ecx, [ebp - 0x26c]
mov edx, 1
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x26c]
call fcn.004094cc
imul dword [ebp - 0x10]
mov dword [ebp - 0x24c], eax
fild dword [ebp - 0x24c]
fild dword [ebp - 0xc]
fdivrp st(1)
fmul dword [0x485b30]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.0042ccec
mov esi, eax
jmp 0x485967
fild dword [ebp - 8]
fild dword [ebp - 0x10]
fdivp st(1)
fmul dword [0x485b30]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.0042ccec
mov esi, eax
lea eax, [ebp - 0x240]
mov dl, byte [ebp - 0x1e8]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x240]
lea eax, [ebp - 0x244]
call fcn.004033d4
lea eax, [ebp - 0x248]
mov dl, byte [ebp - 0x1e7]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x248]
lea eax, [ebp - 0x244]
mov cl, 2
call fcn.004033a4
lea edx, [ebp - 0x244]
lea eax, [ebp - 0x24c]
call fcn.004033d4
lea eax, [ebp - 0x248]
mov dl, byte [ebp - 0x1e6]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x248]
lea eax, [ebp - 0x24c]
mov cl, 3
call fcn.004033a4
lea edx, [ebp - 0x24c]
lea eax, [ebp - 0x254]
call fcn.004033d4
lea eax, [ebp - 0x248]
mov dl, byte [ebp - 0x1e5]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x248]
lea eax, [ebp - 0x254]
mov cl, 4
call fcn.004033a4
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x18]
call fcn.00404d68
mov eax, dword [ebp - 0x18]
call fcn.0040aac4
call fcn.00402f88
mov edx, eax
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x410]
call fcn.00480da8
mov eax, dword [0x48e328]
mov eax, dword [eax]
mov eax, dword [eax + 0x40c]
mov edx, esi
call fcn.00480da8
push 0x485b3c
lea edx, [ebp - 0x274]
mov eax, esi
call fcn.00409390
push dword [ebp - 0x274]
push 0x485b54
lea eax, [ebp - 0x270]
mov edx, 3
call fcn.00404e84
mov edx, dword [ebp - 0x270]
mov eax, dword [0x48e53c]
mov eax, dword [eax]
call fcn.0047e2f8
push 0x32
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x48e53c]
mov eax, dword [eax]
call fcn.0047e5ec
cmp esi, 0x64
jge 0x485add
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll_GetExitCodeProcess
cmp dword [ebp - 4], 2
ja 0x4856e6
mov eax, dword [0x48e53c]
mov eax, dword [eax]
mov edx, 0x485b60
call fcn.0047e2f8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x485b1a
lea eax, [ebp - 0x274]
mov edx, 4
call fcn.00404b28
lea eax, [ebp - 0x23c]
mov edx, 3
call fcn.00404b28
lea eax, [ebp - 0x18]
call fcn.00404b04
ret