Function at 0x1400c1340
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x308
lea rbp, [rsp + 0x80]
mov rsi, r8
mov r8, rdx
mov qword [rbp + 0x268], rcx
movabs rax, 0x3fffffffffffffff
add rax, rdx
mov rcx, rax
or rcx, rdx
shr rcx, 0x20
je 0x1400c1388
xor edx, edx
div r8
jmp 0x1400c138d
xor edx, edx
div r8d
mov qword [rbp + 0x240], rax
cmp r8, 0x1001
mov qword [rbp + 0x280], r9
mov qword [rbp + 0x260], r8
jae 0x1400c13c3
mov rax, r8
shr rax, 1
sub r8, rax
cmp r8, 0x40
mov eax, 0x40
cmovb rax, r8
jmp 0x1400c13d2
mov rcx, r8
call sym.core::slice::sort::stable::drift::sqrt_approx::hb8357f463699dba4
mov r9, qword [rbp + 0x280]
mov qword [rbp + 0x270], rax
mov rax, qword [rbp + 0x268]
lea rcx, [rax + 0x20]
mov qword [rbp + 0x248], rcx
lea rcx, [rax + 0x10]
mov qword [rbp + 0x230], rcx
add rax, 0xfffffffffffffff0
mov qword [rbp + 0x228], rax
mov r12d, 1
xor r15d, r15d
xor r11d, r11d
mov qword [rbp + 0x278], rsi
mov rax, qword [rbp + 0x260]
sub rax, r15
jbe 0x1400c14b0
nop word cs:[rax + rax]
mov rdx, rax
mov rax, r15
shl rax, 4
mov rcx, qword [rbp + 0x268]
add rcx, rax
mov rbx, rdx
cmp rdx, qword [rbp + 0x270]
jae 0x1400c14d0
cmp byte [rbp + 0x2f0], 0
je 0x1400c14f0
cmp rbx, 0x20
mov eax, 0x20
cmovae rbx, rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rdx, rbx
mov r8, rsi
mov r9, qword [rbp + 0x280]
mov rdi, r11
call sym.core::slice::sort::stable::quicksort::quicksort::hf69d244a7a43c1c6
mov r11, rdi
mov r9, qword [rbp + 0x280]
mov eax, ebx
lea rcx, [rax*2 + 1]
jmp 0x1400c1700
xor ecx, ecx
mov r8d, 1
cmp r11, 2
jae 0x1400c1750
jmp 0x1400c1a3d
cmp rbx, 2
jae 0x1400c1510
mov rdx, rbx
lea rcx, [rbx*2 + 1]
jmp 0x1400c1700
mov rax, qword [rbp + 0x270]
mov rcx, rbx
cmp rax, rbx
cmovb rcx, rax
add rcx, rcx
jmp 0x1400c1700
mov rdx, qword [rcx]
mov r8, qword [rcx + 0x10]
cmp r8, rdx
jae 0x1400c1554
cmp rbx, 2
jne 0x1400c1572
cmp qword [rbp + 0x270], 2
ja 0x1400c1454
lea r8, [rcx + 0x10]
mov edx, 2
mov r9d, 1
mov r14, r11
cmp r9, 1
jne 0x1400c163a
xor r10d, r10d
jmp 0x1400c16ac
cmp rbx, 2
jne 0x1400c15a9
mov edx, 2
cmp qword [rbp + 0x270], 2
ja 0x1400c1454
jmp 0x1400c16e8
mov rdi, r11
mov r9, qword [rbp + 0x248]
add r9, rax
mov r10d, 2
mov r11, r8
nop dword [rax + rax]
mov rsi, r11
mov r11, qword [r9]
cmp r11, rsi
jae 0x1400c15da
inc r10
add r9, 0x10
cmp rbx, r10
jne 0x1400c1590
jmp 0x1400c15d7
mov rdi, r11
mov r9, qword [rbp + 0x248]
add r9, rax
mov r10d, 2
mov r11, r8
nop
mov rsi, r11
mov r11, qword [r9]
cmp r11, rsi
jb 0x1400c15da
inc r10
add r9, 0x10
cmp rbx, r10
jne 0x1400c15c0
mov r10, rbx
cmp r10, qword [rbp + 0x270]
mov r9, qword [rbp + 0x280]
mov rsi, qword [rbp + 0x278]
mov r11, rdi
jb 0x1400c1454
cmp r8, rdx
jae 0x1400c16f2
mov edx, 1
cmp r10, 2
jb 0x1400c16e8
mov r9, r10
shr r9, 1
mov r8, r10
shl r8, 4
add r8, rcx
mov rdx, r9
shl rdx, 4
sub r8, rdx
mov rdx, r10
mov r14, r11
cmp r9, 1
je 0x1400c154c
mov r11, r9
and r11, 0xfffffffffffffffe
add rax, qword [rbp + 0x230]
mov r10, r9
shl r10, 4
lea rdi, [r8 + r10]
add rdi, 0xfffffffffffffff0
xor r10d, r10d
movabs rbx, 0xffffffffffffffe
nop word cs:[rax + rax]
movups xmm0, xmmword [rax - 0x10]
movups xmm1, xmmword [rdi]
movups xmmword [rax - 0x10], xmm1
movups xmmword [rdi], xmm0
mov rsi, r10
xor rsi, rbx
add rsi, r9
shl rsi, 4
movups xmm0, xmmword [rax]
movups xmm1, xmmword [r8 + rsi]
movups xmmword [rax], xmm1
movups xmmword [r8 + rsi], xmm0
add r10, 2
add rax, 0x20
add rdi, 0xffffffffffffffe0
cmp r11, r10
jne 0x1400c1670
test r9b, 1
je 0x1400c16d7
mov rax, r10
not rax
add r9, rax
shl r10, 4
shl r9, 4
movups xmm0, xmmword [rcx + r10]
movups xmm1, xmmword [r8 + r9]
movups xmmword [rcx + r10], xmm1
movups xmmword [r8 + r9], xmm0
mov r9, qword [rbp + 0x280]
mov rsi, qword [rbp + 0x278]
mov r11, r14
lea rcx, [rdx*2 + 1]
jmp 0x1400c1700
mov rdx, r10
lea rcx, [r10*2 + 1]
nop dword [rax]
mov rax, r12
shr rax, 1
mov r8, rcx
shr rcx, 1
lea rdx, [r15 + r15]
sub rdx, rax
lea rax, [rcx + r15*2]
mov rcx, qword [rbp + 0x240]
imul rdx, rcx
imul rax, rcx
xor rax, rdx
je 0x1400c1740
bsr rcx, rax
xor rcx, 0x3f
cmp r11, 2
jae 0x1400c1750
jmp 0x1400c1a3d
mov ecx, 0x40
cmp r11, 2
jb 0x1400c1a3d
nop
mov qword [rbp + 0x238], r8
mov rdx, r15
shl rdx, 4
mov rax, qword [rbp + 0x268]
add rax, rdx
mov qword [rbp + 0x220], rax
add rdx, qword [rbp + 0x228]
mov qword [rbp + 0x218], rdx
mov qword [rbp + 0x258], rcx
mov qword [rbp + 0x210], r15
jmp 0x1400c17d6
mov r15, rbx
mov rdx, r10
sub r12, rdx
mov rcx, r15
mov r8, r12
call sym.memcpy
mov r9, qword [rbp + 0x280]
mov r11, qword [rbp + 0x250]
mov rcx, qword [rbp + 0x258]
lea r12, [r13*2 + 1]
mov rsi, qword [rbp + 0x278]
mov r15, qword [rbp + 0x210]
cmp r11, 1
jbe 0x1400c1a30
cmp byte [rbp + r11 + 0x1cd], cl
jb 0x1400c1a36
dec r11
mov rbx, qword [rbp + r11*8 - 0x48]
mov rdi, rbx
shr rdi, 1
mov r14, r12
shr r14, 1
lea r13, [rdi + r14]
cmp r13, r9
ja 0x1400c1820
mov eax, ebx
or eax, r12d
and eax, 1
jne 0x1400c1820
add r13, r13
mov r12, r13
cmp r11, 1
ja 0x1400c17d6
jmp 0x1400c1a30
sub r15, r13
shl r15, 4
add r15, qword [rbp + 0x268]
test bl, 1
mov qword [rbp + 0x250], r11
je 0x1400c1850
test r12b, 1
je 0x1400c18a0
cmp r12, 2
jae 0x1400c18fb
jmp 0x1400c17b6
mov rax, rdi
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rcx, r15
mov rdx, rdi
mov r8, rsi
mov r9, qword [rbp + 0x280]
call sym.core::slice::sort::stable::quicksort::quicksort::hf69d244a7a43c1c6
mov rcx, qword [rbp + 0x258]
mov r11, qword [rbp + 0x250]
mov r9, qword [rbp + 0x280]
test r12b, 1
jne 0x1400c1840
mov rcx, rdi
shl rcx, 4
add rcx, r15
mov rax, r14
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rdx, r14
mov r8, rsi
mov r9, qword [rbp + 0x280]
call sym.core::slice::sort::stable::quicksort::quicksort::hf69d244a7a43c1c6
mov rcx, qword [rbp + 0x258]
mov r11, qword [rbp + 0x250]
mov r9, qword [rbp + 0x280]
cmp r12, 2
jb 0x1400c17b6
cmp rbx, 2
jb 0x1400c17b6
cmp rdi, r14
mov rsi, r14
cmovb rsi, rdi
cmp rsi, r9
ja 0x1400c17b6
mov rbx, rdi
shl rbx, 4
add rbx, r15
cmp r14, rdi
mov rdx, r15
cmovb rdx, rbx
mov r12, rsi
shl r12, 4
mov rcx, qword [rbp + 0x278]
mov r8, r12
call sym.memcpy
add r12, qword [rbp + 0x278]
cmp r14, rdi
jae 0x1400c19b7
mov rax, qword [rbp + 0x218]
mov r10, qword [rbp + 0x278]
nop dword [rax]
lea rcx, [rbx - 0x10]
mov rdx, qword [r12 - 0x10]
xor r8d, r8d
xor r9d, r9d
cmp rdx, qword [rbx - 0x10]
lea rdx, [r12 - 0x10]
setb r8b
cmovb rdx, rcx
setae r9b
movups xmm0, xmmword [rdx]
movups xmmword [rax], xmm0
shl r9d, 4
add rbx, r9
add rbx, 0xfffffffffffffff0
shl r8d, 4
add r12, r8
add r12, 0xfffffffffffffff0
cmp rbx, r15
je 0x1400c178d
add rax, 0xfffffffffffffff0
cmp r12, r10
jne 0x1400c1960
jmp 0x1400c178d
test rsi, rsi
je 0x1400c1a17
mov rdx, qword [rbp + 0x278]
mov r10, qword [rbp + 0x220]
nop word [rax + rax]
mov r8, rdx
mov rcx, qword [rbx]
xor eax, eax
xor edx, edx
cmp rcx, qword [r8]
setb cl
setae dl
mov r9, r8
cmovb r9, rbx
movups xmm0, xmmword [r9]
movups xmmword [r15], xmm0
shl edx, 4
add rdx, r8
add r15, 0x10
cmp rdx, r12
je 0x1400c1793
mov al, cl
shl eax, 4
add rbx, rax
cmp rbx, r10
jne 0x1400c19d0
jmp 0x1400c1793
mov rdx, qword [rbp + 0x278]
jmp 0x1400c1793
mov r11d, 1
mov r8, qword [rbp + 0x238]
mov qword [rbp + r11*8 - 0x48], r12
mov byte [rbp + r11 + 0x1ce], cl
cmp qword [rbp + 0x260], r15
jbe 0x1400c1a77
inc r11
mov r12, r8
mov rax, r8
shr rax, 1
add r15, rax
mov rax, qword [rbp + 0x260]
sub rax, r15
jbe 0x1400c14b0
jmp 0x1400c1430
test r12b, 1
jne 0x1400c1ab3
mov rdx, qword [rbp + 0x260]
mov rax, rdx
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rcx, qword [rbp + 0x268]
mov r8, rsi
call sym.core::slice::sort::stable::quicksort::quicksort::hf69d244a7a43c1c6
nop
add rsp, 0x308
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret