Function at 0x45ec60
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 0x45ec98
lea eax, [esp + 0x78]
push eax
call fcn.0045f030
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x45ecad
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 0x45ecad
mov esi, dword [esp + 0xd4]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
cmp ebp, dword [0x4d9bb8]
jbe 0x45ecd5
push 0x4c602c
push 0
push str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
mov ecx, ebx
call fcn.004351a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
mov esi, dword [0x4dd288]
cmp ebp, esi
jbe 0x45ed67
mov eax, ebp
shr eax, 0xe
test ebp, 0x3fff
lea esi, [eax + 1]
cmove esi, eax
mov eax, dword [0x4dd28c]
shl esi, 0xe
test eax, eax
je 0x45ed1b
push eax
call fcn.00495d53
add esp, 4
cmp dword [0x4dd288], 0x400000
jbe 0x45ed1b
dec dword [0x4dd284]
lea eax, [esi + esi]
push eax
call fcn.00495d48
mov ecx, eax
add esp, 4
mov dword [0x4dd28c], ecx
test ecx, ecx
jne 0x45ed57
push 0x4c602c
push eax
push str.Out_of_memory.
mov ecx, ebx
mov dword [0x4dd288], eax
call fcn.004351a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
cmp esi, 0x400000
jbe 0x45ed6d
inc dword [0x4dd284]
jmp 0x45ed6d
mov ecx, dword [0x4dd28c]
mov dl, byte [ebx + 1]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
mov dword [0x4dd28c], 0
mov dword [0x4dd288], 0
test dl, dl
jne 0x45eda3
mov dword [0x4ddf18], 0
jmp 0x45ef75
mov edi, dword [esp + 0x1c]
xor esi, esi
sub edi, ebp
movzx ebp, dl
mov dword [esp + 0x14], edi
test dl, dl
je 0x45ef1f
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [ebx + 8]
add edx, eax
cmp byte [edx + 1], 0
je 0x45ee1f
mov eax, dword [esp + 0x78]
mov ecx, ebx
mov dword [0x4ddf18], eax
lea eax, [esp + 0x28]
push edi
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 esi
call fcn.0045c470
xor edi, edi
mov dword [esp + esi*4 + 0x28], eax
mov dword [esp + 0x14], edi
test eax, eax
je 0x45f01e
mov ecx, dword [esp + 0x10]
jmp 0x45ef07
cmp byte [edx], 2
jne 0x45ee31
mov dword [esp + esi*4 + 0x28], 0x4c602c
jmp 0x45ef07
mov edi, dword [esp + esi*4 + 0x78]
test edi, edi
jne 0x45ee8a
cmp esi, ebp
jge 0x45ee81
mov al, byte [edx]
test al, al
jne 0x45ee54
mov eax, dword [edx + 8]
test eax, eax
je 0x45ee4e
cmp dword [eax], edi
jne 0x45ee5d
cmp byte [edx + 1], 0
jmp 0x45ee5b
cmp al, 1
sete al
test al, al
je 0x45ee81
push 0
push esi
mov dword [esp + esi*4 + 0x30], ecx
push ecx
mov ecx, ebx
call fcn.0045f2d0
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x45ef03
xor ebx, ebx
jmp 0x45efa5
mov eax, dword [edx + 4]
mov dword [esp + esi*4 + 0x28], eax
jmp 0x45ef03
lea eax, [esp + 0x78]
mov ecx, ebx
push eax
push esi
push edi
call fcn.0045f190
sub eax, 3
je 0x45eee5
sub eax, 1
jne 0x45ee7a
mov al, byte [ebx]
cmp al, 7
ja 0x45eeb1
cmp al, 1
jb 0x45eeb1
cmp esi, 1
je 0x45eeb9
cmp al, 0x17
ja 0x45eed9
cmp al, 0xf
jb 0x45eed9
mov al, byte [edi + 0x17]
test al, al
jne 0x45eec6
mov eax, dword [edi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x45eed9
mov ecx, dword [esp + 0x10]
mov eax, 0x4c602c
mov dword [esp + esi*4 + 0x28], eax
jmp 0x45ef03
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + esi*4 + 0x28], eax
jmp 0x45ef03
mov eax, dword [esp + 0x10]
mov ecx, edi
push eax
mov dword [esp + esi*4 + 0x2c], eax
call fcn.0047b6b0
mov ecx, dword [esp + 0x10]
lea ecx, [ecx + eax*2]
add ecx, 2
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
inc esi
movzx ebp, byte [ebx + 1]
add edx, 0x10
mov dword [esp + 0x20], edx
cmp esi, ebp
jl 0x45edc0
xor esi, esi
cmp byte [ebx + 1], 0
jbe 0x45ef48
cmp dword [esp + esi*4 + 0x28], 0
jne 0x45ef3f
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 0x45ef27
mov dl, byte [ebx + 1]
movzx eax, dl
test dl, dl
je 0x45ef75
shl eax, 2
lea esi, [esp + 0x78]
mov ecx, eax
mov edi, 0x4ddf18
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
shr eax, 2
lea esi, [esp + 0x28]
mov ecx, eax
mov edi, 0x4ddf68
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 + 0x4d8e6d]
movzx eax, dl
cmp eax, ecx
jge 0x45efa5
lea edi, [eax*4 + 0x4ddf68]
sub ecx, eax
mov eax, 0x4c602c
rep stosd dword es:[edi], eax
cmp dword [esp + 0x18], 0
je 0x45efe2
mov eax, dword [0x4dd28c]
test eax, eax
je 0x45efd0
push eax
call fcn.00495d53
add esp, 4
cmp dword [0x4dd288], 0x400000
jbe 0x45efd0
dec dword [0x4dd284]
mov eax, dword [esp + 0x18]
mov dword [0x4dd28c], eax
mov eax, dword [esp + 0x1c]
mov dword [0x4dd288], eax
cmp dword [0x4dd288], 0x400000
jbe 0x45f00f
push 0x4418c0
push 0x2710
push 0xd
push dword [0x4db780]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4dc0e7]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xb8
ret 0xc
mov ebx, dword [esp + 0x24]
jmp 0x45efa5