Function at 0x14004e4e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov qword [rsp + 0x60], r9
mov r12, rdx
mov r15, rcx
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x58], rax
cmp rdx, 0x11
jae 0x14004e544
cmp r12, 2
jb 0x14004ed60
mov r8d, 1
mov rcx, r15
mov rdx, r12
mov r9, qword [rsp + 0x58]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sym.core::slice::sort::shared::smallsort::insertion_sort_shift_left::h427b9a1bbcd202b8
mov r14, r8
mov edi, dword [rsp + 0x120]
lea rax, [r8 - 0x50]
mov qword [rsp + 0x68], rax
mov rcx, r12
mov qword [rsp + 0x48], r15
nop
sub edi, 1
jb 0x14004ed3e
mov r9, rcx
shr r9, 3
lea r12, [r9 + r9*4]
shl r12, 6
add r12, r15
imul rsi, r9, 0x230
add rsi, r15
cmp rcx, 0x40
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x54], edi
jae 0x14004e5d0
movzx ebp, byte [r15 + 0x18]
mov edx, 1
test bpl, bpl
je 0x14004e5e3
mov rcx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
movzx ebx, byte [r12 + 0x18]
test bl, bl
je 0x14004e5f4
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
jmp 0x14004e5f7
mov rcx, r15
mov rdx, r12
mov r8, rsi
call sym.core::slice::sort::shared::pivot::median3_rec::hd7a2337ace8dfc25
jmp 0x14004e6bc
xor eax, eax
mov ecx, 1
movzx ebx, byte [r12 + 0x18]
test bl, bl
jne 0x14004e5b5
xor r8d, r8d
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
mov edx, 1
test bpl, bpl
je 0x14004e633
mov rcx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
movzx ebp, byte [rsi + 0x18]
test bpl, bpl
je 0x14004e643
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
jmp 0x14004e646
xor eax, eax
mov ecx, 1
movzx ebp, byte [rsi + 0x18]
test bpl, bpl
jne 0x14004e629
xor r8d, r8d
mov r15, rax
sub r15, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r15, rax
xor r15, rdi
mov r15, qword [rsp + 0x48]
mov rax, r15
js 0x14004e6bc
mov edx, 1
test bl, bl
je 0x14004e68c
mov rcx, qword [r12 + 8]
mov rax, qword [r12 + 0x10]
test bpl, bpl
je 0x14004e698
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
jmp 0x14004e69b
xor eax, eax
mov ecx, 1
test bpl, bpl
jne 0x14004e682
xor r8d, r8d
mov rbx, rax
sub rbx, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rbx, rax
xor rbx, rdi
cmovs r12, rsi
mov rax, r12
sub rax, r15
movabs rcx, 0xcccccccccccccccd
mul rcx
mov rax, qword [rsp + 0x38]
cmp rax, qword [rsp + 0x60]
ja 0x14004ed75
shr rdx, 6
lea rdi, [rdx + rdx*4]
shl rdi, 4
add rdi, r15
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rsp + 0x70], rax
lea rbp, [r14 + rax]
xor r12d, r12d
mov rbx, r15
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x80], rdx
mov r15, rdx
xor eax, eax
mov qword [rsp + 0x40], rax
nop dword [rax]
lea r13, [r15 + r15*4]
shl r13, 4
add r13, qword [rsp + 0x48]
jmp 0x14004e79b
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
mov rsi, rax
sub rsi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
add rbp, 0xffffffffffffffb0
test rsi, rsi
mov rax, rbp
cmovs rax, r14
lea rcx, [r12 + r12*4]
shl rcx, 4
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmm3, xmmword [rbx + 0x30]
movups xmmword [rax + rcx], xmm0
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x30], xmm3
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rax + rcx + 0x40], xmm0
shr rsi, 0x3f
add r12, rsi
add rbx, 0x50
cmp rbx, r13
jae 0x14004e7e0
mov edx, 1
cmp byte [rbx + 0x18], 0
je 0x14004e7c0
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
cmp byte [rdi + 0x18], 0
jne 0x14004e730
jmp 0x14004e7d1
xor eax, eax
mov ecx, 1
cmp byte [rdi + 0x18], 0
jne 0x14004e730
xor r8d, r8d
jmp 0x14004e738
mov rcx, qword [rsp + 0x38]
cmp r15, rcx
je 0x14004e840
lea rax, [r12 + r12*4]
shl rax, 4
lea rdx, [rax + rbp]
add rdx, 0xffffffffffffffb0
mov qword [rsp + 0x40], rdx
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rbp + rax - 0x10], xmm0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmm3, xmmword [rbx + 0x30]
movups xmmword [rbp + rax - 0x20], xmm3
movups xmmword [rbp + rax - 0x30], xmm2
movups xmmword [rbp + rax - 0x40], xmm1
movups xmmword [rbp + rax - 0x50], xmm0
add rbp, 0xffffffffffffffb0
add rbx, 0x50
mov r15, rcx
jmp 0x14004e720
movups xmm0, xmmword [rdi + 0x40]
mov rax, qword [rsp + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov rax, r12
shl rax, 4
lea r8, [rax + rax*4]
mov r15, qword [rsp + 0x48]
mov rcx, r15
mov rdx, r14
call sym.memcpy
mov rcx, qword [rsp + 0x38]
mov rdx, rcx
sub rdx, r12
mov rbx, qword [rsp + 0x78]
je 0x14004e9cd
lea rax, [r12 + r12*4]
shl rax, 4
add rax, r15
mov r8, rcx
lea rcx, [r12 + 1]
cmp r8, rcx
jne 0x14004e8c0
xor r10d, r10d
jmp 0x14004e976
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0x70]
add r8, r9
mov r9, rax
xor r11d, r11d
nop word [rax + rax]
movups xmm0, xmmword [r8 + 0x40]
movups xmmword [r9 + 0x40], xmm0
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmm2, xmmword [r8 + 0x20]
movups xmm3, xmmword [r8 + 0x30]
movups xmmword [r9 + 0x30], xmm3
movups xmmword [r9 + 0x20], xmm2
movups xmmword [r9 + 0x10], xmm1
movups xmmword [r9], xmm0
lea r10, [r11 + 2]
xor r11, 0xfffffffffffffffe
lea r11, [r11 + r11*4]
shl r11, 4
movups xmm0, xmmword [rbx + r11]
movups xmm1, xmmword [rbx + r11 + 0x10]
movups xmm2, xmmword [rbx + r11 + 0x20]
movups xmm3, xmmword [rbx + r11 + 0x30]
movups xmmword [r9 + 0x50], xmm0
movups xmmword [r9 + 0x60], xmm1
movups xmmword [r9 + 0x70], xmm2
movups xmmword [r9 + 0x80], xmm3
movups xmm0, xmmword [rbx + r11 + 0x40]
movups xmmword [r9 + 0x90], xmm0
add r9, 0xa0
add r8, 0xffffffffffffff60
mov r11, r10
cmp rcx, r10
jne 0x14004e8e0
test dl, 1
mov rcx, qword [rsp + 0x38]
je 0x14004e9cd
lea rcx, [r10 + r10*4]
not r10
lea r8, [r10 + r10*4]
shl r8, 4
shl rcx, 4
movups xmm0, xmmword [rbx + r8 + 0x40]
movups xmmword [rax + rcx + 0x40], xmm0
movups xmm0, xmmword [rbx + r8]
movups xmm1, xmmword [rbx + r8 + 0x10]
movups xmm2, xmmword [rbx + r8 + 0x20]
movups xmm3, xmmword [rbx + r8 + 0x30]
movups xmmword [rax + rcx + 0x30], xmm3
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
mov rcx, qword [rsp + 0x38]
test r12, r12
je 0x14004ea20
cmp rcx, r12
jb 0x14004ed77
lea rcx, [r12 + r12*4]
shl rcx, 4
add rcx, r15
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov edi, dword [rsp + 0x54]
mov dword [rsp + 0x20], edi
mov r8, r14
mov r9, qword [rsp + 0x60]
call sym.core::slice::sort::stable::quicksort::quicksort::h881b3464e7917a2b
mov rcx, r12
cmp r12, 0x11
jae 0x14004e560
jmp 0x14004e511
xor ebp, ebp
mov rsi, r15
xor eax, eax
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x80]
nop word cs:[rax + rax]
mov r12, rcx
lea r15, [rcx + rcx*4]
shl r15, 4
add r15, qword [rsp + 0x48]
jmp 0x14004ead3
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov r13, rax
sub r13, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r13, rax
add rbx, 0xffffffffffffffb0
xor eax, eax
test r13, r13
mov rcx, rbx
cmovns rcx, r14
setns al
lea rdx, [rbp*4]
add rdx, rbp
shl rdx, 4
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmm3, xmmword [rsi + 0x30]
movups xmmword [rcx + rdx], xmm0
movups xmmword [rcx + rdx + 0x10], xmm1
movups xmmword [rcx + rdx + 0x20], xmm2
movups xmmword [rcx + rdx + 0x30], xmm3
movups xmm0, xmmword [rsi + 0x40]
movups xmmword [rcx + rdx + 0x40], xmm0
add rbp, rax
add rsi, 0x50
cmp rsi, r15
jae 0x14004eb20
mov edx, 1
cmp byte [rdi + 0x18], 0
je 0x14004eb00
mov rcx, qword [rdi + 8]
mov rax, qword [rdi + 0x10]
cmp byte [rsi + 0x18], 0
jne 0x14004ea60
jmp 0x14004eb11
xor eax, eax
mov ecx, 1
cmp byte [rsi + 0x18], 0
jne 0x14004ea60
xor r8d, r8d
jmp 0x14004ea68
mov rcx, qword [rsp + 0x38]
cmp r12, rcx
je 0x14004eb90
add rbx, 0xffffffffffffffb0
lea rax, [rbp*4]
add rax, rbp
shl rax, 4
lea rdx, [r14 + rax]
mov qword [rsp + 0x40], rdx
movups xmm0, xmmword [rsi + 0x40]
movups xmmword [r14 + rax + 0x40], xmm0
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmm3, xmmword [rsi + 0x30]
movups xmmword [r14 + rax + 0x30], xmm3
movups xmmword [r14 + rax + 0x20], xmm2
movups xmmword [r14 + rax + 0x10], xmm1
movups xmmword [r14 + rax], xmm0
inc rbp
add rsi, 0x50
jmp 0x14004ea40
movups xmm0, xmmword [rdi + 0x40]
mov rax, qword [rsp + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov rax, rbp
shl rax, 4
lea r8, [rax + rax*4]
mov r15, qword [rsp + 0x48]
mov rcx, r15
mov rdx, r14
call sym.memcpy
mov rdx, qword [rsp + 0x38]
mov r12, rdx
sub r12, rbp
mov edi, dword [rsp + 0x54]
mov r10, qword [rsp + 0x78]
je 0x14004ed14
lea rax, [rbp*4]
add rax, rbp
shl rax, 4
add rax, r15
lea rcx, [rbp + 1]
cmp rdx, rcx
jne 0x14004ec13
xor r8d, r8d
jmp 0x14004ecbc
mov rcx, r12
and rcx, 0xfffffffffffffffe
mov r11, qword [rsp + 0x70]
add r11, qword [rsp + 0x68]
mov rdx, rax
xor r9d, r9d
nop word [rax + rax]
movups xmm0, xmmword [r11 + 0x40]
movups xmmword [rdx + 0x40], xmm0
movups xmm0, xmmword [r11]
movups xmm1, xmmword [r11 + 0x10]
movups xmm2, xmmword [r11 + 0x20]
movups xmm3, xmmword [r11 + 0x30]
movups xmmword [rdx + 0x30], xmm3
movups xmmword [rdx + 0x20], xmm2
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea r8, [r9 + 2]
xor r9, 0xfffffffffffffffe
lea r9, [r9 + r9*4]
shl r9, 4
movups xmm0, xmmword [r10 + r9]
movups xmm1, xmmword [r10 + r9 + 0x10]
movups xmm2, xmmword [r10 + r9 + 0x20]
movups xmm3, xmmword [r10 + r9 + 0x30]
movups xmmword [rdx + 0x50], xmm0
movups xmmword [rdx + 0x60], xmm1
movups xmmword [rdx + 0x70], xmm2
movups xmmword [rdx + 0x80], xmm3
movups xmm0, xmmword [r10 + r9 + 0x40]
movups xmmword [rdx + 0x90], xmm0
add rdx, 0xa0
add r11, 0xffffffffffffff60
mov r9, r8
cmp rcx, r8
jne 0x14004ec30
test r12b, 1
mov rdx, qword [rsp + 0x38]
je 0x14004ed14
lea rcx, [r8 + r8*4]
not r8
lea rdx, [r8 + r8*4]
shl rdx, 4
shl rcx, 4
movups xmm0, xmmword [r10 + rdx + 0x40]
movups xmmword [rax + rcx + 0x40], xmm0
movups xmm0, xmmword [r10 + rdx]
movups xmm1, xmmword [r10 + rdx + 0x10]
movups xmm2, xmmword [r10 + rdx + 0x20]
movups xmm3, xmmword [r10 + rdx + 0x30]
movups xmmword [rax + rcx + 0x30], xmm3
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
mov rdx, qword [rsp + 0x38]
cmp rdx, rbp
jb 0x14004edbd
lea rax, [rbp*4]
add rax, rbp
shl rax, 4
add r15, rax
cmp r12, 0x11
jae 0x14004e557
jmp 0x14004e511
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rdx, rcx
mov rcx, r15
mov r8, r14
mov r9, qword [rsp + 0x60]
call sym.core::slice::sort::stable::drift::sort::hcd65f2914a47fdff
nop
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x1402e5ab0]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], 1
mov qword [rsp + 0x98], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0xa0], xmm0
lea rdx, str._rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrarycore_src_slice_sort_stablequicksort.rsmid___len
lea rcx, [rsp + 0x88]
call sym.core::panicking::panic_fmt::h50bba86df16ca19f
lea r8, str.HZ._
mov rcx, rbp
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
int3