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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [0x10444724]
xor eax, esp
mov dword [esp + 0x8c], eax
push esi
push edi
mov eax, ecx
xor edi, edi
mov dword [esp + 8], eax
xor esi, esi
movsd xmm0, qword [ebp + 8]
sub esp, 0x18
mov eax, dword [eax]
add eax, esi
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [ebp + 0x18]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp + 0x10]
movsd qword [esp], xmm0
push eax
call fcn.1020b310
fstp qword [esp + 0x3c]
movsd xmm0, qword [esp + 0x3c]
xorps xmm1, xmm1
add esp, 0x1c
comisd xmm1, xmm0
ja 0x10172de7
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 8]
add eax, esi
push eax
sub esp, 0x10
mov eax, edi
sar eax, 1
movsd qword [esp + 8], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.1020bc10
xorps xmm1, xmm1
mov eax, dword [esp + 8]
add esi, 0x20
add edi, 2
cmp esi, 0x30
jl 0x10172d76
mov esi, eax
cmp byte [esi + 0xc], 0
je 0x10172eff
xor eax, eax
xor edi, edi
mov dword [esp + 0xc], eax
nop word [eax + eax]
mov edx, dword [esp + 8]
mov esi, eax
sar esi, 1
mov ecx, dword [edx + 8]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mov al, byte [ecx + 0x1c6]
test al, al
je 0x10172e6a
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10172e50
movsd xmm0, qword [ecx + 0xf0]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10172e6a
mov esi, edx
jmp 0x10172ee1
movzx eax, al
movsd xmm0, qword [ecx + eax*8 + 0xe8]
ucomisd xmm0, qword [0x103878b0]
lahf
test ah, 0x44
jnp 0x10172e49
movsd xmm0, qword [ebp + 8]
sub esp, 0x18
mov eax, dword [edx]
add eax, edi
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [ebp + 0x18]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp + 0x10]
movsd qword [esp], xmm0
push eax
call fcn.1020b4e0
fstp qword [esp + 0x3c]
movsd xmm0, qword [esp + 0x3c]
xorps xmm1, xmm1
add esp, 0x1c
comisd xmm1, xmm0
ja 0x10172edd
mov eax, dword [esp + 8]
mov eax, dword [eax]
add eax, edi
push eax
sub esp, 0x10
movsd qword [esp + 8], xmm0
movd xmm0, esi
mov esi, dword [esp + 0x1c]
cvtdq2pd xmm0, xmm0
mov ecx, dword [esi + 8]
movsd qword [esp], xmm0
call fcn.1020bc10
xorps xmm1, xmm1
jmp 0x10172ee1
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
add edi, 0x20
add eax, 2
mov dword [esp + 0xc], eax
cmp edi, 0x30
jl 0x10172e10
mov ecx, esi
call fcn.10171a30
mov eax, dword [esi]
movsd xmm3, qword [eax + 0x10]
movsd xmm1, qword [eax]
movaps xmm0, xmm3
addsd xmm0, xmm3
movaps xmm2, xmm1
subsd xmm3, xmm1
subsd xmm1, qword [ebp + 8]
subsd xmm2, xmm0
addsd xmm3, xmm3
addsd xmm2, qword [eax + 0x20]
lea eax, [esp + 0x50]
push eax
sub esp, 0x18
movsd qword [esp + 0x10], xmm1
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm2
call fcn.10173730
mov ecx, eax
add esp, 0x1c
xor eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 8], eax
test ecx, ecx
jle 0x10173423
movsd xmm0, qword [ebp + 0x18]
subsd xmm0, qword [ebp + 0x10]
movsd qword [ebp + 0x18], xmm0
nop
movsd xmm0, qword [esp + eax*8 + 0x50]
sub esp, 8
mov ecx, dword [esi]
lea eax, [esp + 0x68]
movsd qword [esp + 0x18], xmm0
movsd qword [esp], xmm0
push eax
call fcn.10174190
movsd xmm1, qword [esp + 0x68]
movaps xmm0, xmm1
movsd xmm2, qword [0x1039ae68]
subsd xmm0, qword [ebp + 0x10]
divsd xmm0, qword [ebp + 0x18]
comisd xmm2, xmm0
movsd qword [esp + 0x18], xmm0
jbe 0x10173410
comisd xmm0, xmmword [0x1039ae70]
jbe 0x10173410
movsd xmm2, qword [esp + 0x10]
movsd xmm5, qword [0x10399988]
comisd xmm5, xmm2
movsd xmm6, qword [0x10399a18]
jbe 0x1017300a
xorps xmm2, xmm2
movsd qword [esp + 0x10], xmm2
movsd xmm4, qword [0x103878b0]
comisd xmm5, xmm0
xorps xmm3, xmm3
jbe 0x10173023
xorps xmm0, xmm0
movsd qword [esp + 0x18], xmm0
jmp 0x10173048
comisd xmm2, xmm6
jbe 0x10172fee
movsd xmm4, qword [0x103878b0]
movaps xmm2, xmm4
movsd qword [esp + 0x10], xmm2
jmp 0x10172ff6
comisd xmm0, xmm6
jbe 0x10173034
movaps xmm0, xmm4
movsd qword [esp + 0x18], xmm0
jmp 0x10173048
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jnp 0x10173048
ucomisd xmm0, xmm4
lahf
test ah, 0x44
jp 0x1017306e
mov ecx, dword [esi + 4]
lea eax, [esp + 0x80]
sub esp, 8
movsd qword [esp], xmm0
push eax
call fcn.1020baa0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x60], xmm0
movsd xmm1, qword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
mov eax, dword [esi + 4]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x2c], xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x30], xmm0
movsd xmm0, qword [eax]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x38], xmm0
movsd xmm0, qword [eax + 8]
lea eax, [esp + 0x38]
cvtpd2ps xmm0, xmm0
push eax
lea eax, [esp + 0x30]
push eax
movss dword [esp + 0x44], xmm0
call fcn.10171800
mov ecx, dword [esi + 4]
add esp, 8
test al, al
je 0x101730d4
movups xmm0, xmmword [ecx]
xorps xmm1, xmm1
movups xmmword [esp + 0x60], xmm0
movsd qword [esp + 0x18], xmm1
jmp 0x1017312d
movsd xmm0, qword [ecx + 0x10]
lea eax, [esp + 0x20]
cvtpd2ps xmm0, xmm0
push eax
lea eax, [esp + 0x30]
push eax
movss dword [esp + 0x28], xmm0
movsd xmm0, qword [ecx + 0x18]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x2c], xmm0
call fcn.10171800
add esp, 8
test al, al
je 0x10173127
mov eax, dword [esi + 4]
movsd xmm5, qword [0x103878b0]
movaps xmm1, xmm5
movsd qword [esp + 0x18], xmm1
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x60], xmm0
jmp 0x10173135
movsd xmm1, qword [esp + 0x18]
movsd xmm5, qword [0x103878b0]
mov ecx, dword [esi + 8]
cmp byte [ecx + 0x1c6], 0
jbe 0x10173166
movsd xmm0, qword [ecx + 0x158]
subsd xmm0, xmm1
movsd xmm1, qword [0x10399998]
andps xmm0, xmmword [0x10386870]
comisd xmm1, xmm0
ja 0x10173410
mov edx, dword [esi]
movss xmm3, dword [esp + 0x2c]
movss xmm1, dword [esp + 0x30]
movsd xmm0, qword [edx]
movsd xmm2, qword [edx + 8]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm2, xmm2
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jp 0x101731aa
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x101731aa
movups xmm0, xmmword [edx]
xorps xmm1, xmm1
movups xmmword [esp + 0x60], xmm0
movsd qword [esp + 0x10], xmm1
jmp 0x101731e8
movsd xmm0, qword [edx + 0x20]
movsd xmm2, qword [edx + 0x28]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm2, xmm2
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jp 0x101731e2
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x101731e2
movups xmm0, xmmword [edx + 0x20]
movaps xmm1, xmm5
movups xmmword [esp + 0x60], xmm0
movsd qword [esp + 0x10], xmm1
jmp 0x101731e8
movsd xmm1, qword [esp + 0x10]
xor edx, edx
mov dword [esp + 0xc], edx
cmp byte [ecx + 0x1c6], dl
jbe 0x101733ec
xor edi, edi
nop dword [eax]
movsd xmm0, qword [edi + ecx]
ucomisd xmm0, qword [esp + 0x60]
lahf
test ah, 0x44
jp 0x101733cf
movsd xmm0, qword [edi + ecx + 8]
ucomisd xmm0, qword [esp + 0x68]
lahf
test ah, 0x44
jp 0x101733cf
movsd xmm0, qword [ecx + edx*8 + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x10173410
mov ecx, dword [esi]
addsd xmm0, xmm1
sub esp, 8
lea eax, [esp + 0x78]
mulsd xmm0, qword [0x103885a0]
movsd qword [esp], xmm0
push eax
call fcn.10174190
movsd xmm1, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x60]
movaps xmm0, xmm1
movsd xmm3, qword [0x10386870]
subsd xmm0, xmm2
movsd xmm4, qword [0x10399998]
andps xmm0, xmm3
comisd xmm4, xmm0
jbe 0x101732a7
movsd xmm0, qword [esp + 0x78]
subsd xmm0, qword [esp + 0x68]
andps xmm0, xmm3
comisd xmm4, xmm0
ja 0x10173410
cvtpd2ps xmm0, xmm2
sub esp, 8
cvtpd2ps xmm1, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.10209e00
add esp, 8
test al, al
je 0x101733c8
movsd xmm0, qword [esp + 0x68]
sub esp, 8
movsd xmm1, qword [esp + 0x80]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm1, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.10209e00
add esp, 8
test al, al
je 0x101733c8
movsd xmm0, qword [esp + 0x78]
movsd xmm2, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
subsd xmm1, qword [esp + 0x60]
movsd qword [esp + 0x40], xmm0
subsd xmm0, xmm2
movsd qword [esp + 0x48], xmm2
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movsd xmm2, qword [esp + 0x60]
movaps xmm5, xmm0
movsd xmm3, qword [esp + 0x70]
comisd xmm3, xmm2
jbe 0x10173355
movaps xmm1, xmm2
jmp 0x10173358
movaps xmm1, xmm3
movsd xmm0, qword [esp + 0x40]
comisd xmm1, xmm0
jbe 0x10173367
movaps xmm1, xmm0
movsd xmm4, qword [esp + 0x48]
comisd xmm1, xmm4
jbe 0x10173376
movaps xmm1, xmm4
comisd xmm2, xmm3
ja 0x1017337f
movaps xmm2, xmm3
comisd xmm0, xmm2
ja 0x10173388
movaps xmm0, xmm2
comisd xmm4, xmm0
ja 0x10173391
movaps xmm4, xmm0
xorps xmm1, xmmword [0x1038b810]
sub esp, 8
maxsd xmm1, xmm4
movaps xmm0, xmm1
addsd xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esp + 4], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [esp], xmm0
call fcn.10209c00
add esp, 8
test al, al
jne 0x10173410
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0xc]
movzx eax, byte [ecx + 0x1c6]
inc edx
movsd xmm1, qword [esp + 0x10]
add edi, 0x10
mov dword [esp + 0xc], edx
cmp edx, eax
jl 0x10173200
movsd xmm0, qword [esp + 0x18]
lea eax, [esp + 0x60]
movsd xmm2, qword [esp + 0x10]
push eax
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm2
call fcn.1020bc10
mov eax, dword [esp + 8]
inc eax
mov dword [esp + 8], eax
cmp eax, dword [esp + 0x34]
jl 0x10172f70
cmp byte [ebp + 0x20], 0
je 0x10173431
mov ecx, dword [esi + 8]
call fcn.1020bbd0
mov ecx, esi
call fcn.10171b00
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x94]
pop edi
pop esi
movzx eax, byte [eax + 0x1c6]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x1c