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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xf8
mov eax, dword [0x100dd360]
xor eax, esp
mov dword [esp + 0xf4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 0x10]
push edi
test byte [eax], 1
mov edi, dword [ebp + 8]
mov dword [esp + 0x18], edi
mov dword [esp + 0x8c], eax
jne 0x1009669a
mov ecx, dword [0x1023b45c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x14], eax
call dword [esp + 0x14]
movss xmm0, dword [esi + 8]
fstp dword [esp + 0x14]
cvttss2si eax, dword [esp + 0x14]
movd xmm1, eax
mov eax, dword [0x1023b410]
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [eax + 0x20]
subss xmm0, xmm1
movss dword [esi + 8], xmm0
jmp 0x100966c9
mov eax, dword [0x1023b5e8]
add eax, 0xffffffc6
xor eax, 0xbc884751
test byte [eax + edi], 1
je 0x100966c9
cmp byte [ebp + 0x18], 0
jne 0x100966c9
mov ecx, dword [0x1023b460]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x14], eax
call dword [esp + 0x14]
fstp dword [esi + 8]
mov eax, dword [esp + 0x78]
push 0x30
push 0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x8c], eax
mov eax, dword [0x1023b410]
movq qword [esp + 0x84], xmm0
movss xmm1, dword [eax + 0x20]
lea eax, [esp + 0xcc]
movaps xmm0, xmm1
mov dword [esp + 0xc8], 0
mulss xmm0, dword [esi]
push eax
addss xmm0, dword [esp + 0x88]
movss dword [esp + 0x20], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esi + 4]
mulss xmm1, dword [esi + 8]
addss xmm0, dword [esp + 0x8c]
addss xmm1, dword [esp + 0x90]
movss dword [esp + 0x94], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0xac], xmm0
movss dword [esp + 0x28], xmm1
movups xmmword [esp + 0xbc], xmm0
call sub.VCRUNTIME140.dll_memset
movss xmm1, dword [esp + 0x20]
add esp, 0xc
movss xmm6, dword [esp + 0x7c]
movss xmm0, dword [esp + 0x88]
subss xmm1, xmm6
movss xmm7, dword [esp + 0x80]
movss xmm2, dword [esp + 0x1c]
subss xmm0, xmm7
subss xmm2, dword [esp + 0x84]
mov ecx, dword [0x1023b5b0]
mov edx, dword [0x1023b5ac]
add ecx, 0xffffffd4
mov eax, dword [0x1023b564]
add edx, 0xffffffd5
movss dword [esp + 0x34], xmm0
xor ecx, 0xbc884743
movss dword [esp + 0x30], xmm1
xor edx, 0xbc884742
mulss xmm0, xmm0
add ecx, edi
add edx, edi
mov dword [esp + 0x90], eax
mulss xmm1, xmm1
mov dword [esp + 0x98], 0
movss dword [esp + 0x38], xmm2
mulss xmm2, xmm2
mov dword [esp + 0x9c], 0
addss xmm0, xmm1
mov dword [esp + 0x94], edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x60], 0
mov byte [esp + 0x65], 1
addss xmm0, xmm2
ucomiss xmm0, dword [0x100d1ed4]
lahf
test ah, 0x44
jp 0x10096831
mov byte [esp + 0x65], 0
movss xmm3, dword [ecx]
subss xmm3, dword [edx]
movss xmm2, dword [ecx + 4]
subss xmm2, dword [edx + 4]
movss xmm1, dword [ecx + 8]
subss xmm1, dword [edx + 8]
movss xmm4, dword [0x100d1fb0]
movaps xmm0, xmm3
mulss xmm0, xmm4
mov dword [esp + 0x5c], 0
mulss xmm3, xmm3
movss dword [esp + 0x50], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm4
mulss xmm2, xmm2
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm1
mulss xmm1, xmm1
addss xmm3, xmm2
mulss xmm0, xmm4
movss dword [esp + 0x58], xmm0
addss xmm3, xmm1
movsd xmm1, qword [0x100d1f98]
mulss xmm3, dword [0x100d1f7c]
cvtps2pd xmm0, xmm3
comisd xmm1, xmm0
seta byte [esp + 0x64]
movss xmm2, dword [edx + 8]
movss xmm0, dword [edx]
movss xmm1, dword [edx + 4]
lea edx, [esp + 0xa0]
movss xmm3, dword [ecx + 8]
movss xmm5, dword [ecx]
addss xmm3, xmm2
movss xmm4, dword [ecx + 4]
addss xmm5, xmm0
movss xmm0, dword [0x100d1fb0]
addss xmm4, xmm1
mov ecx, dword [0x1023b3cc]
push edx
mulss xmm3, xmm0
lea edx, [esp + 0x94]
mov dword [esp + 0x50], 0
mulss xmm5, xmm0
mov dword [esp + 0x30], 0
mulss xmm4, xmm0
push edx
movss xmm0, dword [esp + 0x8c]
addss xmm6, xmm5
addss xmm0, xmm3
addss xmm7, xmm4
push 0x200400b
lea edx, [esp + 0x2c]
movss dword [esp + 0x2c], xmm6
movss dword [esp + 0x34], xmm0
movss xmm0, dword [0x100d2390]
xorps xmm5, xmm0
movss dword [esp + 0x30], xmm7
xorps xmm4, xmm0
movss dword [esp + 0x4c], xmm5
xorps xmm3, xmm0
movss dword [esp + 0x50], xmm4
movss dword [esp + 0x54], xmm3
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x14]
call eax
movss xmm0, dword [esp + 0xcc]
ucomiss xmm0, dword [0x100d1fec]
lahf
test ah, 0x44
jnp 0x10096c8f
xor edi, edi
nop dword [eax]
movss xmm5, dword [esp + 0xbc]
movss xmm6, dword [esp + 0xb8]
movaps xmm1, xmm5
movss xmm2, dword [esi + 4]
movaps xmm0, xmm6
movss xmm3, dword [esi]
movss xmm7, dword [esp + 0xc0]
movss xmm4, dword [esi + 8]
mulss xmm0, xmm3
mulss xmm1, xmm2
addss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm4
addss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, xmm1
subss xmm3, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm1
subss xmm2, xmm0
movss dword [esi], xmm3
movaps xmm0, xmm7
mulss xmm0, xmm1
movaps xmm1, xmm6
mulss xmm1, xmm3
subss xmm4, xmm0
movss dword [esi + 4], xmm2
movaps xmm0, xmm5
mulss xmm0, xmm2
movss dword [esi + 8], xmm4
addss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm4
addss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10096a50
mulss xmm6, xmm1
mulss xmm5, xmm1
mulss xmm7, xmm1
subss xmm3, xmm6
subss xmm2, xmm5
subss xmm4, xmm7
movss dword [esi], xmm3
movss dword [esi + 4], xmm2
movss dword [esi + 8], xmm4
movss xmm0, dword [0x100d1fec]
subss xmm0, dword [esp + 0xcc]
movss xmm6, dword [esp + 0xac]
movss xmm7, dword [esp + 0xb0]
mov ecx, dword [0x1023b5b0]
mov edx, dword [0x1023b5ac]
add ecx, 0xffffffd4
cvttss2si eax, xmm0
add edx, 0xffffffd5
mov dword [esp + 0x3c], 0
xor ecx, 0xbc884743
mov dword [esp + 0x60], 0
add ecx, dword [esp + 0x18]
xor edx, 0xbc884742
add edx, dword [esp + 0x18]
mov byte [esp + 0x65], 1
movd xmm0, eax
mov eax, dword [0x1023b410]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
mulss xmm2, xmm0
mulss xmm3, xmm0
addss xmm2, xmm7
mulss xmm4, xmm0
movss xmm0, dword [esp + 0xb4]
addss xmm3, xmm6
movss dword [esp + 0x1c], xmm0
addss xmm4, xmm0
subss xmm2, xmm7
subss xmm3, xmm6
subss xmm4, xmm0
movss dword [esp + 0x34], xmm2
mulss xmm2, xmm2
movss dword [esp + 0x30], xmm3
mulss xmm3, xmm3
movss dword [esp + 0x38], xmm4
mulss xmm4, xmm4
addss xmm2, xmm3
addss xmm2, xmm4
ucomiss xmm2, dword [0x100d1ed4]
lahf
test ah, 0x44
jp 0x10096b2e
mov byte [esp + 0x65], 0
movss xmm3, dword [ecx]
subss xmm3, dword [edx]
movss xmm1, dword [ecx + 4]
subss xmm1, dword [edx + 4]
movss xmm2, dword [ecx + 8]
subss xmm2, dword [edx + 8]
movss xmm4, dword [0x100d1fb0]
movaps xmm0, xmm3
mulss xmm0, xmm4
mov dword [esp + 0x5c], 0
mulss xmm3, xmm3
movss dword [esp + 0x50], xmm0
movaps xmm0, xmm1
mulss xmm0, xmm4
mulss xmm1, xmm1
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm2
mulss xmm2, xmm2
addss xmm3, xmm1
mulss xmm0, xmm4
movsd xmm1, qword [0x100d1f98]
movss dword [esp + 0x58], xmm0
addss xmm3, xmm2
mulss xmm3, dword [0x100d1f7c]
cvtps2pd xmm0, xmm3
comisd xmm1, xmm0
seta byte [esp + 0x64]
movss xmm4, dword [edx + 8]
movss xmm1, dword [edx]
movss xmm2, dword [ecx + 8]
movss xmm0, dword [edx + 4]
addss xmm4, xmm2
movss xmm3, dword [ecx]
lea edx, [esp + 0xa0]
movss xmm5, dword [ecx + 4]
addss xmm3, xmm1
movss xmm1, dword [0x100d1fb0]
addss xmm5, xmm0
movss xmm0, dword [esp + 0x1c]
mov ecx, dword [0x1023b3cc]
mulss xmm4, xmm1
push edx
mulss xmm3, xmm1
lea edx, [esp + 0x94]
mov dword [esp + 0x50], 0
addss xmm0, xmm4
mulss xmm5, xmm1
mov dword [esp + 0x30], 0
addss xmm6, xmm3
push edx
addss xmm7, xmm5
movss dword [esp + 0x30], xmm0
lea edx, [esp + 0x28]
movss xmm0, dword [0x100d2390]
xorps xmm3, xmm0
movss dword [esp + 0x28], xmm6
xorps xmm5, xmm0
movss dword [esp + 0x48], xmm3
xorps xmm4, xmm0
movss dword [esp + 0x2c], xmm7
movss dword [esp + 0x4c], xmm5
movss dword [esp + 0x50], xmm4
mov eax, dword [ecx]
push 0x200400b
push edx
mov eax, dword [eax + 0x14]
call eax
movss xmm0, dword [esp + 0xcc]
ucomiss xmm0, dword [0x100d1fec]
lahf
test ah, 0x44
jnp 0x10096c8b
inc edi
cmp edi, 2
jl 0x10096990
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
movss xmm0, dword [esp + 0xb0]
movss xmm6, dword [esp + 0xb4]
movss xmm7, dword [esp + 0xac]
movss dword [eax + 4], xmm0
movaps xmm0, xmm6
subss xmm0, dword [0x100d205c]
movss dword [eax], xmm7
movss dword [eax + 8], xmm6
mov ecx, dword [0x1023b5b0]
mov edx, dword [0x1023b5ac]
add ecx, 0xffffffd4
subss xmm0, xmm6
mov dword [esp + 0x30], 0
add edx, 0xffffffd5
mov dword [esp + 0x34], 0
xor ecx, 0xbc884743
mov dword [esp + 0x3c], 0
xor edx, 0xbc884742
mov dword [esp + 0x60], 0
add ecx, edi
mov byte [esp + 0x65], 1
movss dword [esp + 0x38], xmm0
add edx, edi
mulss xmm0, xmm0
ucomiss xmm0, dword [0x100d1ed4]
lahf
test ah, 0x44
jp 0x10096d2e
mov byte [esp + 0x65], 0
movss xmm3, dword [ecx]
subss xmm3, dword [edx]
movss xmm2, dword [ecx + 4]
subss xmm2, dword [edx + 4]
movss xmm1, dword [ecx + 8]
subss xmm1, dword [edx + 8]
movss xmm4, dword [0x100d1fb0]
movaps xmm0, xmm3
mulss xmm0, xmm4
mov dword [esp + 0x5c], 0
mulss xmm3, xmm3
movss dword [esp + 0x50], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm4
mulss xmm2, xmm2
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm1
mulss xmm0, xmm4
addss xmm3, xmm2
mulss xmm1, xmm1
movss dword [esp + 0x58], xmm0
addss xmm3, xmm1
movsd xmm1, qword [0x100d1f98]
mulss xmm3, dword [0x100d1f7c]
cvtps2pd xmm0, xmm3
comisd xmm1, xmm0
seta byte [esp + 0x64]
movss xmm0, dword [edx]
movss xmm5, dword [ecx]
movss xmm1, dword [edx + 4]
addss xmm5, xmm0
movss xmm2, dword [edx + 8]
lea edx, [esp + 0xa0]
movss xmm4, dword [ecx + 4]
movss xmm3, dword [ecx + 8]
addss xmm4, xmm1
movss xmm0, dword [0x100d1fb0]
addss xmm3, xmm2
mov ecx, dword [0x1023b3cc]
mulss xmm5, xmm0
push edx
mulss xmm4, xmm0
lea edx, [esp + 0x94]
mov dword [esp + 0x50], 0
mulss xmm3, xmm0
movaps xmm0, xmm5
mov dword [esp + 0x30], 0
addss xmm0, xmm7
push edx
addss xmm6, xmm3
push 0x200400b
lea edx, [esp + 0x2c]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmm4
addss xmm0, dword [esp + 0xbc]
movss dword [esp + 0x34], xmm6
push edx
movss dword [esp + 0x34], xmm0
movss xmm0, dword [0x100d2390]
xorps xmm5, xmm0
xorps xmm4, xmm0
xorps xmm3, xmm0
movss dword [esp + 0x50], xmm5
movss dword [esp + 0x54], xmm4
movss dword [esp + 0x58], xmm3
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov ecx, dword [esp + 0x8c]
movss xmm0, dword [0x100d1fec]
mov eax, dword [ecx]
and eax, 0xfffffffe
comiss xmm0, dword [esp + 0xcc]
mov dword [ecx], eax
ja 0x10096ea4
cmp byte [esp + 0xd6], 0
jne 0x10096ea4
cmp byte [esp + 0xd7], 0
je 0x10096ebb
movss xmm0, dword [esp + 0xc0]
comiss xmm0, dword [0x100d1fc4]
jbe 0x10096ebb
or eax, 1
mov dword [ecx], eax
mov ecx, dword [esp + 0xfc]
pop edi
pop esi
xor ecx, esp
call fcn.100bb796
mov esp, ebp
pop ebp
ret 0x14