Function at 0x18004e2b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov rdi, r9
mov r13, rdx
mov qword [rsp + 0x40], rcx
mov r14, qword [rsp + 0x170]
cmp rdx, 0x21
mov qword [rsp + 0x48], r8
jae 0x18004e300
mov qword [rsp + 0x20], r14
mov rcx, qword [rsp + 0x40]
mov rdx, r13
mov r8, qword [rsp + 0x48]
mov r9, rdi
call fcn.180042980
jmp 0x18004e973
mov r12, qword [rsp + 0x168]
mov ebx, dword [rsp + 0x160]
movabs rsi, 0x8000000000000000
lea rax, [r8 - 0x30]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rdi
mov r15, r13
mov qword [rsp + 0x88], r12
nop word cs:[rax + rax]
sub ebx, 1
jb 0x18004e954
mov dword [rsp + 0x54], ebx
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
mov rdx, r15
mov r8, r14
call fcn.180023d00
mov qword [rsp + 0x78], rax
lea rax, [rax + rax*2]
shl rax, 4
lea r14, [rbx + rax]
movups xmm0, xmmword [rbx + rax]
movups xmm1, xmmword [rbx + rax + 0x10]
movups xmm2, xmmword [rbx + rax + 0x20]
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
test r12, r12
mov qword [rsp + 0x80], r15
je 0x18004e3e5
cmp qword [r12], rsi
je 0x18004e6c0
cmp qword [r14], rsi
je 0x18004e3e5
mov rcx, qword [r12 + 8]
mov rax, qword [r12 + 0x10]
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov rbx, rax
sub rbx, r8
cmovb r8, rax
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rbx, rax
test rbx, rbx
jns 0x18004e6c0
cmp r15, rdi
ja 0x18004e988
lea rax, [r15 + r15*2]
shl rax, 4
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x58], rax
lea rbp, [rdx + rax]
xor r13d, r13d
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x60], rbp
mov r15, qword [rsp + 0x78]
nop word cs:[rax + rax]
lea r12, [r15 + r15*2]
shl r12, 4
add r12, qword [rsp + 0x40]
jmp 0x18004e46e
add rbp, 0xffffffffffffffd0
xor eax, eax
mov rcx, rbp
lea r8, [r13*2]
add r8, r13
shl r8, 4
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmmword [rcx + r8 + 0x20], xmm2
movups xmmword [rcx + r8 + 0x10], xmm1
movups xmmword [rcx + r8], xmm0
movzx eax, al
add r13, rax
add rbx, 0x30
cmp rbx, r12
jae 0x18004e4e0
cmp qword [rbx], rsi
je 0x18004e430
cmp qword [r14], rsi
jne 0x18004e490
add rbp, 0xffffffffffffffd0
mov al, 1
mov rcx, rdx
jmp 0x18004e439
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
mov rax, rdi
shr rax, 0x3f
add rbp, 0xffffffffffffffd0
test rdi, rdi
mov rdx, qword [rsp + 0x48]
mov rcx, rbp
cmovs rcx, rdx
jmp 0x18004e439
mov rax, qword [rsp + 0x80]
cmp r15, rax
mov r15, rax
je 0x18004e530
lea rax, [r13*2]
add rax, r13
shl rax, 4
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmmword [rbp + rax - 0x10], xmm2
movups xmmword [rbp + rax - 0x20], xmm1
movups xmmword [rbp + rax - 0x30], xmm0
add rbp, 0xffffffffffffffd0
add rbx, 0x30
jmp 0x18004e420
mov rax, r13
shl rax, 4
lea r8, [rax + rax*2]
mov rcx, qword [rsp + 0x40]
call sub.VCRUNTIME140.dll_memcpy
mov rdx, r15
sub rdx, r13
mov rdi, qword [rsp + 0x70]
mov r12, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x60]
je 0x18004e650
lea rax, [r13*2]
add rax, r13
shl rax, 4
add rax, qword [rsp + 0x40]
lea rcx, [r13 + 1]
cmp r15, rcx
jne 0x18004e590
xor r9d, r9d
jmp 0x18004e619
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rbp, qword [rsp + 0x58]
add rbp, qword [rsp + 0x68]
mov r8, rax
xor r10d, r10d
movabs r11, 0xffffffffffffffe
nop word cs:[rax + rax]
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmm2, xmmword [rbp + 0x20]
movups xmmword [r8 + 0x20], xmm2
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
lea r9, [r10 + 2]
xor r10, r11
lea r10, [r10 + r10*2]
shl r10, 4
movups xmm0, xmmword [rbx + r10]
movups xmm1, xmmword [rbx + r10 + 0x10]
movups xmm2, xmmword [rbx + r10 + 0x20]
movups xmmword [r8 + 0x30], xmm0
movups xmmword [r8 + 0x40], xmm1
movups xmmword [r8 + 0x50], xmm2
add r8, 0x60
add rbp, 0xffffffffffffffa0
mov r10, r9
cmp rcx, r9
jne 0x18004e5c0
test dl, 1
je 0x18004e650
lea rcx, [r9 + r9*2]
not r9
lea r8, [r9 + r9*2]
shl r8, 4
shl rcx, 4
movups xmm0, xmmword [rbx + r8]
movups xmm1, xmmword [rbx + r8 + 0x10]
movups xmm2, xmmword [rbx + r8 + 0x20]
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
test r13, r13
je 0x18004e6c0
cmp r15, r13
jb 0x18004e98a
lea rcx, [r13*2]
add rcx, r13
shl rcx, 4
add rcx, qword [rsp + 0x40]
mov r14, qword [rsp + 0x170]
mov qword [rsp + 0x30], r14
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov ebx, dword [rsp + 0x54]
mov dword [rsp + 0x20], ebx
mov r8, qword [rsp + 0x48]
mov r9, rdi
call fcn.18004e2b0
mov r15, r13
cmp r13, 0x21
jae 0x18004e340
jmp 0x18004e2e1
cmp r15, rdi
ja 0x18004e988
lea rax, [r15 + r15*2]
shl rax, 4
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x58], rax
lea r13, [rdx + rax]
xor ebp, ebp
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x60], r13
mov rdi, qword [rsp + 0x78]
mov r12, rdi
lea r15, [rdi + rdi*2]
shl r15, 4
add r15, qword [rsp + 0x40]
jmp 0x18004e74e
add r13, 0xffffffffffffffd0
mov al, 1
mov rcx, rdx
lea r8, [rbp*2]
add r8, rbp
shl r8, 4
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmmword [rcx + r8 + 0x20], xmm2
movups xmmword [rcx + r8 + 0x10], xmm1
movups xmmword [rcx + r8], xmm0
movzx eax, al
add rbp, rax
add rbx, 0x30
cmp rbx, r15
jae 0x18004e7c0
cmp qword [r14], rsi
je 0x18004e710
cmp qword [rbx], rsi
jne 0x18004e770
add r13, 0xffffffffffffffd0
xor eax, eax
mov rcx, r13
jmp 0x18004e719
mov rcx, qword [r14 + 8]
mov rax, qword [r14 + 0x10]
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
add r13, 0xffffffffffffffd0
test rdi, rdi
mov rdx, qword [rsp + 0x48]
setns al
mov rcx, r13
cmovns rcx, rdx
jmp 0x18004e719
mov rdi, qword [rsp + 0x80]
cmp r12, rdi
je 0x18004e810
add r13, 0xffffffffffffffd0
lea rax, [rbp*2]
add rax, rbp
shl rax, 4
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmmword [rdx + rax + 0x20], xmm2
movups xmmword [rdx + rax + 0x10], xmm1
movups xmmword [rdx + rax], xmm0
inc rbp
add rbx, 0x30
jmp 0x18004e6f0
mov rax, rbp
shl rax, 4
lea r8, [rax + rax*2]
mov rcx, qword [rsp + 0x40]
call sub.VCRUNTIME140.dll_memcpy
mov r13, rdi
sub r13, rbp
mov r14, qword [rsp + 0x170]
mov ebx, dword [rsp + 0x54]
mov r11, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
je 0x18004e91d
lea rax, [rbp*2]
add rax, rbp
shl rax, 4
add rax, qword [rsp + 0x40]
lea rcx, [rbp + 1]
cmp rdi, rcx
jne 0x18004e86c
xor r8d, r8d
jmp 0x18004e8e5
mov rcx, r13
and rcx, 0xfffffffffffffffe
add r15, qword [rsp + 0x68]
mov rdx, rax
xor r9d, r9d
movabs r10, 0xffffffffffffffe
nop dword [rax + rax]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movups xmmword [rdx + 0x20], xmm2
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea r8, [r9 + 2]
xor r9, r10
lea r9, [r9 + r9*2]
shl r9, 4
movups xmm0, xmmword [r11 + r9]
movups xmm1, xmmword [r11 + r9 + 0x10]
movups xmm2, xmmword [r11 + r9 + 0x20]
movups xmmword [rdx + 0x30], xmm0
movups xmmword [rdx + 0x40], xmm1
movups xmmword [rdx + 0x50], xmm2
add rdx, 0x60
add r15, 0xffffffffffffffa0
mov r9, r8
cmp rcx, r8
jne 0x18004e890
test r13b, 1
je 0x18004e91d
lea rcx, [r8 + r8*2]
not r8
lea rdx, [r8 + r8*2]
shl rdx, 4
shl rcx, 4
movups xmm0, xmmword [r11 + rdx]
movups xmm1, xmmword [r11 + rdx + 0x10]
movups xmm2, xmmword [r11 + rdx + 0x20]
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
cmp rdi, rbp
jb 0x18004e9d0
lea rax, [rbp*2]
add rax, rbp
shl rax, 4
add qword [rsp + 0x40], rax
mov r12d, 0
cmp r13, 0x21
mov rdi, qword [rsp + 0x70]
jae 0x18004e327
jmp 0x18004e2e1
mov qword [rsp + 0x28], r14
mov byte [rsp + 0x20], 1
mov rcx, qword [rsp + 0x40]
mov rdx, r15
mov r8, qword [rsp + 0x48]
mov r9, rdi
call fcn.180025640
nop
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x180151048]
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_1e4f10ba6476e48a42a79b9f846a2d9366525b9elibrarycore_src_slice_sort_stablequicksort.rsmid___len_
lea rcx, [rsp + 0x90]
call fcn.180149210
lea r8, str._rustc_1e4f10ba6476e48a42a79b9f846a2d9366525b9elibrarycore_src_slice_sort_stablequicksort.rsmid___len_
mov rcx, rbp
mov rdx, rdi
call fcn.180149650
int3