Function at 0x478d80
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 0x478db8
lea eax, [esp + 0x78]
push eax
call fcn.00479160
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x478dcd
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 0x478dcd
mov esi, dword [esp + 0xd4]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
cmp ebp, dword [0x4e5358]
jbe 0x478df5
push 0x4bac30
push 0
push str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
mov ecx, ebx
call fcn.00448730
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
mov esi, dword [0x4e7588]
cmp ebp, esi
jbe 0x478e89
mov eax, ebp
shr eax, 0xe
test ebp, 0x3fff
lea esi, [eax + 1]
cmove esi, eax
mov eax, dword [0x4e758c]
shl esi, 0xe
test eax, eax
je 0x478e3c
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp dword [0x4e7588], 0x400000
jbe 0x478e3c
dec dword [0x4e7584]
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 [0x4e758c], ecx
test ecx, ecx
jne 0x478e79
push 0x4bac30
push eax
push 0x4cebc0
mov ecx, ebx
mov dword [0x4e7588], eax
call fcn.00448730
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret 0xc
cmp esi, 0x400000
jbe 0x478e8f
inc dword [0x4e7584]
jmp 0x478e8f
mov ecx, dword [0x4e758c]
mov dl, byte [ebx + 1]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
mov dword [0x4e758c], 0
mov dword [0x4e7588], 0
test dl, dl
jne 0x478ec5
mov dword [0x4e8218], 0
jmp 0x4790a1
mov edi, dword [esp + 0x1c]
xor esi, esi
sub edi, ebp
mov dh, dl
mov dword [esp + 0x14], edi
test dl, dl
je 0x47904a
xor ebp, ebp
mov dword [esp + 0x20], ebp
add ebp, dword [ebx + 8]
cmp byte [ebp + 1], 0
je 0x478f3e
mov eax, dword [esp + 0x78]
mov ecx, ebx
mov dword [0x4e8218], 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.00476320
xor edi, edi
mov dword [esp + esi*4 + 0x28], eax
mov dword [esp + 0x14], edi
test eax, eax
je 0x47914b
mov ecx, dword [esp + 0x10]
jmp 0x47902e
mov dh, byte [ebp]
cmp dh, 2
jne 0x478f53
mov dword [esp + esi*4 + 0x28], 0x4bac30
jmp 0x47902e
mov edi, dword [esp + esi*4 + 0x78]
test edi, edi
jne 0x478fa6
movzx eax, dl
cmp esi, eax
jge 0x478f71
test dh, dh
jne 0x478f7d
mov eax, dword [ebp + 8]
test eax, eax
je 0x478f71
cmp dword [eax], edi
jne 0x478f82
mov eax, dword [ebp + 4]
mov dword [esp + esi*4 + 0x28], eax
jmp 0x47902a
cmp dh, 1
jne 0x478f71
push 0
push esi
mov dword [esp + esi*4 + 0x30], ecx
push ecx
mov ecx, ebx
call fcn.004793d0
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x47902a
xor ebx, ebx
jmp 0x4790d1
lea eax, [esp + 0x78]
mov ecx, ebx
push eax
push esi
push edi
call fcn.004792d0
sub eax, 3
je 0x47900c
sub eax, 1
jne 0x478f9f
mov cl, byte [ebx]
lea eax, [ecx - 1]
cmp al, 6
ja 0x478fcc
cmp esi, 1
je 0x478fe0
cmp cl, 0x17
ja 0x478fd6
cmp cl, 0xf
jae 0x478fe0
cmp cl, 0x6e
je 0x478fe0
cmp cl, 0x70
jne 0x479000
mov al, byte [edi + 0x17]
test al, al
jne 0x478fed
mov eax, dword [edi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x479000
mov ecx, dword [esp + 0x10]
mov eax, 0x4bac30
mov dword [esp + esi*4 + 0x28], eax
jmp 0x47902a
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + esi*4 + 0x28], eax
jmp 0x47902a
mov eax, dword [esp + 0x10]
mov ecx, edi
push eax
mov dword [esp + esi*4 + 0x2c], eax
call fcn.004a1d80
mov ecx, dword [esp + 0x10]
lea ecx, [ecx + eax*2]
add ecx, 2
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x14]
mov dl, byte [ebx + 1]
inc esi
mov ebp, dword [esp + 0x20]
mov dh, dl
add ebp, 0x10
movzx eax, dl
mov dword [esp + 0x20], ebp
cmp esi, eax
jl 0x478ee1
xor esi, esi
test dl, dl
je 0x479075
cmp dword [esp + esi*4 + 0x28], 0
jne 0x479068
mov ecx, dword [esp + esi*4 + 0x78]
push 0
push 1
call fcn.00401640
mov dword [esp + esi*4 + 0x28], eax
mov dl, byte [ebx + 1]
inc esi
movzx eax, dl
mov dh, dl
cmp esi, eax
jl 0x479050
movzx eax, dl
test dl, dl
je 0x4790a1
shl eax, 2
lea esi, [esp + 0x78]
mov ecx, eax
mov edi, 0x4e8218
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, 0x4e8268
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 + 0x4e45a5]
movzx eax, dl
cmp eax, ecx
jge 0x4790d1
lea edi, [eax*4 + 0x4e8268]
sub ecx, eax
mov eax, 0x4bac30
rep stosd dword es:[edi], eax
cmp dword [esp + 0x18], 0
je 0x47910f
mov eax, dword [0x4e758c]
test eax, eax
je 0x4790fd
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp dword [0x4e7588], 0x400000
jbe 0x4790fd
dec dword [0x4e7584]
mov eax, dword [esp + 0x18]
mov dword [0x4e758c], eax
mov eax, dword [esp + 0x1c]
mov dword [0x4e7588], eax
cmp dword [0x4e7588], 0x400000
jbe 0x47913c
push 0x455c20
push 0x2710
push 0xd
push dword [0x4e69e8]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4e6a96]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xb8
ret 0xc
mov ebx, dword [esp + 0x24]
jmp 0x4790d1