Function at 0x10171c90
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.1020b2d0
fstp qword [esp + 0x3c]
movsd xmm0, qword [esp + 0x3c]
xorps xmm1, xmm1
add esp, 0x1c
comisd xmm1, xmm0
ja 0x10171d27
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 0x10171cb6
mov esi, eax
cmp byte [esi + 0xc], 0
je 0x10171e3f
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 0x10171daa
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10171d90
movsd xmm0, qword [ecx + 0xf0]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10171daa
mov esi, edx
jmp 0x10171e21
movzx eax, al
movsd xmm0, qword [ecx + eax*8 + 0xe8]
ucomisd xmm0, qword [0x103878b0]
lahf
test ah, 0x44
jnp 0x10171d89
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.1020b350
fstp qword [esp + 0x3c]
movsd xmm0, qword [esp + 0x3c]
xorps xmm1, xmm1
add esp, 0x1c
comisd xmm1, xmm0
ja 0x10171e1d
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 0x10171e21
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 0x10171d50
mov ecx, esi
call fcn.10171a30
mov eax, dword [esi]
movsd xmm3, qword [eax + 0x18]
movsd xmm1, qword [eax + 8]
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 + 0x28]
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 0x10172363
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 xmm0, qword [esp + 0x60]
movaps xmm1, xmm0
movsd xmm2, qword [0x1039ae68]
subsd xmm1, qword [ebp + 0x10]
divsd xmm1, qword [ebp + 0x18]
comisd xmm2, xmm1
movsd qword [esp + 0x18], xmm1
jbe 0x10172350
comisd xmm1, xmmword [0x1039ae70]
jbe 0x10172350
movsd xmm2, qword [esp + 0x10]
movsd xmm5, qword [0x10399988]
comisd xmm5, xmm2
movsd xmm6, qword [0x10399a18]
jbe 0x10171f4a
xorps xmm2, xmm2
movsd qword [esp + 0x10], xmm2
movsd xmm4, qword [0x103878b0]
comisd xmm5, xmm1
xorps xmm3, xmm3
jbe 0x10171f63
xorps xmm1, xmm1
movsd qword [esp + 0x18], xmm1
jmp 0x10171f88
comisd xmm2, xmm6
jbe 0x10171f2e
movsd xmm4, qword [0x103878b0]
movaps xmm2, xmm4
movsd qword [esp + 0x10], xmm2
jmp 0x10171f36
comisd xmm1, xmm6
jbe 0x10171f74
movaps xmm1, xmm4
movsd qword [esp + 0x18], xmm1
jmp 0x10171f88
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jnp 0x10171f88
ucomisd xmm1, xmm4
lahf
test ah, 0x44
jp 0x10171fae
mov ecx, dword [esi + 4]
lea eax, [esp + 0x80]
sub esp, 8
movsd qword [esp], xmm1
push eax
call fcn.1020baa0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x60], xmm0
movsd xmm0, qword [esp + 0x60]
mov eax, dword [esi + 4]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x2c], xmm0
movsd xmm0, qword [esp + 0x68]
cvtpd2ps xmm0, xmm0
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 0x10172014
movups xmm0, xmmword [ecx]
xorps xmm1, xmm1
movups xmmword [esp + 0x60], xmm0
movsd qword [esp + 0x18], xmm1
jmp 0x1017206d
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 0x10172067
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 0x10172075
movsd xmm1, qword [esp + 0x18]
movsd xmm5, qword [0x103878b0]
mov ecx, dword [esi + 8]
cmp byte [ecx + 0x1c6], 0
jbe 0x101720a6
movsd xmm0, qword [ecx + 0x158]
subsd xmm0, xmm1
movsd xmm1, qword [0x10399998]
andps xmm0, xmmword [0x10386870]
comisd xmm1, xmm0
ja 0x10172350
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 0x101720ea
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x101720ea
movups xmm0, xmmword [edx]
xorps xmm1, xmm1
movups xmmword [esp + 0x60], xmm0
movsd qword [esp + 0x10], xmm1
jmp 0x10172128
movsd xmm0, qword [edx + 0x20]
movsd xmm2, qword [edx + 0x28]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm2, xmm2
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jp 0x10172122
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x10172122
movups xmm0, xmmword [edx + 0x20]
movaps xmm1, xmm5
movups xmmword [esp + 0x60], xmm0
movsd qword [esp + 0x10], xmm1
jmp 0x10172128
movsd xmm1, qword [esp + 0x10]
xor edx, edx
mov dword [esp + 0xc], edx
cmp byte [ecx + 0x1c6], dl
jbe 0x1017232c
xor edi, edi
nop dword [eax]
movsd xmm0, qword [edi + ecx]
ucomisd xmm0, qword [esp + 0x60]
lahf
test ah, 0x44
jp 0x1017230f
movsd xmm0, qword [edi + ecx + 8]
ucomisd xmm0, qword [esp + 0x68]
lahf
test ah, 0x44
jp 0x1017230f
movsd xmm0, qword [ecx + edx*8 + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x10172350
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 0x101721e7
movsd xmm0, qword [esp + 0x78]
subsd xmm0, qword [esp + 0x68]
andps xmm0, xmm3
comisd xmm4, xmm0
ja 0x10172350
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 0x10172308
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 0x10172308
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 0x10172295
movaps xmm1, xmm2
jmp 0x10172298
movaps xmm1, xmm3
movsd xmm0, qword [esp + 0x40]
comisd xmm1, xmm0
jbe 0x101722a7
movaps xmm1, xmm0
movsd xmm4, qword [esp + 0x48]
comisd xmm1, xmm4
jbe 0x101722b6
movaps xmm1, xmm4
comisd xmm2, xmm3
ja 0x101722bf
movaps xmm2, xmm3
comisd xmm0, xmm2
ja 0x101722c8
movaps xmm0, xmm2
comisd xmm4, xmm0
ja 0x101722d1
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 0x10172350
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 0x10172140
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 0x10171eb0
cmp byte [ebp + 0x20], 0
je 0x10172371
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