Function at 0x140045240
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 0x140045297
vmovss xmm1, dword [rcx + 4]
vxorps xmm0, xmm0, xmm0
vcomiss xmm1, xmm0
jb 0x14004582a
vsubss xmm0, xmm1, xmm2
vmaxss xmm1, xmm0, dword [0x140090768]
vmovss dword [rcx + 4], xmm1
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 0x1400452c1
lea r9, [0x140045220]
mov r8d, 0xc
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
vmovss xmm6, dword [0x140090768]
vxorps xmm5, xmm5, xmm5
vcomiss xmm7, xmm5
mov r8d, 1
jbe 0x1400453f1
mov ecx, r8d
cmp r8d, esi
jge 0x1400453f1
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 0x140045315
inc r8d
inc rcx
add rdx, 0xc
cmp rcx, rbx
jl 0x140045300
cmp r8d, esi
jge 0x140045330
lea rax, [rcx + rcx*2]
vmovss xmm1, dword [rdi + rax*4 + 4]
vcomiss xmm1, xmm5
jb 0x140045330
vsubss xmm1, xmm0, xmm1
jmp 0x140045334
vsubss xmm1, xmm0, xmm6
vcomiss xmm1, xmm5
jbe 0x1400453f1
vxorps xmm4, xmm4, xmm4
vcvtsi2ss xmm4, xmm4, r8d
xor r9d, r9d
vdivss xmm0, xmm7, xmm4
vminss xmm3, xmm0, xmm1
cmp rcx, 4
jl 0x1400453b1
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 0x140045370
cmp r9, rcx
jge 0x1400453e2
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 0x1400453cb
vfnmadd231ss xmm7, xmm3, xmm4
vcomiss xmm7, xmm5
ja 0x1400452e0
xor r8d, r8d
vmovaps xmm4, xmm5
test esi, esi
jle 0x14004560a
cmp esi, 0x10
jb 0x14004560a
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 0x140045420
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 0x140045716
mov rax, rbx
sub rax, r8
cmp rax, 4
jl 0x1400456da
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 0x140045650
cmp r8, rbx
jge 0x140045716
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 0x1400456ef
vcomiss xmm4, xmm5
jbe 0x14004581f
xor edx, edx
cmp rbx, 4
jl 0x1400457d6
lea rcx, [rdi + 4]
vcomiss xmm4, xmm5
jbe 0x14004581f
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 0x14004581f
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 0x14004581f
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 0x14004581f
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 0x140045730
cmp rdx, rbx
jge 0x140045815
lea rcx, [rdx*2 + 1]
add rcx, rdx
lea rcx, [rdi + rcx*4]
vcomiss xmm4, xmm5
jbe 0x14004581f
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 0x1400457ea
vcomiss xmm4, xmm5
ja 0x140045720
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