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

Disassembly:
sub esp, 0x98
push ebx
mov ebx, dword [esp + 0xa0]
mov ecx, ebx
sub ecx, dword [0xa6f96c]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
and ecx, 0x3f
push ebp
movzx ebp, byte [ecx + 0x6f9748]
push esi
mov esi, dword [0xa6fa00]
push edi
mov edi, dword [ebp*4 + 0xa6fa04]
imul edi, edi, 0x88
add edi, ebx
cmp edi, esi
cmova edi, esi
cmp ebp, 3
mov dword [esp + 0x1c], ebp
jl 0x4ecc95
jne 0x4ecc80
sar eax, 4
lea eax, [eax + eax*2]
shl eax, 5
add eax, dword [0xa6fb60]
push eax
jmp 0x4ecd52
sar eax, 6
lea eax, [eax + eax*2]
shl eax, 5
add eax, dword [0xa6fb64]
push eax
jmp 0x4ecd52
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x38], edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x44], edx
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x50], edx
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x5c], edx
mov edx, dword [edi]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x64], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x68], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x70], ecx
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x74], edx
mov edx, dword [edi + 0x18]
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x7c], ecx
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x80], edx
mov edx, dword [edi + 0x24]
mov dword [esp + 0x84], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x88], ecx
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x8c], edx
lea edx, [esp + 0x38]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
push edx
mov eax, dword [0x9d2c30]
imul eax, eax, 0x4d0
add eax, 0x9ce230
call fcn.0058c710
test eax, eax
je 0x4ece52
mov edx, dword [0x9d2c30]
imul edx, edx, 0x4d0
mov eax, dword [edx + 0x9cdfe0]
mov ecx, dword [edx + 0x9cdfe4]
mov dword [esp + 0x98], eax
mov eax, dword [edx + 0x9cdfe8]
fld dword [esp + 0x98]
mov dword [esp + 0x9c], ecx
fld st(0)
mov dword [esp + 0xa0], eax
fsub dword [ebx + 0x30]
mov dword [esp + 0xa4], edx
fstp dword [esp + 0x20]
fld dword [esp + 0x9c]
fld st(0)
fsub dword [ebx + 0x34]
fstp dword [esp + 0x24]
fld dword [esp + 0xa0]
fld st(0)
fsub dword [ebx + 0x38]
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fld dword [esp + 0x20]
fld dword [esp + 0x28]
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x18]
fld st(2)
fsub dword [edi + 0x30]
fstp dword [esp + 0x20]
fld st(1)
fsub dword [edi + 0x34]
fstp dword [esp + 0x24]
fld st(0)
fsub dword [edi + 0x38]
fstp dword [esp + 0x28]
fld dword [0xa6fa28]
fld dword [esp + 0x18]
fcompi st(1)
jbe 0x4ece62
fld dword [esp + 0x24]
fld dword [esp + 0x20]
fld dword [esp + 0x28]
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcompi st(1)
fstp st(0)
jbe 0x4ece64
fstp st(2)
fstp st(1)
fstp st(0)
mov eax, ebp
or eax, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
fstp st(0)
cmp dword [0xa6f954], 0
je 0x4ece9b
mov ecx, dword [esp + 0xb0]
fstp st(2)
mov edx, dword [esp + 0xb4]
fstp st(1)
movss xmm0, dword [esp + 0x18]
fstp st(0)
movss dword [ecx], xmm0
mov byte [edx], 1
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
fld dword [ebx + 0x58]
mov dword [esp + 0x10], ebp
fmul st(1)
fld dword [ebx + 0x54]
fmul st(4)
faddp st(1)
fsub dword [ebx + 0x5c]
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcomi st(1)
jbe 0x4ecf6f
fld dword [ebx + 0x64]
mov eax, ebp
fmulp st(3)
fld dword [ebx + 0x60]
fmulp st(5)
fxch st(2)
faddp st(4)
fld dword [ebx + 0x68]
fsubp st(4)
fxch st(3)
fstp dword [esp + 0x10]
fld dword [ebx + 0x34]
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [eax*4 + 0x6f9788]
fcompi st(1)
jbe 0x4ecf03
fmul qword [0x6f9bb0]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esp + 0x10]
fmul st(0), st(0)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fsub qword [0x6f9ff8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fxch st(3)
fcompi st(3)
fstp st(2)
jbe 0x4ecf30
xorps xmm0, xmm0
movss dword [esp + 0x10], xmm0
mov ecx, dword [0xa6f950]
fmul st(0), st(0)
fadd dword [esp + 0x10]
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [ebp*4 + 0xa6fa14]
fxch st(1)
fcomi st(1)
fstp st(1)
ja 0x4ed05a
cmp ebp, ecx
je 0x4ed05a
sub ebp, 1
jne 0x4ecf4a
jmp 0x4ed05a
mov ecx, dword [0xa6f950]
fstp st(0)
xorps xmm0, xmm0
fld qword [0x6f9ff8]
fld dword [edi + 0x58]
fmul st(3)
fld dword [edi + 0x54]
fmul st(6)
faddp st(1)
fsub dword [edi + 0x5c]
fchs
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fxch st(2)
fcomi st(2)
fstp st(2)
jbe 0x4ecfa7
movss dword [esp + 0x18], xmm0
fld dword [edi + 0x64]
fmul st(3)
fld dword [edi + 0x60]
fmul st(6)
faddp st(1)
fsub dword [edi + 0x68]
fstp dword [esp + 0x10]
fld st(3)
fsub dword [edi + 0x34]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [ebp*4 + 0x6f9788]
fcompi st(1)
jbe 0x4ecfe0
fmul qword [0x6f9bb0]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esp + 0x10]
fmul st(0), st(0)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fxch st(3)
fcomi st(3)
fstp st(3)
jbe 0x4ed006
movss dword [esp + 0x10], xmm0
fld dword [esp + 0x18]
fmul st(0), st(0)
fadd dword [esp + 0x10]
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x14]
fld dword [ebp*4 + 0xa6fa14]
fld dword [esp + 0x14]
fcompi st(1)
fstp st(0)
ja 0x4ed052
cmp ebp, ecx
je 0x4ed052
sub ebp, 1
je 0x4ed052
mov edi, dword [ebp*4 + 0xa6fa04]
imul edi, edi, 0x88
add edi, ebx
cmp edi, esi
jbe 0x4ecf80
mov edi, esi
jmp 0x4ecf80
fstp st(4)
fstp st(1)
fstp st(0)
fstp st(1)
cmp ebp, dword [esp + 0x1c]
fstp st(0)
mov dword [esp + 0x10], ebp
je 0x4ed155
mov ecx, dword [ebx]
mov edi, dword [ebp*4 + 0xa6fa04]
mov eax, dword [ebx + 4]
imul edi, edi, 0x88
mov dword [esp + 0x38], ecx
mov ecx, dword [ebx + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x48], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x60], ecx
add edi, ebx
mov dword [esp + 0x64], eax
cmp edi, esi
cmova edi, esi
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x68], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x6c], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x70], ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x7c], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x80], ecx
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x84], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x88], ecx
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x8c], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x94], eax
push ecx
lea eax, [edx + 0x9ce230]
call fcn.0058c710
test eax, eax
je 0x4ece52
mov edx, dword [esp + 0xa4]
cmp dword [edx + 0x9ce3f4], 0
movss xmm0, dword [esp + 0x14]
jne 0x4ed321
movss xmm1, dword [0x6fa3f8]
comiss xmm1, xmm0
jbe 0x4ed261
fld dword [ebx + 0x4c]
sub esp, 8
fstp dword [esp + 4]
fld dword [0xa6fb54]
fstp dword [esp]
call fcn.00402ec0
fstp dword [0xa6fb54]
fld dword [edi + 0x4c]
fstp dword [esp + 4]
fld dword [0xa6fb54]
fstp dword [esp]
call fcn.00402ec0
fstp dword [0xa6fb54]
fld dword [edi + 0x3c]
fstp dword [esp + 4]
fld dword [ebx + 0x3c]
fstp dword [esp]
call fcn.00402ec0
fstp dword [esp + 0x28]
fld dword [edi + 0x4c]
fstp dword [esp + 0x24]
fld dword [ebx + 0x4c]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.00402ec0
fstp dword [esp + 0x2c]
fld dword [edi + 0x44]
fstp dword [esp + 4]
fld dword [ebx + 0x44]
fstp dword [esp]
call fcn.00402ec0
fstp dword [esp + 0x30]
fld dword [edi + 0x40]
fstp dword [esp + 4]
fld dword [ebx + 0x40]
fstp dword [esp]
call fcn.00402e80
fstp dword [esp + 0x34]
fld dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.00402e80
fstp dword [esp + 0x38]
fld dword [edi + 0x48]
fstp dword [esp + 4]
fld dword [ebx + 0x48]
fstp dword [esp]
call fcn.00402e80
push 0
fstp dword [esp + 0x40]
lea ecx, [esp + 0x2c]
mov esi, 0xa6fb3c
call fcn.004285d0
movss xmm0, dword [esp + 0x20]
add esp, 0xc
movss xmm1, dword [0x6f9b20]
comiss xmm1, xmm0
jbe 0x4ed2e6
fld dword [ebx + 4]
sub esp, 8
fstp dword [esp + 4]
fld dword [0xa6fb58]
fstp dword [esp]
call fcn.00402e80
fstp dword [0xa6fb58]
fld dword [edi + 4]
fstp dword [esp + 4]
fld dword [0xa6fb58]
fstp dword [esp]
call fcn.00402e80
fstp dword [0xa6fb58]
fld dword [ebx + 0x1c]
fstp dword [esp + 4]
fld dword [0xa6fb58]
fstp dword [esp]
call fcn.00402e80
fstp dword [0xa6fb58]
fld dword [edi + 0x1c]
fstp dword [esp + 4]
fld dword [0xa6fb58]
fstp dword [esp]
call fcn.00402e80
movss xmm0, dword [esp + 0x1c]
fstp dword [0xa6fb58]
add esp, 8
movss xmm1, dword [0x6e4984]
comiss xmm1, xmm0
jbe 0x4ed321
movsx edx, byte [ebx + 0x85]
add dword [0xa968a0], edx
movsx eax, byte [ebx + 0x86]
add dword [0xa968a4], eax
movsx ecx, byte [ebx + 0x87]
add dword [0xa968a8], ecx
add dword [0xa968ac], 1
cmp ebp, 1
mov edx, dword [esp + 0xb0]
movss dword [edx], xmm0
jg 0x4ed362
fld dword [esp + 0x14]
push ecx
lea eax, [esp + 0x14]
fstp dword [esp]
push eax
mov eax, ebx
call fcn.004eb7d0
mov ecx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x18]
mov byte [ecx], al
add esp, 8
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
mov edx, dword [esp + 0xb4]
pop edi
pop esi
mov eax, ebp
pop ebp
mov dword [0xa6fc10], 0
mov byte [edx], 4
pop ebx
add esp, 0x98
ret