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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb0
mov eax, dword [0x10444724]
xor eax, esp
mov dword [esp + 0xac], eax
push esi
push edi
mov eax, ecx
xor edi, edi
mov dword [esp + 0xc], 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 0x10148e97
mov ecx, dword [esp + 0xc]
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 + 0xc]
add esi, 0x30
add edi, 3
cmp esi, 0x40
jl 0x10148e26
mov edi, eax
cmp byte [edi + 0xc], 0
je 0x10148fa7
mov edx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x1c], eax
xor edi, edi
nop
mov ecx, dword [edx + 8]
mov esi, eax
sar esi, 1
mov al, byte [ecx + 0x1c6]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
test al, al
je 0x10148f14
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10148efa
movsd xmm0, qword [ecx + 0xf0]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10148f14
jmp 0x10148f85
movzx eax, al
movsd xmm0, qword [ecx + eax*8 + 0xe8]
ucomisd xmm0, qword [0x103878b0]
lahf
test ah, 0x44
jnp 0x10148f85
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 0x10148f81
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 8]
add eax, edi
push eax
sub esp, 0x10
movsd qword [esp + 8], xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.1020bc10
xorps xmm1, xmm1
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edi, 0x30
add eax, 3
mov dword [esp + 0x1c], eax
cmp edi, 0x40
jl 0x10148ec0
mov edi, dword [esp + 0xc]
mov ecx, edi
call fcn.101477e0
movsd xmm0, qword [ebp + 8]
lea eax, [esp + 0x98]
push eax
sub esp, 8
movsd qword [esp], xmm0
push dword [edi]
call fcn.101476a0
mov ecx, eax
add esp, 0x10
xor eax, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
test ecx, ecx
jle 0x1014957f
movsd xmm0, qword [ebp + 0x18]
subsd xmm0, qword [ebp + 0x10]
movsd qword [ebp + 0x18], xmm0
nop dword [eax]
movsd xmm0, qword [esp + eax*8 + 0x98]
sub esp, 8
movsd xmm1, qword [ebp + 8]
lea eax, [esp + 0x90]
mov ecx, dword [edi]
movsd qword [esp + 0x18], xmm0
movsd qword [esp], xmm0
push eax
movsd qword [esp + 0x54], xmm1
call fcn.101467a0
movsd xmm0, qword [0x103999b8]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x50], xmm1
subsd xmm1, qword [ebp + 0x10]
divsd xmm1, qword [ebp + 0x18]
comisd xmm0, xmm1
movsd qword [esp + 0x20], xmm1
jbe 0x10149568
comisd xmm1, xmmword [0x103999f0]
jbe 0x10149568
movsd xmm0, qword [esp + 0x10]
movsd xmm3, qword [0x10399988]
comisd xmm3, xmm0
movsd xmm4, qword [0x10399a18]
jbe 0x10149094
xorps xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movsd xmm2, qword [0x103878b0]
comisd xmm3, xmm1
jbe 0x101490aa
xorps xmm1, xmm1
jmp 0x101490b3
comisd xmm0, xmm4
jbe 0x10149081
movsd xmm2, qword [0x103878b0]
movsd qword [esp + 0x10], xmm2
jmp 0x10149089
comisd xmm1, xmm4
jbe 0x101490b9
movaps xmm1, xmm2
movsd qword [esp + 0x20], xmm1
mov ecx, dword [edi + 4]
lea eax, [esp + 0x68]
sub esp, 8
movsd qword [esp], xmm1
push eax
call fcn.1020baa0
movsd xmm0, qword [esp + 0x10]
lea eax, [esp + 0x78]
mov ecx, dword [edi]
sub esp, 8
movsd qword [esp], xmm0
push eax
call fcn.101467a0
movsd xmm0, qword [esp + 0x78]
movsd xmm3, qword [esp + 0x68]
movsd xmm4, qword [0x10386870]
subsd xmm3, xmm0
movsd xmm5, qword [0x103999a0]
movsd xmm1, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x80]
movsd qword [esp + 0x40], xmm0
movaps xmm0, xmm3
movsd qword [esp + 0x30], xmm1
andps xmm0, xmm4
movsd qword [esp + 0x38], xmm2
comisd xmm5, xmm0
jbe 0x10149149
movaps xmm0, xmm1
subsd xmm0, xmm2
andps xmm0, xmm4
comisd xmm5, xmm0
ja 0x101491f2
movaps xmm0, xmm1
mulsd xmm3, xmm3
subsd xmm0, xmm2
mulsd xmm0, xmm0
addsd xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movsd xmm2, qword [esp + 0x40]
movaps xmm5, xmm0
movsd xmm4, qword [esp + 0x68]
comisd xmm4, xmm2
jbe 0x1014917b
movaps xmm1, xmm2
jmp 0x1014917e
movaps xmm1, xmm4
movsd xmm0, qword [esp + 0x30]
comisd xmm1, xmm0
jbe 0x1014918d
movaps xmm1, xmm0
movsd xmm3, qword [esp + 0x38]
comisd xmm1, xmm3
jbe 0x1014919c
movaps xmm1, xmm3
comisd xmm2, xmm4
ja 0x101491a5
movaps xmm2, xmm4
comisd xmm0, xmm2
ja 0x101491ae
movaps xmm0, xmm2
comisd xmm3, xmm0
ja 0x101491b7
movaps xmm3, xmm0
xorps xmm1, xmmword [0x1038b810]
sub esp, 8
maxsd xmm1, xmm3
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.10209e00
add esp, 8
test al, al
je 0x10149568
movsd xmm6, qword [esp + 0x20]
xorps xmm7, xmm7
ucomisd xmm6, xmm7
lahf
test ah, 0x44
jnp 0x10149213
ucomisd xmm6, qword [0x103878b0]
lahf
test ah, 0x44
jp 0x1014921d
movups xmm0, xmmword [esp + 0x68]
movups xmmword [esp + 0x48], xmm0
mov ecx, dword [edi + 4]
movsd xmm3, qword [esp + 0x48]
movsd xmm2, qword [esp + 0x50]
cvtpd2ps xmm5, xmm3
movsd xmm0, qword [ecx]
movsd xmm4, qword [ecx + 8]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm1, xmm2
ucomiss xmm5, xmm0
cvtpd2ps xmm4, xmm4
lahf
test ah, 0x44
jp 0x1014925f
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x1014925f
movsd qword [esp + 0x20], xmm7
jmp 0x10149291
movsd xmm0, qword [ecx + 0x10]
movsd xmm4, qword [ecx + 0x18]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm4, xmm4
ucomiss xmm5, xmm0
lahf
test ah, 0x44
jp 0x10149291
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x10149291
movsd xmm0, qword [0x103878b0]
movsd qword [esp + 0x20], xmm0
mov ecx, dword [edi]
movsd xmm6, qword [0x10386870]
movsd xmm0, qword [ecx]
movsd xmm4, qword [ecx + 8]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm4, xmm4
ucomiss xmm5, xmm0
lahf
test ah, 0x44
jp 0x101492e4
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x101492e4
movsd xmm0, qword [esp + 0x10]
movsd xmm4, qword [0x10399998]
subsd xmm0, xmm7
andps xmm0, xmm6
comisd xmm4, xmm0
jbe 0x101492e4
xorps xmm1, xmm1
movsd qword [esp + 0x10], xmm1
jmp 0x1014933f
movsd xmm0, qword [ecx + 0x30]
movsd xmm4, qword [ecx + 0x38]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm4, xmm4
ucomiss xmm5, xmm0
lahf
test ah, 0x44
jp 0x10149339
ucomiss xmm1, xmm4
movsd xmm1, qword [esp + 0x10]
lahf
test ah, 0x44
jp 0x1014933f
movsd xmm5, qword [0x103878b0]
movaps xmm0, xmm1
movsd xmm4, qword [0x10399998]
subsd xmm0, xmm5
andps xmm0, xmm6
comisd xmm4, xmm0
jbe 0x1014933f
movaps xmm1, xmm5
movsd qword [esp + 0x10], xmm1
jmp 0x1014933f
movsd xmm1, qword [esp + 0x10]
mov ecx, dword [edi + 8]
xor esi, esi
cmp byte [ecx + 0x1c6], 0
jbe 0x10149544
xor edi, edi
movsd xmm0, qword [edi + ecx]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jp 0x1014952b
movsd xmm0, qword [edi + ecx + 8]
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jp 0x1014952b
movsd xmm0, qword [ecx + esi*8 + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x10149568
mov ecx, dword [esp + 0xc]
addsd xmm0, xmm1
sub esp, 8
lea eax, [esp + 0x60]
mov ecx, dword [ecx]
mulsd xmm0, qword [0x103885a0]
movsd qword [esp], xmm0
push eax
call fcn.101467a0
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x48]
movaps xmm0, xmm1
movsd xmm3, qword [0x10386870]
subsd xmm0, xmm2
movsd xmm4, qword [0x10399998]
andps xmm0, xmm3
comisd xmm4, xmm0
jbe 0x101493fa
movsd xmm0, qword [esp + 0x60]
subsd xmm0, qword [esp + 0x50]
andps xmm0, xmm3
comisd xmm4, xmm0
ja 0x10149568
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 0x10149518
movsd xmm0, qword [esp + 0x50]
sub esp, 8
movsd xmm1, qword [esp + 0x68]
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 0x10149518
movsd xmm0, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
subsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x38], xmm0
subsd xmm0, xmm2
movsd qword [esp + 0x30], 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 + 0x48]
movaps xmm5, xmm0
movsd xmm3, qword [esp + 0x58]
comisd xmm3, xmm2
jbe 0x101494a5
movaps xmm1, xmm2
jmp 0x101494a8
movaps xmm1, xmm3
movsd xmm0, qword [esp + 0x38]
comisd xmm1, xmm0
jbe 0x101494b7
movaps xmm1, xmm0
movsd xmm4, qword [esp + 0x30]
comisd xmm1, xmm4
jbe 0x101494c6
movaps xmm1, xmm4
comisd xmm2, xmm3
ja 0x101494cf
movaps xmm2, xmm3
comisd xmm0, xmm2
ja 0x101494d8
movaps xmm0, xmm2
comisd xmm4, xmm0
ja 0x101494e1
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 0x10149568
mov eax, dword [esp + 0xc]
movsd xmm2, qword [esp + 0x50]
movsd xmm3, qword [esp + 0x48]
mov ecx, dword [eax + 8]
movzx eax, byte [ecx + 0x1c6]
inc esi
movsd xmm1, qword [esp + 0x10]
add edi, 0x10
cmp esi, eax
jl 0x10149353
movsd xmm0, qword [esp + 0x20]
lea eax, [esp + 0x48]
push eax
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
call fcn.1020bc10
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x2c]
jl 0x10148ff0
cmp byte [ebp + 0x20], 0
je 0x1014958d
mov ecx, dword [edi + 8]
call fcn.1020bbd0
mov ecx, edi
call fcn.101478b0
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
movzx eax, byte [eax + 0x1c6]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x1c