Function at 0x140228240
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov qword [rsp + 0x50], r9
mov rdi, r8
mov r12, rdx
mov r14, rcx
cmp rdx, 0x21
jae 0x14022828c
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov rdx, r12
mov r8, rdi
mov r9, qword [rsp + 0x50]
call sym.core::slice::sort::shared::smallsort::small_sort_general_with_scratch::h489eb8a804a41188
jmp 0x1402288b0
mov rbp, qword [rsp + 0x158]
mov esi, dword [rsp + 0x150]
lea rax, [rdi - 0x20]
mov qword [rsp + 0x70], rax
lea rax, [r14 + 0x20]
mov qword [rsp + 0x78], rax
mov rdx, r12
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], rbp
nop word [rax + rax]
sub esi, 1
jb 0x14022888e
mov dword [rsp + 0x5c], esi
mov r9, rdx
shr r9, 3
mov r12, r9
shl r12, 7
add r12, r14
imul r13, r9, 0xe0
add r13, r14
cmp rdx, 0x40
mov qword [rsp + 0x68], rdx
jae 0x1402283d0
mov r15, qword [r14 + 0x10]
mov rsi, qword [r12 + 0x10]
cmp r15, rsi
setb r14b
jne 0x140228339
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov r14, rax
sub r14, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r14, rax
shr r14, 0x3f
mov rbx, qword [r13 + 0x10]
cmp r15, rbx
setb bpl
jne 0x140228375
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rdx, qword [r13]
mov r8, qword [r13 + 8]
mov rbp, rax
sub rbp, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rbp, rax
shr rbp, 0x3f
mov rax, qword [rsp + 0x40]
mov r15, rax
cmp r14b, bpl
mov rbp, qword [rsp + 0x48]
jne 0x1402283e4
cmp rsi, rbx
setb sil
jne 0x1402283bc
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
mov rdx, qword [r13]
mov r8, qword [r13 + 8]
mov rsi, rax
sub rsi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
shr rsi, 0x3f
xor r14b, sil
cmovne r12, r13
mov r15, r12
mov rax, qword [rsp + 0x40]
jmp 0x1402283e4
mov rcx, r14
mov rdx, r12
mov r8, r13
call sym.core::slice::sort::shared::pivot::median3_rec::h300fb44319e9a874
mov r15, rax
mov rax, r14
mov rsi, r15
sub rsi, rax
shr rsi, 5
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
test rbp, rbp
mov r14, rax
mov rbx, qword [rsp + 0x68]
je 0x140228466
mov rax, qword [r15 + 0x10]
cmp qword [rbp + 0x10], rax
jne 0x140228460
mov rcx, qword [rbp]
mov rax, qword [rbp + 8]
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
mov r12, rsi
mov rsi, rax
sub rsi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
test rsi, rsi
mov rsi, r12
js 0x140228466
jmp 0x1402286b0
jae 0x1402286b0
cmp rbx, qword [rsp + 0x50]
ja 0x1402288c5
shl rbx, 5
mov qword [rsp + 0x80], rbx
lea rbp, [rdi + rbx]
mov qword [rsp + 0x88], rbp
xor r12d, r12d
mov r13, r14
mov qword [rsp + 0x60], rsi
mov rbx, rsi
nop word [rax + rax]
mov rsi, rbx
shl rsi, 5
add rsi, r14
jmp 0x1402284e3
add rbp, 0xffffffffffffffe0
test r14b, r14b
mov rax, rbp
cmovne rax, rdi
mov rcx, r12
shl rcx, 5
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
movzx eax, r14b
add r12, rax
add r13, 0x20
cmp r13, rsi
jae 0x140228530
mov rax, qword [r13 + 0x10]
cmp rax, qword [r15 + 0x10]
setb r14b
jne 0x1402284b0
mov rcx, qword [r13]
mov rax, qword [r13 + 8]
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
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 0x1402284b0
mov rax, qword [rsp + 0x68]
cmp rbx, rax
mov rbx, rax
je 0x140228570
mov rax, r12
shl rax, 5
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rbp + rax - 0x10], xmm1
movups xmmword [rbp + rax - 0x20], xmm0
add rbp, 0xffffffffffffffe0
add r13, 0x20
mov r14, qword [rsp + 0x40]
jmp 0x1402284a0
mov r13, r12
shl r13, 5
mov r14, qword [rsp + 0x40]
mov rcx, r14
mov rdx, rdi
mov r8, r13
call sym.memcpy
mov r11, qword [rsp + 0x88]
mov rdx, rbx
sub rdx, r12
movabs r10, 0x7fffffffffffffe
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x60]
je 0x140228651
lea rax, [r12 + 1]
cmp rbx, rax
jne 0x1402285c0
xor eax, eax
jmp 0x140228621
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x78]
lea r8, [rax + r13]
mov rbp, qword [rsp + 0x80]
add rbp, qword [rsp + 0x70]
xor r9d, r9d
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [r8 - 0x10], xmm1
movups xmmword [r8 - 0x20], xmm0
lea rax, [r9 + 2]
xor r9, r10
shl r9, 5
movups xmm0, xmmword [r11 + r9]
movups xmm1, xmmword [r11 + r9 + 0x10]
movups xmmword [r8], xmm0
movups xmmword [r8 + 0x10], xmm1
add r8, 0x40
add rbp, 0xffffffffffffffc0
mov r9, rax
cmp rcx, rax
jne 0x1402285e0
test dl, 1
mov rbp, qword [rsp + 0x48]
je 0x140228651
lea rcx, [r14 + r13]
mov r8, rax
not r8
shl r8, 5
shl rax, 5
movups xmm0, xmmword [r11 + r8]
movups xmm1, xmmword [r11 + r8 + 0x10]
movups xmmword [rcx + rax + 0x10], xmm1
movups xmmword [rcx + rax], xmm0
test r12, r12
je 0x1402286b0
cmp rbx, r12
jb 0x1402288c7
add r13, r14
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x5c]
mov dword [rsp + 0x20], esi
mov rcx, r13
mov r8, rdi
mov r9, qword [rsp + 0x50]
call sym.core::slice::sort::stable::quicksort::quicksort::hefd156866cd524fb
mov rdx, r12
cmp r12, 0x21
jae 0x1402282c0
jmp 0x140228267
cmp rbx, qword [rsp + 0x50]
ja 0x1402288c5
shl rbx, 5
mov qword [rsp + 0x60], rbx
lea r12, [rdi + rbx]
xor r13d, r13d
mov qword [rsp + 0x48], r12
mov rbp, rsi
shl rsi, 5
add rsi, qword [rsp + 0x40]
jmp 0x140228714
mov eax, ebx
xor al, 1
add r12, 0xffffffffffffffe0
test bl, bl
mov rcx, rdi
cmovne rcx, r12
mov rdx, r13
shl rdx, 5
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rcx + rdx + 0x10], xmm1
movups xmmword [rcx + rdx], xmm0
movzx eax, al
add r13, rax
add r14, 0x20
cmp r14, rsi
jae 0x140228760
mov rax, qword [r15 + 0x10]
cmp rax, qword [r14 + 0x10]
setb bl
jne 0x1402286e0
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
mov rbx, rax
sub rbx, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rbx, rax
shr rbx, 0x3f
jmp 0x1402286e0
mov rsi, qword [rsp + 0x68]
cmp rbp, rsi
je 0x1402287a0
add r12, 0xffffffffffffffe0
mov rax, r13
shl rax, 5
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rdi + rax + 0x10], xmm1
movups xmmword [rdi + rax], xmm0
inc r13
add r14, 0x20
jmp 0x1402286d0
mov r15, r13
shl r15, 5
mov r14, qword [rsp + 0x40]
mov rcx, r14
mov rdx, rdi
mov r8, r15
call sym.memcpy
mov r12, rsi
sub r12, r13
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
je 0x14022886a
lea rax, [r13 + 1]
cmp rsi, rax
jne 0x1402287dd
xor eax, eax
jmp 0x14022883e
mov rcx, r12
and rcx, 0xfffffffffffffffe
lea rdx, [r14 + r15]
add rdx, 0x20
add r11, qword [rsp + 0x70]
xor r8d, r8d
movabs r9, 0x7fffffffffffffe
nop
movups xmm0, xmmword [r11]
movups xmm1, xmmword [r11 + 0x10]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdx - 0x20], xmm0
lea rax, [r8 + 2]
xor r8, r9
shl r8, 5
movups xmm0, xmmword [r10 + r8]
movups xmm1, xmmword [r10 + r8 + 0x10]
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
add rdx, 0x40
add r11, 0xffffffffffffffc0
mov r8, rax
cmp rcx, rax
jne 0x140228800
test r12b, 1
je 0x14022886a
lea rcx, [r14 + r15]
mov rdx, rax
not rdx
shl rdx, 5
shl rax, 5
movups xmm0, xmmword [r10 + rdx]
movups xmm1, xmmword [r10 + rdx + 0x10]
movups xmmword [rcx + rax + 0x10], xmm1
movups xmmword [rcx + rax], xmm0
cmp rsi, r13
jb 0x14022890d
add r14, r15
mov ebp, 0
cmp r12, 0x21
mov esi, dword [rsp + 0x5c]
jae 0x1402282a4
jmp 0x140228267
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, r14
mov r8, rdi
mov r9, qword [rsp + 0x50]
call sym.core::slice::sort::stable::drift::sort::hb40a517b4d136e2f
nop
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x1403c3bf8]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 1
mov qword [rsp + 0xa0], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0xa8], xmm0
lea rdx, str._rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrarycore_src_slice_sort_stablequicksort.rsmid___len
lea rcx, [rsp + 0x90]
call sym.core::panicking::panic_fmt::h50bba86df16ca19f
lea r8, str._rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrarycore_src_slice_sort_stablequicksort.rsmid___len
mov rcx, r13
mov rdx, rsi
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
int3