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

Disassembly:
sub esp, 0x1c
cmp dword [0x7cf900], 0
push esi
mov esi, dword [esp + 0x24]
je 0x4fe965
cmp dword [0x7cf8f0], 0
jne 0x4fe965
cmp edx, esi
push edi
jle 0x4fe62d
mov edi, edx
mov edx, esi
mov esi, edi
cmp eax, ecx
jle 0x4fe637
mov edi, eax
mov eax, ecx
mov ecx, edi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
push 0x8e7f8c
push eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ecx
call fcn.00525aa0
mov ecx, dword [esp + 0x1c]
add esp, 8
cmp ecx, dword [esp + 0x1c]
je 0x4fe95d
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x20]
je 0x4fe95d
push ebx
push ebp
call fcn.004e8580
cmp dword [0x7cf900], 0
mov ebp, 1
je 0x4fe6c0
cmp dword [0x80f6f8], 0
jne 0x4fe69c
cmp dword [0x89f1c4], 0
je 0x4fe6c0
call fcn.004ea2c0
cmp dword [0x80f6f8], 0
mov dword [0x8168b4], ebp
je 0x4fe6b6
mov dword [0x8168b0], ebp
mov dword [0x80f6f8], 0
push 0x20
push 0
push 0
call fcn.004f7cd0
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
push eax
call fcn.004eb0f0
movzx ecx, byte [0x7cfae2]
imul ecx, dword [esp + 0x20]
mov eax, 0x80808081
mul ecx
mov ecx, dword [0x7cfae0]
shr edx, 7
mov edi, edx
movzx edx, ch
imul edx, dword [esp + 0x24]
mov eax, 0x80808081
mul edx
shr edx, 7
shl edi, 8
or edi, edx
movzx edx, cl
imul edx, dword [esp + 0x28]
mov ebx, dword [0x8e80b0]
mov eax, 0x80808081
mul edx
shl edi, 8
shr edx, 7
or edi, edx
and ecx, 0xff000000
add esp, 0x10
or edi, ecx
cmp dword [0x8168b0], 0
jne 0x4fe753
cmp dword [0x8168b4], 0
je 0x4fe761
push 0
mov eax, ebp
xor ecx, ecx
call fcn.004f5fe0
add esp, 4
mov esi, dword [0x7cfac0]
cmp esi, ebp
mov eax, dword [0x7cfacc]
mov ecx, dword [0x7cfac4]
je 0x4fe796
cmp eax, 4
jne 0x4fe796
mov edx, dword [0x7cfac8]
lea edx, [edx + esi*2]
add edx, esi
lea ebp, [ecx + 6]
cmp ebp, dword [edx*4 + 0x6a2948]
jl 0x4fe8c1
test ecx, ecx
je 0x4fe8a5
mov edx, dword [0x7cfac8]
lea edx, [edx + esi*2]
add edx, esi
mov edx, dword [edx*4 + 0x6a2960]
cmp dword [0x8168e0], edx
je 0x4fe7f1
mov eax, dword [0x7cf900]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 0x164]
push eax
call edx
mov esi, dword [0x7cfac0]
mov eax, dword [0x7cfac8]
lea ecx, [eax + esi*2]
mov eax, dword [0x7cfacc]
add ecx, esi
mov edx, dword [ecx*4 + 0x6a2960]
mov ecx, dword [0x7cfac4]
mov dword [0x8168e0], edx
test esi, esi
je 0x4fe810
mov edx, 0x6cf538
call fcn.004ea160
mov eax, dword [0x7cfacc]
mov ecx, dword [0x7cfac4]
mov esi, dword [0x7cfac0]
cmp eax, 4
jne 0x4fe825
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4fe85c
cmp eax, 2
jne 0x4fe833
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x4fe85c
cmp eax, 6
jne 0x4fe83d
lea eax, [ecx - 2]
jmp 0x4fe85c
cmp eax, 5
jne 0x4fe847
lea eax, [ecx - 2]
jmp 0x4fe85c
cmp eax, 3
jne 0x4fe851
lea eax, [ecx - 1]
jmp 0x4fe85c
sub eax, 1
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ecx, dword [0x7cfac8]
mov edx, dword [0x7cf900]
lea ecx, [ecx + esi*2]
add ecx, esi
mov esi, dword [edx]
add ecx, ecx
mov ebp, dword [ecx + ecx + 0x6a2978]
add ecx, ecx
mov ecx, dword [ecx + 0x7cfaa8]
push ebp
push ecx
mov ecx, dword [esi + 0x14c]
push eax
mov eax, dword [0x7cfacc]
push eax
push edx
call ecx
cmp dword [0x7cfac0], 0
je 0x4fe8a5
mov edx, 0x8e8170
call fcn.004ea160
mov edx, dword [0x7cfac8]
mov dword [0x7cfac4], 0
mov eax, dword [edx*4 + 0x7cfaa8]
mov dword [0x7cfaf4], eax
mov eax, dword [0x7cfaf4]
mov dword [0x7cfac0], 0
mov dword [0x7cfacc], 4
mov dword [eax + 0x4c], edi
mov dword [eax + 0x10], edi
fild dword [esp + 0x1c]
pop ebp
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [eax]
fst dword [eax + 0x28]
fstp dword [eax + 0x50]
fild dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [eax + 0x14]
fst dword [eax + 0x3c]
fstp dword [eax + 0x64]
fild dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [eax + 4]
fst dword [eax + 0x18]
fstp dword [eax + 0x68]
fild dword [esp + 0x24]
mov dword [eax + 0x6c], ebx
mov dword [eax + 0x58], ebx
mov dword [eax + 0x44], ebx
fstp dword [esp + 0x14]
mov dword [eax + 0x30], ebx
fld dword [esp + 0x14]
mov dword [eax + 0x1c], ebx
fst dword [eax + 0x2c]
mov dword [eax + 8], ebx
fst dword [eax + 0x40]
pop ebx
fstp dword [eax + 0x54]
add dword [0x7cfaf4], 0x78
add dword [0x7cfac4], 6
pop edi
xor eax, eax
pop esi
add esp, 0x1c
ret
pop edi
xor eax, eax
pop esi
add esp, 0x1c
ret
or eax, 0xffffffff
pop esi
add esp, 0x1c
ret