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

Disassembly:
mov rax, rsp
push rbx
sub rsp, 0xa0
mov qword [rax + 0x20], rbp
mov rbx, rcx
mov qword [rax - 0x10], rsi
xor ebp, ebp
mov qword [rax - 0x18], rdi
mov rdi, qword [0x18008d3f8]
mov qword [rax - 0x20], r12
mov qword [rax - 0x28], r13
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
xor r15d, r15d
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
mov eax, dword [rcx]
movaps xmmword [rsp + 0x20], xmm10
mov byte [rcx + 0x58], 0
test eax, eax
jle 0x18006302e
xor r13d, r13d
xor r12d, r12d
xor r14d, r14d
xor esi, esi
cmp ebp, eax
jl 0x180062f75
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rcx, qword [rbx + 8]
mov eax, dword [rbx + 0x24]
cmp dword [rsi + rcx + 8], eax
jge 0x180062f9a
mov eax, dword [rbx + 0x14]
cmp dword [rsi + rcx], eax
jne 0x18006301b
mov dword [rbx + 0x14], 0
jmp 0x18006301b
cmp r12, r13
je 0x180063011
cmp ebp, dword [rbx]
jl 0x180062fbd
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rbx + 8]
movups xmm6, xmmword [rsi + rax]
movsd xmm7, qword [rsi + rax + 0x10]
mov eax, dword [rsi + rax + 0x18]
mov dword [rsp + 0xb0], eax
cmp r15d, dword [rbx]
jl 0x180062ff5
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rbx + 8]
mov ecx, dword [rsp + 0xb0]
movups xmmword [r14 + rax], xmm6
movsd qword [r14 + rax + 0x10], xmm7
mov dword [r14 + rax + 0x18], ecx
inc r15d
inc r12
add r14, 0x1c
mov eax, dword [rbx]
inc ebp
inc r13
add rsi, 0x1c
cmp ebp, eax
jl 0x180062f75
cmp eax, r15d
je 0x180063063
mov ecx, dword [rbx + 4]
cmp r15d, ecx
jle 0x180063060
test ecx, ecx
je 0x18006304a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18006304f
mov eax, 8
cmp eax, r15d
mov edx, r15d
mov rcx, rbx
cmovg edx, eax
call fcn.180065480
mov dword [rbx], r15d
mov eax, dword [rbx + 0x18]
xor r13d, r13d
mov dword [rsp + 0xb0], r13d
test eax, eax
je 0x180063089
mov r13d, eax
mov dword [rsp + 0xb0], eax
mov dword [rbx + 0x14], eax
mov dword [rbx + 0x18], 0
mov edx, dword [rbx + 0x50]
movabs rbp, 0x4924924924924925
xorps xmm10, xmm10
test edx, edx
je 0x180063184
mov rcx, rbx
call fcn.180063a50
mov rsi, rax
test rax, rax
je 0x18006317d
mov rax, qword [rbx + 8]
cmp rsi, rax
jb 0x1800630ce
movsxd r8, dword [rbx]
imul rdx, r8, 0x1c
add rdx, rax
cmp rsi, rdx
jbe 0x1800630eb
mov r8d, 0x5e7
lea rdx, [0x18007a560]
lea rcx, [0x18007cca8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov r8d, dword [rbx]
mov r9, qword [rbx + 8]
mov rcx, rsi
sub rcx, r9
mov rax, rbp
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
add edx, dword [rbx + 0x54]
js 0x18006315a
cmp edx, r8d
jge 0x18006315a
movups xmm3, xmmword [rsi]
mov ecx, dword [rsi + 0x18]
movsd xmm2, qword [rsi + 0x10]
movsxd rax, edx
imul rdx, rax, 0x1c
add rdx, r9
movups xmm0, xmmword [rdx]
movups xmmword [rsi], xmm0
movsd xmm1, qword [rdx + 0x10]
movsd qword [rsi + 0x10], xmm1
mov eax, dword [rdx + 0x18]
mov dword [rsi + 0x18], eax
movups xmmword [rdx], xmm3
movsd qword [rdx + 0x10], xmm2
mov dword [rdx + 0x18], ecx
mov eax, dword [rdx]
cmp eax, dword [rbx + 0x14]
cmove r13d, eax
mov dword [rsp + 0xb0], r13d
test dword [rbx + 0x4c], 0x800000
je 0x18006317d
mov rcx, qword [0x18008d3f8]
comiss xmm10, dword [rcx + 0x2db4]
jb 0x18006317d
mov eax, dword [rcx + 0x1c]
mov dword [rcx + 0x2db4], eax
mov dword [rbx + 0x50], 0
mov ebp, dword [rbx]
mov ecx, dword [rdi + 0x1e5c]
cmp ebp, ecx
jle 0x180063225
test ecx, ecx
je 0x1800631a3
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1800631a8
mov eax, 8
cmp eax, ebp
mov esi, ebp
cmovg esi, eax
cmp esi, ecx
jle 0x180063225
mov rax, qword [0x18008d3f8]
test rax, rax
je 0x1800631c5
inc dword [rax + 0x3e0]
movsxd rcx, esi
shl rcx, 3
call qword [sym.imp.ucrtbase.dll_malloc]
mov rdx, qword [rdi + 0x1e60]
mov r14, rax
test rdx, rdx
je 0x180063218
movsxd r8, dword [rdi + 0x1e58]
mov rcx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy_1
mov rcx, qword [rdi + 0x1e60]
test rcx, rcx
je 0x180063212
mov rax, qword [0x18008d3f8]
test rax, rax
je 0x180063212
dec dword [rax + 0x3e0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rdi + 0x1e60], r14
mov dword [rdi + 0x1e5c], esi
xor r12d, r12d
mov dword [rdi + 0x1e58], ebp
mov ecx, dword [rbx]
xor r14d, r14d
mov qword [rsp + 0xc0], r12
xorps xmm8, xmm8
mov byte [rsp + 0xb8], r12b
mov edx, ecx
lea ebp, [r12 + 1]
test ecx, ecx
jle 0x18006337f
xor r15d, r15d
mov r13d, r12d
cmp r14d, ecx
jl 0x18006327b
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rsi, qword [rbx + 8]
mov eax, dword [rbx + 0x24]
add rsi, r12
cmp dword [rsi + 8], eax
jge 0x1800632a4
mov r8d, 0x1755
lea rdx, [0x18007e660]
lea rcx, [0x18007f1c0]
call qword [sym.imp.ucrtbase.dll__wassert]
test r13, r13
je 0x1800632b2
mov eax, dword [rsi + 0xc]
cmp dword [r13 + 0xc], eax
jge 0x1800632b5
mov r13, rsi
mov ecx, dword [rsp + 0xb8]
mov eax, dword [rbx + 0x14]
cmp dword [rsi], eax
movzx ecx, cl
cmove ecx, ebp
mov dword [rsp + 0xb8], ecx
test r14d, r14d
jle 0x1800632dd
movss xmm0, dword [rdi + 0x15b4]
jmp 0x1800632e1
movaps xmm0, xmm10
addss xmm0, dword [rsi + 0x18]
addss xmm8, xmm0
cmp r14d, dword [rdi + 0x1e58]
jl 0x18006330e
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rdi + 0x1e60]
mov dword [r15 + rax], r14d
movss xmm6, dword [rsi + 0x18]
cmp r14d, dword [rdi + 0x1e58]
jl 0x180063341
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rdi + 0x1e60]
inc r14d
add r12, 0x1c
movss dword [r15 + rax + 4], xmm6
add r15, 8
mov ecx, dword [rbx]
mov edx, ecx
cmp r14d, ecx
jl 0x18006327b
mov qword [rsp + 0xc0], r13
mov r12, qword [rsp + 0xc0]
mov r13d, dword [rsp + 0xb0]
movss xmm0, dword [rbx + 0x30]
subss xmm0, dword [rbx + 0x28]
movss xmm9, dword [0x18007f6cc]
comiss xmm8, xmm0
jbe 0x180063635
subss xmm8, xmm0
comiss xmm8, xmm10
jbe 0x180063635
test byte [rbx + 0x4c], 0x20
je 0x180063635
cmp ecx, ebp
jle 0x1800633da
movsxd rdx, dword [rdi + 0x1e58]
lea r9, [0x180062980]
mov rcx, qword [rdi + 0x1e60]
mov r8d, 8
call qword [sym.imp.ucrtbase.dll_qsort]
mov r14, rbp
nop dword [rax]
cmp ebp, dword [rbx]
jge 0x18006350d
nop dword [rax + rax]
cmp dword [rdi + 0x1e58], 0
jg 0x180063413
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rsi, qword [rdi + 0x1e60]
cmp ebp, dword [rdi + 0x1e58]
jl 0x18006343c
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rdi + 0x1e60]
movss xmm0, dword [rsi + 4]
ucomiss xmm0, dword [rax + r14*8 + 4]
jp 0x1800635c7
jne 0x1800635c7
inc ebp
inc r14
cmp ebp, dword [rbx]
jl 0x1800633f0
mov eax, dword [rdi + 0x1e58]
test eax, eax
jg 0x180063487
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rdi + 0x1e60]
movss xmm0, dword [rax + 4]
subss xmm0, xmm9
movd xmm7, ebp
movaps xmm6, xmm8
cvtdq2ps xmm7, xmm7
xor r15d, r15d
xor esi, esi
divss xmm6, xmm7
minss xmm6, xmm0
test r14, r14
jle 0x1800634fa
cmp r15d, dword [rdi + 0x1e58]
jl 0x1800634d8
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rdi + 0x1e60]
inc r15d
movss xmm0, dword [rax + rsi*8 + 4]
subss xmm0, xmm6
movss dword [rax + rsi*8 + 4], xmm0
inc rsi
cmp rsi, r14
jl 0x1800634b5
mulss xmm7, xmm6
subss xmm8, xmm7
comiss xmm8, xmm10
ja 0x1800633e0
mov ecx, dword [rbx]
xor esi, esi
test ecx, ecx
jle 0x1800635c0
xor r14d, r14d
nop dword [rax]
cmp esi, dword [rdi + 0x1e58]
jl 0x180063542
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rdi + 0x1e60]
cvttss2si ecx, dword [rax + r14 + 4]
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
cmp esi, dword [rdi + 0x1e58]
jl 0x180063579
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rdi + 0x1e60]
movsxd rbp, dword [r14 + rax]
cmp ebp, dword [rbx]
jl 0x1800635a2
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rbx + 8]
inc esi
imul rcx, rbp, 0x1c
add r14, 8
movss dword [rcx + rax + 0x14], xmm6
mov ecx, dword [rbx]
cmp esi, ecx
jl 0x180063520
mov edx, ecx
jmp 0x180063694
mov eax, dword [rdi + 0x1e58]
cmp ebp, dword [rbx]
jge 0x180063469
cmp ebp, eax
jl 0x1800635f3
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
cmp dword [rdi + 0x1e58], 0
mov rsi, qword [rdi + 0x1e60]
jg 0x18006361d
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rdi + 0x1e60]
movss xmm0, dword [rax + 4]
subss xmm0, dword [rsi + r14*8 + 4]
jmp 0x180063498
mov rax, qword [0x18008d3f8]
xor esi, esi
movss xmm6, dword [rax + 0x1910]
mulss xmm6, dword [0x18007f7ac]
test ecx, ecx
jle 0x180063694
xor ebp, ebp
cmp esi, ecx
jl 0x180063672
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rbx + 8]
inc esi
movss xmm0, dword [rax + rbp + 0x18]
minss xmm0, xmm6
movss dword [rax + rbp + 0x14], xmm0
add rbp, 0x1c
mov ecx, dword [rbx]
mov edx, ecx
cmp esi, ecx
jl 0x180063672
movaps xmm8, xmmword [rsp + 0x40]
xor ebp, ebp
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm6, xmm10
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
test ecx, ecx
jle 0x18006370f
xor esi, esi
cmp ebp, ecx
jl 0x1800636d3
mov r8d, 0x5bf
lea rdx, [0x18007a560]
lea rcx, [0x18007cce8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rcx, qword [rbx + 8]
movss dword [rsi + rcx + 0x10], xmm6
test r13d, r13d
jne 0x1800636ef
mov eax, dword [rsi + rcx]
cmp dword [rdi + 0x1b78], eax
cmove r13d, eax
movss xmm0, dword [rsi + rcx + 0x14]
inc ebp
addss xmm0, dword [rdi + 0x15b4]
mov ecx, dword [rbx]
add rsi, 0x1c
addss xmm6, xmm0
cmp ebp, ecx
jl 0x1800636d3
jmp 0x180063711
mov ecx, edx
subss xmm6, dword [rdi + 0x15b4]
mov rbp, qword [rsp + 0xc8]
mov dword [rbx + 0x40], 0
maxss xmm6, xmm10
movss dword [rbx + 0x3c], xmm6
movss xmm0, dword [rbx + 0x30]
subss xmm0, dword [rbx + 0x28]
comiss xmm6, xmm0
jbe 0x180063765
cmp ecx, 1
jle 0x180063765
mov eax, dword [rbx + 0x4c]
test al, 0x10
jne 0x180063765
test al, 0x40
je 0x180063765
mov rcx, rbx
call fcn.180063b80
test rax, rax
je 0x180063765
mov r13d, dword [rax]
mov dword [rbx + 0x14], r13d
cmp byte [rsp + 0xb8], 0
jne 0x180063776
mov dword [rbx + 0x14], 0
mov ecx, dword [rbx + 0x14]
mov eax, ecx
test ecx, ecx
jne 0x180063794
cmp dword [rbx + 0x18], ecx
jne 0x180063794
test r12, r12
je 0x180063794
mov r13d, dword [r12]
mov eax, r13d
mov dword [rbx + 0x14], r13d
mov r12, qword [rsp + 0x88]
mov dword [rbx + 0x1c], eax
mov byte [rbx + 0x59], 0
test r13d, r13d
je 0x18006388b
mov edx, r13d
mov rcx, rbx
call fcn.180063a50
mov rsi, rax
test rax, rax
je 0x18006388b
mov rcx, qword [0x18008d3f8]
mov r11, qword [rbx + 8]
movss xmm6, dword [rcx + 0x1910]
cmp rax, r11
jb 0x1800637ea
movsxd r9, dword [rbx]
imul r10, r9, 0x1c
add r10, r11
cmp rax, r10
jbe 0x180063804
mov r8d, 0x5e7
lea rdx, [0x18007a560]
lea rcx, [0x18007cca8]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rcx, rsi
movabs rax, 0x4924924924924925
sub rcx, qword [rbx + 8]
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
test edx, edx
jle 0x180063836
movaps xmm2, xmm6
xorps xmm2, xmmword [0x18007fc70]
jmp 0x18006383a
movaps xmm2, xmm10
movss xmm1, dword [rsi + 0x10]
lea eax, [rdx + 1]
movaps xmm0, xmm1
addss xmm0, xmm2
cmp eax, dword [rbx]
jl 0x180063851
movaps xmm6, xmm9
addss xmm1, dword [rsi + 0x14]
movss xmm3, dword [rbx + 0x48]
comiss xmm3, xmm0
addss xmm1, xmm6
jbe 0x18006386c
movss dword [rbx + 0x48], xmm0
movaps xmm3, xmm0
movss xmm2, dword [rbx + 0x30]
subss xmm2, dword [rbx + 0x28]
movaps xmm0, xmm2
addss xmm0, xmm3
comiss xmm1, xmm0
jbe 0x18006388b
subss xmm1, xmm2
movss dword [rbx + 0x48], xmm1
movss xmm0, dword [rbx + 0x30]
subss xmm0, dword [rbx + 0x28]
movss xmm3, dword [rbx + 0x3c]
movss xmm4, dword [rbx + 0x44]
movaps xmm1, xmm3
mov eax, dword [rbx + 0x24]
movaps xmm9, xmmword [rsp + 0x30]
inc eax
movaps xmm6, xmmword [rsp + 0x60]
subss xmm1, xmm0
mov r13, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x98]
minss xmm4, xmm1
movss xmm1, dword [rbx + 0x48]
maxss xmm4, xmm10
movss dword [rbx + 0x44], xmm4
movss xmm0, dword [rbx + 0x30]
subss xmm0, dword [rbx + 0x28]
subss xmm3, xmm0
minss xmm1, xmm3
maxss xmm1, xmm10
movaps xmm10, xmmword [rsp + 0x20]
movss dword [rbx + 0x48], xmm1
cmp eax, dword [rdi + 0x19a8]
jge 0x18006390d
movss xmm0, dword [0x18007f824]
jmp 0x180063922
movss xmm0, dword [rdi + 0x1910]
mulss xmm0, dword [rdi + 0x18]
mulss xmm0, dword [0x18007f7bc]
ucomiss xmm4, xmm1
mov rdi, qword [rsp + 0x90]
jp 0x180063931
je 0x18006395e
comiss xmm1, xmm4
jbe 0x18006394c
addss xmm4, xmm0
minss xmm4, xmm1
movss dword [rbx + 0x44], xmm4
add rsp, 0xa0
pop rbx
ret
comiss xmm4, xmm1
jbe 0x180063959
subss xmm4, xmm0
maxss xmm4, xmm1
movss dword [rbx + 0x44], xmm4
add rsp, 0xa0
pop rbx
ret