Function at 0x18023bc60
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov r14, r9
mov rsi, r8
mov rbx, rdx
mov r15, rcx
cmp rdx, 0x21
mov qword [rbp + 0x28], r8
jae 0x18023bee1
cmp rbx, 2
jb 0x18023c666
lea rax, [rbx + 0x10]
cmp rax, r14
ja 0x18023c6c3
mov r12, rbx
shr r12, 1
cmp rbx, 7
mov qword [rbp + 0x18], r15
mov qword [rbp + 0x20], rbx
jbe 0x18023c39c
mov rcx, qword [r15 + 0x20]
mov rdx, qword [r15 + 0x50]
xor r10d, r10d
xor r8d, r8d
cmp rcx, qword [r15 + 8]
setae r10b
setb r8b
lea r11, [r15 + 0x30]
lea r9, [r15 + 0x48]
cmp rdx, qword [r15 + 0x38]
lea rsi, [r8 + r8*2]
lea rax, [r15 + rsi*8]
lea r10, [r10 + r10*2]
mov rdx, r11
cmovb rdx, r9
lea rcx, [r15 + r10*8]
cmovb r9, r11
mov r11, qword [rdx + 8]
mov rdi, qword [r9 + 8]
mov r10, qword [r15 + r10*8 + 8]
cmp rdi, r10
mov rbx, rcx
cmovb rbx, rdx
cmp r11, qword [r15 + rsi*8 + 8]
cmovb rbx, rax
cmovb rax, rdx
mov qword [rbp + 8], rax
cmovb rdx, rcx
cmp rdi, r10
cmovae rcx, r9
cmovb rdx, r9
mov r9, qword [rdx + 8]
cmp r9, qword [rbx + 8]
mov r10, rbx
cmovb r10, rdx
cmovb rdx, rbx
lea r9, [r12*8]
lea r9, [r9 + r9*2]
lea r14, [r15 + r9]
mov r11, qword [r15 + r9 + 0x20]
mov rsi, qword [r15 + r9 + 0x50]
xor edi, edi
xor ebx, ebx
cmp r11, qword [r15 + r9 + 8]
setae dil
setb bl
cmp rsi, qword [r15 + r9 + 0x38]
lea r15, [rbx + rbx*2]
lea rbx, [rdi + rdi*2]
lea r11, [r14 + rbx*8]
mov rax, qword [rbp + 0x18]
lea rdi, [rax + r9 + 0x48]
mov rax, qword [rbp + 0x18]
mov qword [rbp + 0x10], r12
lea r12, [rax + r9 + 0x30]
mov rsi, r12
cmovb rsi, rdi
cmovb rdi, r12
mov r12, qword [rdi + 8]
mov r13, qword [r14 + rbx*8 + 8]
cmp r12, r13
mov rbx, r11
cmovb rbx, rsi
mov r8, qword [rsi + 8]
cmp r8, qword [r14 + r15*8 + 8]
lea r14, [r14 + r15*8]
mov r15, qword [rbp + 0x18]
cmovb rbx, r14
cmovb r14, rsi
cmovb rsi, r11
cmp r12, r13
mov r12, qword [rbp + 0x10]
mov r13, qword [rbp + 8]
mov r8, qword [r13 + 0x10]
mov rax, qword [rbp + 0x28]
mov qword [rax + 0x10], r8
movups xmm0, xmmword [r13]
mov rax, qword [rbp + 0x28]
movups xmmword [rax], xmm0
mov r8, qword [r10 + 0x10]
mov rax, qword [rbp + 0x28]
mov qword [rax + 0x28], r8
movups xmm0, xmmword [r10]
mov rax, qword [rbp + 0x28]
movups xmmword [rax + 0x18], xmm0
mov r8, qword [rdx + 0x10]
mov rax, qword [rbp + 0x28]
mov qword [rax + 0x40], r8
movups xmm0, xmmword [rdx]
cmovae r11, rdi
mov rax, qword [rbp + 0x28]
movups xmmword [rax + 0x30], xmm0
cmovb rsi, rdi
mov rdx, qword [rcx + 0x10]
mov rax, qword [rbp + 0x28]
mov qword [rax + 0x58], rdx
mov rdx, qword [rsi + 8]
cmp rdx, qword [rbx + 8]
movups xmm0, xmmword [rcx]
mov rcx, rbx
cmovb rcx, rsi
mov rax, qword [rbp + 0x28]
movups xmmword [rax + 0x48], xmm0
cmovb rsi, rbx
mov rbx, qword [rbp + 0x20]
mov rdx, qword [r14 + 0x10]
mov rax, qword [rbp + 0x28]
mov qword [rax + r9 + 0x10], rdx
movups xmm0, xmmword [r14]
mov rax, qword [rbp + 0x28]
movups xmmword [rax + r9], xmm0
movups xmm0, xmmword [rcx]
mov rcx, qword [rcx + 0x10]
mov rax, qword [rbp + 0x28]
mov qword [rax + r9 + 0x28], rcx
mov rax, qword [rbp + 0x28]
movups xmmword [rax + r9 + 0x18], xmm0
movups xmm0, xmmword [rsi]
mov rcx, qword [rsi + 0x10]
mov rsi, qword [rbp + 0x28]
mov qword [rsi + r9 + 0x40], rcx
movups xmmword [rsi + r9 + 0x30], xmm0
movups xmm0, xmmword [r11]
mov rcx, qword [r11 + 0x10]
mov qword [rsi + r9 + 0x58], rcx
movups xmmword [rsi + r9 + 0x48], xmm0
mov ecx, 4
mov rdx, rbx
sub rdx, r12
cmp rcx, r12
jb 0x18023c3de
jmp 0x18023c481
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0x20], rax
mov r13d, dword [rbp + 0xa0]
lea rax, [rsi - 0x18]
mov qword [rbp], rax
mov qword [rbp + 8], r14
mov rdi, rbx
nop word cs:[rax + rax]
sub r13d, 1
jb 0x18023c381
mov r9, rdi
shr r9, 3
lea rax, [r9 + r9*2]
shl rax, 5
add rax, r15
imul r8, r9, 0xa8
add r8, r15
cmp rdi, 0x40
mov dword [rbp + 0x10], r13d
jae 0x18023bf80
mov rcx, qword [r15 + 8]
mov rdx, qword [rax + 8]
cmp rcx, rdx
setb r9b
mov r10, qword [r8 + 8]
cmp rcx, r10
setb cl
xor cl, r9b
cmp rdx, r10
setb dl
xor dl, r9b
cmovne rax, r8
test cl, cl
cmovne rax, r15
jmp 0x18023bf8b
mov rcx, r15
mov rdx, rax
call fcn.18023b340
mov r13, rax
sub r13, r15
shr r13, 3
movabs rcx, 0xaaaaaaaaaaaaaaab
imul r13, rcx
mov rcx, qword [rax + 0x10]
mov qword [rbp - 0x10], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x20], xmm0
cmp qword [rbp + 0x20], 0
je 0x18023bfcb
mov rcx, qword [rbp + 0x20]
mov rcx, qword [rcx + 8]
cmp rcx, qword [rax + 8]
jae 0x18023c1d0
cmp rdi, r14
ja 0x18023c6c3
lea rcx, [rdi + rdi*2]
mov rax, qword [rbp + 0x28]
mov qword [rbp + 0x18], rcx
lea r12, [rax + rcx*8]
lea rax, [r13*2]
add rax, r13
lea rax, [r15 + rax*8]
add rax, 8
xor ebx, ebx
mov rcx, r15
mov rdx, r12
mov r8, r13
nop word cs:[rax + rax]
lea r9, [r8 + r8*2]
mov r14, r15
lea r9, [r15 + r9*8]
cmp rcx, r9
mov r15, qword [rbp + 0x28]
jae 0x18023c06a
nop word cs:[rax + rax]
mov r10, qword [rcx + 8]
add rdx, 0xffffffffffffffe8
cmp r10, qword [rax]
mov r10, rdx
cmovb r10, r15
lea r11, [rbx + rbx*2]
mov rsi, rbx
mov rbx, qword [rcx + 0x10]
mov qword [r10 + r11*8 + 0x10], rbx
mov rbx, rsi
movups xmm0, xmmword [rcx]
movups xmmword [r10 + r11*8], xmm0
adc rbx, 0
add rcx, 0x18
cmp rcx, r9
jb 0x18023c030
cmp r8, rdi
je 0x18023c0a0
lea r8, [rbx + rbx*2]
mov r9, qword [rcx + 0x10]
mov qword [rdx + r8*8 - 8], r9
movups xmm0, xmmword [rcx]
movups xmmword [rdx + r8*8 - 0x18], xmm0
add rdx, 0xffffffffffffffe8
add rcx, 0x18
mov r8, rdi
mov r15, r14
jmp 0x18023c010
lea rax, [rbx*8]
lea r8, [rax + rax*2]
mov r15, r14
mov rcx, r14
mov rdx, qword [rbp + 0x28]
call sub.VCRUNTIME140.dll_memcpy
mov rdx, rdi
sub rdx, rbx
mov r14, qword [rbp + 8]
je 0x18023c181
lea rax, [rbx + rbx*2]
lea rax, [r15 + rax*8]
lea rcx, [rbx + 1]
cmp rdi, rcx
jne 0x18023c0f0
xor r9d, r9d
jmp 0x18023c15e
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov r8, qword [rbp]
mov r9, qword [rbp + 0x18]
lea r8, [r8 + r9*8]
mov r10, rax
xor r11d, r11d
movabs rsi, 0x1ffffffffffffffe
nop word cs:[rax + rax]
mov r9, qword [r8 + 0x10]
mov qword [r10 + 0x10], r9
movups xmm0, xmmword [r8]
movups xmmword [r10], xmm0
lea r9, [r11 + 2]
xor r11, rsi
lea r11, [r11 + r11*2]
movups xmm0, xmmword [r12 + r11*8]
movups xmmword [r10 + 0x18], xmm0
mov r11, qword [r12 + r11*8 + 0x10]
mov qword [r10 + 0x28], r11
add r10, 0x30
add r8, 0xffffffffffffffd0
mov r11, r9
cmp rcx, r9
jne 0x18023c120
test dl, 1
je 0x18023c181
lea rcx, [r9 + r9*2]
not r9
lea r8, [r9 + r9*2]
mov r9, qword [r12 + r8*8 + 0x10]
mov qword [rax + rcx*8 + 0x10], r9
movups xmm0, xmmword [r12 + r8*8]
movups xmmword [rax + rcx*8], xmm0
test rbx, rbx
mov rsi, qword [rbp + 0x28]
je 0x18023c1d0
cmp rdi, rbx
jb 0x18023c67a
lea rax, [rbx + rbx*2]
lea rcx, [r15 + rax*8]
lea rax, [rbp - 0x20]
mov qword [rsp + 0x28], rax
mov r13d, dword [rbp + 0x10]
mov dword [rsp + 0x20], r13d
mov r8, rsi
mov r9, r14
call fcn.18023bc60
mov rdi, rbx
cmp rbx, 0x21
jae 0x18023bf10
jmp 0x18023bc9d
cmp rdi, r14
ja 0x18023c6c3
lea rax, [rdi + rdi*2]
mov qword [rbp + 0x20], rax
lea r12, [rsi + rax*8]
lea rax, [r13*2]
add rax, r13
lea rax, [r15 + rax*8]
add rax, 8
xor ebx, ebx
mov rcx, r15
mov rdx, r12
lea r8, [r13*2]
add r8, r13
lea r8, [r15 + r8*8]
cmp rcx, r8
jae 0x18023c254
nop word cs:[rax + rax]
mov r9, qword [rax]
add rdx, 0xffffffffffffffe8
cmp r9, qword [rcx + 8]
mov r9, rdx
cmovae r9, rsi
lea r10, [rbx + rbx*2]
mov r11, qword [rcx + 0x10]
mov qword [r9 + r10*8 + 0x10], r11
movups xmm0, xmmword [rcx]
movups xmmword [r9 + r10*8], xmm0
sbb rbx, 0xffffffffffffffff
add rcx, 0x18
cmp rcx, r8
jb 0x18023c220
cmp r13, rdi
je 0x18023c280
add rdx, 0xffffffffffffffe8
lea r8, [rbx + rbx*2]
mov r9, qword [rcx + 0x10]
mov qword [rsi + r8*8 + 0x10], r9
movups xmm0, xmmword [rcx]
movups xmmword [rsi + r8*8], xmm0
inc rbx
add rcx, 0x18
mov r13, rdi
jmp 0x18023c200
lea rax, [rbx*8]
lea r8, [rax + rax*2]
mov rcx, r15
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rax, rdi
sub rax, rbx
mov r11, rax
mov r13d, dword [rbp + 0x10]
je 0x18023c355
lea rax, [rbx + rbx*2]
lea r9, [r15 + rax*8]
lea rcx, [rbx + 1]
cmp rdi, rcx
mov qword [rbp + 0x18], r9
jne 0x18023c2c4
xor r8d, r8d
jmp 0x18023c32d
mov rcx, r11
and rcx, 0xfffffffffffffffe
mov rdx, qword [rbp]
mov rax, qword [rbp + 0x20]
lea rdx, [rdx + rax*8]
xor r10d, r10d
movabs rax, 0x1ffffffffffffffe
nop word cs:[rax + rax]
mov r8, qword [rdx + 0x10]
mov qword [r9 + 0x10], r8
movups xmm0, xmmword [rdx]
movups xmmword [r9], xmm0
lea r8, [r10 + 2]
xor r10, rax
lea r10, [r10 + r10*2]
movups xmm0, xmmword [r12 + r10*8]
movups xmmword [r9 + 0x18], xmm0
mov r10, qword [r12 + r10*8 + 0x10]
mov qword [r9 + 0x28], r10
add r9, 0x30
add rdx, 0xffffffffffffffd0
mov r10, r8
cmp rcx, r8
jne 0x18023c2f0
test r11b, 1
je 0x18023c355
lea rcx, [r8 + r8*2]
not r8
lea rdx, [r8 + r8*2]
mov r8, qword [r12 + rdx*8 + 0x10]
mov rax, qword [rbp + 0x18]
mov qword [rax + rcx*8 + 0x10], r8
movups xmm0, xmmword [r12 + rdx*8]
movups xmmword [rax + rcx*8], xmm0
cmp rdi, rbx
jb 0x18023c6ac
lea rax, [rbx + rbx*2]
lea r15, [r15 + rax*8]
mov eax, 0
mov qword [rbp + 0x20], rax
mov rbx, r11
cmp r11, 0x21
jae 0x18023beff
jmp 0x18023bc9d
mov byte [rsp + 0x20], 1
mov rcx, r15
mov rdx, rdi
mov r8, rsi
mov r9, r14
call fcn.18023b590
jmp 0x18023c666
mov rcx, qword [r15 + 0x10]
mov qword [rsi + 0x10], rcx
movups xmm0, xmmword [r15]
movups xmmword [rsi], xmm0
lea rcx, [r12*8]
lea rcx, [rcx + rcx*2]
mov rdx, qword [r15 + rcx + 0x10]
mov qword [rsi + rcx + 0x10], rdx
movups xmm0, xmmword [r15 + rcx]
movups xmmword [rsi + rcx], xmm0
mov ecx, 1
mov rdx, rbx
sub rdx, r12
cmp rcx, r12
jae 0x18023c481
lea r8d, [rcx*8]
lea r8, [r8 + r8*2]
mov r9, rcx
jmp 0x18023c413
mov rbx, r14
mov qword [rbx], rsi
mov qword [r14 + rdi - 0x10], r10
mov qword [r14 + rdi - 8], r11
mov rsi, r14
mov rbx, qword [rbp + 0x20]
inc r9
add r8, 0x18
cmp r9, r12
je 0x18023c481
lea rax, [r9*8]
lea r11, [rax + rax*2]
movups xmm0, xmmword [r15 + r11]
movups xmmword [rsi + r11], xmm0
mov rax, qword [r15 + r11 + 0x10]
mov qword [rsi + r11 + 0x10], rax
mov r10, qword [rsi + r11 + 8]
cmp r10, qword [rsi + r11 - 0x10]
jae 0x18023c407
add r11, rsi
mov r14, rsi
mov rsi, qword [r11]
mov r11, qword [r11 + 0x10]
mov rbx, r8
nop
mov rdi, rbx
mov rax, qword [r14 + rbx - 8]
mov qword [r14 + rbx + 0x10], rax
movups xmm0, xmmword [r14 + rbx - 0x18]
movups xmmword [r14 + rbx], xmm0
cmp rbx, 0x18
je 0x18023c3f0
lea rbx, [rdi - 0x18]
cmp r10, qword [r14 + rdi - 0x28]
jb 0x18023c450
add rbx, r14
jmp 0x18023c3f3
cmp rcx, rdx
jae 0x18023c541
lea r8, [r12*8]
lea r8, [r8 + r8*2]
lea r9, [r15 + r8]
add r8, qword [rbp + 0x28]
lea r10d, [rcx*8]
lea r10, [r10 + r10*2]
jmp 0x18023c4d0
mov r14, r8
mov qword [r14], rdi
mov qword [r8 + rbx - 0x10], r11
mov qword [r8 + rbx - 8], rsi
mov rbx, qword [rbp + 0x20]
inc rcx
add r10, 0x18
cmp rcx, rdx
je 0x18023c541
lea r11, [rcx*8]
lea rsi, [r11 + r11*2]
movups xmm0, xmmword [r9 + rsi]
movups xmmword [r8 + rsi], xmm0
mov r11, qword [r9 + rsi + 0x10]
mov qword [r8 + rsi + 0x10], r11
mov r11, qword [r8 + rsi + 8]
cmp r11, qword [r8 + rsi - 0x10]
jae 0x18023c4c4
add rsi, r8
mov rdi, qword [rsi]
mov rsi, qword [rsi + 0x10]
mov r14, r10
nop dword [rax]
mov rbx, r14
mov r14, qword [r8 + r14 - 8]
mov qword [r8 + rbx + 0x10], r14
movups xmm0, xmmword [r8 + rbx - 0x18]
movups xmmword [r8 + rbx], xmm0
cmp rbx, 0x18
je 0x18023c4b0
lea r14, [rbx - 0x18]
cmp r11, qword [r8 + rbx - 0x28]
jb 0x18023c510
add r14, r8
jmp 0x18023c4b3
lea rdx, [r12 + r12*2]
mov rax, qword [rbp + 0x28]
lea rcx, [rax + rdx*8]
lea r8, [rax + rdx*8]
add r8, 0xffffffffffffffe8
lea r9, [rbx + rbx*2]
lea rdx, [rax + r9*8 - 0x18]
lea r11, [r15 + r9*8]
add r11, 0xffffffffffffffe8
mov r9, rax
mov r10, r15
jmp 0x18023c5c1
mov dil, r15b
lea rax, [rdi + rdi*2]
lea rcx, [rcx + rax*8]
mov sil, bl
lea rax, [rsi + rsi*2]
mov esi, 0
sbb rsi, rsi
lea r9, [r9 + rax*8]
add r10, 0x18
mov rax, qword [r12 + 0x10]
mov qword [r11 + 0x10], rax
movups xmm0, xmmword [r12]
movups xmmword [r11], xmm0
lea rax, [r14 + r14*2]
lea rdx, [rdx + rax*8]
lea rax, [rsi + rsi*2]
lea r8, [r8 + rax*8]
add r11, 0xffffffffffffffe8
mov r12, qword [rbp + 0x10]
dec r12
je 0x18023c619
mov qword [rbp + 0x10], r12
mov rbx, qword [rcx + 8]
xor esi, esi
xor edi, edi
mov r14, rcx
cmp rbx, qword [r9 + 8]
setae bl
setb r15b
jb 0x18023c5e0
mov r14, r9
mov r12, qword [r14 + 0x10]
mov qword [r10 + 0x10], r12
movups xmm0, xmmword [r14]
movups xmmword [r10], xmm0
mov r13, qword [rdx + 8]
mov rax, qword [r8 + 8]
cmp r13, rax
mov r14d, 0
adc r14, 0xffffffffffffffff
mov r12, r8
cmp r13, rax
jb 0x18023c570
mov r12, rdx
jmp 0x18023c570
add r8, 0x18
test byte [rbp + 0x20], 1
je 0x18023c658
xor eax, eax
xor r11d, r11d
cmp r9, r8
setae al
setb r11b
mov rsi, rcx
cmovb rsi, r9
mov rdi, qword [rsi + 0x10]
mov qword [r10 + 0x10], rdi
movups xmm0, xmmword [rsi]
movups xmmword [r10], xmm0
lea r10, [r11 + r11*2]
lea r9, [r9 + r10*8]
lea rax, [rax + rax*2]
lea rcx, [rcx + rax*8]
cmp r9, r8
jne 0x18023c6be
add rdx, 0x18
cmp rcx, rdx
jne 0x18023c6be
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rax, [0x1803ffb18]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 1
mov qword [rbp - 0x40], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
lea rdx, str._rustc_64ebd39da5ec28caa3bd7cbb3f22f5949432fe2blibrarycore_src_slice_sort_stablequicksort.rsmid___len
lea rcx, [rbp - 0x50]
call fcn.180337950
lea r8, str._rustc_64ebd39da5ec28caa3bd7cbb3f22f5949432fe2blibrarycore_src_slice_sort_stablequicksort.rsmid___len
mov rcx, rbx
mov rdx, rdi
call fcn.180337db0
call fcn.1802b1090
ud2