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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x148
mov eax, dword [0x10297b00]
movaps xmm4, xmm2
movq xmm0, qword [0x10297af8]
push esi
mov dword [esp + 0x84], eax
lea eax, [esp + 0x18]
push edi
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x1c], edx
push eax
lea edx, [esp + 0x3c]
movss dword [esp + 0x74], xmm4
mov dword [esp + 0x44], 0x7f800000
mov dword [esp + 0x40], 0x7f800000
mov dword [esp + 0x3c], 0x7f800000
mov dword [esp + 0x38], 0x7f800000
mov dword [esp + 0x34], 0x7f800000
mov dword [esp + 0x30], 0x7f800000
mov dword [esp + 0x2c], 0x7f800000
mov dword [esp + 0x28], 0x7f800000
mov dword [esp + 0x24], 0x7f800000
movq qword [esp + 0x88], xmm0
call fcn.1011e210
movaps xmm0, xmm4
mov ecx, dword [0x102b15a0]
divss xmm0, dword [0x1026bcac]
add esp, 8
xor esi, esi
mulss xmm0, dword [0x1026bd34]
cvttss2si eax, xmm0
mov dword [esp + 0x70], eax
call fcn.10179220
mov ecx, dword [0x102b15a0]
movss dword [esp + 0x44], xmm0
call fcn.10179180
mov ecx, dword [0x102b15a4]
movss dword [esp + 0x40], xmm0
call fcn.1017ea40
mov ecx, dword [0x102b15a0]
movss dword [esp + 0x68], xmm0
call fcn.10006f70
movss xmm1, dword [0x1026bac0]
lea eax, [esp + 0x58]
mov dword [esp + 0x48], eax
xor edi, edi
lea eax, [esp + 0x60]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x54], eax
nop dword [eax + eax]
xorps xmm0, xmm0
call fcn.1011e870
movss xmm1, dword [0x1026bbdc]
movss dword [esp + 0x14], xmm0
xorps xmm0, xmm0
call fcn.1011e870
movss xmm1, dword [0x1026bac0]
movss dword [esp + 0xc], xmm0
xorps xmm0, xmm0
call fcn.1011e870
movss xmm1, dword [esp + 0x14]
mulss xmm1, dword [esp + 0x40]
mulss xmm0, dword [esp + 0x44]
movss dword [esp + 0x14], xmm1
movss xmm1, dword [0x1026bbdc]
movss dword [esp + 8], xmm0
xorps xmm0, xmm0
call fcn.1011e870
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x98], xmm1
call fcn.1020a6d0
movss xmm1, dword [esp + 0xc]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 8]
movss dword [esp + 0x10], xmm0
cvtps2pd xmm0, xmm1
call fcn.1020a6d0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0x10]
mulss xmm1, dword [esp + 0x14]
addss xmm0, xmm1
movss xmm1, dword [esp + 0xc]
movss dword [esp + 0x10], xmm0
cvtps2pd xmm0, xmm1
call fcn.1020b950
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x14]
movss dword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0x98]
call fcn.1020b950
movss xmm2, dword [esp + 0xc]
lea eax, [esp + 0x74]
movss xmm3, dword [esp + 0x10]
lea edx, [esp + 0x1c]
cvtsd2ss xmm0, xmm0
mov dword [esp + 0x74], 0
lea ecx, [esp + 0x8c]
mov dword [esp + 0x78], 0
push eax
movaps xmm1, xmm3
mulss xmm0, dword [esp + 0xc]
mulss xmm1, dword [esp + 0x2c]
addss xmm2, xmm0
addss xmm1, dword [esp + 0x38]
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x20]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x24]
mulss xmm2, dword [esp + 0x28]
movss dword [esp + 0x90], xmm1
movaps xmm1, xmm3
mulss xmm1, dword [esp + 0x30]
mulss xmm3, dword [esp + 0x34]
addss xmm1, dword [esp + 0x3c]
addss xmm3, dword [esp + 0x40]
addss xmm1, xmm0
addss xmm3, xmm2
movss dword [esp + 0x94], xmm1
movss dword [esp + 0x98], xmm3
call fcn.1011df40
movss xmm1, dword [esp + 0x78]
add esp, 4
movss xmm0, dword [0x1026bca4]
comiss xmm1, xmm0
movss xmm2, dword [0x1026bd04]
jbe 0x100404f0
subss xmm1, xmm2
comiss xmm1, xmm0
ja 0x100404e7
movss xmm0, dword [0x1026be78]
comiss xmm0, xmm1
jbe 0x10040509
nop dword [eax]
addss xmm1, xmm2
comiss xmm0, xmm1
ja 0x10040500
movss xmm0, dword [esp + 0x78]
comiss xmm0, xmm2
movss xmm3, dword [0x1026bd68]
jbe 0x10040529
nop dword [eax]
subss xmm0, xmm3
comiss xmm0, xmm2
ja 0x10040520
movss xmm2, dword [0x1026be90]
comiss xmm2, xmm0
jbe 0x1004053f
addss xmm0, xmm3
comiss xmm2, xmm0
ja 0x10040536
movss xmm2, dword [0x1026b9d0]
mulss xmm0, xmm2
movss dword [esp + 8], xmm0
fld dword [esp + 8]
fsincos
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
fstp dword [edx]
fstp dword [eax]
mulss xmm1, xmm2
movss dword [esp + 8], xmm1
fld dword [esp + 8]
fsincos
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
fstp dword [edx]
fstp dword [eax]
movss xmm0, dword [esp + 0x5c]
movss xmm2, dword [esp + 0x58]
movss xmm3, dword [esp + 0x64]
xorps xmm3, xmmword [0x1026c420]
mulss xmm2, xmm0
mulss xmm0, dword [esp + 0x60]
movss dword [esp + 8], xmm2
movss dword [esp + 0x10], xmm3
movaps xmm1, xmm0
movss dword [esp + 0xc], xmm0
mulss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100405e3
sqrtsd xmm0, xmm0
jmp 0x100405e8
call fcn.1020bb20
xorps xmm3, xmm3
xorps xmm4, xmm4
cvtsd2ss xmm3, xmm0
ucomiss xmm3, xmm4
lahf
test ah, 0x44
jnp 0x1004061b
movss xmm1, dword [esp + 8]
movss xmm0, dword [esp + 0xc]
movss xmm2, dword [esp + 0x10]
divss xmm1, xmm3
divss xmm0, xmm3
divss xmm2, xmm3
jmp 0x10040624
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
movss xmm3, dword [esp + 0x68]
movss xmm6, dword [esp + 0x80]
movss xmm5, dword [esp + 0x84]
mulss xmm0, xmm3
mov dword [esp + 0x100], 0x7f800000
mulss xmm1, xmm3
mov dword [esp + 0xfc], 0x7f800000
addss xmm0, xmm5
mulss xmm2, xmm3
mov dword [esp + 0xf8], 0x7f800000
movss xmm3, dword [esp + 0x88]
addss xmm1, xmm6
mov dword [esp + 0x10c], 0x7f800000
addss xmm2, xmm3
mov dword [esp + 0x108], 0x7f800000
subss xmm0, xmm5
mov dword [esp + 0x104], 0x7f800000
mov dword [esp + 0x118], 0x7f800000
subss xmm1, xmm6
mov dword [esp + 0x114], 0x7f800000
mov dword [esp + 0x110], 0x7f800000
subss xmm2, xmm3
mov byte [esp + 0xe5], 1
movss dword [esp + 0xb4], xmm0
mulss xmm0, xmm0
movss dword [esp + 0xb0], xmm1
mulss xmm1, xmm1
movss dword [esp + 0xb8], xmm2
mulss xmm2, xmm2
addss xmm0, xmm1
addss xmm0, xmm2
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jp 0x10040714
mov byte [esp + 0xe5], 0
mov ecx, dword [0x1029a49c]
lea edx, [esp + 0xf8]
push edx
push dword [esp + 0x1c]
mov dword [esp + 0xd8], 0
lea edx, [esp + 0xa8]
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe8], 0
mov byte [esp + 0xec], 1
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
movss dword [esp + 0xa8], xmm6
movss dword [esp + 0xac], xmm5
movss dword [esp + 0xb0], xmm3
mov eax, dword [ecx]
push 0x4600400b
push edx
call dword [eax + 0xc]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x144], eax
jne 0x100407b6
inc esi
movd xmm0, esi
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1026bd34]
mulss xmm0, dword [0x1026bcac]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [esp + 0x6c]
jae 0x1004080b
mov eax, esi
sub eax, edi
add eax, 0xff
cmp eax, dword [esp + 0x70]
jl 0x10040803
movss xmm1, dword [0x1026bac0]
inc edi
cmp edi, 0xff
jl 0x10040340
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret