Function at 0x100a35b0
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x108
mov eax, dword [0x10164bc0]
xor eax, esp
mov dword [esp + 0x104], eax
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [0x10164b78]
mov ecx, dword [esi + 0x90]
mov dword [esp + 0x30], eax
lea eax, [esi + 0x8c]
shl ecx, 6
cmp byte [esi + 0x1e8], 0
movss xmm1, dword [esi + 0x54]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
push edi
mov dword [esp + 0x2c], esi
lea edi, [esi + 0x1c4]
movss dword [esp + 0x30], xmm1
movss xmm2, dword [ecx + eax - 0x10]
movss xmm3, dword [ecx + eax - 8]
movss xmm0, dword [ecx + eax - 0xc]
movss dword [esp + 0xc], xmm2
movss dword [esp + 0x80], xmm2
movss dword [esp + 0x84], xmm0
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x88], xmm3
je 0x100a364f
movss xmm0, dword [0x1011fc14]
jmp 0x100a3698
subss xmm2, dword [edi]
movaps xmm1, xmm0
movaps xmm0, xmm3
subss xmm1, dword [edi + 4]
subss xmm0, dword [edi + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x100a3689
sqrtsd xmm0, xmm0
jmp 0x100a368e
call fcn.100d3870
movss xmm1, dword [esp + 0x30]
cvtsd2ss xmm0, xmm0
divss xmm1, dword [esi + 0x1e0]
lea edx, [esi + 0x98]
mov eax, dword [esi + 8]
mov ecx, dword [edx + 8]
mov dword [esp + 0x8c], eax
mulss xmm0, dword [esi + 0x1e4]
mulss xmm1, xmm0
movss dword [esp + 0x30], xmm1
cmp dword [edx + 4], ecx
jne 0x100a36de
mov eax, ecx
shr eax, 1
add eax, ecx
mov ecx, edx
push eax
call fcn.100aab80
lea edx, [esi + 0x98]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [ebp + 8]
movss xmm7, dword [0x1011fc14]
mov dword [eax + ecx*4], esi
mov esi, dword [esp + 0x2c]
inc dword [edx + 4]
mov eax, dword [ebp + 8]
mov dword [esi + 0x14], eax
xor al, al
mov byte [esp + 0xb], al
mov eax, dword [esp + 0x34]
movss xmm1, dword [eax + 8]
movaps xmm0, xmm1
andps xmm0, xmmword [0x1013b2d0]
comiss xmm7, xmm0
jbe 0x100a37cd
cvtps2pd xmm0, xmm1
call fcn.100d2ca0
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x101173f0]
movss dword [esp + 0x78], xmm0
cvtss2sd xmm0, xmm0
call fcn.100d34e0
movss xmm1, dword [0x1011fc14]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0x34]
divss xmm1, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x40], xmm1
mulss xmm0, dword [eax + 0x14]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax + 0x20]
fld qword [esp + 0x10]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call fcn.100d2760
mov eax, dword [esp + 0x34]
movss xmm1, dword [esp + 0x40]
movaps xmm0, xmm1
fstp dword [esp + 0x74]
mulss xmm0, dword [eax + 4]
mulss xmm1, dword [eax]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call fcn.100d2760
fstp dword [esp + 0x7c]
jmp 0x100a3883
comiss xmm1, dword [0x10138210]
mov dword [esp + 0x7c], 0
movss xmm0, dword [eax + 0xc]
movss xmm2, dword [eax + 0x18]
ja 0x100a382d
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
cvtps2pd xmm0, xmm2
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call fcn.100d2760
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
lea edi, [esi + 0x1c4]
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x78], 0x3fc90fdb
addss xmm0, dword [0x1011fc10]
jmp 0x100a387d
xorps xmm0, xmmword [0x101173f0]
xorps xmm2, xmmword [0x101173f0]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
xorps xmm0, xmm0
fld qword [esp + 0x10]
cvtss2sd xmm0, xmm2
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call fcn.100d2760
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x78], 0xbfc90fdb
subss xmm0, dword [0x1011fc10]
movss dword [esp + 0x74], xmm0
cmp byte [esi + 0x1e8], 0
movss xmm1, dword [esi + 0x58]
movss dword [esp + 0x40], xmm1
je 0x100a38a1
movss xmm0, dword [0x1011fc14]
jmp 0x100a38f9
movss xmm1, dword [esp + 0xc]
movss xmm2, dword [esp + 0x84]
subss xmm2, dword [edi + 4]
subss xmm1, dword [edi]
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [edi + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x100a38ea
sqrtsd xmm0, xmm0
jmp 0x100a38ef
call fcn.100d3870
movss xmm1, dword [esp + 0x40]
cvtsd2ss xmm0, xmm0
divss xmm1, dword [esi + 0x1e0]
mov eax, dword [0x10164b78]
mov edx, str.axisX
mov ecx, dword [eax + 0x9c]
mov eax, dword [eax + 0x98]
mov ecx, dword [eax + ecx*4 - 4]
mov edi, ecx
mov al, 0x61
mulss xmm0, dword [esi + 0x1e4]
mulss xmm0, xmm1
movss dword [esp + 0x40], xmm0
movsx eax, al
lea edx, [edx + 1]
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x100a3931
mov dword [esp + 0x48], edi
mov edx, ecx
mov dword [esp + 0xd0], edi
mov al, 0x61
mov dword [esp + 0xd4], 0x3f800000
mov edi, str.axisY
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0xff0000ff
movsx eax, al
lea edi, [edi + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
test al, al
jne 0x100a3985
mov edi, dword [esp + 0x48]
mov esi, str.axisZ
mov dword [esp + 0x4c], edx
mov al, 0x61
mov dword [esp + 0xe4], edx
mov edx, ecx
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0x3f800000
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xff00ff
nop dword [eax]
movsx eax, al
lea esi, [esi + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [esi]
test al, al
jne 0x100a39e0
mov esi, dword [esp + 0x2c]
mov al, 0x61
mov dword [esp + 0x50], edx
mov dword [esp + 0xf8], edx
mov edx, str.axisV
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0x3f800000
mov dword [esp + 0x108], 0xffff
movsx eax, al
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x100a3a36
mov eax, dword [esi + 0x1a8]
movq xmm0, qword [esi + 0x1a0]
mov dword [esp + 0x98], eax
mov eax, dword [esi + 0x1b4]
movq qword [esp + 0x90], xmm0
movq xmm0, qword [esi + 0x1ac]
mov dword [esp + 0xa4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x28], ecx
movq qword [esp + 0x9c], xmm0
cmp dword [esi + 0x1c], eax
je 0x100a3b36
movss xmm3, dword [esp + 0xc]
subss xmm3, dword [esp + 0x90]
movss xmm1, dword [esp + 0x84]
subss xmm1, dword [esp + 0x94]
movss xmm4, dword [esp + 0x38]
subss xmm4, dword [esp + 0x98]
movaps xmm0, xmm3
mulss xmm0, xmm3
mulss xmm3, dword [esp + 0x9c]
movaps xmm2, xmm1
mulss xmm2, xmm1
mulss xmm1, dword [esp + 0xa0]
addss xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
mulss xmm4, dword [esp + 0xa4]
addss xmm1, xmm3
movss xmm3, dword [esp + 0x30]
addss xmm2, xmm0
xorps xmm0, xmm0
mulss xmm3, xmm3
addss xmm1, xmm4
comiss xmm0, xmm1
jbe 0x100a3b1d
comiss xmm2, xmm3
ja 0x100a3b2f
mulss xmm1, xmm1
subss xmm2, xmm1
comiss xmm3, xmm2
setae al
test al, al
jne 0x100a3b36
mov byte [esp + 0xa], 0
jmp 0x100a3b3b
mov byte [esp + 0xa], 1
cmp byte [ebp + 0x10], 0
je 0x100a3e62
cmp dword [esi + 8], edi
jne 0x100a3baf
movss xmm3, dword [esi + 0x2c]
movss xmm1, dword [esi + 0x30]
movaps xmm0, xmm3
mulss xmm0, xmm3
mulss xmm1, xmm1
movaps xmmword [esp + 0x60], xmm3
addss xmm1, xmm0
movss xmm0, dword [esi + 0x34]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a3b87
sqrtsd xmm0, xmm0
jmp 0x100a3b8c
call fcn.100d3870
movss xmm1, dword [esi + 0x34]
cvtsd2ss xmm0, xmm0
movaps xmm3, xmmword [esp + 0x60]
divss xmm1, xmm0
movss xmm2, dword [esi + 0x30]
movss dword [esp + 0x18], xmm1
mov eax, dword [esp + 0x18]
jmp 0x100a3c27
mov eax, dword [esp + 0x24]
mov edi, dword [eax + 4]
mov esi, dword [eax]
shl edi, 6
movss xmm3, dword [edi + esi - 0x40]
movss xmm1, dword [edi + esi - 0x3c]
movaps xmm0, xmm3
mulss xmm0, xmm3
mulss xmm1, xmm1
movups xmmword [esp + 0x60], xmm3
addss xmm1, xmm0
movss xmm0, dword [edi + esi - 0x38]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a3bfb
sqrtsd xmm0, xmm0
jmp 0x100a3c00
call fcn.100d3870
movss xmm1, dword [edi + esi - 0x38]
cvtsd2ss xmm0, xmm0
movups xmm3, xmmword [esp + 0x60]
divss xmm1, xmm0
movss xmm2, dword [edi + esi - 0x3c]
mov esi, dword [esp + 0x2c]
movss dword [esp + 0x68], xmm1
mov eax, dword [esp + 0x68]
divss xmm2, xmm0
mov dword [esp + 0xdc], eax
mov eax, dword [esi + 8]
divss xmm3, xmm0
unpcklps xmm3, xmm2
movq qword [esp + 0xd4], xmm3
cmp eax, dword [esp + 0x4c]
jne 0x100a3cb9
movss xmm3, dword [esi + 0x38]
movss xmm1, dword [esi + 0x3c]
movaps xmm0, xmm3
mulss xmm0, xmm3
mulss xmm1, xmm1
movups xmmword [esp + 0x90], xmm3
addss xmm1, xmm0
movss xmm0, dword [esi + 0x40]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a3c8b
sqrtsd xmm0, xmm0
jmp 0x100a3c90
call fcn.100d3870
movss xmm1, dword [esi + 0x40]
cvtsd2ss xmm0, xmm0
movups xmm3, xmmword [esp + 0x90]
divss xmm1, xmm0
movss xmm2, dword [esi + 0x3c]
movss dword [esp + 0x18], xmm1
mov eax, dword [esp + 0x18]
jmp 0x100a3d37
mov eax, dword [esp + 0x24]
mov edi, dword [eax + 4]
mov esi, dword [eax]
shl edi, 6
movss xmm3, dword [edi + esi - 0x30]
movss xmm1, dword [edi + esi - 0x2c]
movaps xmm0, xmm3
mulss xmm0, xmm3
mulss xmm1, xmm1
movups xmmword [esp + 0x90], xmm3
addss xmm1, xmm0
movss xmm0, dword [edi + esi - 0x28]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a3d08
sqrtsd xmm0, xmm0
jmp 0x100a3d0d
call fcn.100d3870
movss xmm1, dword [edi + esi - 0x28]
cvtsd2ss xmm0, xmm0
movss xmm2, dword [edi + esi - 0x2c]
divss xmm1, xmm0
mov esi, dword [esp + 0x2c]
movups xmm3, xmmword [esp + 0x90]
movss dword [esp + 0x68], xmm1
mov eax, dword [esp + 0x68]
divss xmm2, xmm0
mov dword [esp + 0xf0], eax
mov eax, dword [esi + 8]
divss xmm3, xmm0
unpcklps xmm3, xmm2
movq qword [esp + 0xe8], xmm3
cmp eax, dword [esp + 0x50]
jne 0x100a3dc9
movss xmm3, dword [esi + 0x44]
movss xmm1, dword [esi + 0x48]
movaps xmm0, xmm3
mulss xmm0, xmm3
mulss xmm1, xmm1
movups xmmword [esp + 0x90], xmm3
addss xmm1, xmm0
movss xmm0, dword [esi + 0x4c]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a3d9b
sqrtsd xmm0, xmm0
jmp 0x100a3da0
call fcn.100d3870
movss xmm1, dword [esi + 0x4c]
cvtsd2ss xmm0, xmm0
movups xmm3, xmmword [esp + 0x90]
divss xmm1, xmm0
movss xmm2, dword [esi + 0x48]
movss dword [esp + 0x18], xmm1
mov eax, dword [esp + 0x18]
jmp 0x100a3e47
mov eax, dword [esp + 0x24]
mov edi, dword [eax + 4]
mov esi, dword [eax]
shl edi, 6
movss xmm0, dword [edi + esi - 0x20]
movaps xmm1, xmm0
mulss xmm1, xmm0
movups xmmword [esp + 0x90], xmm0
movss xmm0, dword [edi + esi - 0x1c]
mulss xmm0, xmm0
addss xmm1, xmm0
movss xmm0, dword [edi + esi - 0x18]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a3e18
sqrtsd xmm0, xmm0
jmp 0x100a3e1d
call fcn.100d3870
movss xmm1, dword [edi + esi - 0x18]
cvtsd2ss xmm0, xmm0
movss xmm2, dword [edi + esi - 0x1c]
divss xmm1, xmm0
mov esi, dword [esp + 0x2c]
movups xmm3, xmmword [esp + 0x90]
movss dword [esp + 0x68], xmm1
mov eax, dword [esp + 0x68]
divss xmm2, xmm0
mov dword [esp + 0x104], eax
divss xmm3, xmm0
unpcklps xmm3, xmm2
movq qword [esp + 0xfc], xmm3
lea eax, [esp + 0x90]
mov dword [esp + 0x90], 0x3f800000
push eax
lea ecx, [esi + 0x8c]
mov dword [esp + 0xa4], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xa8], 0x3f800000
mov dword [esp + 0xb8], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xbc], 0x3f800000
mov dword [esp + 0xcc], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xd0], 0x3f800000
call fcn.100aaa30
mov eax, dword [esp + 0x50]
xor edi, edi
mov ecx, dword [esp + 0x4c]
nop
test edi, edi
jne 0x100a3f48
mov edx, dword [esi + 8]
cmp edx, ecx
je 0x100a3f45
cmp edx, eax
je 0x100a3f45
cmp edx, dword [esp + 0x28]
jne 0x100a3f80
inc edi
jmp 0x100a3f30
cmp edi, 1
jne 0x100a3f5a
mov edx, dword [esi + 8]
cmp edx, eax
je 0x100a3f45
cmp edx, dword [esp + 0x48]
jmp 0x100a3f3d
cmp edi, 2
jne 0x100a3f80
mov eax, dword [esi + 8]
cmp eax, dword [esp + 0x48]
je 0x100a438f
cmp eax, ecx
mov ecx, dword [esp + 0x28]
je 0x100a4393
cmp eax, ecx
je 0x100a4393
movss xmm1, dword [esp + 0x30]
lea eax, [edi + edi*4]
mulss xmm1, dword [0x1013b288]
lea ecx, [esp + eax*4 + 0xd4]
mov esi, dword [esp + eax*4 + 0xd0]
lea edx, [esp + 0x74]
movss xmm0, dword [edx + edi*4]
lea edx, [edx + edi*4]
push ecx
mov dword [esp], 0
push dword [esp + eax*4 + 0xe4]
mov dword [esp + 0x14], ecx
sub esp, 8
mov dword [esp + 0x68], esi
movss dword [esp + 0x4c], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push ecx
lea ecx, [esp + 0x94]
push ecx
push esi
mov esi, dword [esp + 0x48]
mov ecx, esi
call fcn.100a91c0
cmp byte [esp + 0xa], 0
je 0x100a437d
movss xmm0, dword [esp + 0x40]
lea eax, [esp + 0x74]
lea eax, [eax + edi*4]
mov ecx, esi
push eax
sub esp, 0xc
lea eax, [esp + 0x90]
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x1f4]
movss dword [esp], xmm0
push dword [esp + 0x1c]
push eax
push dword [esp + 0x70]
call fcn.100a8990
test al, al
je 0x100a437d
lea eax, [esp + 0x74]
movss xmm0, dword [eax + edi*4]
lea eax, [eax + edi*4]
subss xmm0, dword [esi + 0x50]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
call fcn.100d34e0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x1011fc14]
subss xmm0, xmm1
movss dword [esp + 0x3c], xmm1
movss dword [esp + 0x54], xmm0
movsd xmm0, qword [esp + 0x10]
call fcn.100d36a0
mov eax, dword [esp + 0xc]
xorps xmm4, xmm4
movss xmm1, dword [0x1011fc14]
movss xmm6, dword [esp + 0x3c]
cvtsd2ss xmm4, xmm0
movss xmm3, dword [eax]
movss xmm2, dword [eax + 4]
movaps xmm0, xmm3
mulss xmm0, xmm3
movss xmm5, dword [esp + 0x54]
subss xmm1, xmm0
mulss xmm1, xmm6
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm3
movss xmm3, dword [eax + 8]
movaps xmm7, xmm3
mulss xmm0, xmm5
mulss xmm7, xmm4
movss dword [esp + 0x58], xmm1
movaps xmm1, xmm0
subss xmm1, xmm7
movss dword [esp + 0x44], xmm7
movss dword [esp + 0x54], xmm1
movaps xmm1, xmm3
mulss xmm1, dword [eax]
mulss xmm1, xmm5
movss dword [esp + 0x24], xmm1
movaps xmm1, xmm2
mulss xmm1, xmm4
movaps xmm7, xmm1
addss xmm7, dword [esp + 0x24]
movss dword [esp + 0x3c], xmm7
movss xmm7, dword [esp + 0x44]
addss xmm7, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
movss dword [esp + 0x44], xmm7
movss xmm7, dword [0x1011fc14]
subss xmm7, xmm0
mulss xmm7, xmm6
addss xmm7, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm2
mulss xmm3, xmm3
mulss xmm0, xmm5
movss xmm5, dword [eax]
mulss xmm5, xmm4
movaps xmm2, xmm0
movss dword [esp + 0x5c], xmm7
movss xmm7, dword [esi + 0x2c]
subss xmm2, xmm5
addss xmm5, xmm0
movss xmm0, dword [0x1011fc14]
subss xmm0, xmm3
movss dword [esp + 0x38], xmm2
movss xmm2, dword [esp + 0x24]
mulss xmm0, xmm6
subss xmm2, xmm1
movss xmm1, dword [esi + 0x30]
mulss xmm1, dword [esp + 0x54]
addss xmm0, xmm3
movss dword [esp + 0xc], xmm5
movss dword [esp + 0x24], xmm2
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm7
mulss xmm0, dword [esp + 0x58]
mov ecx, dword [esp + 0x34]
movss xmm5, dword [esi + 0x38]
movss xmm6, dword [esi + 0x40]
addss xmm1, xmm0
movss xmm3, dword [esi + 0x48]
movss xmm0, dword [esi + 0x34]
mulss xmm0, dword [esp + 0x3c]
movss xmm4, dword [esi + 0x44]
movss xmm2, dword [esi + 0x4c]
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, dword [esp + 0x58]
movss dword [esp + 0x90], xmm1
movss xmm1, dword [esi + 0x3c]
mulss xmm1, dword [esp + 0x54]
addss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esp + 0x3c]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esp + 0x58]
movss dword [esp + 0x9c], xmm1
movaps xmm1, xmm3
mulss xmm1, dword [esp + 0x54]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x3c]
addss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [esp + 0x44]
mulss xmm7, dword [esp + 0x24]
movss dword [esp + 0xa8], xmm1
movss xmm1, dword [esi + 0x30]
mulss xmm1, dword [esp + 0x5c]
addss xmm1, xmm0
movss xmm0, dword [esi + 0x34]
mulss xmm0, dword [esp + 0x38]
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, dword [esp + 0x44]
mulss xmm5, dword [esp + 0x24]
movss dword [esp + 0x94], xmm1
movss xmm1, dword [esi + 0x3c]
mulss xmm1, dword [esp + 0x5c]
addss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esp + 0x38]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esp + 0x44]
mulss xmm4, dword [esp + 0x24]
movss dword [esp + 0xa0], xmm1
movaps xmm1, xmm3
mulss xmm1, dword [esp + 0x5c]
mulss xmm3, dword [esp + 0xc]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x38]
addss xmm4, xmm3
addss xmm1, xmm0
movss xmm0, dword [esi + 0x34]
movss dword [esp + 0xac], xmm1
movss xmm1, dword [esi + 0x30]
mulss xmm1, dword [esp + 0xc]
addss xmm1, xmm7
movss xmm7, dword [esp + 0x10]
mulss xmm0, xmm7
mulss xmm6, xmm7
addss xmm1, xmm0
mulss xmm2, xmm7
movss xmm0, dword [esi + 0x3c]
mulss xmm0, dword [esp + 0xc]
addss xmm4, xmm2
movss dword [esp + 0x98], xmm1
addss xmm0, xmm5
movss dword [esp + 0xb0], xmm4
addss xmm0, xmm6
movss dword [esp + 0xa4], xmm0
movups xmm0, xmmword [esp + 0x90]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esp + 0xa0]
mov eax, dword [esp + 0xb0]
mov byte [esp + 0xb], 1
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x50]
inc edi
mov ecx, dword [esp + 0x4c]
cmp edi, 3
jl 0x100a3f30
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 8]
cmp eax, dword [esp + 0x48]
je 0x100a464d
cmp eax, dword [esp + 0x4c]
je 0x100a464d
cmp eax, dword [esp + 0x50]
je 0x100a464d
cmp byte [esp + 0xa], 0
movq xmm0, qword [esi + 0x1d0]
mov eax, dword [esi + 0x1d8]
movq qword [esp + 0x60], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x68], eax
movss dword [esp + 0xc], xmm0
je 0x100a4609
movss xmm0, dword [esp + 0x40]
lea eax, [esp + 0xc]
push eax
sub esp, 0xc
lea eax, [esp + 0x70]
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x40]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x1f4]
movss dword [esp], xmm0
push eax
lea eax, [esp + 0x94]
push eax
push ecx
mov ecx, esi
call fcn.100a8990
movss xmm0, dword [esp + 0xc]
test al, al
je 0x100a4609
push ecx
movss dword [esp], xmm0
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0xd8]
movss dword [esp + 0x18], xmm0
push eax
call fcn.100a6cd0
movss xmm7, dword [esi + 0x48]
add esp, 0xc
movss xmm5, dword [esi + 0x44]
movss xmm6, dword [esi + 0x4c]
movss xmm4, dword [eax + 0xc]
movss xmm3, dword [eax]
movaps xmm0, xmm4
mulss xmm0, dword [esi + 0x30]
movaps xmm1, xmm3
mulss xmm1, dword [esi + 0x2c]
movss xmm2, dword [eax + 0x18]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi + 0x34]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi + 0x3c]
mulss xmm4, xmm7
movss dword [esp + 0x90], xmm1
movaps xmm1, xmm3
mulss xmm1, dword [esi + 0x38]
mulss xmm3, xmm5
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi + 0x40]
addss xmm3, xmm4
mulss xmm2, xmm6
movss xmm4, dword [eax + 4]
addss xmm1, xmm0
addss xmm3, xmm2
movss xmm2, dword [eax + 0x1c]
movss dword [esp + 0x9c], xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esi + 0x2c]
movss dword [esp + 0xa8], xmm3
movss xmm3, dword [eax + 0x10]
movaps xmm0, xmm3
mulss xmm0, dword [esi + 0x30]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi + 0x34]
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esi + 0x3c]
mulss xmm3, xmm7
movss dword [esp + 0x94], xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esi + 0x38]
mulss xmm4, xmm5
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi + 0x40]
addss xmm4, xmm3
mulss xmm2, xmm6
movss xmm3, dword [eax + 0x14]
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esi + 0x30]
addss xmm4, xmm2
movss xmm2, dword [eax + 0x20]
movss dword [esp + 0xa0], xmm1
movss dword [esp + 0xac], xmm4
movss xmm4, dword [eax + 8]
movaps xmm1, xmm4
mulss xmm1, dword [esi + 0x2c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi + 0x34]
addss xmm1, xmm0
movaps xmm0, xmm3
movss dword [esp + 0x98], xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esi + 0x38]
mulss xmm0, dword [esi + 0x3c]
mov ecx, dword [esp + 0x34]
mulss xmm4, xmm5
mov byte [esp + 0xb], 1
addss xmm1, xmm0
mulss xmm3, xmm7
movaps xmm0, xmm2
mulss xmm2, xmm6
mulss xmm0, dword [esi + 0x40]
addss xmm4, xmm3
addss xmm1, xmm0
movups xmm0, xmmword [esp + 0x90]
addss xmm4, xmm2
movups xmmword [ecx], xmm0
movss dword [esp + 0xa4], xmm1
movups xmm0, xmmword [esp + 0xa0]
movss dword [esp + 0xb0], xmm4
mov eax, dword [esp + 0xb0]
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
movss xmm0, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x2c]
or edx, 0xffffffff
cmp ecx, dword [esi + 8]
mov eax, 0xffd700ff
mov dword [esp], 0x3f800000
cmovne eax, edx
push eax
sub esp, 8
lea eax, [esp + 0x70]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x40]
movss dword [esp], xmm0
push eax
lea eax, [esp + 0x94]
push eax
push ecx
mov ecx, esi
call fcn.100a91c0
dec dword [esi + 0x90]
mov eax, dword [esp + 0x8c]
cmp eax, dword [esi + 8]
je 0x100a4678
mov eax, dword [esp + 0x34]
movups xmm0, xmmword [eax]
movups xmmword [esi + 0x2c], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esi + 0x3c], xmm0
mov ecx, dword [eax + 0x20]
mov dword [esi + 0x4c], ecx
dec dword [esi + 0x9c]
mov ecx, dword [esp + 0x10c]
mov al, byte [esp + 0xb]
pop edi
pop esi
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret