Function at 0x486ac0
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 0x486af8
lea eax, [esp + 0x78]
push eax
call fcn.00486eb0
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x486b0d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb8
ret 0xc
movzx ecx, byte [ebx + 1]
test ecx, ecx
je 0x486b0d
mov esi, dword [esp + 0xd4]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
cmp ebp, dword [0x4fa358]
jbe 0x486b35
push 0x4cfc40
push 0
push str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
mov ecx, ebx
call fcn.0044e880
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
mov esi, dword [0x4fc588]
cmp ebp, esi
jbe 0x486bc9
mov eax, ebp
shr eax, 0xe
test ebp, 0x3fff
lea esi, [eax + 1]
cmove esi, eax
mov eax, dword [0x4fc58c]
shl esi, 0xe
test eax, eax
je 0x486b7c
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp dword [0x4fc588], 0x400000
jbe 0x486b7c
dec dword [0x4fc584]
lea eax, [esi + esi]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, eax
add esp, 4
mov dword [0x4fc58c], ecx
test ecx, ecx
jne 0x486bb9
push 0x4cfc40
push eax
push 0x4e3bcc
mov ecx, ebx
mov dword [0x4fc588], eax
call fcn.0044e880
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
cmp esi, 0x400000
jbe 0x486bcf
inc dword [0x4fc584]
jmp 0x486bcf
mov ecx, dword [0x4fc58c]
mov dl, byte [ebx + 1]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], esi
mov dword [0x4fc58c], 0
mov dword [0x4fc588], 0
test dl, dl
jne 0x486c05
mov dword [0x4fd218], 0
jmp 0x486dff
sub esi, ebp
xor edi, edi
mov dword [esp + 0x14], esi
mov dh, dl
test dl, dl
je 0x486da7
xor ebp, ebp
mov dword [esp + 0x1c], ebp
nop dword [eax]
add ebp, dword [ebx + 8]
cmp byte [ebp + 1], 0
je 0x486c7d
mov eax, dword [esp + 0x78]
mov ecx, ebx
mov dword [0x4fd218], eax
lea eax, [esp + 0x28]
push esi
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x24]
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.004839c0
xor esi, esi
mov dword [esp + edi*4 + 0x28], eax
mov dword [esp + 0x14], esi
test eax, eax
je 0x486ea9
mov ecx, dword [esp + 0x10]
jmp 0x486d8b
mov dl, byte [ebp]
cmp dl, 2
jne 0x486c92
mov dword [esp + edi*4 + 0x28], 0x4cfc40
jmp 0x486d8b
mov esi, dword [esp + edi*4 + 0x78]
test esi, esi
jne 0x486d03
movzx eax, dh
cmp edi, eax
jl 0x486cb2
mov eax, dword [ebp + 4]
lea edx, [esp + 0x28]
lea edx, [edx + edi*4]
mov dword [edx], eax
jmp 0x486d87
test dl, dl
jne 0x486cc6
mov eax, dword [ebp + 8]
test eax, eax
je 0x486ca1
cmp dword [eax], 0
je 0x486ca1
mov al, 1
jmp 0x486ccc
cmp dl, 1
sete al
lea edx, [esp + 0x28]
lea edx, [edx + edi*4]
test al, al
jne 0x486ce1
mov eax, dword [ebp + 4]
mov dword [edx], eax
jmp 0x486d87
push 0
push edi
mov dword [edx], ecx
push ecx
mov ecx, ebx
call fcn.00487100
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x486d87
xor ebx, ebx
jmp 0x486e2f
lea eax, [esp + 0x78]
mov ecx, ebx
push eax
push edi
push esi
call fcn.00487000
sub eax, 3
je 0x486d69
sub eax, 1
jne 0x486cfc
mov cl, byte [ebx]
lea eax, [ecx - 1]
cmp al, 6
ja 0x486d29
cmp edi, 1
je 0x486d3d
cmp cl, 0x17
ja 0x486d33
cmp cl, 0xf
jae 0x486d3d
cmp cl, 0x6e
je 0x486d3d
cmp cl, 0x70
jne 0x486d5d
mov al, byte [esi + 0x17]
test al, al
jne 0x486d4a
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x486d5d
mov ecx, dword [esp + 0x10]
mov eax, 0x4cfc40
mov dword [esp + edi*4 + 0x28], eax
jmp 0x486d87
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + edi*4 + 0x28], eax
jmp 0x486d87
mov eax, dword [esp + 0x10]
mov ecx, esi
push eax
mov dword [esp + edi*4 + 0x2c], eax
call fcn.004b5ff0
mov ecx, dword [esp + 0x10]
lea ecx, [ecx + eax*2]
add ecx, 2
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x14]
mov dh, byte [ebx + 1]
inc edi
mov ebp, dword [esp + 0x1c]
mov dl, dh
add ebp, 0x10
movzx eax, dh
mov dword [esp + 0x1c], ebp
cmp edi, eax
jl 0x486c20
xor esi, esi
test dh, dh
je 0x486dd5
nop dword [eax]
cmp dword [esp + esi*4 + 0x28], 0
jne 0x486dc8
mov ecx, dword [esp + esi*4 + 0x78]
push 0
push 1
call fcn.004016b0
mov dword [esp + esi*4 + 0x28], eax
mov dl, byte [ebx + 1]
inc esi
movzx eax, dl
cmp esi, eax
jl 0x486db0
mov dh, dl
movzx eax, dh
test dh, dh
je 0x486dff
shl eax, 2
lea esi, [esp + 0x78]
mov ecx, eax
mov edi, 0x4fd218
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
shr eax, 2
lea esi, [esp + 0x28]
mov ecx, eax
mov edi, 0x4fd268
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 + 0x4f95a5]
movzx eax, dl
cmp eax, ecx
jge 0x486e2f
lea edi, [eax*4 + 0x4fd268]
sub ecx, eax
mov eax, 0x4cfc40
rep stosd dword es:[edi], eax
cmp dword [esp + 0x18], 0
je 0x486e6d
mov eax, dword [0x4fc58c]
test eax, eax
je 0x486e5b
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp dword [0x4fc588], 0x400000
jbe 0x486e5b
dec dword [0x4fc584]
mov eax, dword [esp + 0x18]
mov dword [0x4fc58c], eax
mov eax, dword [esp + 0x20]
mov dword [0x4fc588], eax
cmp dword [0x4fc588], 0x400000
jbe 0x486e9a
push 0x45c530
push 0x2710
push 0xd
push dword [0x4fb9e8]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4fba96]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xb8
ret 0xc
mov ebx, dword [esp + 0x24]
jmp 0x486e2f