Function at 0x14004f870
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov r15, r9
mov rdi, r8
mov r12, rdx
mov rbp, rcx
cmp rdx, 0x21
jae 0x14004f8b8
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, r12
mov r8, rdi
mov r9, r15
call sym.core::slice::sort::shared::smallsort::small_sort_general_with_scratch::hc6f7192350750f62
jmp 0x14004fdd5
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x48], rax
mov esi, dword [rsp + 0x130]
lea rax, [rdi - 0x18]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], r15
mov r14, r12
nop dword [rax]
sub esi, 1
jb 0x14004fdb2
mov r9, r14
shr r9, 3
lea rbx, [r9 + r9*2]
shl rbx, 5
add rbx, rbp
imul r12, r9, 0xa8
add r12, rbp
cmp r14, 0x40
mov qword [rsp + 0x60], r14
mov dword [rsp + 0x44], esi
jae 0x14004f970
mov rcx, rbx
mov rdx, rbp
call sym.cpal::SupportedStreamConfigRange::cmp_default_heuristics::hfe9a81cd13d8c1c1
mov r13d, eax
cmp al, 0xff
sete r14b
mov rcx, r12
mov rdx, rbp
call sym.cpal::SupportedStreamConfigRange::cmp_default_heuristics::hfe9a81cd13d8c1c1
cmp al, 0xff
sete al
xor al, r14b
mov r14, qword [rsp + 0x60]
mov rax, rbp
jne 0x14004f97e
cmp r13b, 0xff
sete sil
mov rcx, r12
mov rdx, rbx
call sym.cpal::SupportedStreamConfigRange::cmp_default_heuristics::hfe9a81cd13d8c1c1
cmp al, 0xff
sete al
xor al, sil
cmovne rbx, r12
mov rax, rbx
jmp 0x14004f97e
mov rcx, rbp
mov rdx, rbx
mov r8, r12
call sym._ZN4core5slice4sort6shared5pivot11median3_rec17h2580c4308a6e3cb6E.llvm.14454937841664498982
sub rax, rbp
movabs rcx, 0xaaaaaaaaaaaaaaab
mul rcx
mov rsi, rdx
shr rsi, 4
lea rax, [rsi + rsi*2]
lea r13, [rax*8]
add r13, rbp
mov rcx, qword [rbp + rax*8 + 0x10]
mov qword [rsp + 0x90], rcx
movups xmm0, xmmword [rbp + rax*8]
movaps xmmword [rsp + 0x80], xmm0
cmp qword [rsp + 0x48], 0
je 0x14004f9db
mov rcx, r13
mov rdx, qword [rsp + 0x48]
call sym.cpal::SupportedStreamConfigRange::cmp_default_heuristics::hfe9a81cd13d8c1c1
cmp al, 0xff
jne 0x14004fbe0
cmp r14, r15
ja 0x14004fdea
lea rax, [r14 + r14*2]
mov qword [rsp + 0x78], rax
lea r15, [rdi + rax*8]
xor r12d, r12d
mov rbx, rbp
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], rsi
mov r14, rsi
nop word cs:[rax + rax]
lea rax, [r14 + r14*2]
mov rsi, rbp
lea rbp, [rbp + rax*8]
cmp rbx, rbp
jae 0x14004fa6d
nop word cs:[rax + rax]
mov rcx, r13
mov rdx, rbx
call sym.cpal::SupportedStreamConfigRange::cmp_default_heuristics::hfe9a81cd13d8c1c1
add r15, 0xffffffffffffffe8
xor ecx, ecx
cmp al, 0xff
sete cl
mov rax, r15
cmove rax, rdi
lea rdx, [r12 + r12*2]
movups xmm0, xmmword [rbx]
movups xmmword [rax + rdx*8], xmm0
mov r8, qword [rbx + 0x10]
mov qword [rax + rdx*8 + 0x10], r8
add r12, rcx
add rbx, 0x18
cmp rbx, rbp
jb 0x14004fa30
mov rax, qword [rsp + 0x60]
cmp r14, rax
mov r14, rax
je 0x14004faa0
lea rax, [r12 + r12*2]
mov rcx, qword [rbx + 0x10]
mov qword [r15 + rax*8 - 8], rcx
movups xmm0, xmmword [rbx]
movups xmmword [r15 + rax*8 - 0x18], xmm0
add r15, 0xffffffffffffffe8
add rbx, 0x18
mov rbp, rsi
jmp 0x14004fa10
lea rax, [r12*8]
lea r8, [rax + rax*2]
mov rbp, rsi
mov rcx, rsi
mov rdx, rdi
call sym.memcpy
mov rdx, r14
sub rdx, r12
mov r15, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
je 0x14004fb82
lea rax, [r12 + r12*2]
lea rax, [rax*8]
add rax, rbp
lea rcx, [r12 + 1]
cmp r14, rcx
jne 0x14004fb00
xor r9d, r9d
jmp 0x14004fb5f
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0x78]
lea r8, [r8 + r9*8]
mov r10, rax
xor r11d, r11d
nop dword [rax + rax]
mov r9, qword [r8 + 0x10]
mov qword [r10 + 0x10], r9
movups xmm0, xmmword [r8]
movups xmmword [r10], xmm0
lea r9, [r11 + 2]
xor r11, 0xfffffffffffffffe
lea r11, [r11 + r11*2]
movups xmm0, xmmword [rbx + r11*8]
movups xmmword [r10 + 0x18], xmm0
mov r11, qword [rbx + r11*8 + 0x10]
mov qword [r10 + 0x28], r11
add r10, 0x30
add r8, 0xffffffffffffffd0
mov r11, r9
cmp rcx, r9
jne 0x14004fb20
test dl, 1
je 0x14004fb82
lea rcx, [r9 + r9*2]
not r9
lea r8, [r9 + r9*2]
mov r9, qword [rbx + r8*8 + 0x10]
mov qword [rax + rcx*8 + 0x10], r9
movups xmm0, xmmword [rbx + r8*8]
movups xmmword [rax + rcx*8], xmm0
test r12, r12
je 0x14004fbe0
cmp r14, r12
jb 0x14004fdec
lea rax, [r12 + r12*2]
lea rcx, [rax*8]
add rcx, rbp
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x44]
mov dword [rsp + 0x20], esi
mov r8, rdi
mov r9, r15
call sym.core::slice::sort::stable::quicksort::quicksort::hc81c70fec5d61a7d
mov r14, r12
cmp r12, 0x21
jae 0x14004f8e0
jmp 0x14004f895
cmp r14, r15
ja 0x14004fdea
lea rax, [r14 + r14*2]
mov qword [rsp + 0x50], rax
lea rbx, [rdi + rax*8]
xor r15d, r15d
mov r12, rbp
mov qword [rsp + 0x58], rbx
nop word cs:[rax + rax]
lea rax, [rsi + rsi*2]
lea r14, [rax*8]
add r14, rbp
cmp r12, r14
jae 0x14004fc70
nop word cs:[rax + rax]
mov rcx, r12
mov rdx, r13
call sym.cpal::SupportedStreamConfigRange::cmp_default_heuristics::hfe9a81cd13d8c1c1
add rbx, 0xffffffffffffffe8
xor ecx, ecx
cmp al, 0xff
setne cl
mov rax, rbx
cmovne rax, rdi
lea rdx, [r15 + r15*2]
movups xmm0, xmmword [r12]
movups xmmword [rax + rdx*8], xmm0
mov r8, qword [r12 + 0x10]
mov qword [rax + rdx*8 + 0x10], r8
add r15, rcx
add r12, 0x18
cmp r12, r14
jb 0x14004fc30
mov r14, qword [rsp + 0x60]
cmp rsi, r14
je 0x14004fcb0
add rbx, 0xffffffffffffffe8
lea rax, [r15 + r15*2]
mov rcx, qword [r12 + 0x10]
mov qword [rdi + rax*8 + 0x10], rcx
movups xmm0, xmmword [r12]
movups xmmword [rdi + rax*8], xmm0
inc r15
add r12, 0x18
mov rsi, r14
jmp 0x14004fc10
lea rax, [r15*8]
lea r8, [rax + rax*2]
mov rcx, rbp
mov rdx, rdi
call sym.memcpy
mov r12, r14
sub r12, r15
mov esi, dword [rsp + 0x44]
mov r11, qword [rsp + 0x58]
je 0x14004fd82
lea rax, [r15 + r15*2]
lea rax, [rax*8]
add rax, rbp
lea rcx, [r15 + 1]
cmp r14, rcx
jne 0x14004fcf9
xor r8d, r8d
jmp 0x14004fd5e
mov rcx, r12
and rcx, 0xfffffffffffffffe
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x50]
lea rdx, [rdx + r8*8]
mov r9, rax
xor r10d, r10d
nop word cs:[rax + rax]
mov r8, qword [rdx + 0x10]
mov qword [r9 + 0x10], r8
movups xmm0, xmmword [rdx]
movups xmmword [r9], xmm0
lea r8, [r10 + 2]
xor r10, 0xfffffffffffffffe
lea r10, [r10 + r10*2]
movups xmm0, xmmword [r11 + r10*8]
movups xmmword [r9 + 0x18], xmm0
mov r10, qword [r11 + r10*8 + 0x10]
mov qword [r9 + 0x28], r10
add r9, 0x30
add rdx, 0xffffffffffffffd0
mov r10, r8
cmp rcx, r8
jne 0x14004fd20
test r12b, 1
je 0x14004fd82
lea rcx, [r8 + r8*2]
not r8
lea rdx, [r8 + r8*2]
mov r8, qword [r11 + rdx*8 + 0x10]
mov qword [rax + rcx*8 + 0x10], r8
movups xmm0, xmmword [r11 + rdx*8]
movups xmmword [rax + rcx*8], xmm0
cmp r14, r15
jb 0x14004fe32
lea rax, [r15 + r15*2]
lea rbp, [rbp + rax*8]
mov eax, 0
mov qword [rsp + 0x48], rax
cmp r12, 0x21
mov r15, qword [rsp + 0x70]
jae 0x14004f8da
jmp 0x14004f895
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, rbp
mov rdx, r14
mov r8, rdi
mov r9, r15
call sym.core::slice::sort::stable::drift::sort::h1fd0b01b87355ced
nop
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x1401d3500]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0xb0], xmm0
lea rdx, [0x1401d3510]
lea rcx, [rsp + 0x98]
call sym.core::panicking::panic_fmt::h50bba86df16ca19f
lea r8, [0x1401d3528]
mov rcx, r15
mov rdx, r14
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
int3