Function at 0x4854c0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd80
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x27c], edx
mov dword [ebp - 0x280], edx
mov dword [ebp - 0x278], edx
mov dword [ebp - 0x274], edx
mov dword [ebp - 0x244], edx
mov dword [ebp - 0x248], edx
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x20], edx
mov esi, eax
lea edi, [ebp - 0x44]
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 0x485a90
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x44]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov word [ebp - 0x28], 0
mov word [ebp - 0x26], 0
mov eax, dword [0x48d6a0]
mov byte [eax], 0x2e
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
mov dword [ebp - 0x1c], 1
mov dl, 1
mov eax, dword [0x417a24]
call fcn.00403ce8
mov dword [ebp - 0x24], eax
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x448]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x485587
mov eax, dword [0x48d4c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4855b9
mov eax, dword [0x48d4c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x368]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4855b9
mov eax, dword [0x48d4c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x360]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4855bf
mov byte [ebp - 0x2d], 1
jmp 0x4855c3
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x28]
push 0x50
lea eax, [ebp - 0x239]
push eax
mov eax, dword [0x48d6ac]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_ReadConsoleOutputCharacterA
lea eax, [ebp - 0x240]
lea edx, [ebp - 0x239]
mov ecx, 0x1f5
call fcn.00404d54
mov edx, dword [ebp - 0x240]
mov eax, 0x485aa8
call fcn.004050e8
mov ebx, eax
dec ebx
cmp ebx, 0xffffffff
jg 0x485638
inc word [ebp - 0x26]
cmp word [ebp - 0x26], 0x14
jle 0x4855c3
mov word [ebp - 0x26], 0
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x44]
push eax
call sub.kernel32.dll_GetExitCodeProcess
cmp dword [ebp - 4], 2
jbe 0x485a5a
jmp 0x4855c3
cmp dword [ebp - 4], 2
jbe 0x485a49
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x28]
push 0x50
lea eax, [ebp - 0x239]
push eax
mov eax, dword [0x48d6ac]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_ReadConsoleOutputCharacterA
cmp byte [ebp + ebx - 0x239], 0x5b
jne 0x485a32
lea eax, [ebp - 0x20]
call fcn.00404ae4
lea eax, [ebx + 1]
mov edx, 0x41
sub edx, eax
mov dword [ebp - 0x18], edx
cmp byte [ebp - 0x2d], 0
je 0x48584b
lea eax, [ebp - 0x24c]
mov dl, byte [ebp + ebx - 0x240]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x24c]
lea eax, [ebp - 0x250]
call fcn.004033d4
lea eax, [ebp - 0x254]
mov dl, byte [ebp + ebx - 0x23f]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x250]
mov cl, 2
call fcn.004033a4
lea edx, [ebp - 0x250]
lea eax, [ebp - 0x258]
call fcn.004033d4
lea eax, [ebp - 0x254]
mov dl, byte [ebp + ebx - 0x23e]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x258]
mov cl, 3
call fcn.004033a4
lea edx, [ebp - 0x258]
lea eax, [ebp - 0x260]
call fcn.004033d4
lea eax, [ebp - 0x254]
mov dl, byte [ebp + ebx - 0x23d]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x260]
mov cl, 4
call fcn.004033a4
lea edx, [ebp - 0x260]
lea eax, [ebp - 0x268]
call fcn.004033d4
lea eax, [ebp - 0x254]
mov dl, byte [ebp + ebx - 0x23c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x268]
mov cl, 5
call fcn.004033a4
lea edx, [ebp - 0x268]
lea eax, [ebp - 0x270]
call fcn.004033d4
lea eax, [ebp - 0x254]
mov dl, byte [ebp + ebx - 0x23b]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x270]
mov cl, 6
call fcn.004033a4
lea edx, [ebp - 0x270]
lea eax, [ebp - 0x248]
call fcn.00404d48
mov eax, dword [ebp - 0x248]
lea edx, [ebp - 0x244]
call fcn.00408e68
mov edx, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x24]
mov al, 0x2f
call fcn.004826cc
lea ecx, [ebp - 0x274]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x274]
call fcn.004094ac
cmp eax, dword [ebp - 0x1c]
jne 0x485839
lea eax, [ebx + 1]
add eax, dword [ebp - 0xc]
cmp eax, 0x40
jg 0x485839
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
lea eax, [ebp + eax - 0x239]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x2a
jne 0x485839
inc dword [ebp - 0xc]
inc dword [ebp - 0x10]
inc dword [ebp - 8]
inc dword [ebp - 0x34]
cmp dword [ebp - 8], 0x41
jne 0x48581f
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jne 0x485875
inc dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x485875
lea eax, [ebx + 1]
add eax, dword [ebp - 0xc]
cmp eax, 0x40
jg 0x485875
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
lea esi, [ebp + eax - 0x239]
cmp byte [esi], 0x2a
jne 0x485875
inc dword [ebp - 0xc]
inc dword [ebp - 8]
inc esi
cmp dword [ebp - 8], 0x41
jne 0x485863
cmp byte [ebp - 0x2d], 0
je 0x4858c4
lea ecx, [ebp - 0x278]
mov edx, 1
mov eax, dword [ebp - 0x24]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x278]
call fcn.004094ac
imul dword [ebp - 0x18]
mov dword [ebp - 0x258], eax
fild dword [ebp - 0x258]
fild dword [ebp - 0x10]
fdivrp st(1)
fmul dword [0x485aac]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.0042cccc
mov dword [ebp - 0x14], eax
jmp 0x4858e1
fild dword [ebp - 0xc]
fild dword [ebp - 0x18]
fdivp st(1)
fmul dword [0x485aac]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.0042cccc
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x24c]
mov dl, byte [ebp - 0x1f4]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x24c]
lea eax, [ebp - 0x250]
call fcn.004033d4
lea eax, [ebp - 0x254]
mov dl, byte [ebp - 0x1f3]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x250]
mov cl, 2
call fcn.004033a4
lea edx, [ebp - 0x250]
lea eax, [ebp - 0x258]
call fcn.004033d4
lea eax, [ebp - 0x254]
mov dl, byte [ebp - 0x1f2]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x258]
mov cl, 3
call fcn.004033a4
lea edx, [ebp - 0x258]
lea eax, [ebp - 0x260]
call fcn.004033d4
lea eax, [ebp - 0x254]
mov dl, byte [ebp - 0x1f1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x254]
lea eax, [ebp - 0x260]
mov cl, 4
call fcn.004033a4
lea edx, [ebp - 0x260]
lea eax, [ebp - 0x20]
call fcn.00404d48
mov eax, dword [ebp - 0x20]
call fcn.0040aaa4
call fcn.00402f88
mov edx, eax
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x410]
call fcn.00480d88
mov eax, dword [0x48d328]
mov eax, dword [eax]
mov eax, dword [eax + 0x40c]
mov edx, dword [ebp - 0x14]
call fcn.00480d88
push 0x485ab8
lea edx, [ebp - 0x280]
mov eax, dword [ebp - 0x14]
call fcn.00409370
push dword [ebp - 0x280]
push 0x485ad0
lea eax, [ebp - 0x27c]
mov edx, 3
call fcn.00404e64
mov edx, dword [ebp - 0x27c]
mov eax, dword [0x48d53c]
mov eax, dword [eax]
call fcn.0047e2d8
push 0x32
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x48d53c]
mov eax, dword [eax]
call fcn.0047e5cc
cmp dword [ebp - 0x14], 0x64
jge 0x485a5a
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x44]
push eax
call sub.kernel32.dll_GetExitCodeProcess
cmp dword [ebp - 4], 2
ja 0x485642
mov eax, dword [0x48d53c]
mov eax, dword [eax]
mov edx, 0x485adc
call fcn.0047e2d8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x485a97
lea eax, [ebp - 0x280]
mov edx, 4
call fcn.00404b08
lea eax, [ebp - 0x248]
mov edx, 3
call fcn.00404b08
lea eax, [ebp - 0x20]
call fcn.00404ae4
ret