Function at 0x100a46a0
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, 0x178
mov eax, dword [0x10164bc0]
xor eax, esp
mov dword [esp + 0x174], eax
mov eax, dword [ebp + 0xc]
movss xmm4, dword [0x1011fc14]
push esi
mov esi, dword [0x10164b78]
mov dword [esp + 0x44], eax
push edi
movss dword [esp + 0x4c], xmm4
mov ecx, dword [esi + 0x90]
lea edi, [esi + 0x1c4]
mov eax, dword [esi + 0x8c]
movss xmm0, dword [esi + 0x54]
shl ecx, 6
cmp byte [esi + 0x1e8], 0
movss dword [esp + 0x44], xmm0
mov dword [esp + 0x38], edi
movss xmm2, dword [ecx + eax - 0x10]
movss xmm1, dword [ecx + eax - 0xc]
movss xmm3, dword [ecx + eax - 8]
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x84], xmm2
movss dword [esp + 0x24], xmm1
movss dword [esp + 0x88], xmm1
movss dword [esp + 0x18], xmm3
movss dword [esp + 0x8c], xmm3
je 0x100a4748
movaps xmm1, xmm4
jmp 0x100a4795
subss xmm2, dword [edi]
subss xmm1, dword [edi + 4]
movaps xmm0, xmm3
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 0x100a477f
sqrtsd xmm0, xmm0
jmp 0x100a4784
call fcn.100d3870
xorps xmm1, xmm1
mov dword [esp + 0x38], edi
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0x44]
divss xmm0, dword [esi + 0x1e0]
lea edx, [esi + 0x98]
mov ecx, dword [edx + 8]
mulss xmm1, dword [esi + 0x1e4]
mulss xmm0, xmm1
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x78], xmm0
cmp dword [edx + 4], ecx
jne 0x100a47d7
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 edi, dword [ebp + 8]
mov dword [eax + ecx*4], edi
mov eax, edi
inc dword [edx + 4]
movss xmm0, dword [esi + 0x58]
mov edi, dword [esp + 0x38]
mov dword [esi + 0x14], eax
xor al, al
mov byte [esp + 0x12], al
mov al, byte [esi + 0x1e8]
movss dword [esp + 0x40], xmm0
mov byte [esp + 0xc], al
test al, al
je 0x100a4817
movss xmm1, dword [0x1011fc14]
jmp 0x100a486f
movss xmm1, dword [esp + 0x24]
movss xmm2, dword [esp + 0x20]
subss xmm2, dword [edi]
subss xmm1, dword [edi + 4]
movss xmm0, dword [esp + 0x18]
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 0x100a485d
sqrtsd xmm0, xmm0
jmp 0x100a4862
call fcn.100d3870
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0x40]
divss xmm0, dword [esi + 0x1e0]
mov eax, dword [0x10164b78]
mov edx, str.axisX
mov ecx, dword [eax + 0x9c]
mov eax, dword [eax + 0x98]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, eax
mov dword [esp + 0x3c], eax
mov al, 0x61
mulss xmm1, dword [esi + 0x1e4]
mulss xmm0, xmm1
movss dword [esp + 0x40], xmm0
nop dword [eax + eax]
movsx eax, al
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x100a48b0
mov eax, dword [esi + 0x90]
shl eax, 6
mov dword [esp + 0x140], ecx
mov ecx, dword [esi + 0x8c]
mov dword [esp + 0x14], eax
movss xmm2, dword [eax + ecx - 0x40]
movss xmm3, dword [eax + ecx - 0x3c]
movss xmm1, dword [eax + ecx - 0x38]
movss xmm0, dword [eax + ecx - 0x34]
movss dword [esp + 0x2c], xmm3
mulss xmm3, xmm3
movss dword [esp + 0x28], xmm2
mulss xmm2, xmm2
movss dword [esp + 0x30], xmm1
mulss xmm1, xmm1
addss xmm3, xmm2
movss dword [esp + 0x34], xmm0
mulss xmm0, xmm0
addss xmm3, xmm1
xorps xmm1, xmm1
addss xmm3, xmm0
cvtps2pd xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x100a493c
sqrtsd xmm0, xmm0
jmp 0x100a4941
call fcn.100d3870
movups xmm1, xmmword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov ecx, str.axisY
cvtsd2ss xmm0, xmm0
mov dword [esp + 0x150], 0xff0000ff
mov al, 0x61
shufps xmm0, xmm0, 0
divps xmm1, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x144], xmm1
shufps xmm0, xmm1, 0x55
movups xmmword [esp + 0x90], xmm0
movss dword [esp + 0x148], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movups xmmword [esp + 0xd0], xmm1
movups xmmword [esp + 0xa0], xmm0
movss dword [esp + 0x14c], xmm0
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x100a49a8
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x8c]
mov dword [esp + 0x154], edx
movss xmm2, dword [eax + ecx - 0x30]
movss xmm3, dword [eax + ecx - 0x2c]
movss xmm1, dword [eax + ecx - 0x28]
movss xmm0, dword [eax + ecx - 0x24]
movss dword [esp + 0x2c], xmm3
mulss xmm3, xmm3
movss dword [esp + 0x28], xmm2
mulss xmm2, xmm2
movss dword [esp + 0x30], xmm1
mulss xmm1, xmm1
addss xmm3, xmm2
movss dword [esp + 0x34], xmm0
mulss xmm0, xmm0
addss xmm3, xmm1
xorps xmm1, xmm1
addss xmm3, xmm0
cvtps2pd xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x100a4a2b
sqrtsd xmm0, xmm0
jmp 0x100a4a30
call fcn.100d3870
movups xmm1, xmmword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov ecx, str.axisZ
cvtsd2ss xmm0, xmm0
mov dword [esp + 0x164], 0xff00ff
mov al, 0x61
shufps xmm0, xmm0, 0
divps xmm1, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x158], xmm1
shufps xmm0, xmm1, 0x55
movups xmmword [esp + 0xb0], xmm0
movss dword [esp + 0x15c], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movups xmmword [esp + 0xe0], xmm1
movups xmmword [esp + 0xc0], xmm0
movss dword [esp + 0x160], xmm0
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x100a4a97
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x8c]
mov dword [esp + 0x168], edx
movss xmm2, dword [eax + ecx - 0x20]
movss xmm3, dword [eax + ecx - 0x1c]
movss xmm1, dword [eax + ecx - 0x18]
movss xmm0, dword [eax + ecx - 0x14]
movss dword [esp + 0x2c], xmm3
mulss xmm3, xmm3
movss dword [esp + 0x28], xmm2
mulss xmm2, xmm2
movss dword [esp + 0x30], xmm1
mulss xmm1, xmm1
addss xmm3, xmm2
movss dword [esp + 0x34], xmm0
mulss xmm0, xmm0
addss xmm3, xmm1
xorps xmm1, xmm1
addss xmm3, xmm0
cvtps2pd xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x100a4b1a
sqrtsd xmm0, xmm0
jmp 0x100a4b1f
call fcn.100d3870
cmp byte [esi + 0x1fc], 0
movups xmm2, xmmword [esp + 0x28]
mov dword [esp + 0x178], 0xffff
cvtsd2ss xmm0, xmm0
shufps xmm0, xmm0, 0
divps xmm2, xmm0
movaps xmm0, xmm2
movss dword [esp + 0x16c], xmm2
shufps xmm0, xmm2, 0x55
movaps xmmword [esp + 0xf0], xmm0
movss dword [esp + 0x170], xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xaa
movups xmmword [esp + 0x28], xmm2
movups xmmword [esp + 0x50], xmm0
movss dword [esp + 0x174], xmm0
je 0x100a4d85
cmp byte [esp + 0xc], 0
je 0x100a4bb8
movq xmm0, qword [esi + 0x1d0]
mov eax, dword [esi + 0x1d8]
movq qword [esp + 0x28], xmm0
movss xmm5, dword [esp + 0x2c]
movss xmm6, dword [esp + 0x28]
mov dword [esp + 0x30], eax
movss xmm4, dword [esp + 0x30]
jmp 0x100a4c45
movss xmm0, dword [edi + 4]
subss xmm0, dword [esp + 0x24]
movss xmm3, dword [edi]
subss xmm3, dword [esp + 0x20]
movss xmm2, dword [edi + 8]
subss xmm2, dword [esp + 0x18]
movaps xmm1, xmm0
movss dword [esp + 0x3c], xmm0
mulss xmm1, xmm0
movaps xmm0, xmm3
movss dword [esp + 0x14], xmm3
mulss xmm0, xmm3
movss dword [esp + 0x1c], xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a4c19
sqrtsd xmm0, xmm0
jmp 0x100a4c1e
call fcn.100d3870
movss xmm6, dword [esp + 0x14]
movss xmm5, dword [esp + 0x3c]
movss xmm4, dword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x28]
cvtsd2ss xmm0, xmm0
divss xmm6, xmm0
divss xmm5, xmm0
divss xmm4, xmm0
movups xmm7, xmmword [esp + 0xd0]
movss xmm0, dword [esp + 0x90]
movss xmm3, dword [0x101173f0]
movaps xmm1, xmm7
mulss xmm0, xmm5
mulss xmm1, xmm6
addss xmm1, xmm0
movss xmm0, dword [esp + 0xa0]
mulss xmm0, xmm4
addss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x100a4cbc
movups xmm0, xmmword [esp + 0x90]
movups xmm1, xmmword [esp + 0xa0]
xorps xmm7, xmm3
xorps xmm0, xmm3
xorps xmm1, xmm3
unpcklps xmm7, xmm0
movss dword [esp + 0x30], xmm1
mov eax, dword [esp + 0x30]
movq qword [esp + 0x144], xmm7
mov dword [esp + 0x14c], eax
movups xmm7, xmmword [esp + 0xe0]
movss xmm0, dword [esp + 0xb0]
mulss xmm0, xmm5
movaps xmm1, xmm7
mulss xmm1, xmm6
addss xmm1, xmm0
movss xmm0, dword [esp + 0xc0]
mulss xmm0, xmm4
addss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x100a4d2b
movups xmm0, xmmword [esp + 0xb0]
movups xmm1, xmmword [esp + 0xc0]
xorps xmm7, xmm3
xorps xmm0, xmm3
xorps xmm1, xmm3
unpcklps xmm7, xmm0
movss dword [esp + 0x30], xmm1
mov eax, dword [esp + 0x30]
movq qword [esp + 0x158], xmm7
mov dword [esp + 0x160], eax
movaps xmm1, xmm2
xorps xmm7, xmm7
mulss xmm1, xmm6
movaps xmm6, xmmword [esp + 0xf0]
movaps xmm0, xmm6
mulss xmm0, xmm5
movups xmm5, xmmword [esp + 0x50]
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm4
addss xmm1, xmm0
comiss xmm7, xmm1
jbe 0x100a4d88
xorps xmm2, xmm3
xorps xmm6, xmm3
xorps xmm5, xmm3
unpcklps xmm2, xmm6
movss dword [esp + 0x30], xmm5
mov eax, dword [esp + 0x30]
movq qword [esp + 0x16c], xmm2
mov dword [esp + 0x174], eax
jmp 0x100a4d88
xorps xmm7, xmm7
mov eax, dword [esi + 0x1a8]
movq xmm0, qword [esi + 0x1a0]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x1b4]
movq qword [esp + 0x50], xmm0
movq xmm0, qword [esi + 0x1ac]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 8]
movq qword [esp + 0x5c], xmm0
cmp dword [esi + 0x1c], eax
je 0x100a4e4c
movss xmm2, dword [esp + 0x20]
movss xmm3, dword [esp + 0x24]
subss xmm3, dword [esp + 0x54]
subss xmm2, dword [esp + 0x50]
movss xmm1, dword [esp + 0x18]
subss xmm1, dword [esp + 0x58]
movaps xmm4, xmm3
mulss xmm4, xmm3
movaps xmm0, xmm2
mulss xmm3, dword [esp + 0x60]
mulss xmm0, xmm2
mulss xmm2, dword [esp + 0x5c]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, xmm1
mulss xmm1, dword [esp + 0x64]
addss xmm3, xmm2
addss xmm4, xmm0
addss xmm3, xmm1
movss xmm1, dword [esp + 0x44]
mulss xmm1, xmm1
comiss xmm7, xmm3
jbe 0x100a4e33
comiss xmm4, xmm1
ja 0x100a4e45
mulss xmm3, xmm3
subss xmm4, xmm3
comiss xmm1, xmm4
setae al
test al, al
jne 0x100a4e4c
mov byte [esp + 0x13], 0
jmp 0x100a4e51
mov byte [esp + 0x13], 1
lea eax, [esp + 0xc]
mov byte [esp + 0xc], 1
push eax
lea ecx, [esi + 0x80]
mov dword [esi + 0xc8], 1
call fcn.100aab00
lea eax, [esp + 0x100]
mov dword [esp + 0x100], 0x3f800000
push eax
lea ecx, [esi + 0x8c]
mov dword [esp + 0x114], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x118], 0x3f800000
mov dword [esp + 0x128], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x12c], 0x3f800000
mov dword [esp + 0x13c], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x140], 0x3f800000
call fcn.100aaa30
mov eax, dword [0x10164b78]
mov edx, str.uniform
mov ecx, dword [eax + 0x9c]
mov eax, dword [eax + 0x98]
mov edi, dword [eax + ecx*4 - 4]
mov al, 0x75
nop
movsx eax, al
lea edx, [edx + 1]
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x100a4f50
cmp byte [esp + 0x13], al
je 0x100a549d
movss xmm0, dword [esi + 0x58]
mulss xmm0, dword [0x1013b290]
movss dword [esp + 0x1c], xmm0
cmp byte [esi + 0x1e8], al
je 0x100a4f93
movss xmm2, dword [0x1011fc14]
jmp 0x100a4fef
mov eax, dword [esp + 0x38]
movss xmm1, dword [esp + 0x24]
movss xmm2, dword [esp + 0x20]
movss xmm0, dword [esp + 0x18]
subss xmm1, dword [eax + 4]
subss xmm2, dword [eax]
subss xmm0, dword [eax + 8]
mulss xmm1, xmm1
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a4fdd
sqrtsd xmm0, xmm0
jmp 0x100a4fe2
call fcn.100d3870
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
movss xmm0, dword [esp + 0x1c]
divss xmm0, dword [esi + 0x1e0]
mulss xmm2, dword [esi + 0x1e4]
movss xmm6, dword [esp + 0x18]
movss xmm4, dword [esp + 0x20]
movss xmm5, dword [esp + 0x24]
movaps xmm7, xmm4
subss xmm7, dword [esp + 0x50]
mulss xmm2, xmm0
movaps xmm1, xmm5
subss xmm1, dword [esp + 0x54]
movaps xmm0, xmm6
subss xmm0, dword [esp + 0x58]
movaps xmm3, xmm1
mulss xmm3, dword [esp + 0x60]
movss dword [esp + 0x14], xmm0
movaps xmm0, xmm7
mulss xmm0, dword [esp + 0x5c]
addss xmm3, xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, dword [esp + 0x64]
addss xmm3, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm3
movss dword [esp + 0x1c], xmm3
jbe 0x100a5074
movss xmm2, dword [esp + 0x1c]
xor cl, cl
jmp 0x100a50f0
movss xmm0, dword [esp + 0x14]
mulss xmm1, xmm1
mulss xmm7, xmm7
mulss xmm0, xmm0
addss xmm1, xmm7
mulss xmm2, xmm2
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
subss xmm1, xmm0
comiss xmm1, xmm2
jbe 0x100a50ac
movss xmm2, dword [esp + 0x1c]
xor cl, cl
jmp 0x100a50f0
subss xmm2, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x100a50c2
sqrtsd xmm0, xmm0
jmp 0x100a50c7
call fcn.100d3870
movss xmm1, dword [esp + 0x1c]
xorps xmm2, xmm2
movss xmm4, dword [esp + 0x20]
mov cl, 1
movss xmm5, dword [esp + 0x24]
movss xmm6, dword [esp + 0x18]
cvtsd2ss xmm0, xmm0
subss xmm1, xmm0
maxss xmm2, xmm1
mov edx, dword [esi + 8]
cmp edi, edx
jne 0x100a53a2
cmp byte [esi + 0x208], 0
je 0x100a538f
mov eax, dword [esp + 0x38]
movaps xmm0, xmm5
movaps xmm3, xmm4
movaps xmm2, xmm6
subss xmm0, dword [eax + 4]
subss xmm3, dword [eax]
subss xmm2, dword [eax + 8]
movaps xmm1, xmm0
movss dword [esp + 0x14], xmm0
mulss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x1c], xmm3
movss dword [esp + 0x3c], xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a5164
sqrtsd xmm0, xmm0
jmp 0x100a5169
call fcn.100d3870
movss xmm5, dword [esp + 0x1c]
sub esp, 8
movss xmm2, dword [esp + 0x1c]
movss xmm3, dword [esp + 0x44]
cvtsd2ss xmm0, xmm0
movss xmm7, dword [esp + 0x2c]
divss xmm5, xmm0
divss xmm2, xmm0
divss xmm3, xmm0
movss xmm6, dword [esp + 0x28]
movaps xmm1, xmm7
mulss xmm1, xmm2
movaps xmm0, xmm6
mulss xmm0, xmm5
addss xmm1, xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm3
addss xmm1, xmm0
movaps xmm4, xmm1
movaps xmm0, xmm1
mulss xmm4, xmm5
mulss xmm0, xmm2
subss xmm4, dword [esp + 0x58]
mulss xmm1, xmm3
subss xmm0, dword [esp + 0x5c]
subss xmm1, dword [esp + 0x60]
mulss xmm4, xmm5
mulss xmm5, dword [esp + 0x64]
mulss xmm0, xmm2
mulss xmm2, dword [esp + 0x68]
addss xmm4, xmm0
mulss xmm1, xmm3
mulss xmm3, dword [esp + 0x6c]
addss xmm5, xmm2
movss xmm0, dword [esi + 0x2c]
addss xmm4, xmm1
subss xmm0, xmm6
addss xmm5, xmm3
divss xmm4, xmm5
movss xmm5, dword [esi + 0x30]
movaps xmm1, xmm4
subss xmm5, xmm7
mulss xmm1, dword [esp + 0x64]
movaps xmm2, xmm4
mulss xmm2, dword [esp + 0x68]
addss xmm1, dword [esp + 0x58]
mulss xmm4, dword [esp + 0x6c]
addss xmm2, dword [esp + 0x5c]
addss xmm4, dword [esp + 0x60]
subss xmm1, xmm6
subss xmm2, xmm7
subss xmm4, dword [esp + 0x20]
mulss xmm0, xmm1
mulss xmm5, xmm2
mulss xmm2, xmm2
addss xmm5, xmm0
mulss xmm1, xmm1
movss xmm0, dword [esi + 0x34]
subss xmm0, dword [esp + 0x20]
addss xmm2, xmm1
xorps xmm1, xmm1
mulss xmm0, xmm4
mulss xmm4, xmm4
addss xmm5, xmm0
addss xmm2, xmm4
movss dword [esp + 0x24], xmm5
movss dword [esp + 4], xmm5
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x100a52ab
sqrtsd xmm0, xmm0
jmp 0x100a52b0
call fcn.100d3870
cvtsd2ss xmm0, xmm0
movss dword [esp], xmm0
call fcn.100d2730
fdiv dword [esp + 0x80]
add esp, 8
movss xmm1, dword [esi + 0x1f8]
comiss xmm1, dword [0x1011fc10]
fstp dword [esp + 0x14]
movss xmm0, dword [esp + 0x14]
jbe 0x100a5324
divss xmm0, xmm1
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x80], xmm0
fld qword [esp + 0x80]
fstp qword [esp]
call fcn.100d3970
fstp qword [esp + 0x80]
movsd xmm0, qword [esp + 0x80]
add esp, 8
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi + 0x1f8]
movss xmm1, dword [esp + 0x1c]
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.100d2730
fadd dword [0x1011fc14]
add esp, 8
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x12], 1
movss xmm1, dword [0x1013b268]
fstp dword [esp + 0x78]
maxss xmm1, dword [esp + 0x78]
movaps xmm2, xmm1
movaps xmm0, xmm1
mulss xmm2, dword [esi + 0x20]
mulss xmm0, dword [esi + 0x24]
mulss xmm1, dword [esi + 0x28]
unpcklps xmm2, xmm0
movq qword [ecx], xmm2
movss dword [esp + 0x30], xmm1
mov eax, dword [esp + 0x30]
mov dword [ecx + 8], eax
jmp 0x100a549d
mov dword [esi + 8], 0
mov dword [esi + 0x18], 0
jmp 0x100a549d
cmp edi, dword [esi + 0xc]
jne 0x100a5446
test cl, cl
je 0x100a5421
cmp byte [esi + 0x208], 0
je 0x100a549d
mov dword [esi + 8], edi
test edi, edi
jne 0x100a53c7
xor eax, eax
jmp 0x100a53ca
mov eax, dword [esi + 0x14]
mov dword [esi + 0x18], eax
movaps xmm1, xmm2
mov eax, dword [esp + 0x48]
mulss xmm1, dword [esp + 0x5c]
movq xmm0, qword [eax]
addss xmm1, dword [esp + 0x50]
movq qword [esi + 0x20], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x60]
mov eax, dword [eax + 8]
mulss xmm2, dword [esp + 0x64]
mov dword [esi + 0x28], eax
addss xmm0, dword [esp + 0x54]
addss xmm2, dword [esp + 0x58]
unpcklps xmm1, xmm0
movq qword [esi + 0x2c], xmm1
movss dword [esp + 0x30], xmm2
mov eax, dword [esp + 0x30]
mov dword [esi + 0x34], eax
jmp 0x100a549d
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x10], 0x7f7fffff
jmp 0x100a549d
mov eax, dword [esp + 0x38]
movaps xmm1, xmm4
movaps xmm2, xmm5
movaps xmm0, xmm6
subss xmm2, dword [eax + 4]
subss xmm1, dword [eax]
subss xmm0, dword [eax + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
test edx, edx
jne 0x100a549d
movss xmm0, dword [esi + 0x10]
comiss xmm0, xmm2
jbe 0x100a549d
test cl, cl
je 0x100a549d
cmp byte [esi + 0x208], dl
jne 0x100a549d
mov eax, dword [esi + 0x14]
mov dword [esi + 0xc], edi
mov dword [esi + 0x1c], eax
movss dword [esi + 0x10], xmm2
cmp dword [esi + 8], edi
je 0x100a54b1
cmp dword [esi + 0xc], edi
je 0x100a54b1
mov byte [esp + 0xc], 0
jmp 0x100a5626
mov ecx, dword [esi + 0x64]
lea edx, [esi + 0x5c]
mov byte [esp + 0xc], 1
mov dword [esp + 0x150], 0xffd700ff
mov dword [esp + 0x164], 0xffd700ff
mov dword [esp + 0x178], 0xffd700ff
cmp dword [edx + 4], ecx
jne 0x100a54f3
mov eax, ecx
shr eax, 1
add eax, ecx
mov ecx, edx
push eax
call fcn.100aab80
lea edx, [esi + 0x5c]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0xffd700ff
inc dword [edx + 4]
lea edx, [esi + 0x68]
mov ecx, dword [edx + 8]
cmp dword [edx + 4], ecx
jne 0x100a551e
mov eax, ecx
shr eax, 1
add eax, ecx
mov ecx, edx
push eax
call fcn.100aab80
lea edx, [esi + 0x68]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0x3f800000
inc dword [edx + 4]
lea edx, [esi + 0x74]
mov ecx, dword [edx + 8]
cmp dword [edx + 4], ecx
jne 0x100a5549
mov eax, ecx
shr eax, 1
add eax, ecx
mov ecx, edx
push eax
call fcn.100aab80
lea edx, [esi + 0x74]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
movss xmm0, dword [esp + 0x24]
movss xmm2, dword [esp + 0x20]
movss xmm3, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x40000000
mov eax, dword [esp + 0x38]
inc dword [edx + 4]
subss xmm0, dword [eax + 4]
subss xmm2, dword [eax]
subss xmm3, dword [eax + 8]
movaps xmm1, xmm0
movss dword [esp + 0x24], xmm0
mulss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x18], xmm3
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100a55bd
sqrtsd xmm0, xmm0
jmp 0x100a55c2
call fcn.100d3870
movss xmm1, dword [esp + 0x20]
lea eax, [esp + 0x28]
cvtsd2ss xmm0, xmm0
push 0xffffffffffffffff
push ecx
divss xmm1, xmm0
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esp + 0x2c]
divss xmm1, xmm0
movss dword [esp + 0x34], xmm1
movss xmm1, dword [esp + 0x20]
divss xmm1, xmm0
movss xmm0, dword [esp + 0x48]
addss xmm0, xmm0
movss dword [esp + 0x38], xmm1
movss dword [esp], xmm0
push eax
lea eax, [esp + 0x90]
push eax
call fcn.100a2b50
dec dword [esi + 0x78]
add esp, 0x10
dec dword [esi + 0x6c]
dec dword [esi + 0x60]
cmp dword [esi + 0xc], edi
je 0x100a563d
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x68]
movss xmm0, dword [eax + ecx*4 - 4]
movss dword [esp + 0x4c], xmm0
mov ecx, dword [esi + 0x70]
cmp dword [esi + 0x6c], ecx
jne 0x100a5654
mov eax, ecx
shr eax, 1
add eax, ecx
lea ecx, [esi + 0x68]
push eax
call fcn.100aab80
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x68]
movss xmm0, dword [esp + 0x4c]
movss dword [eax + ecx*4], xmm0
inc dword [esi + 0x6c]
mov eax, dword [esi + 0xc8]
movss xmm0, dword [esi + 0x58]
mov dword [esi + 0x110], 1
addss xmm0, xmm0
mov dword [esi + 0x11c], 0
lea edx, [eax + eax*2]
mov dword [esi + 0x114], 2
mov eax, dword [esi + 0xd8]
lea ecx, [eax + eax*2]
mov eax, dword [esi + edx*4 + 0xb0]
mov eax, dword [eax + ecx*4 + 8]
or ecx, 0xffffffff
cmp byte [esp + 0xc], 0
mov eax, dword [eax + 4]
mov dword [esi + 0x118], eax
mov eax, 0xffd700ff
cmove eax, ecx
push eax
push ecx
lea eax, [esp + 0x8c]
movss dword [esp], xmm0
push eax
mov ecx, esi
call fcn.100ab6d0
mov ecx, esi
call fcn.100a71a0
dec dword [esi + 0x6c]
lea edi, [esp + 0x144]
mov dword [esp + 0x4c], 3
nop dword [eax]
nop dword [eax + eax]
push dword [edi + 0xc]
movss xmm0, dword [esp + 0x44]
lea eax, [esp + 0x88]
sub esp, 8
mov ecx, esi
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [esp], xmm0
push edi
push eax
push dword [edi - 4]
call fcn.100a79a0
cmp byte [esp + 0x13], 0
je 0x100a577a
push dword [esp + 0x48]
movss xmm0, dword [esp + 0x44]
lea eax, [esp + 0x88]
sub esp, 0xc
mov ecx, esi
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x54]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x1f8]
movss dword [esp], xmm0
push edi
push eax
push dword [edi - 4]
call fcn.100a7550
or byte [esp + 0x12], al
add dword [esp + 0x48], 4
add edi, 0x14
sub dword [esp + 0x4c], 1
jne 0x100a5700
dec dword [esi + 0x84]
xor eax, eax
dec dword [esi + 0x90]
mov ecx, dword [esi + 0x80]
mov edx, dword [esi + 0x84]
pop edi
cmp byte [ecx + edx - 1], al
mov ecx, dword [esp + 0x178]
setne al
dec dword [esi + 0x9c]
mov dword [esi + 0xc8], eax
mov al, byte [esp + 0xe]
pop esi
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret