Function at 0x10147a40
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.1020b2d0
fstp qword [esp + 0x3c]
movsd xmm0, qword [esp + 0x3c]
xorps xmm1, xmm1
add esp, 0x1c
comisd xmm1, xmm0
ja 0x10147ad7
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 0x10147a66
mov edi, eax
cmp byte [edi + 0xc], 0
je 0x10147be7
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 0x10147b54
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10147b3a
movsd xmm0, qword [ecx + 0xf0]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10147b54
jmp 0x10147bc5
movzx eax, al
movsd xmm0, qword [ecx + eax*8 + 0xe8]
ucomisd xmm0, qword [0x103878b0]
lahf
test ah, 0x44
jnp 0x10147bc5
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 0x10147bc1
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 0x10147b00
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.10147550
mov ecx, eax
add esp, 0x10
xor eax, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
test ecx, ecx
jle 0x101481be
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
mov ecx, dword [edi]
lea eax, [esp + 0x90]
movsd qword [esp + 0x18], xmm0
movsd qword [esp], xmm0
push eax
call fcn.101467a0
movsd xmm0, qword [ebp + 8]
movsd xmm1, qword [eax]
movsd qword [esp + 0x48], xmm1
subsd xmm1, qword [ebp + 0x10]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [0x103999b8]
divsd xmm1, qword [ebp + 0x18]
comisd xmm0, xmm1
movsd qword [esp + 0x20], xmm1
jbe 0x101481a7
comisd xmm1, xmmword [0x103999f0]
jbe 0x101481a7
movsd xmm0, qword [esp + 0x10]
movsd xmm3, qword [0x10399988]
comisd xmm3, xmm0
movsd xmm4, qword [0x10399a18]
jbe 0x10147cd3
xorps xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movsd xmm2, qword [0x103878b0]
comisd xmm3, xmm1
jbe 0x10147ce9
xorps xmm1, xmm1
jmp 0x10147cf2
comisd xmm0, xmm4
jbe 0x10147cc0
movsd xmm2, qword [0x103878b0]
movsd qword [esp + 0x10], xmm2
jmp 0x10147cc8
comisd xmm1, xmm4
jbe 0x10147cf8
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 0x10147d88
movaps xmm0, xmm1
subsd xmm0, xmm2
andps xmm0, xmm4
comisd xmm5, xmm0
ja 0x10147e31
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 0x10147dba
movaps xmm1, xmm2
jmp 0x10147dbd
movaps xmm1, xmm4
movsd xmm0, qword [esp + 0x30]
comisd xmm1, xmm0
jbe 0x10147dcc
movaps xmm1, xmm0
movsd xmm3, qword [esp + 0x38]
comisd xmm1, xmm3
jbe 0x10147ddb
movaps xmm1, xmm3
comisd xmm2, xmm4
ja 0x10147de4
movaps xmm2, xmm4
comisd xmm0, xmm2
ja 0x10147ded
movaps xmm0, xmm2
comisd xmm3, xmm0
ja 0x10147df6
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 0x101481a7
movsd xmm6, qword [esp + 0x20]
xorps xmm7, xmm7
ucomisd xmm6, xmm7
lahf
test ah, 0x44
jnp 0x10147e52
ucomisd xmm6, qword [0x103878b0]
lahf
test ah, 0x44
jp 0x10147e5c
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 0x10147e9e
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x10147e9e
movsd qword [esp + 0x20], xmm7
jmp 0x10147ed0
movsd xmm0, qword [ecx + 0x10]
movsd xmm4, qword [ecx + 0x18]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm4, xmm4
ucomiss xmm5, xmm0
lahf
test ah, 0x44
jp 0x10147ed0
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x10147ed0
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 0x10147f23
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x10147f23
movsd xmm0, qword [esp + 0x10]
movsd xmm4, qword [0x10399998]
subsd xmm0, xmm7
andps xmm0, xmm6
comisd xmm4, xmm0
jbe 0x10147f23
xorps xmm1, xmm1
movsd qword [esp + 0x10], xmm1
jmp 0x10147f7e
movsd xmm0, qword [ecx + 0x30]
movsd xmm4, qword [ecx + 0x38]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm4, xmm4
ucomiss xmm5, xmm0
lahf
test ah, 0x44
jp 0x10147f78
ucomiss xmm1, xmm4
movsd xmm1, qword [esp + 0x10]
lahf
test ah, 0x44
jp 0x10147f7e
movsd xmm5, qword [0x103878b0]
movaps xmm0, xmm1
movsd xmm4, qword [0x10399998]
subsd xmm0, xmm5
andps xmm0, xmm6
comisd xmm4, xmm0
jbe 0x10147f7e
movaps xmm1, xmm5
movsd qword [esp + 0x10], xmm1
jmp 0x10147f7e
movsd xmm1, qword [esp + 0x10]
mov ecx, dword [edi + 8]
xor esi, esi
cmp byte [ecx + 0x1c6], 0
jbe 0x10148183
xor edi, edi
movsd xmm0, qword [edi + ecx]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jp 0x1014816a
movsd xmm0, qword [edi + ecx + 8]
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jp 0x1014816a
movsd xmm0, qword [ecx + esi*8 + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x101481a7
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 0x10148039
movsd xmm0, qword [esp + 0x60]
subsd xmm0, qword [esp + 0x50]
andps xmm0, xmm3
comisd xmm4, xmm0
ja 0x101481a7
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 0x10148157
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 0x10148157
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 0x101480e4
movaps xmm1, xmm2
jmp 0x101480e7
movaps xmm1, xmm3
movsd xmm0, qword [esp + 0x38]
comisd xmm1, xmm0
jbe 0x101480f6
movaps xmm1, xmm0
movsd xmm4, qword [esp + 0x30]
comisd xmm1, xmm4
jbe 0x10148105
movaps xmm1, xmm4
comisd xmm2, xmm3
ja 0x1014810e
movaps xmm2, xmm3
comisd xmm0, xmm2
ja 0x10148117
movaps xmm0, xmm2
comisd xmm4, xmm0
ja 0x10148120
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 0x101481a7
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 0x10147f92
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 0x10147c30
cmp byte [ebp + 0x20], 0
je 0x101481cc
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