Function at 0x4fc880
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc8
mov ebx, ecx
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xdc]
lea edx, [esp + 0xa0]
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 4
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x4fc91f
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x48], 0
sub ecx, eax
je 0x4fc949
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
neg ecx
mov edx, 1
mov esi, eax
mov ebp, dword [esp + 0x3c]
jmp 0x4fc90d
lea edi, [ecx + edx]
inc edi
inc edx
add esi, 0xc
cmp edi, 1
je 0x4fc94d
mov edi, dword [esi]
cmp dword [edi + 4], ebp
ja 0x4fc900
cmp dword [edi + 8], ebp
jb 0x4fc900
mov dword [esp + 0x48], edx
jmp 0x4fc94d
mov esi, 0xffffffff
mov ecx, 9
mov edx, str._unknown_
mov dword [esp + 0x44], 0
xor edi, edi
mov dword [esp + 0x40], 0
mov ebp, dword [esp + 0x3c]
jmp 0x4fcb0c
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + ecx*2]
mov esi, dword [eax + ecx*4 - 0xc]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esi + 4]
mov eax, ebp
nop dword [eax]
cmp eax, edx
je 0x4fc988
movzx ecx, byte [eax - 1]
dec eax
cmp ecx, 0xd
je 0x4fc983
cmp ecx, 0xa
jne 0x4fc970
inc eax
mov ecx, eax
jmp 0x4fc98a
mov ecx, edx
mov eax, dword [esi + 8]
cmp ebp, eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x60], ebx
je 0x4fc9b8
mov esi, ecx
mov edi, ebp
movzx ecx, byte [edi]
cmp ecx, 0xa
je 0x4fc9b4
cmp ecx, 0xd
je 0x4fc9b4
inc edi
cmp edi, eax
jne 0x4fc9a0
mov edi, eax
mov ecx, esi
jmp 0x4fc9ba
mov edi, ebp
lea esi, [esp + 0xec]
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x40], edi
je 0x4fca72
mov esi, dword [esi]
lea eax, [esi + eax*8]
mov dword [esp + 0x64], eax
jmp 0x4fca0a
sub ebp, edi
sub ebx, edi
mov ecx, dword [esp + 0x94]
mov dword [ecx + eax*8], ebp
mov dword [ecx + eax*8 + 4], ebx
inc dword [esp + 0x98]
mov ecx, edi
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x64]
add esi, 8
cmp esi, eax
je 0x4fca72
mov ebp, dword [esi]
test ebp, ebp
je 0x4fca03
cmp edi, ebp
jb 0x4fca03
mov ebx, dword [esi + 4]
cmp ecx, ebx
ja 0x4fca03
cmp ecx, ebp
cmova ebp, ecx
cmp edi, ebx
cmovb ebx, edi
mov eax, dword [esp + 0x98]
mov edi, ecx
lea ecx, [eax + 1]
cmp ecx, dword [esp + 0x9c]
jbe 0x4fc9e0
mov dword [esp + 4], ecx
lea eax, [esp + 0xa0]
mov dword [esp], eax
mov dword [esp + 8], 8
lea ecx, [esp + 0x94]
call fcn.0046e2c0
sub esp, 0xc
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0x98]
jmp 0x4fc9e0
mov esi, dword [edx]
mov edi, dword [esp + 0x48]
test edi, edi
mov dword [esp + 0x44], ecx
je 0x4fcc38
mov eax, dword [esp + 0x40]
sub eax, ecx
lea ebx, [edi + edi*2]
mov edi, eax
lea ecx, [esi + ebx*4]
add ecx, 0xfffffff4
mov ebp, dword [esp + 0x3c]
mov dword [esp], ebp
call fcn.004fbed0
sub esp, 4
mov dword [esp + 0x40], eax
mov eax, dword [esi + ebx*4 - 0xc]
mov eax, dword [eax + 4]
mov ebx, ebp
sub ebx, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x8c], 0x526069
mov dword [esp + 0x90], 2
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp], xmm0
mov dword [esp + 8], 0xffffffff
lea ecx, [esp + 0x4c]
call fcn.00461f00
sub esp, 0xc
mov esi, eax
not esi
add esi, ebx
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
mov dword [esp], eax
lea ecx, [esp + 0x4c]
call fcn.00465260
sub esp, 4
movzx eax, byte [esp + 0x4c]
mov ecx, eax
shr ecx, 1
test al, 1
lea eax, [esp + 0x4d]
cmovne eax, dword [esp + 0x54]
mov dword [esp + 0x7c], eax
cmovne ecx, dword [esp + 0x50]
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
lea eax, [esp + 0xf4]
movsd xmm0, qword [eax]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [esp + 0xc0]
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [esp + 0x6c]
movsd qword [esp + 0x2c], xmm0
movsd xmm0, qword [esp + 0x74]
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp + 0x1c], xmm0
movsd xmm0, qword [esp + 0x84]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov ecx, ebx
call fcn.004fd9b0
sub esp, 0x3c
test byte [esp + 0x4c], 1
je 0x4fcc0f
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0xa0]
cmp eax, ecx
je 0x4fcc29
mov dword [esp], eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov eax, ebx
add esp, 0xc8
pop esi
pop edi
pop ebx
pop ebp
ret 0x20
mov eax, dword [edx + 4]
xor edi, edi
sub eax, esi
je 0x4fca84
sar eax, 2
imul eax, eax, 0xaaaaaaab
neg eax
mov ecx, 1
mov edx, esi
jmp 0x4fcc6d
lea ebx, [eax + ecx]
inc ebx
inc ecx
add edx, 0xc
cmp ebx, 1
je 0x4fcc8c
mov ebx, dword [edx]
mov ebp, dword [esp + 0x3c]
cmp dword [ebx + 4], ebp
ja 0x4fcc60
mov ebp, dword [esp + 0x3c]
cmp dword [ebx + 8], ebp
jb 0x4fcc60
mov edi, ecx
mov ecx, dword [esp + 0x44]
jmp 0x4fca84
mov ecx, dword [esp + 0x44]
xor edi, edi
jmp 0x4fca84