Function at 0x14001e250
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rbp, r9
mov rdi, r8
mov r12, rdx
mov r15, rcx
cmp rdx, 0x21
jae 0x14001e298
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x20], rax
mov rcx, r15
mov rdx, r12
mov r8, rdi
mov r9, rbp
call sym.core::slice::sort::shared::smallsort::small_sort_general_with_scratch::h97c96642a54c9c60
jmp 0x14001e953
mov r13, qword [rsp + 0x148]
mov esi, dword [rsp + 0x140]
lea rax, [rdi - 0x28]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rbp
mov rdx, r12
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x48], r13
nop word cs:[rax + rax]
sub esi, 1
jb 0x14001e933
mov dword [rsp + 0x44], esi
mov r9, rdx
shr r9, 3
lea rsi, [r9 + r9*4]
shl rsi, 5
add rsi, r15
imul r12, r9, 0x118
add r12, r15
mov qword [rsp + 0x58], rdx
cmp rdx, 0x40
jae 0x14001e3e0
mov r13, qword [r15 + 0x18]
mov r14, qword [rsi + 0x18]
cmp r13, r14
setb bl
jne 0x14001e343
mov rcx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov rbx, rax
sub rbx, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rbx, rax
shr rbx, 0x3f
mov r15, qword [r12 + 0x18]
cmp r13, r15
setb r13b
jne 0x14001e383
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax + 8]
mov rax, qword [rax + 0x10]
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
mov r13, rax
sub r13, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r13, rax
shr r13, 0x3f
mov r8, qword [rsp + 0x38]
mov rax, r8
cmp bl, r13b
mov r13, qword [rsp + 0x48]
jne 0x14001e3f1
cmp r14, r15
setb r14b
jne 0x14001e3cb
mov rcx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
mov r14, rax
sub r14, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r14, rax
shr r14, 0x3f
xor bl, r14b
cmovne rsi, r12
mov rax, rsi
mov r8, qword [rsp + 0x38]
jmp 0x14001e3f1
mov rcx, r15
mov rdx, rsi
mov r8, r12
call sym.core::slice::sort::shared::pivot::median3_rec::h7b70f2263b186fa9
mov r8, r15
sub rax, r8
movabs rcx, 0xcccccccccccccccd
mul rcx
shr rdx, 5
mov qword [rsp + 0x70], rdx
lea rax, [rdx + rdx*4]
lea rsi, [r8 + rax*8]
mov rcx, qword [r8 + rax*8 + 0x20]
mov qword [rsp + 0xd0], rcx
movups xmm0, xmmword [r8 + rax*8]
movups xmm1, xmmword [r8 + rax*8 + 0x10]
movaps xmmword [rsp + 0xc0], xmm1
movaps xmmword [rsp + 0xb0], xmm0
test r13, r13
mov r15, r8
mov r14, qword [rsp + 0x58]
je 0x14001e496
mov rax, qword [rsi + 0x18]
cmp qword [r13 + 0x18], rax
jne 0x14001e490
mov rcx, qword [r13 + 8]
mov rax, qword [r13 + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov rbx, rax
sub rbx, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rbx, rax
test rbx, rbx
js 0x14001e496
jmp 0x14001e6e0
jae 0x14001e6e0
cmp r14, rbp
ja 0x14001e968
lea rax, [r14 + r14*4]
mov qword [rsp + 0x78], rax
lea r13, [rdi + rax*8]
xor r12d, r12d
mov rbx, r15
mov qword [rsp + 0x50], r13
mov r14, qword [rsp + 0x70]
nop dword [rax]
lea rax, [r14 + r14*4]
lea r15, [r15 + rax*8]
jmp 0x14001e506
add r13, 0xffffffffffffffd8
test bpl, bpl
mov rax, r13
cmovne rax, rdi
lea rcx, [r12 + r12*4]
mov rdx, qword [rbx + 0x20]
mov qword [rax + rcx*8 + 0x20], rdx
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + rcx*8 + 0x10], xmm1
movups xmmword [rax + rcx*8], xmm0
movzx eax, bpl
add r12, rax
add rbx, 0x28
cmp rbx, r15
jae 0x14001e550
mov rax, qword [rbx + 0x18]
cmp rax, qword [rsi + 0x18]
setb bpl
jne 0x14001e4d0
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov rbp, rax
sub rbp, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rbp, rax
shr rbp, 0x3f
jmp 0x14001e4d0
mov rax, qword [rsp + 0x58]
cmp r14, rax
mov r14, rax
je 0x14001e590
lea rax, [r12 + r12*4]
mov rcx, qword [rbx + 0x20]
mov qword [r13 + rax*8 - 8], rcx
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r13 + rax*8 - 0x18], xmm1
movups xmmword [r13 + rax*8 - 0x28], xmm0
add r13, 0xffffffffffffffd8
add rbx, 0x28
mov r15, qword [rsp + 0x38]
jmp 0x14001e4c0
lea rax, [r12*8]
lea r8, [rax + rax*4]
mov r15, qword [rsp + 0x38]
mov rcx, r15
mov rdx, rdi
call sym.memcpy
mov rdx, r14
sub rdx, r12
mov rbp, qword [rsp + 0x68]
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
je 0x14001e682
lea rax, [r12 + r12*4]
lea rax, [r15 + rax*8]
lea rcx, [r12 + 1]
cmp r14, rcx
jne 0x14001e5e0
xor r10d, r10d
jmp 0x14001e654
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0x78]
lea r8, [r8 + r9*8]
mov r9, rax
xor r11d, r11d
nop dword [rax + rax]
mov r10, qword [r8 + 0x20]
mov qword [r9 + 0x20], r10
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r9 + 0x10], xmm1
movups xmmword [r9], xmm0
lea r10, [r11 + 2]
xor r11, 0xfffffffffffffffe
lea r11, [r11 + r11*4]
movups xmm0, xmmword [rbx + r11*8]
movups xmm1, xmmword [rbx + r11*8 + 0x10]
movups xmmword [r9 + 0x28], xmm0
movups xmmword [r9 + 0x38], xmm1
mov r11, qword [rbx + r11*8 + 0x20]
mov qword [r9 + 0x48], r11
add r9, 0x50
add r8, 0xffffffffffffffb0
mov r11, r10
cmp rcx, r10
jne 0x14001e600
test dl, 1
je 0x14001e682
lea rcx, [r10 + r10*4]
not r10
lea r8, [r10 + r10*4]
mov r9, qword [rbx + r8*8 + 0x20]
mov qword [rax + rcx*8 + 0x20], r9
movups xmm0, xmmword [rbx + r8*8]
movups xmm1, xmmword [rbx + r8*8 + 0x10]
movups xmmword [rax + rcx*8 + 0x10], xmm1
movups xmmword [rax + rcx*8], xmm0
test r12, r12
je 0x14001e6e0
cmp r14, r12
jb 0x14001e96a
lea rax, [r12 + r12*4]
lea rcx, [r15 + rax*8]
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x44]
mov dword [rsp + 0x20], esi
mov r8, rdi
mov r9, rbp
call sym.core::slice::sort::stable::quicksort::quicksort::h712ce93f48131db8
mov rdx, r12
cmp r12, 0x21
jae 0x14001e2d0
jmp 0x14001e275
cmp r14, rbp
ja 0x14001e968
lea rax, [r14 + r14*4]
mov qword [rsp + 0x48], rax
lea rbp, [rdi + rax*8]
xor r13d, r13d
mov r12, qword [rsp + 0x38]
mov qword [rsp + 0x50], rbp
mov rbx, qword [rsp + 0x70]
nop dword [rax + rax]
mov r15, rbx
lea rax, [rbx + rbx*4]
mov rcx, qword [rsp + 0x38]
lea rbx, [rcx + rax*8]
jmp 0x14001e770
mov eax, r14d
xor al, 1
add rbp, 0xffffffffffffffd8
test r14b, r14b
mov rcx, rdi
cmovne rcx, rbp
lea rdx, [r13 + r13*4]
mov r8, qword [r12 + 0x20]
mov qword [rcx + rdx*8 + 0x20], r8
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rcx + rdx*8 + 0x10], xmm1
movups xmmword [rcx + rdx*8], xmm0
movzx eax, al
add r13, rax
add r12, 0x28
cmp r12, rbx
jae 0x14001e7c0
mov rax, qword [rsi + 0x18]
cmp rax, qword [r12 + 0x18]
setb r14b
jne 0x14001e730
mov rcx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
mov r14, rax
sub r14, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r14, rax
shr r14, 0x3f
jmp 0x14001e730
mov rbx, qword [rsp + 0x58]
cmp r15, rbx
je 0x14001e810
add rbp, 0xffffffffffffffd8
lea rax, [r13*4]
add rax, r13
mov rcx, qword [r12 + 0x20]
mov qword [rdi + rax*8 + 0x20], rcx
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rdi + rax*8 + 0x10], xmm1
movups xmmword [rdi + rax*8], xmm0
inc r13
add r12, 0x28
jmp 0x14001e710
lea rax, [r13*8]
lea r8, [rax + rax*4]
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
call sym.memcpy
mov r12, rbx
sub r12, r13
mov rbp, qword [rsp + 0x68]
mov esi, dword [rsp + 0x44]
mov r11, qword [rsp + 0x50]
je 0x14001e901
lea rax, [r13*4]
add rax, r13
mov rcx, qword [rsp + 0x38]
lea rax, [rcx + rax*8]
lea rcx, [r13 + 1]
cmp rbx, rcx
jne 0x14001e865
xor r9d, r9d
jmp 0x14001e8d2
mov rcx, r12
and rcx, 0xfffffffffffffffe
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
lea rdx, [rdx + r8*8]
mov r8, rax
xor r10d, r10d
mov r9, qword [rdx + 0x20]
mov qword [r8 + 0x20], r9
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
lea r9, [r10 + 2]
xor r10, 0xfffffffffffffffe
lea r10, [r10 + r10*4]
movups xmm0, xmmword [r11 + r10*8]
movups xmm1, xmmword [r11 + r10*8 + 0x10]
movups xmmword [r8 + 0x28], xmm0
movups xmmword [r8 + 0x38], xmm1
mov r10, qword [r11 + r10*8 + 0x20]
mov qword [r8 + 0x48], r10
add r8, 0x50
add rdx, 0xffffffffffffffb0
mov r10, r9
cmp rcx, r9
jne 0x14001e880
test r12b, 1
je 0x14001e901
lea rcx, [r9 + r9*4]
not r9
lea rdx, [r9 + r9*4]
mov r8, qword [r11 + rdx*8 + 0x20]
mov qword [rax + rcx*8 + 0x20], r8
movups xmm0, xmmword [r11 + rdx*8]
movups xmm1, xmmword [r11 + rdx*8 + 0x10]
movups xmmword [rax + rcx*8 + 0x10], xmm1
movups xmmword [rax + rcx*8], xmm0
cmp rbx, r13
jb 0x14001e9b0
lea rax, [r13*4]
add rax, r13
mov r15, qword [rsp + 0x38]
lea r15, [r15 + rax*8]
mov r13d, 0
cmp r12, 0x21
jae 0x14001e2b5
jmp 0x14001e275
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, r15
mov r8, rdi
mov r9, rbp
call sym.core::slice::sort::stable::drift::sort::h959c62b8edb57c35
nop
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x140221e58]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
mov qword [rsp + 0x90], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x98], xmm0
lea rdx, str._rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrarycore_src_slice_sort_stablequicksort.rsmid___lenO
lea rcx, [rsp + 0x80]
call sym.core::panicking::panic_fmt::h50bba86df16ca19f
lea r8, str._rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrarycore_src_slice_sort_stablequicksort.rsmid___lenO
mov rcx, r13
mov rdx, rbx
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
int3