Function at 0x486240
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 0x486278
lea eax, [esp + 0x78]
push eax
call fcn.00486620
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x48628d
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 0x48628d
mov esi, dword [esp + 0xd4]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
cmp ebp, dword [0x51cbf0]
jbe 0x4862b5
push 0x4f03e8
push 0
push str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
mov ecx, ebx
call fcn.0044d9a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
mov esi, dword [0x51f678]
cmp ebp, esi
jbe 0x486347
mov eax, ebp
shr eax, 0xe
test ebp, 0x3fff
lea esi, [eax + 1]
cmove esi, eax
mov eax, dword [0x51f67c]
shl esi, 0xe
test eax, eax
je 0x4862fb
push eax
call fcn.004cfed0
add esp, 4
cmp dword [0x51f678], 0x400000
jbe 0x4862fb
dec dword [0x51f674]
lea eax, [esi + esi]
push eax
call fcn.004cfec5
mov ecx, eax
add esp, 4
mov dword [0x51f67c], ecx
test ecx, ecx
jne 0x486337
push 0x4f03e8
push eax
push 0x504378
mov ecx, ebx
mov dword [0x51f678], eax
call fcn.0044d9a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
cmp esi, 0x400000
jbe 0x48634d
inc dword [0x51f674]
jmp 0x48634d
mov ecx, dword [0x51f67c]
mov dl, byte [ebx + 1]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
mov dword [0x51f67c], 0
mov dword [0x51f678], 0
test dl, dl
jne 0x486383
mov dword [0x520308], 0
jmp 0x486563
mov esi, dword [esp + 0x1c]
xor edi, edi
sub esi, ebp
mov dh, dl
mov dword [esp + 0x14], esi
test dl, dl
je 0x48650c
xor ebp, ebp
mov dword [esp + 0x20], ebp
nop
add ebp, dword [ebx + 8]
cmp byte [ebp + 1], 0
je 0x4863fd
mov eax, dword [esp + 0x78]
mov ecx, ebx
mov dword [0x520308], eax
lea eax, [esp + 0x28]
push esi
push eax
lea eax, [esp + 0x24]
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.004831e0
xor esi, esi
mov dword [esp + edi*4 + 0x28], eax
mov dword [esp + 0x14], esi
test eax, eax
je 0x48660c
mov ecx, dword [esp + 0x10]
jmp 0x4864f0
mov dh, byte [ebp]
cmp dh, 2
jne 0x486412
mov dword [esp + edi*4 + 0x28], 0x4f03e8
jmp 0x4864f0
mov esi, dword [esp + edi*4 + 0x78]
test esi, esi
jne 0x486465
movzx eax, dl
cmp edi, eax
jge 0x486430
test dh, dh
jne 0x48643c
mov eax, dword [ebp + 8]
test eax, eax
je 0x486430
cmp dword [eax], esi
jne 0x486441
mov eax, dword [ebp + 4]
mov dword [esp + edi*4 + 0x28], eax
jmp 0x4864ec
cmp dh, 1
jne 0x486430
push 0
push edi
mov dword [esp + edi*4 + 0x30], ecx
push ecx
mov ecx, ebx
call fcn.004868a0
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4864ec
xor ebx, ebx
jmp 0x486593
lea eax, [esp + 0x78]
mov ecx, ebx
push eax
push edi
push esi
call fcn.004867a0
sub eax, 3
je 0x4864cb
sub eax, 1
jne 0x48645e
mov cl, byte [ebx]
lea eax, [ecx - 1]
cmp al, 6
ja 0x48648b
cmp edi, 1
je 0x48649f
cmp cl, 0x17
ja 0x486495
cmp cl, 0xf
jae 0x48649f
cmp cl, 0x6e
je 0x48649f
cmp cl, 0x70
jne 0x4864bf
mov al, byte [esi + 0x17]
test al, al
jne 0x4864ac
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x4864bf
mov ecx, dword [esp + 0x10]
mov eax, 0x4f03e8
mov dword [esp + edi*4 + 0x28], eax
jmp 0x4864ec
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + edi*4 + 0x28], eax
jmp 0x4864ec
mov eax, dword [esp + 0x10]
mov ecx, esi
push eax
mov dword [esp + edi*4 + 0x2c], eax
call fcn.004b42b0
mov ecx, dword [esp + 0x10]
lea eax, [eax*2 + 2]
add ecx, eax
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x14]
mov dl, byte [ebx + 1]
inc edi
mov ebp, dword [esp + 0x20]
mov dh, dl
add ebp, 0x10
movzx eax, dl
mov dword [esp + 0x20], ebp
cmp edi, eax
jl 0x4863a0
xor esi, esi
test dl, dl
je 0x486537
cmp dword [esp + esi*4 + 0x28], 0
jne 0x48652a
mov ecx, dword [esp + esi*4 + 0x78]
push 0
push 1
call fcn.00401630
mov dword [esp + esi*4 + 0x28], eax
mov dl, byte [ebx + 1]
inc esi
movzx eax, dl
mov dh, dl
cmp esi, eax
jl 0x486512
movzx eax, dl
test dl, dl
je 0x486563
shl eax, 2
lea esi, [esp + 0x78]
mov ecx, eax
mov edi, 0x520308
shr ecx, 2
mov dl, dh
rep movsd dword es:[edi], dword [esi]
shr eax, 2
lea esi, [esp + 0x28]
mov ecx, eax
mov edi, 0x520358
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 + 0x51be3d]
movzx eax, dl
cmp eax, ecx
jge 0x486593
lea edi, [eax*4 + 0x520358]
sub ecx, eax
mov eax, 0x4f03e8
rep stosd dword es:[edi], eax
cmp dword [esp + 0x18], 0
je 0x4865d0
mov eax, dword [0x51f67c]
test eax, eax
je 0x4865be
push eax
call fcn.004cfed0
add esp, 4
cmp dword [0x51f678], 0x400000
jbe 0x4865be
dec dword [0x51f674]
mov eax, dword [esp + 0x18]
mov dword [0x51f67c], eax
mov eax, dword [esp + 0x1c]
mov dword [0x51f678], eax
cmp dword [0x51f678], 0x400000
jbe 0x4865fd
push 0x45bfb0
push 0x2710
push 0xd
push dword [0x51ead8]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x51eb86]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xb8
ret 0xc
mov ebx, dword [esp + 0x24]
jmp 0x486593