Function at 0x458b20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb8
push ebx
push ebp
mov ebp, dword [esp + 0xc8]
mov ebx, ecx
push esi
push edi
cmp ebp, 0xffffffff
jne 0x458b58
lea eax, [esp + 0x78]
push eax
call fcn.00458ed0
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x458b6d
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
movzx ecx, byte [ebx + 1]
test ecx, ecx
jle 0x458b6d
mov esi, dword [esp + 0xd4]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
cmp ebp, dword [0x4ad364]
jbe 0x458b95
push 0x49e065
push 0
push str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
mov ecx, ebx
call fcn.0042e0a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
mov esi, dword [0x4afbac]
cmp ebp, esi
jbe 0x458c1b
mov edi, ebp
shr edi, 0xe
test ebp, 0x3fff
je 0x458bad
inc edi
mov eax, dword [0x4afbb0]
shl edi, 0xe
test eax, eax
je 0x458bd0
push eax
call fcn.004858b4
add esp, 4
cmp esi, 0x400000
jbe 0x458bd0
dec dword [0x4afba8]
push edi
call fcn.00485a15
mov esi, eax
add esp, 4
mov dword [0x4afbb0], esi
test esi, esi
jne 0x458c09
push 0x49e065
push eax
push str.Out_of_memory.
mov ecx, ebx
mov dword [0x4afbac], eax
call fcn.0042e0a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
mov eax, edi
cmp edi, 0x400000
jbe 0x458c26
inc dword [0x4afba8]
jmp 0x458c26
mov esi, dword [0x4afbb0]
mov eax, dword [0x4afbac]
mov dl, byte [ebx + 1]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
mov dword [0x4afbb0], 0
mov dword [0x4afbac], 0
test dl, dl
jne 0x458c5c
mov dword [0x4b0840], 0
jmp 0x458e1e
mov eax, dword [esp + 0x18]
xor edi, edi
sub eax, ebp
movzx edx, dl
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x458dc7
xor ecx, ecx
mov dword [esp + 0x20], ecx
lea esp, [esp]
mov eax, dword [ebx + 8]
add ecx, eax
cmp byte [ecx + 1], 0
je 0x458ce4
push dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
mov ecx, ebx
mov dword [0x4b0840], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
xor eax, eax
cmp byte [ebx], 0x67
cmove eax, dword [esp + 0xe0]
push eax
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00456480
mov dword [esp + edi*4 + 0x28], eax
mov dword [esp + 0x1c], 0
test eax, eax
je 0x458ec7
mov esi, dword [esp + 0x10]
jmp 0x458daf
cmp byte [ecx], 2
jne 0x458cf6
mov dword [esp + edi*4 + 0x28], 0x49e065
jmp 0x458daf
mov ebp, dword [esp + edi*4 + 0x78]
test ebp, ebp
jne 0x458d4b
cmp edi, edx
jge 0x458d42
mov al, byte [ecx]
test al, al
jne 0x458d19
mov eax, dword [ecx + 8]
test eax, eax
je 0x458d13
cmp dword [eax], ebp
jne 0x458d22
cmp byte [ecx + 1], 0
jmp 0x458d20
cmp al, 1
sete al
test al, al
je 0x458d42
push 0
push edi
push esi
mov ecx, ebx
mov dword [esp + edi*4 + 0x34], esi
call fcn.00459160
mov esi, eax
mov dword [esp + 0x10], esi
test esi, esi
jne 0x458daf
xor ebx, ebx
jmp 0x458e4e
mov eax, dword [ecx + 4]
mov dword [esp + edi*4 + 0x28], eax
jmp 0x458daf
lea eax, [esp + 0x78]
mov ecx, ebx
push eax
push edi
push ebp
call fcn.00459030
sub eax, 3
je 0x458d9c
dec eax
jne 0x458d3b
mov al, byte [ebx]
cmp al, 7
ja 0x458d70
cmp al, 1
jb 0x458d70
cmp edi, 1
je 0x458d78
cmp al, 0x17
ja 0x458d94
cmp al, 0xf
jb 0x458d94
mov al, byte [ebp + 0x17]
test al, al
jne 0x458d85
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x458d94
mov eax, 0x49e065
mov dword [esp + edi*4 + 0x28], eax
jmp 0x458daf
xor eax, eax
mov dword [esp + edi*4 + 0x28], eax
jmp 0x458daf
push esi
mov ecx, ebp
mov dword [esp + edi*4 + 0x2c], esi
call fcn.00475d50
inc esi
add esi, eax
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x20]
inc edi
movzx edx, byte [ebx + 1]
add ecx, 0x10
mov dword [esp + 0x20], ecx
cmp edi, edx
jl 0x458c80
xor esi, esi
cmp byte [ebx + 1], 0
jbe 0x458df1
nop
cmp dword [esp + esi*4 + 0x28], 0
jne 0x458de8
mov ecx, dword [esp + esi*4 + 0x78]
push 0
push 1
call fcn.004024d0
mov dword [esp + esi*4 + 0x28], eax
movzx eax, byte [ebx + 1]
inc esi
cmp esi, eax
jl 0x458dd0
mov dl, byte [ebx + 1]
movzx eax, dl
test eax, eax
jle 0x458e1e
shl eax, 2
lea esi, [esp + 0x78]
mov ecx, eax
mov edi, 0x4b0840
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
shr eax, 2
lea esi, [esp + 0x28]
mov ecx, eax
mov edi, 0x4b08a0
rep movsd dword es:[edi], dword [esi]
movzx ecx, byte [ebx]
mov ebx, 1
lea eax, [ecx*8]
sub eax, ecx
movsx ecx, byte [eax*2 + 0x4ac705]
movzx eax, dl
cmp eax, ecx
jge 0x458e4e
lea edi, [eax*4 + 0x4b08a0]
sub ecx, eax
mov eax, 0x49e065
rep stosd dword es:[edi], eax
cmp dword [esp + 0x14], 0
je 0x458e8b
mov eax, dword [0x4afbb0]
test eax, eax
je 0x458e79
push eax
call fcn.004858b4
add esp, 4
cmp dword [0x4afbac], 0x400000
jbe 0x458e79
dec dword [0x4afba8]
mov eax, dword [esp + 0x14]
mov dword [0x4afbb0], eax
mov eax, dword [esp + 0x18]
mov dword [0x4afbac], eax
cmp dword [0x4afbac], 0x400000
jbe 0x458eb8
push 0x43a770
push 0x2710
push 0xd
push dword [0x4af0ac]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4af999]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xb8
ret 0xc
mov ebx, dword [esp + 0x24]
jmp 0x458e4e