Function at 0x18005b420
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 rbx, r9
mov rdi, r8
mov r13, rdx
mov qword [rsp + 0x40], rcx
mov r14, qword [rsp + 0x160]
cmp rdx, 0x21
jae 0x18005b46c
mov qword [rsp + 0x20], r14
mov rcx, qword [rsp + 0x40]
mov rdx, r13
mov r8, rdi
mov r9, rbx
call fcn.180012dd0
jmp 0x18005b9df
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x50], rax
mov esi, dword [rsp + 0x150]
lea rax, [rdi - 0x20]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rbx
mov rax, qword [rsp + 0x40]
add rax, 0x20
mov qword [rsp + 0x80], rax
mov r15, r13
nop word cs:[rax + rax]
sub esi, 1
jb 0x18005b9c2
mov dword [rsp + 0x4c], esi
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
mov rdx, r15
mov r8, r14
call fcn.180028c40
mov r12, rax
shl rax, 5
lea r14, [rsi + rax]
movups xmm0, xmmword [rsi + rax]
movups xmm1, xmmword [rsi + rax + 0x10]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
cmp qword [rsp + 0x50], 0
mov qword [rsp + 0x68], r15
je 0x18005b551
mov r13, qword [rsp + 0x50]
mov rcx, qword [r13 + 8]
mov rax, qword [r13 + 0x10]
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov rsi, rax
sub rsi, r8
cmovb r8, rax
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
movzx eax, byte [r13 + 0x18]
sub al, byte [r14 + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rsi, rsi
sets al
cmovne ecx, eax
cmp cl, 1
jne 0x18005b790
cmp r15, rbx
ja 0x18005b9f4
shl r15, 5
mov qword [rsp + 0x88], r15
lea rsi, [rdi + r15]
xor r13d, r13d
mov rbp, qword [rsp + 0x40]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], r12
mov rbx, r12
nop
mov r12, rbx
shl r12, 5
add r12, qword [rsp + 0x40]
cmp rbp, r12
jae 0x18005b615
nop word cs:[rax + rax]
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x10]
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov r15, rax
sub r15, r8
cmovb r8, rax
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne r15, rax
movzx eax, byte [rbp + 0x18]
sub al, byte [r14 + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test r15, r15
sets al
cmovne ecx, eax
add rsi, 0xffffffffffffffe0
test cl, cl
mov rax, rsi
cmovne rax, rdi
mov rdx, r13
shl rdx, 5
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [rax + rdx + 0x10], xmm1
movups xmmword [rax + rdx], xmm0
movzx eax, cl
add r13, rax
add rbp, 0x20
cmp rbp, r12
jb 0x18005b5a0
mov r15, qword [rsp + 0x68]
cmp rbx, r15
je 0x18005b650
mov rax, r13
shl rax, 5
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [rsi + rax - 0x10], xmm1
movups xmmword [rsi + rax - 0x20], xmm0
add rsi, 0xffffffffffffffe0
add rbp, 0x20
mov rbx, r15
jmp 0x18005b580
mov rbp, r13
shl rbp, 5
mov rcx, qword [rsp + 0x40]
mov rdx, rdi
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rdx, r15
sub rdx, r13
mov rbx, qword [rsp + 0x78]
mov r12, qword [rsp + 0x60]
mov r11, qword [rsp + 0x58]
je 0x18005b72f
lea rax, [r13 + 1]
cmp r15, rax
jne 0x18005b690
xor eax, eax
jmp 0x18005b700
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x80]
lea r8, [rax + rbp]
mov rsi, qword [rsp + 0x88]
add rsi, qword [rsp + 0x70]
xor r9d, r9d
movabs r10, 0x7fffffffffffffe
nop dword [rax]
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 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 rsi, 0xffffffffffffffc0
mov r9, rax
cmp rcx, rax
jne 0x18005b6c0
test dl, 1
je 0x18005b72f
mov rcx, qword [rsp + 0x40]
add rcx, rbp
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 r13, r13
je 0x18005b790
cmp r15, r13
jb 0x18005b9f6
add rbp, qword [rsp + 0x40]
mov r14, qword [rsp + 0x160]
mov qword [rsp + 0x30], r14
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x4c]
mov dword [rsp + 0x20], esi
mov rcx, rbp
mov r8, rdi
mov r9, rbx
call fcn.18005b420
mov r15, r13
cmp r13, 0x21
jae 0x18005b4b0
jmp 0x18005b44f
cmp r15, rbx
ja 0x18005b9f4
shl r15, 5
mov qword [rsp + 0x58], r15
lea r13, [rdi + r15]
xor ebp, ebp
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x60], r13
nop word cs:[rax + rax]
mov r15, r12
mov rbx, r12
shl rbx, 5
add rbx, qword [rsp + 0x40]
jmp 0x18005b802
mov r8, rbp
shl r8, 5
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rdx + r8 + 0x10], xmm1
movups xmmword [rdx + r8], xmm0
mov cl, al
add rbp, rcx
add rsi, 0x20
cmp rsi, rbx
jae 0x18005b870
mov rcx, qword [r14 + 8]
mov rax, qword [r14 + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov r12, rax
sub r12, r8
cmovb r8, rax
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne r12, rax
xor eax, eax
test r12, r12
setne al
mov ecx, 0xff
cmovs eax, ecx
test al, al
jne 0x18005b84d
movzx eax, byte [r14 + 0x18]
sub al, byte [rsi + 0x18]
movzx eax, al
add r13, 0xffffffffffffffe0
xor ecx, ecx
mov rdx, rdi
cmp al, 0xff
setne al
jne 0x18005b7e0
mov rdx, r13
jmp 0x18005b7e0
mov r12, qword [rsp + 0x68]
cmp r15, r12
je 0x18005b8b0
add r13, 0xffffffffffffffe0
mov rax, rbp
shl rax, 5
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rdi + rax + 0x10], xmm1
movups xmmword [rdi + rax], xmm0
inc rbp
add rsi, 0x20
jmp 0x18005b7c0
mov r14, rbp
shl r14, 5
mov rcx, qword [rsp + 0x40]
mov rdx, rdi
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
mov r13, r12
sub r13, rbp
mov rbx, qword [rsp + 0x78]
mov esi, dword [rsp + 0x4c]
mov r10, qword [rsp + 0x60]
je 0x18005b993
lea rax, [rbp + 1]
cmp r12, rax
jne 0x18005b8ee
xor eax, eax
jmp 0x18005b95e
mov rcx, r13
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x40]
lea rdx, [rax + r14]
add rdx, 0x20
mov r11, qword [rsp + 0x58]
add r11, qword [rsp + 0x70]
xor r8d, r8d
movabs r9, 0x7fffffffffffffe
nop dword [rax]
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 0x18005b920
test r13b, 1
mov r12, qword [rsp + 0x68]
je 0x18005b993
mov rcx, qword [rsp + 0x40]
add rcx, r14
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 r12, rbp
jb 0x18005ba3c
add qword [rsp + 0x40], r14
mov eax, 0
mov qword [rsp + 0x50], rax
cmp r13, 0x21
mov r14, qword [rsp + 0x160]
jae 0x18005b48e
jmp 0x18005b44f
mov qword [rsp + 0x28], r14
mov byte [rsp + 0x20], 1
mov rcx, qword [rsp + 0x40]
mov rdx, r15
mov r8, rdi
mov r9, rbx
call fcn.180043860
nop
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x18013d578]
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_5aea14073eee9e403c3bb857490cd6aa4a395531librarycore_src_slice_sort_stablequicksort.rsmid___leno
lea rcx, [rsp + 0x90]
call fcn.180118fe0
mov rdx, r12
lea r8, str._rustc_5aea14073eee9e403c3bb857490cd6aa4a395531librarycore_src_slice_sort_stablequicksort.rsmid___leno
mov rcx, rbp
call fcn.180119400
int3