Function at 0x18006bf20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x188
mov qword [rsp + 0x70], r8
cmp rdx, 0x15
jae 0x18006bf70
mov rsi, rdx
mov r15, rcx
cmp rsi, 1
jbe 0x18006bf5b
mov r8d, 1
mov rcx, r15
mov rdx, rsi
call fcn.18006bcb0
nop
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, r9
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rcx
mov eax, dword [rsp + 0x1f0]
mov dword [rsp + 0x2c], eax
mov bl, 1
movabs r14, 0xffffffffffffffe
mov bpl, 1
and bpl, bl
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x30]
mov qword [rsp + 0x60], rdi
nop dword [rax]
cmp dword [rsp + 0x2c], 0
je 0x18006ca81
test bl, 1
je 0x18006c38c
mov rdx, r12
shr rdx, 2
lea rax, [rdx + rdx]
lea rcx, [rdx + rdx*2]
cmp r12, 0x31
jbe 0x18006c010
lea r9, [rdx - 1]
mov r8, rdx
shl r8, 4
mov r10, r9
shl r10, 4
mov r11, qword [r15 + r8]
mov r8, qword [r15 + r10]
cmp r8, r11
jae 0x18006c020
mov esi, 1
mov r10, r11
mov rdi, r9
mov r9, rdx
mov r11, r8
jmp 0x18006c028
xor r8d, r8d
mov r13, rax
jmp 0x18006c145
mov r10, r8
xor esi, esi
mov rdi, rdx
inc rdx
mov r8, rdx
shl r8, 4
mov r14, qword [r15 + r8]
xor r8d, r8d
cmp r11, r14
cmovae rdx, rdi
cmova r14, r11
setb r8b
cmp r10, r14
adc r8, rsi
cmp r10, r14
cmovb rdx, r9
lea r10, [rax - 1]
mov r9, rax
shl r9, 4
mov r11, r10
shl r11, 4
mov r9, qword [r15 + r9]
mov rsi, qword [r15 + r11]
cmp rsi, r9
jae 0x18006c090
inc r8
mov r11, r9
mov rdi, r10
mov r10, rax
jmp 0x18006c099
mov r11, rsi
mov rdi, rax
mov rsi, r9
mov r13, rax
or r13, 1
mov r9, r13
shl r9, 4
mov r14, qword [r15 + r9]
xor r9d, r9d
cmp rsi, r14
cmovae r13, rdi
cmova r14, rsi
setb r9b
cmp r11, r14
adc r9, r8
cmp r11, r14
cmovb r13, r10
lea r10, [rcx - 1]
mov r8, rcx
shl r8, 4
mov r11, r10
shl r11, 4
mov r8, qword [r15 + r8]
mov rsi, qword [r15 + r11]
cmp rsi, r8
jae 0x18006c100
inc r9
mov r11, r8
mov rdi, r10
mov r10, rcx
jmp 0x18006c109
mov r11, rsi
mov rdi, rcx
mov rsi, r8
inc rcx
mov r8, rcx
shl r8, 4
mov r14, qword [r15 + r8]
xor r8d, r8d
cmp rsi, r14
cmovae rcx, rdi
cmova r14, rsi
setb r8b
cmp r11, r14
adc r8, r9
cmp r11, r14
cmovb rcx, r10
mov rdi, qword [rsp + 0x60]
movabs r14, 0xffffffffffffffe
mov r9, r13
shl r9, 4
mov r10, rdx
shl r10, 4
mov rsi, qword [r15 + r9]
mov r9, qword [r15 + r10]
cmp r9, rsi
jae 0x18006c170
inc r8
mov r10, rsi
mov r11, rdx
jmp 0x18006c17c
mov r10, r9
mov r11, r13
mov r13, rdx
mov r9, rsi
mov rdx, rcx
shl rdx, 4
mov rdx, qword [r15 + rdx]
cmp r9, rdx
adc r8, 0
cmp r9, rdx
cmovb r11, rcx
cmova rdx, r9
cmp r10, rdx
jae 0x18006c1d0
mov ecx, 1
cmp r8, 0xb
jb 0x18006c1d6
mov rcx, r12
shr rcx, 1
mov r8, r12
shl r8, 4
lea rdx, [r15 + r8]
mov r9, rcx
shl r9, 4
sub rdx, r9
cmp rcx, 1
jne 0x18006c1ea
xor r8d, r8d
jmp 0x18006c242
mov r13, r11
mov rcx, r8
test rcx, rcx
sete al
test bpl, al
je 0x18006c27c
jmp 0x18006c3a0
lea r9, [r15 + 0x10]
lea r10, [r15 + r8]
add r10, 0xfffffffffffffff0
xor r8d, r8d
nop dword [rax]
movups xmm0, xmmword [r9 - 0x10]
movups xmm1, xmmword [r10]
movups xmmword [r9 - 0x10], xmm1
movups xmmword [r10], xmm0
mov r11, r8
xor r11, r14
add r11, rcx
shl r11, 4
movups xmm0, xmmword [r9]
movups xmm1, xmmword [rdx + r11]
movups xmmword [r9], xmm1
movups xmmword [rdx + r11], xmm0
add r8, 2
add r9, 0x20
add r10, 0xffffffffffffffe0
cmp rax, r8
jne 0x18006c200
test r12b, 2
je 0x18006c26b
mov rax, r8
not rax
add rcx, rax
shl r8, 4
shl rcx, 4
movups xmm0, xmmword [r15 + r8]
movups xmm1, xmmword [rdx + rcx]
movups xmmword [r15 + r8], xmm1
movups xmmword [rdx + rcx], xmm0
not r13
add r13, r12
mov al, 1
test bpl, al
jne 0x18006c3a0
test rdi, rdi
je 0x18006c3c0
cmp r13, r12
jae 0x18006ca91
mov rax, r13
shl rax, 4
mov rcx, qword [r15 + rax]
cmp rcx, qword [rdi]
jb 0x18006c3d0
add rax, r15
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rax]
movups xmmword [r15], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [rax], xmm0
lea rax, [r15 + 0x10]
lea rdx, [r12 - 1]
movups xmm0, xmmword [r15]
mov r8, qword [r15]
xor ecx, ecx
cmp rcx, rdx
jae 0x18006c304
mov r9, rcx
shl r9, 4
add r9, rax
nop word cs:[rax + rax]
cmp qword [r9], r8
jb 0x18006c304
inc rcx
add r9, 0x10
cmp rdx, rcx
jne 0x18006c2f0
mov rcx, rdx
mov r9, rdx
shl r9, 4
add r9, rax
nop
dec rdx
cmp rcx, rdx
jae 0x18006c360
lea r10, [r9 - 0x10]
cmp qword [r9 - 0x10], r8
mov r9, r10
jb 0x18006c310
mov r9, rcx
shl r9, 4
movups xmm1, xmmword [rax + r9]
movaps xmmword [rsp + 0x80], xmm1
movups xmm1, xmmword [r10]
movups xmmword [rax + r9], xmm1
movaps xmm1, xmmword [rsp + 0x80]
movups xmmword [r10], xmm1
inc rcx
cmp rcx, rdx
jb 0x18006c2da
jmp 0x18006c304
inc rcx
movups xmmword [r15], xmm0
mov rsi, r12
sub rsi, rcx
jb 0x18006cac4
shl rcx, 4
add r15, rcx
mov r12, rsi
cmp rsi, 0x15
jae 0x18006bfb0
jmp 0x18006bf44
mov rcx, r15
mov rdx, r12
call fcn.180122540
dec dword [rsp + 0x2c]
jmp 0x18006bfc4
mov rcx, r15
mov rdx, r12
call fcn.1801226e0
test al, al
je 0x18006c27c
jmp 0x18006bf5b
mov r12, qword [rsp + 0x30]
jmp 0x18006c3d5
mov qword [rsp + 0x38], r15
cmp r13, r12
mov r8, qword [rsp + 0x38]
jae 0x18006caa3
shl r13, 4
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [r8 + r13]
movups xmmword [r8], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [r8 + r13], xmm0
lea r9, [r8 + 0x10]
lea rax, [r12 - 1]
movups xmm0, xmmword [r8]
mov r10, qword [r8]
mov rdx, r9
xor ecx, ecx
nop
cmp r10, qword [rdx]
jae 0x18006c434
inc rcx
add rdx, 0x10
cmp rax, rcx
jne 0x18006c420
mov rcx, rax
mov rdx, r12
shl rdx, 4
add rdx, r8
nop
mov r8, rax
mov r13, rdx
cmp rcx, rax
jae 0x18006c459
lea rax, [r8 - 1]
lea rdx, [r13 - 0x10]
cmp r10, qword [r13 - 0x10]
jae 0x18006c440
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x68], r8
cmp rcx, r8
ja 0x18006cad3
mov qword [rsp + 0x58], rcx
mov rax, rcx
shl rax, 4
add r9, rax
mov ecx, 0x80
xor r11d, r11d
xor ebp, ebp
xor ebx, ebx
xor eax, eax
mov edi, 0x80
mov qword [rsp + 0x78], r9
jmp 0x18006c4ea
shl r14, 4
movups xmmword [r13 + r14], xmm1
inc rax
inc rbp
cmp rax, rbx
mov edx, 0
cmove rdx, rdi
shl rdx, 4
add r9, rdx
mov rdx, rcx
neg rdx
cmp rbp, r11
mov r8d, 0
cmovne rdx, r8
shl rdx, 4
add r13, rdx
cmp r12, 0x1010
jb 0x18006c7c0
mov r12, r13
sub r12, r9
cmp r12, 0x1010
jae 0x18006c53c
mov r8, r12
shr r8, 4
cmp rax, rbx
setb sil
cmp rbp, r11
setb r14b
or r14b, sil
lea rsi, [r8 - 0x80]
test r14b, r14b
mov r15, r8
cmovne r15, rsi
cmp rax, rbx
cmovb rcx, rsi
cmovae rdi, r15
test r14b, r14b
jne 0x18006c53c
mov rdi, r12
shr rdi, 5
sub r8, rdi
mov rcx, r8
cmp rax, rbx
je 0x18006c5f0
cmp rbp, r11
je 0x18006c620
mov r8, rbx
sub r8, rax
mov rsi, r11
sub rsi, rbp
cmp r8, rsi
cmovb rsi, r8
test rsi, rsi
je 0x18006c4b0
movzx edx, byte [rax]
shl edx, 4
movups xmm1, xmmword [r9 + rdx]
movzx r8d, byte [rbp]
mov r14, r8
not r14
mov r15, r14
shl r15, 4
movups xmm2, xmmword [r13 + r15]
movups xmmword [r9 + rdx], xmm2
cmp rsi, 1
je 0x18006c4a0
dec rsi
nop
movzx edx, byte [rax + 1]
inc rax
shl edx, 4
movzx r8d, r8b
not r8
shl r8, 4
movups xmm2, xmmword [r9 + rdx]
movups xmmword [r13 + r8], xmm2
movzx r8d, byte [rbp + 1]
inc rbp
mov r14, r8
not r14
mov r15, r14
shl r15, 4
movups xmm2, xmmword [r13 + r15]
movups xmmword [r9 + rdx], xmm2
dec rsi
jne 0x18006c5a0
jmp 0x18006c4a0
test rdi, rdi
je 0x18006c642
cmp rdi, 4
lea rdx, [rsp + 0x108]
jae 0x18006c662
mov rbx, rdx
mov r14, r9
mov rax, rdx
xor esi, esi
mov r8d, edi
and r8d, 3
jne 0x18006c6e0
jmp 0x18006c545
test rcx, rcx
je 0x18006c652
cmp rcx, 4
jae 0x18006c703
lea r11, [rsp + 0x80]
xor r14d, r14d
mov r8, r13
jmp 0x18006c771
lea rax, [rsp + 0x108]
mov rbx, rax
jmp 0x18006c545
lea rbp, [rsp + 0x80]
mov r11, rbp
jmp 0x18006c54e
mov rax, rdi
and rax, 0xfffffffffffffffc
mov rbx, rdx
mov r14, r9
xor esi, esi
nop word cs:[rax + rax]
mov r8d, esi
mov byte [rbx], sil
cmp r10, qword [r14]
sbb rbx, 0xffffffffffffffff
lea r15d, [r8 + 1]
mov byte [rbx], r15b
cmp r10, qword [r14 + 0x10]
sbb rbx, 0xffffffffffffffff
lea r15d, [r8 + 2]
cmp r10, qword [r14 + 0x20]
mov byte [rbx], r15b
sbb rbx, 0xffffffffffffffff
add rsi, 4
add r8d, 3
mov byte [rbx], r8b
cmp r10, qword [r14 + 0x30]
sbb rbx, 0xffffffffffffffff
add r14, 0x40
cmp rax, rsi
jne 0x18006c680
lea rax, [rsp + 0x108]
mov r8d, edi
and r8d, 3
je 0x18006c545
nop dword [rax]
mov byte [rbx], sil
cmp r10, qword [r14]
sbb rbx, 0xffffffffffffffff
add r14, 0x10
inc sil
dec r8
jne 0x18006c6e0
lea rax, [rsp + 0x108]
jmp 0x18006c545
mov rsi, rcx
and rsi, 0xfffffffffffffffc
lea r11, [rsp + 0x80]
xor r15d, r15d
mov rbp, r13
xor r14d, r14d
nop dword [rax + rax]
mov byte [r11], r15b
xor r8d, r8d
cmp qword [rbp - 0x10], r10
seta r8b
lea edx, [r15 + 1]
mov byte [r11 + r8], dl
cmp r10, qword [rbp - 0x20]
adc r11, r8
lea edx, [r15 + 2]
xor r8d, r8d
cmp qword [rbp - 0x30], r10
seta r8b
mov byte [r11], dl
add r14, 4
lea edx, [r15 + 3]
mov byte [r11 + r8], dl
cmp r10, qword [rbp - 0x40]
adc r11, r8
lea r8, [rbp - 0x40]
mov r15, r14
mov rbp, r8
cmp rsi, r14
jne 0x18006c720
mov esi, ecx
lea rbp, [rsp + 0x80]
and esi, 3
je 0x18006c54e
shl esi, 4
xor r15d, r15d
nop word [rax + rax]
mov byte [r11], r14b
cmp r10, qword [r8 + r15 - 0x10]
adc r11, 0
inc r14b
add r15, 0xfffffffffffffff0
mov rbp, rsi
add rbp, r15
jne 0x18006c790
lea rbp, [rsp + 0x80]
jmp 0x18006c54e
cmp rax, rbx
jae 0x18006c7e0
mov ecx, ebx
sub ecx, eax
test cl, 1
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x38]
jne 0x18006c81e
mov r10, rbx
jmp 0x18006c84e
cmp rbp, r11
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x38]
jae 0x18006c8d1
mov eax, r11d
sub eax, ebp
test al, 1
mov rdx, qword [rsp + 0x30]
jne 0x18006c8e3
mov rax, r11
dec r11
cmp r11, rbp
mov r11, qword [rsp + 0x58]
jne 0x18006c930
jmp 0x18006c9a0
lea r10, [rbx - 1]
movzx ecx, byte [rbx - 1]
shl ecx, 4
lea rsi, [r13 - 0x10]
movups xmm1, xmmword [r9 + rcx]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 - 0x10]
movups xmmword [r9 + rcx], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 - 0x10], xmm1
mov r13, rsi
mov r11, qword [rsp + 0x58]
dec rbx
cmp rbx, rax
mov rdx, qword [rsp + 0x30]
je 0x18006c9a0
nop word cs:[rax + rax]
movzx ecx, byte [r10 - 1]
shl ecx, 4
movups xmm1, xmmword [r9 + rcx]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 - 0x10]
movups xmmword [r9 + rcx], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 - 0x10], xmm1
movzx ecx, byte [r10 - 2]
add r10, 0xfffffffffffffffe
shl ecx, 4
lea rsi, [r13 - 0x20]
movups xmm1, xmmword [r9 + rcx]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 - 0x20]
movups xmmword [r9 + rcx], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 - 0x20], xmm1
mov r13, rsi
cmp rax, r10
jb 0x18006c870
jmp 0x18006c9a0
mov rsi, r9
mov rdx, qword [rsp + 0x30]
mov r11, qword [rsp + 0x58]
jmp 0x18006c9a0
lea rax, [r11 - 1]
movzx ecx, byte [r11 - 1]
not rcx
shl rcx, 4
movups xmm1, xmmword [r9]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 + rcx]
movups xmmword [r9], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 + rcx], xmm1
add r9, 0x10
mov rsi, r9
dec r11
cmp r11, rbp
mov r11, qword [rsp + 0x58]
je 0x18006c9a0
nop word cs:[rax + rax]
movzx ecx, byte [rax - 1]
not rcx
shl rcx, 4
movups xmm1, xmmword [r9]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 + rcx]
movups xmmword [r9], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 + rcx], xmm1
movzx ecx, byte [rax - 2]
add rax, 0xfffffffffffffffe
not rcx
shl rcx, 4
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 + rcx]
movups xmmword [r9 + 0x10], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 + rcx], xmm1
add r9, 0x20
cmp rbp, rax
jb 0x18006c930
mov rsi, r9
nop word cs:[rax + rax]
sub rsi, qword [rsp + 0x78]
shr rsi, 4
add rsi, r11
movups xmmword [r8], xmm0
mov r15, rdx
sub r15, rsi
jbe 0x18006cab5
cmp r11, qword [rsp + 0x68]
setae bpl
mov rax, rsi
shl rax, 4
mov r13, r8
lea r12, [r8 + rax]
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [r8 + rax]
movups xmmword [r8], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [r8 + rax], xmm0
cmp rsi, r15
mov rcx, r15
cmovb rcx, rsi
shr rdx, 3
cmp rcx, rdx
setae bl
lea r14, [r8 + rax]
add r14, 0x10
dec r15
cmp rsi, r15
jae 0x18006ca40
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x20], eax
mov rcx, r13
mov rdx, rsi
mov r8, qword [rsp + 0x70]
mov r9, rdi
call fcn.18006bf20
mov rdi, r12
mov rsi, r15
mov r15, r14
jmp 0x18006ca5e
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x20], eax
mov rcx, r14
mov rdx, r15
mov r8, qword [rsp + 0x70]
mov r9, r12
call fcn.18006bf20
mov r15, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r15
cmp rsi, 0x15
movabs r14, 0xffffffffffffffe
jae 0x18006bf97
jmp 0x18006bf44
mov rcx, r15
mov rdx, r12
call fcn.1801232f0
jmp 0x18006bf5b
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rcx, r13
mov rdx, r12
call fcn.180127c60
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rcx, r13
mov rdx, r12
call fcn.180127c60
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rcx, rsi
call fcn.180127c60
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rdx, r12
call fcn.180127f50
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rdx, qword [rsp + 0x68]
call fcn.180127f70
int3