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

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x40
movsxd rsi, edx
mov rdi, rcx
vmovaps xmmword [rsp + 0x20], xmm7
vmovaps xmm7, xmm2
cmp esi, 1
jne 0x1400458c7
vmovss xmm1, dword [rcx + 4]
vxorps xmm0, xmm0, xmm0
vcomiss xmm1, xmm0
jb 0x140045e5a
vsubss xmm0, xmm1, xmm2
vmaxss xmm0, xmm0, dword [0x140067400]
vmovss dword [rcx + 4], xmm0
vzeroupper
mov rsi, qword [rsp + 0x58]
vmovaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
mov qword [rsp + 0x50], rbx
mov rbx, rsi
vmovaps xmmword [rsp + 0x30], xmm6
cmp rsi, 1
jbe 0x1400458f1
lea r9, [0x140045850]
mov r8d, 0xc
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
vmovss xmm6, dword [0x140067400]
vxorps xmm5, xmm5, xmm5
vcomiss xmm7, xmm5
mov r8d, 1
jbe 0x140045a21
mov ecx, r8d
cmp r8d, esi
jge 0x140045a21
vmovss xmm0, dword [rdi + 4]
lea rdx, [rcx*2 + 1]
add rdx, rcx
lea rdx, [rdi + rdx*4]
nop dword [rax]
vcomiss xmm0, dword [rdx]
ja 0x140045945
inc r8d
inc rcx
add rdx, 0xc
cmp rcx, rbx
jl 0x140045930
cmp r8d, esi
jge 0x140045960
lea rax, [rcx + rcx*2]
vmovss xmm1, dword [rdi + rax*4 + 4]
vcomiss xmm1, xmm5
jb 0x140045960
vsubss xmm1, xmm0, xmm1
jmp 0x140045964
vsubss xmm1, xmm0, xmm6
vcomiss xmm1, xmm5
jbe 0x140045a21
vxorps xmm4, xmm4, xmm4
vcvtsi2ss xmm4, xmm4, r8d
xor r9d, r9d
vdivss xmm0, xmm7, xmm4
vminss xmm3, xmm0, xmm1
cmp rcx, 4
jl 0x1400459e1
lea rdx, [rcx - 4]
shr rdx, 2
lea rax, [rdi + 0x10]
inc rdx
lea r9, [rdx*4]
nop
vmovss xmm0, dword [rax - 0xc]
vmovss xmm2, dword [rax]
lea rax, [rax + 0x30]
vsubss xmm1, xmm0, xmm3
vmovss dword [rax - 0x3c], xmm1
vmovss xmm1, dword [rax - 0x24]
vsubss xmm0, xmm2, xmm3
vmovss dword [rax - 0x30], xmm0
vsubss xmm0, xmm1, xmm3
vmovss xmm1, dword [rax - 0x18]
vmovss dword [rax - 0x24], xmm0
vsubss xmm0, xmm1, xmm3
vmovss dword [rax - 0x18], xmm0
sub rdx, 1
jne 0x1400459a0
cmp r9, rcx
jge 0x140045a12
lea rax, [r9*2 + 1]
add rax, r9
lea rdx, [rdi + rax*4]
mov rax, rcx
sub rax, r9
vmovss xmm0, dword [rdx]
lea rdx, [rdx + 0xc]
vsubss xmm1, xmm0, xmm3
vmovss dword [rdx - 0xc], xmm1
sub rax, 1
jne 0x1400459fb
vfnmadd231ss xmm7, xmm3, xmm4
vcomiss xmm7, xmm5
ja 0x140045910
xor r8d, r8d
vmovaps xmm4, xmm5
test esi, esi
jle 0x140045c3a
cmp esi, 0x10
jb 0x140045c3a
and esi, 0xfffffff0
lea r9d, [r8 + 2]
vxorps xmm3, xmm3, xmm3
vxorps xmm4, xmm4, xmm4
lea rdx, [rdi + 0x10]
nop dword [rax]
vmovss xmm1, dword [rdx - 0xc]
vinsertps xmm1, xmm1, dword [rdx], 0x10
vinsertps xmm1, xmm1, dword [rdx + 0xc], 0x20
vinsertps xmm1, xmm1, dword [rdx + 0x18], 0x30
vmovss xmm0, dword [rdx + 0x24]
vinsertps xmm0, xmm0, dword [rdx + 0x30], 0x10
vinsertps xmm0, xmm0, dword [rdx + 0x3c], 0x20
vinsertps xmm0, xmm0, dword [rdx + 0x48], 0x30
vinsertf128 ymm1, ymm1, xmm0, 1
vcvttps2dq ymm0, ymm1
vcvtdq2ps ymm2, ymm0
vsubps ymm1, ymm1, ymm2
vaddps ymm3, ymm1, ymm3
vperm2f128 ymm1, ymm2, ymm2, 1
vpermilps xmm0, xmm2, 0xe5
movsxd rax, r8d
lea rax, [rax + rax*2]
vmovss dword [rdi + rax*4 + 4], xmm2
movsxd rax, r9d
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 - 8], xmm0
vunpckhps xmm0, xmm0, xmm0
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 4], xmm0
vunpckhps xmm0, xmm0, xmm0
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 0x10], xmm0
vpermilps xmm0, xmm1, 0xe5
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 0x1c], xmm1
vunpckhps xmm1, xmm0, xmm0
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 0x28], xmm0
vunpckhps xmm0, xmm1, xmm1
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 0x34], xmm1
vmovss xmm1, dword [rdx + 0x54]
vinsertps xmm1, xmm1, dword [rdx + 0x60], 0x10
vinsertps xmm1, xmm1, dword [rdx + 0x6c], 0x20
vinsertps xmm1, xmm1, dword [rdx + 0x78], 0x30
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 0x40], xmm0
vmovss xmm0, dword [rdx + 0x84]
vinsertps xmm0, xmm0, dword [rdx + 0x90], 0x10
vinsertps xmm0, xmm0, dword [rdx + 0x9c], 0x20
vinsertps xmm0, xmm0, dword [rdx + 0xa8], 0x30
vinsertf128 ymm1, ymm1, xmm0, 1
lea rcx, [rax + rax*2]
movsxd rax, r9d
vcvttps2dq ymm0, ymm1
vcvtdq2ps ymm2, ymm0
vmovss dword [rdi + rcx*4 + 0x4c], xmm2
lea rcx, [rax + rax*2]
movsxd rax, r9d
vsubps ymm1, ymm1, ymm2
vpermilps xmm0, xmm2, 0xe5
vmovss dword [rdi + rcx*4 + 0x58], xmm0
lea rcx, [rax + rax*2]
movsxd rax, r9d
vunpckhps xmm0, xmm0, xmm0
vmovss dword [rdi + rcx*4 + 0x64], xmm0
vunpckhps xmm0, xmm0, xmm0
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 0x70], xmm0
vaddps ymm4, ymm1, ymm4
vperm2f128 ymm1, ymm2, ymm2, 1
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 0x7c], xmm1
vpermilps xmm0, xmm1, 0xe5
vunpckhps xmm1, xmm0, xmm0
lea rcx, [rax + rax*2]
vmovss dword [rdi + rcx*4 + 0x88], xmm0
movsxd rax, r9d
lea rdx, [rdx + 0xc0]
add r8d, 0x10
vunpckhps xmm0, xmm1, xmm1
lea rcx, [rax + rax*2]
movsxd rax, r9d
vmovss dword [rdi + rcx*4 + 0x94], xmm1
add r9d, 0x10
lea rcx, [rax + rax*2]
vmovss dword [rdi + rcx*4 + 0xa0], xmm0
cmp r8d, esi
jl 0x140045a50
vaddps ymm0, ymm4, ymm3
vhaddps ymm1, ymm0, ymm0
vhaddps ymm2, ymm1, ymm1
vextractf128 xmm0, ymm2, 1
vaddps xmm4, xmm0, xmm2
movsxd r8, r8d
cmp r8, rbx
jge 0x140045d46
mov rax, rbx
sub rax, r8
cmp rax, 4
jl 0x140045d0a
lea rcx, [r8 + 2]
mov rdx, rbx
sub rdx, r8
lea rcx, [r8 + rcx*2]
sub rdx, 4
lea rcx, [rdi + rcx*4]
shr rdx, 2
inc rdx
lea r8, [r8 + rdx*4]
nop word [rax + rax]
vmovss xmm0, dword [rcx - 0xc]
vmovss xmm2, dword [rcx]
lea rcx, [rcx + 0x30]
vcvttss2si eax, xmm0
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
vsubss xmm0, xmm0, xmm1
vmovss dword [rcx - 0x3c], xmm1
vaddss xmm3, xmm4, xmm0
vxorps xmm1, xmm1, xmm1
vcvttss2si eax, xmm2
vcvtsi2ss xmm1, xmm1, eax
vsubss xmm0, xmm2, xmm1
vaddss xmm4, xmm3, xmm0
vmovss xmm0, dword [rcx - 0x24]
vmovss dword [rcx - 0x30], xmm1
vcvttss2si eax, xmm0
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
vsubss xmm0, xmm0, xmm1
vaddss xmm2, xmm4, xmm0
vmovss xmm0, dword [rcx - 0x18]
vmovss dword [rcx - 0x24], xmm1
vcvttss2si eax, xmm0
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
vsubss xmm0, xmm0, xmm1
vmovss dword [rcx - 0x18], xmm1
vaddss xmm4, xmm2, xmm0
sub rdx, 1
jne 0x140045c80
cmp r8, rbx
jge 0x140045d46
lea rcx, [r8*2 + 1]
mov rdx, rbx
add rcx, r8
sub rdx, r8
lea rcx, [rdi + rcx*4]
vmovss xmm0, dword [rcx]
lea rcx, [rcx + 0xc]
vcvttss2si eax, xmm0
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
vsubss xmm0, xmm0, xmm1
vmovss dword [rcx - 0xc], xmm1
vaddss xmm4, xmm4, xmm0
sub rdx, 1
jne 0x140045d1f
vcomiss xmm4, xmm5
jbe 0x140045e4f
xor edx, edx
cmp rbx, 4
jl 0x140045e06
lea rcx, [rdi + 4]
vcomiss xmm4, xmm5
jbe 0x140045e4f
vmovss xmm0, dword [rcx + 4]
vsubss xmm1, xmm0, dword [rcx]
vminss xmm3, xmm1, xmm6
vaddss xmm2, xmm3, dword [rcx]
vsubss xmm4, xmm4, xmm3
vcomiss xmm4, xmm5
vmovss dword [rcx], xmm2
jbe 0x140045e4f
vmovss xmm0, dword [rcx + 0x10]
vsubss xmm1, xmm0, dword [rcx + 0xc]
vminss xmm3, xmm1, xmm6
vaddss xmm2, xmm3, dword [rcx + 0xc]
vsubss xmm4, xmm4, xmm3
vcomiss xmm4, xmm5
vmovss dword [rcx + 0xc], xmm2
jbe 0x140045e4f
vmovss xmm0, dword [rcx + 0x1c]
vsubss xmm1, xmm0, dword [rcx + 0x18]
vminss xmm3, xmm1, xmm6
vaddss xmm2, xmm3, dword [rcx + 0x18]
vsubss xmm4, xmm4, xmm3
vcomiss xmm4, xmm5
vmovss dword [rcx + 0x18], xmm2
jbe 0x140045e4f
vmovss xmm0, dword [rcx + 0x28]
vsubss xmm1, xmm0, dword [rcx + 0x24]
vminss xmm3, xmm1, xmm6
vaddss xmm2, xmm3, dword [rcx + 0x24]
vmovss dword [rcx + 0x24], xmm2
add rcx, 0x30
lea rax, [rbx - 3]
add rdx, 4
vsubss xmm4, xmm4, xmm3
cmp rdx, rax
jl 0x140045d60
cmp rdx, rbx
jge 0x140045e45
lea rcx, [rdx*2 + 1]
add rcx, rdx
lea rcx, [rdi + rcx*4]
vcomiss xmm4, xmm5
jbe 0x140045e4f
vmovss xmm0, dword [rcx + 4]
vsubss xmm1, xmm0, dword [rcx]
vminss xmm3, xmm1, xmm6
vaddss xmm2, xmm3, dword [rcx]
vmovss dword [rcx], xmm2
add rcx, 0xc
inc rdx
vsubss xmm4, xmm4, xmm3
cmp rdx, rbx
jl 0x140045e1a
vcomiss xmm4, xmm5
ja 0x140045d50
mov rbx, qword [rsp + 0x50]
vmovaps xmm6, xmmword [rsp + 0x30]
vzeroupper
mov rsi, qword [rsp + 0x58]
vmovaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret