Function at 0x457640
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 0x457678
lea eax, [esp + 0x78]
push eax
call fcn.004579f0
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x45768d
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 0x45768d
mov esi, dword [esp + 0xd4]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
cmp ebp, dword [0x4ab364]
jbe 0x4576b5
push 0x49bc4d
push 0
push str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
mov ecx, ebx
call fcn.0042cbc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
mov esi, dword [0x4adbcc]
cmp ebp, esi
jbe 0x45773b
mov edi, ebp
shr edi, 0xe
test ebp, 0x3fff
je 0x4576cd
inc edi
mov eax, dword [0x4adbd0]
shl edi, 0xe
test eax, eax
je 0x4576f0
push eax
call fcn.004843d4
add esp, 4
cmp esi, 0x400000
jbe 0x4576f0
dec dword [0x4adbc8]
push edi
call fcn.00484535
mov esi, eax
add esp, 4
mov dword [0x4adbd0], esi
test esi, esi
jne 0x457729
push 0x49bc4d
push eax
push str.Out_of_memory.
mov ecx, ebx
mov dword [0x4adbcc], eax
call fcn.0042cbc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
mov eax, edi
cmp edi, 0x400000
jbe 0x457746
inc dword [0x4adbc8]
jmp 0x457746
mov esi, dword [0x4adbd0]
mov eax, dword [0x4adbcc]
mov dl, byte [ebx + 1]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
mov dword [0x4adbd0], 0
mov dword [0x4adbcc], 0
test dl, dl
jne 0x45777c
mov dword [0x4ae860], 0
jmp 0x45793e
mov eax, dword [esp + 0x18]
xor edi, edi
sub eax, ebp
movzx edx, dl
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x4578e7
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 0x457804
push dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
mov ecx, ebx
mov dword [0x4ae860], 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.00454fa0
mov dword [esp + edi*4 + 0x28], eax
mov dword [esp + 0x1c], 0
test eax, eax
je 0x4579e7
mov esi, dword [esp + 0x10]
jmp 0x4578cf
cmp byte [ecx], 2
jne 0x457816
mov dword [esp + edi*4 + 0x28], 0x49bc4d
jmp 0x4578cf
mov ebp, dword [esp + edi*4 + 0x78]
test ebp, ebp
jne 0x45786b
cmp edi, edx
jge 0x457862
mov al, byte [ecx]
test al, al
jne 0x457839
mov eax, dword [ecx + 8]
test eax, eax
je 0x457833
cmp dword [eax], ebp
jne 0x457842
cmp byte [ecx + 1], 0
jmp 0x457840
cmp al, 1
sete al
test al, al
je 0x457862
push 0
push edi
push esi
mov ecx, ebx
mov dword [esp + edi*4 + 0x34], esi
call fcn.00457c80
mov esi, eax
mov dword [esp + 0x10], esi
test esi, esi
jne 0x4578cf
xor ebx, ebx
jmp 0x45796e
mov eax, dword [ecx + 4]
mov dword [esp + edi*4 + 0x28], eax
jmp 0x4578cf
lea eax, [esp + 0x78]
mov ecx, ebx
push eax
push edi
push ebp
call fcn.00457b50
sub eax, 3
je 0x4578bc
dec eax
jne 0x45785b
mov al, byte [ebx]
cmp al, 7
ja 0x457890
cmp al, 1
jb 0x457890
cmp edi, 1
je 0x457898
cmp al, 0x17
ja 0x4578b4
cmp al, 0xf
jb 0x4578b4
mov al, byte [ebp + 0x17]
test al, al
jne 0x4578a5
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x4578b4
mov eax, 0x49bc4d
mov dword [esp + edi*4 + 0x28], eax
jmp 0x4578cf
xor eax, eax
mov dword [esp + edi*4 + 0x28], eax
jmp 0x4578cf
push esi
mov ecx, ebp
mov dword [esp + edi*4 + 0x2c], esi
call fcn.00474870
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 0x4577a0
xor esi, esi
cmp byte [ebx + 1], 0
jbe 0x457911
nop
cmp dword [esp + esi*4 + 0x28], 0
jne 0x457908
mov ecx, dword [esp + esi*4 + 0x78]
push 0
push 1
call fcn.00401490
mov dword [esp + esi*4 + 0x28], eax
movzx eax, byte [ebx + 1]
inc esi
cmp esi, eax
jl 0x4578f0
mov dl, byte [ebx + 1]
movzx eax, dl
test eax, eax
jle 0x45793e
shl eax, 2
lea esi, [esp + 0x78]
mov ecx, eax
mov edi, 0x4ae860
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
shr eax, 2
lea esi, [esp + 0x28]
mov ecx, eax
mov edi, 0x4ae8b0
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 + 0x4aa705]
movzx eax, dl
cmp eax, ecx
jge 0x45796e
lea edi, [eax*4 + 0x4ae8b0]
sub ecx, eax
mov eax, 0x49bc4d
rep stosd dword es:[edi], eax
cmp dword [esp + 0x14], 0
je 0x4579ab
mov eax, dword [0x4adbd0]
test eax, eax
je 0x457999
push eax
call fcn.004843d4
add esp, 4
cmp dword [0x4adbcc], 0x400000
jbe 0x457999
dec dword [0x4adbc8]
mov eax, dword [esp + 0x14]
mov dword [0x4adbd0], eax
mov eax, dword [esp + 0x18]
mov dword [0x4adbcc], eax
cmp dword [0x4adbcc], 0x400000
jbe 0x4579d8
push 0x439290
push 0x2710
push 0xd
push dword [0x4ad0e0]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4ad9cd]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xb8
ret 0xc
mov ebx, dword [esp + 0x24]
jmp 0x45796e