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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x154
mov eax, dword [0x100953e0]
shr eax, 1
push ebx
push esi
push edi
movd xmm0, eax
or esi, 0xffffffff
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov edi, ecx
addsd xmm0, qword [eax*8 + 0x100825a0]
mov eax, dword [0x100953e4]
shr eax, 1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x10], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
xor ebx, ebx
addsd xmm0, qword [eax*8 + 0x100825a0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x14], xmm0
mov eax, dword [0x1009177c]
mov ecx, dword [eax + 0x2a8]
mov eax, dword [0x100962c4]
mov edx, dword [eax + ecx]
mov cl, bl
mov al, dl
not cl
not al
xor cl, al
test cl, 1
jne 0x1001e6ff
cmp dword [0x10095ae4], 0
je 0x1001f09e
cmp ebx, edx
je 0x1001f09e
mov ecx, ebx
call fcn.10015900
mov dword [esp + 0x18], eax
test eax, eax
je 0x1001f09e
mov ecx, dword [0x100953f4]
push 0x100966cc
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, eax
test ecx, ecx
je 0x1001f09e
mov eax, dword [0x100959bc]
add eax, ecx
cmp eax, ecx
jbe 0x1001f09e
mov ecx, dword [esp + 0x18]
call eax
test eax, eax
jle 0x1001f09e
mov eax, dword [0x1009177c]
mov ecx, dword [eax + 0x2a8]
mov eax, dword [0x100962c4]
mov ecx, dword [eax + ecx]
call fcn.10015900
mov dword [esp + 0x18], eax
test eax, eax
je 0x1001f09e
mov ecx, dword [0x100953f4]
push 0x100966cc
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, eax
test ecx, ecx
je 0x1001f09e
mov eax, dword [0x100959bc]
add eax, ecx
cmp eax, ecx
jbe 0x1001f09e
mov ecx, dword [esp + 0x18]
call eax
test eax, eax
jle 0x1001f09e
mov ecx, ebx
call fcn.10015900
mov ecx, eax
test ecx, ecx
je 0x1001f09e
mov eax, dword [0x1009177c]
movss xmm0, dword [0x10081f9c]
mov eax, dword [eax + 0x268]
comiss xmm0, dword [ecx + eax]
jbe 0x1001f09e
push 7
mov edx, ebx
lea ecx, [esp + 0xf8]
call fcn.10016960
add esp, 4
test al, al
jne 0x1001e8b9
push 0xb
mov edx, ebx
lea ecx, [esp + 0x104]
call fcn.10016960
add esp, 4
test al, al
jne 0x1001e8b9
push 0xa
mov edx, ebx
lea ecx, [esp + 0x110]
call fcn.10016960
add esp, 4
test al, al
jne 0x1001e8b9
push 9
mov edx, ebx
lea ecx, [esp + 0x11c]
call fcn.10016960
add esp, 4
test al, al
jne 0x1001e8b9
push 8
mov edx, ebx
lea ecx, [esp + 0x128]
call fcn.10016960
add esp, 4
test al, al
jne 0x1001e8b9
push 6
mov edx, ebx
lea ecx, [esp + 0x134]
call fcn.10016960
add esp, 4
test al, al
jne 0x1001e8b9
push 5
mov edx, ebx
lea ecx, [esp + 0x140]
call fcn.10016960
add esp, 4
test al, al
jne 0x1001e8b9
push 4
mov edx, ebx
lea ecx, [esp + 0x14c]
call fcn.10016960
add esp, 4
test al, al
jne 0x1001e8b9
push 0
mov edx, ebx
lea ecx, [esp + 0x158]
call fcn.10016960
add esp, 4
test al, al
je 0x1001f09e
movq xmm0, qword [esp + 0xf4]
lea eax, [esp + 0x88]
push edi
push eax
mov eax, dword [esp + 0x104]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
jne 0x1001eab2
movq xmm0, qword [esp + 0x100]
lea eax, [esp + 0x94]
push edi
push eax
mov eax, dword [esp + 0x110]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
jne 0x1001eab2
movq xmm0, qword [esp + 0x10c]
lea eax, [esp + 0xa0]
push edi
push eax
mov eax, dword [esp + 0x11c]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
jne 0x1001eab2
movq xmm0, qword [esp + 0x118]
lea eax, [esp + 0xac]
push edi
push eax
mov eax, dword [esp + 0x128]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
jne 0x1001eab2
movq xmm0, qword [esp + 0x124]
lea eax, [esp + 0xb8]
push edi
push eax
mov eax, dword [esp + 0x134]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
jne 0x1001eab2
movq xmm0, qword [esp + 0x130]
lea eax, [esp + 0xc4]
push edi
push eax
mov eax, dword [esp + 0x140]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
jne 0x1001eab2
movq xmm0, qword [esp + 0x13c]
lea eax, [esp + 0xd0]
push edi
push eax
mov eax, dword [esp + 0x14c]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
jne 0x1001eab2
movq xmm0, qword [esp + 0x148]
lea eax, [esp + 0xdc]
push edi
push eax
mov eax, dword [esp + 0x158]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
jne 0x1001eab2
movq xmm0, qword [esp + 0x154]
lea eax, [esp + 0xe8]
push edi
push eax
mov eax, dword [esp + 0x164]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10016100
mov ecx, eax
call fcn.10015f30
test al, al
je 0x1001f09e
movss xmm3, dword [esp + 0x10]
xorps xmm4, xmm4
movss xmm6, dword [esp + 0x88]
subss xmm6, xmm3
movss xmm1, dword [esp + 0x98]
movss xmm2, dword [esp + 0xa0]
movss xmm7, dword [esp + 0x94]
subss xmm2, xmm3
movss xmm0, dword [esp + 0x90]
subss xmm7, xmm3
movss xmm3, dword [esp + 0xa8]
subss xmm0, xmm4
movss dword [esp + 0x18], xmm6
subss xmm3, xmm4
movss xmm6, dword [esp + 0x14]
subss xmm1, xmm6
movss xmm5, dword [esp + 0x8c]
subss xmm5, xmm6
movss dword [esp + 0x20], xmm2
movss xmm2, dword [esp + 0xa4]
subss xmm2, xmm6
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [esp + 0x9c]
subss xmm1, xmm4
mulss xmm5, xmm5
movss xmm4, dword [esp + 0xac]
subss xmm4, dword [esp + 0x10]
movss dword [esp + 0x30], xmm4
movss xmm4, dword [esp + 0xb0]
subss xmm4, xmm6
xorps xmm6, xmm6
movss dword [esp + 0x2c], xmm4
movss xmm4, dword [esp + 0xb4]
subss xmm4, xmm6
movss xmm6, dword [esp + 0xb8]
subss xmm6, dword [esp + 0x10]
movss dword [esp + 0x3c], xmm6
movss xmm6, dword [esp + 0xbc]
subss xmm6, dword [esp + 0x14]
movss dword [esp + 0x38], xmm6
movss xmm6, dword [esp + 0xc0]
subss xmm6, dword [0x10081e80]
movss dword [esp + 0x40], xmm6
movss xmm6, dword [esp + 0xc4]
subss xmm6, dword [esp + 0x10]
movss dword [esp + 0x4c], xmm6
movss xmm6, dword [esp + 0xc8]
subss xmm6, dword [esp + 0x14]
movss dword [esp + 0x48], xmm6
movss xmm6, dword [esp + 0xcc]
subss xmm6, dword [0x10081e80]
movss dword [esp + 0x50], xmm6
movss xmm6, dword [esp + 0xd0]
subss xmm6, dword [esp + 0x10]
movss dword [esp + 0x5c], xmm6
movss xmm6, dword [esp + 0xd4]
subss xmm6, dword [esp + 0x14]
movss dword [esp + 0x58], xmm6
movss xmm6, dword [esp + 0xd8]
subss xmm6, dword [0x10081e80]
movss dword [esp + 0x60], xmm6
movss xmm6, dword [esp + 0xdc]
subss xmm6, dword [esp + 0x10]
movss dword [esp + 0x6c], xmm6
movss xmm6, dword [esp + 0xe0]
subss xmm6, dword [esp + 0x14]
movss dword [esp + 0x68], xmm6
movss xmm6, dword [esp + 0xe4]
subss xmm6, dword [0x10081e80]
movss dword [esp + 0x70], xmm6
movss xmm6, dword [esp + 0xe8]
subss xmm6, dword [esp + 0x10]
movss dword [esp + 0x7c], xmm6
movss xmm6, dword [esp + 0xec]
subss xmm6, dword [esp + 0x14]
movss dword [esp + 0x78], xmm6
movss xmm6, dword [esp + 0xf0]
subss xmm6, dword [0x10081e80]
movss dword [esp + 0x80], xmm6
movss xmm6, dword [esp + 0x18]
mulss xmm6, xmm6
mulss xmm0, xmm0
addss xmm5, xmm6
mov eax, dword [0x100953e0]
mulss xmm1, xmm1
mulss xmm7, xmm7
addss xmm5, xmm0
mulss xmm2, xmm2
movss xmm0, dword [esp + 0x1c]
mulss xmm0, xmm0
mulss xmm3, xmm3
addss xmm0, xmm7
mulss xmm4, xmm4
cvtps2pd xmm6, xmm5
addss xmm0, xmm1
movss xmm1, dword [esp + 0x2c]
mulss xmm1, xmm1
cvtps2pd xmm7, xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm0
addss xmm0, xmm2
addss xmm0, xmm3
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x30]
mulss xmm0, xmm0
addss xmm1, xmm0
addss xmm1, xmm4
cvtps2pd xmm0, xmm1
movss xmm1, dword [esp + 0x38]
movsd qword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x3c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x40]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movss xmm1, dword [esp + 0x48]
movsd qword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x4c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x50]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movss xmm1, dword [esp + 0x58]
movsd qword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x5c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x60]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movss xmm1, dword [esp + 0x68]
movsd qword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x6c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x70]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movss xmm1, dword [esp + 0x78]
movsd qword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x7c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x80]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x80], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
xorps xmm3, xmm3
movss xmm1, dword [esp + 0x88]
cvtsi2ss xmm3, dword [0x1009674c]
addsd xmm0, qword [eax*8 + 0x100825a0]
mov eax, dword [0x100953e4]
movsd xmm2, qword [0x10081ee8]
mulss xmm3, xmm3
cvtpd2ps xmm4, xmm0
xorps xmm0, xmm0
mulss xmm4, dword [0x10081eb0]
cvtsi2sd xmm0, eax
shr eax, 0x1f
subss xmm1, xmm4
addsd xmm0, qword [eax*8 + 0x100825a0]
mulss xmm1, xmm1
cvtpd2ps xmm5, xmm0
movss xmm0, dword [esp + 0x8c]
mulss xmm5, dword [0x10081eb0]
subss xmm0, xmm5
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001eed5
cmp esi, 0xffffffff
jne 0x1001eed5
comisd xmm2, xmm6
cmova esi, ebx
movss xmm1, dword [esp + 0x94]
movss xmm0, dword [esp + 0x98]
subss xmm1, xmm4
subss xmm0, xmm5
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001ef0c
cmp esi, 0xffffffff
jne 0x1001ef0c
comisd xmm2, xmm7
cmova esi, ebx
movss xmm1, dword [esp + 0xa0]
movss xmm0, dword [esp + 0xa4]
subss xmm1, xmm4
subss xmm0, xmm5
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001ef45
cmp esi, 0xffffffff
jne 0x1001ef45
comisd xmm2, xmmword [esp + 0x20]
cmova esi, ebx
movss xmm1, dword [esp + 0xac]
movss xmm0, dword [esp + 0xb0]
subss xmm1, xmm4
subss xmm0, xmm5
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001ef7e
cmp esi, 0xffffffff
jne 0x1001ef7e
comisd xmm2, xmmword [esp + 0x30]
cmova esi, ebx
movss xmm1, dword [esp + 0xb8]
movss xmm0, dword [esp + 0xbc]
subss xmm1, xmm4
subss xmm0, xmm5
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001efb7
cmp esi, 0xffffffff
jne 0x1001efb7
comisd xmm2, xmmword [esp + 0x40]
cmova esi, ebx
movss xmm1, dword [esp + 0xc4]
movss xmm0, dword [esp + 0xc8]
subss xmm1, xmm4
subss xmm0, xmm5
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001eff0
cmp esi, 0xffffffff
jne 0x1001eff0
comisd xmm2, xmmword [esp + 0x50]
cmova esi, ebx
movss xmm1, dword [esp + 0xd0]
movss xmm0, dword [esp + 0xd4]
subss xmm1, xmm4
subss xmm0, xmm5
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001f029
cmp esi, 0xffffffff
jne 0x1001f029
comisd xmm2, xmmword [esp + 0x60]
cmova esi, ebx
movss xmm1, dword [esp + 0xdc]
movss xmm0, dword [esp + 0xe0]
subss xmm1, xmm4
subss xmm0, xmm5
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001f062
cmp esi, 0xffffffff
jne 0x1001f062
comisd xmm2, xmmword [esp + 0x70]
cmova esi, ebx
movss xmm1, dword [esp + 0xe8]
movss xmm0, dword [esp + 0xec]
subss xmm1, xmm4
subss xmm0, xmm5
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
comiss xmm3, xmm0
jb 0x1001f09e
cmp esi, 0xffffffff
jne 0x1001f09e
comisd xmm2, xmmword [esp + 0x80]
cmova esi, ebx
inc ebx
cmp ebx, 0x10
jle 0x1001e6d0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret