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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x10080040]
xor eax, esp
mov dword [esp + 0x38], eax
mov eax, dword [0x1014e68c]
push ebx
mov ebx, dword [0x1014e6c8]
push esi
cmp byte [eax + 0xcc], 0
push edi
mov dword [esp + 0x38], ebx
je 0x1003d60c
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 0x14]
je 0x1003d60c
mov eax, dword [0x1014e66c]
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x28], eax
call dword [esp + 0x28]
movss xmm1, dword [ebx + 0xdc]
addss xmm1, dword [0x10076e84]
fstp dword [esp + 0x28]
movss xmm0, dword [esp + 0x28]
comiss xmm0, xmm1
ja 0x1003d60c
mov eax, dword [0x1014e66c]
cmp dword [eax + 0x74], 0
je 0x1003d60c
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x1003d60c
call fcn.10056120
test al, al
jne 0x1003d60c
mov ecx, dword [ebx + 0x14]
mov eax, 0x2aaaaaab
mov edi, dword [ebx + 0x10]
sub ecx, edi
imul ecx
mov dword [esp + 0x2c], 1
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x1003d60c
movss xmm2, dword [0x10076d8c]
mov ebx, 0xc
movss xmm5, dword [0x10076e18]
mov esi, dword [0x1014e66c]
mov dword [esp + 0x28], ebx
nop word [eax + eax]
movss xmm3, dword [edi + ebx - 8]
movss xmm4, dword [edi + ebx - 0xc]
movaps xmm0, xmm3
movss xmm7, dword [esi + 0x1cc]
movaps xmm1, xmm4
mulss xmm1, dword [esi + 0x1c8]
movss xmm6, dword [edi + ebx - 4]
mulss xmm0, xmm7
addss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esi + 0x1d0]
addss xmm1, xmm0
addss xmm1, dword [esi + 0x1d4]
comiss xmm1, xmm2
jbe 0x1003d5db
movss xmm0, dword [esi + 0x1a0]
movss xmm2, dword [0x10076e28]
movss dword [esp + 0x40], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0x190]
divss xmm2, xmm1
movss xmm1, dword [esi + 0x198]
mulss xmm0, xmm5
movss dword [esp + 0x24], xmm1
mulss xmm1, xmm4
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esi + 0x19c]
mulss xmm0, xmm3
addss xmm1, xmm0
movss xmm0, dword [esi + 0x1a0]
mulss xmm0, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0x190]
addss xmm1, dword [esi + 0x1a4]
mulss xmm1, xmm2
mulss xmm1, xmm5
mulss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0x194]
addss xmm1, xmm5
mulss xmm0, xmm5
addss xmm1, dword [esp + 0x10]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esi + 0x1b0]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x1ac]
movss dword [esp + 0x34], xmm1
movss xmm1, dword [esi + 0x1a8]
mulss xmm1, xmm4
mulss xmm0, xmm3
movss xmm3, dword [esp + 0x14]
movss xmm4, dword [edi + ebx]
addss xmm1, xmm0
movss xmm0, dword [esi + 0x1b0]
mulss xmm0, xmm6
xorps xmm6, xmm6
cvtsi2ss xmm6, dword [esi + 0x194]
addss xmm1, xmm0
movaps xmm0, xmm3
addss xmm1, dword [esi + 0x1b4]
mulss xmm1, xmm2
movss xmm2, dword [edi + ebx + 8]
movss dword [esp + 0x14], xmm2
mulss xmm1, xmm5
mulss xmm1, xmm6
addss xmm1, xmm5
subss xmm0, xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esi + 0x1c8]
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [edi + ebx + 4]
movss dword [esp + 0x30], xmm0
mulss xmm0, xmm7
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi + 0x1d0]
movss xmm2, dword [0x10076d8c]
addss xmm1, xmm0
addss xmm1, dword [esi + 0x1d4]
comiss xmm1, xmm2
jbe 0x1003d5db
movss xmm0, dword [0x10076e28]
movss xmm7, dword [esp + 0x30]
movss xmm2, dword [esp + 0x24]
divss xmm0, xmm1
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mulss xmm2, xmm4
movaps xmm1, xmm7
mulss xmm1, dword [esi + 0x19c]
mulss xmm4, dword [esi + 0x1a8]
addss xmm1, xmm2
mulss xmm7, dword [esi + 0x1ac]
movss xmm2, dword [esp + 0x40]
mulss xmm2, dword [esp + 0x14]
addss xmm4, xmm7
addss xmm1, xmm2
movd xmm2, dword [esi + 0x190]
cvtdq2ps xmm2, xmm2
addss xmm1, dword [esi + 0x1a4]
mulss xmm1, xmm0
mulss xmm1, xmm5
mulss xmm1, xmm2
addss xmm1, xmm5
addss xmm1, dword [esp + 0x10]
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esp + 0x18]
mulss xmm1, dword [esp + 0x14]
mov dword [esp + 0x18], eax
addss xmm4, xmm1
addss xmm4, dword [esi + 0x1b4]
mulss xmm4, xmm0
mulss xmm4, xmm5
mulss xmm4, xmm6
addss xmm4, xmm5
subss xmm3, xmm4
movss dword [esp + 0x14], xmm3
call dword [esp + 0x18]
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x18]
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
xorps xmm1, xmm1
mov dword [esp + 0x18], 0
subss xmm0, dword [eax + 0xdc]
lea eax, [esp + 0x40]
mov dword [esp + 0x24], 0x3f800000
subss xmm0, dword [0x10076e84]
divss xmm0, dword [0x10076e84]
comiss xmm1, xmm0
movss xmm1, dword [0x10076f38]
movss dword [esp + 0x40], xmm0
cmovbe ecx, eax
lea eax, [esp + 0x24]
comiss xmm0, dword [0x10076e28]
cmovbe eax, ecx
movss xmm0, dword [eax]
mulss xmm0, xmm1
subss xmm1, xmm0
movss xmm0, dword [edi + ebx + 4]
subss xmm0, dword [edi + ebx - 8]
cvttss2si eax, xmm1
cvtps2pd xmm0, xmm0
movzx eax, al
shl eax, 0x18
mov dword [esp + 0x10], eax
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [edi + ebx]
subss xmm0, dword [edi + ebx - 0xc]
fld qword [esp + 0x18]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
mov edx, dword [esp + 0x10]
mov eax, edx
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
or eax, 0xff
cvtpd2ps xmm0, xmm0
or edx, 0xff0000
comiss xmm0, dword [0x10076d7c]
cmova edx, eax
mov eax, dword [0x1014e66c]
mov esi, edx
mov dword [esp + 0x10], edx
shr esi, 0x18
push esi
mov ecx, dword [eax + 0x68]
mov eax, edx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x28], eax
mov eax, edx
push dword [esp + 0x28]
mov edx, dword [ecx]
shr eax, 8
movzx eax, al
push eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1c]
movzx eax, al
push eax
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x28], esi
call eax
mov eax, dword [0x1014e66c]
cvttss2si esi, dword [esp + 0x30]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx]
cvttss2si eax, dword [esp + 0x14]
push eax
cvttss2si eax, dword [esp + 0x40]
push esi
push eax
cvttss2si eax, dword [esp + 0x40]
push eax
mov eax, dword [edx + 0x3c]
call eax
mov eax, dword [esp + 0x38]
movss xmm5, dword [0x10076e18]
mov esi, dword [0x1014e66c]
movss xmm2, dword [0x10076d8c]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, 0xfffffffe
add eax, edx
cmp dword [esp + 0x2c], eax
jne 0x1003d5db
movss xmm6, dword [edi + ebx]
movss xmm4, dword [edi + ebx - 8]
addss xmm6, dword [edi + ebx - 0xc]
addss xmm4, dword [edi + ebx + 4]
movss xmm7, dword [edi + ebx - 4]
addss xmm7, dword [edi + ebx + 8]
mulss xmm6, xmm5
mulss xmm4, xmm5
movaps xmm0, xmm6
mulss xmm7, xmm5
mulss xmm0, dword [esi + 0x1c8]
movaps xmm1, xmm4
mulss xmm1, dword [esi + 0x1cc]
addss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [esi + 0x1d0]
addss xmm1, xmm0
addss xmm1, dword [esi + 0x1d4]
comiss xmm1, xmm2
jbe 0x1003d5db
movss xmm2, dword [0x10076e28]
movaps xmm3, xmm4
mulss xmm3, dword [esi + 0x19c]
movaps xmm0, xmm6
mov edi, 0xa
mov eax, dword [esp + 0x10]
mulss xmm0, dword [esi + 0x198]
movzx ebx, al
mulss xmm4, dword [esi + 0x1ac]
mulss xmm6, dword [esi + 0x1a8]
addss xmm3, xmm0
divss xmm2, xmm1
movaps xmm0, xmm7
addss xmm4, xmm6
mulss xmm0, dword [esi + 0x1a0]
xorps xmm1, xmm1
mulss xmm7, dword [esi + 0x1b0]
cvtsi2ss xmm1, dword [esi + 0x190]
addss xmm3, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0x194]
addss xmm3, dword [esi + 0x1a4]
addss xmm4, xmm7
mulss xmm3, xmm2
addss xmm4, dword [esi + 0x1b4]
mulss xmm3, xmm5
mulss xmm4, xmm2
mulss xmm3, xmm1
mulss xmm4, xmm5
mulss xmm1, xmm5
addss xmm3, xmm5
mulss xmm4, xmm0
addss xmm3, xmm1
movaps xmm1, xmm0
addss xmm4, xmm5
mulss xmm1, xmm5
subss xmm1, xmm4
cvttss2si eax, xmm1
mov dword [esp + 0x34], eax
cvttss2si eax, xmm3
mov dword [esp + 0x3c], eax
nop word [eax + eax]
push dword [esp + 0x18]
mov ecx, dword [esi + 0x68]
push dword [esp + 0x28]
push dword [esp + 0x48]
mov eax, dword [ecx]
push ebx
mov eax, dword [eax + 0x2c]
call eax
cvttss2si edx, dword [esp + 0x14]
mov eax, dword [0x1014e66c]
mov ecx, dword [eax + 0x68]
mov eax, dword [ecx]
push edx
cvttss2si edx, dword [esp + 0x34]
mov eax, dword [eax + 0x3c]
push edx
push dword [esp + 0x3c]
push dword [esp + 0x48]
call eax
mov esi, dword [0x1014e66c]
sub edi, 1
jne 0x1003d580
movss xmm5, dword [0x10076e18]
movss xmm2, dword [0x10076d8c]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
add ebx, 0xc
inc dword [esp + 0x2c]
mov dword [esp + 0x28], ebx
mov ecx, dword [eax + 0x14]
mov edi, dword [eax + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x2c], eax
jb 0x1003d040
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100672f0
mov esp, ebp
pop ebp
ret