Function at 0x18004e9f0
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 r14, r9
mov rdi, r8
mov r12, rdx
mov qword [rsp + 0x38], rcx
mov rsi, qword [rsp + 0x160]
cmp rdx, 0x21
jae 0x18004ea3c
mov qword [rsp + 0x20], rsi
mov rcx, qword [rsp + 0x38]
mov rdx, r12
mov r8, rdi
mov r9, r14
call fcn.180042410
jmp 0x18004eff5
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x50], rax
mov ebx, dword [rsp + 0x150]
lea rax, [rdi - 0x38]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x48], r14
mov r13, r12
nop word cs:[rax + rax]
sub ebx, 1
jb 0x18004efd8
mov dword [rsp + 0x44], ebx
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
mov rdx, r13
mov r8, rsi
call fcn.180023fb0
mov r15, rax
imul rax, rax, 0x38
lea rsi, [rbx + rax]
mov rcx, qword [rbx + rax + 0x30]
mov qword [rsp + 0xe0], rcx
movups xmm0, xmmword [rbx + rax]
movups xmm1, xmmword [rbx + rax + 0x10]
movups xmm2, xmmword [rbx + rax + 0x20]
movaps xmmword [rsp + 0xd0], xmm2
movaps xmmword [rsp + 0xc0], xmm1
movaps xmmword [rsp + 0xb0], xmm0
cmp qword [rsp + 0x50], 0
mov qword [rsp + 0x68], r13
je 0x18004eb10
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 8]
mov rax, qword [rax + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 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 0x18004ed90
cmp r13, r14
ja 0x18004f00a
imul rax, r13, 0x38
mov qword [rsp + 0x78], rax
lea r14, [rdi + rax]
xor r12d, r12d
mov rbp, qword [rsp + 0x38]
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r15
nop dword [rax + rax]
imul rbx, r15, 0x38
add rbx, qword [rsp + 0x38]
cmp rbp, rbx
jae 0x18004ebbc
nop
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov r13, rax
sub r13, r8
cmovb r8, rax
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne r13, rax
add r14, 0xffffffffffffffc8
test r13, r13
mov rax, r14
cmovs rax, rdi
imul rcx, r12, 0x38
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmm2, xmmword [rbp + 0x20]
movups xmmword [rax + rcx], xmm0
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx + 0x20], xmm2
mov rdx, qword [rbp + 0x30]
mov qword [rax + rcx + 0x30], rdx
shr r13, 0x3f
add r12, r13
add rbp, 0x38
cmp rbp, rbx
jb 0x18004eb50
mov r13, qword [rsp + 0x68]
cmp r15, r13
je 0x18004ec10
imul rax, r12, 0x38
mov rcx, qword [rbp + 0x30]
mov qword [r14 + rax - 8], rcx
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmm2, xmmword [rbp + 0x20]
movups xmmword [r14 + rax - 0x18], xmm2
movups xmmword [r14 + rax - 0x28], xmm1
movups xmmword [r14 + rax - 0x38], xmm0
add r14, 0xffffffffffffffc8
add rbp, 0x38
mov r15, r13
jmp 0x18004eb40
imul rbp, r12, 0x38
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rdx, r13
sub rdx, r12
mov r14, qword [rsp + 0x48]
mov r15, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
je 0x18004ed36
mov rax, qword [rsp + 0x38]
add rax, rbp
lea rcx, [r12 + 1]
cmp r13, rcx
movabs r11, 0x1ffffffffffffffe
jne 0x18004ec70
xor r9d, r9d
jmp 0x18004ecf8
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov r14, qword [rsp + 0x78]
add r14, qword [rsp + 0x70]
mov r8, rax
xor r10d, r10d
nop word [rax + rax]
mov r9, qword [r14 + 0x30]
mov qword [r8 + 0x30], r9
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmm2, xmmword [r14 + 0x20]
movups xmmword [r8 + 0x20], xmm2
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
lea r9, [r10 + 2]
xor r10, r11
imul r10, r10, 0x38
movups xmm0, xmmword [rbx + r10]
movups xmm1, xmmword [rbx + r10 + 0x10]
movups xmm2, xmmword [rbx + r10 + 0x20]
movups xmmword [r8 + 0x38], xmm0
movups xmmword [r8 + 0x48], xmm1
movups xmmword [r8 + 0x58], xmm2
mov r10, qword [rbx + r10 + 0x30]
mov qword [r8 + 0x68], r10
add r8, 0x70
add r14, 0xffffffffffffff90
mov r10, r9
cmp rcx, r9
jne 0x18004ec90
test dl, 1
mov r14, qword [rsp + 0x48]
je 0x18004ed36
imul rcx, r9, 0x38
not r9
imul r8, r9, 0x38
mov r9, qword [rbx + r8 + 0x30]
mov qword [rax + rcx + 0x30], r9
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 r12, r12
je 0x18004ed90
cmp r13, r12
jb 0x18004f00c
add rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x160]
mov qword [rsp + 0x30], rsi
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov ebx, dword [rsp + 0x44]
mov dword [rsp + 0x20], ebx
mov rcx, rbp
mov r8, rdi
mov r9, r14
call fcn.18004e9f0
mov r13, r12
cmp r12, 0x21
jae 0x18004ea70
jmp 0x18004ea1f
cmp r13, r14
ja 0x18004f00a
imul rax, r13, 0x38
mov qword [rsp + 0x58], rax
lea r13, [rdi + rax]
xor ebp, ebp
mov r12, qword [rsp + 0x38]
mov qword [rsp + 0x60], r13
nop word cs:[rax + rax]
mov r14, r15
imul rbx, r15, 0x38
add rbx, qword [rsp + 0x38]
cmp r12, rbx
jae 0x18004ee55
nop word cs:[rax + rax]
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
mov rcx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
mov r15, rax
sub r15, r8
cmovb r8, rax
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne r15, rax
add r13, 0xffffffffffffffc8
xor eax, eax
test r15, r15
setns al
mov rcx, r13
cmovns rcx, rdi
imul rdx, rbp, 0x38
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmm2, xmmword [r12 + 0x20]
movups xmmword [rcx + rdx], xmm0
movups xmmword [rcx + rdx + 0x10], xmm1
movups xmmword [rcx + rdx + 0x20], xmm2
mov r8, qword [r12 + 0x30]
mov qword [rcx + rdx + 0x30], r8
add rbp, rax
add r12, 0x38
cmp r12, rbx
jb 0x18004ede0
mov r15, qword [rsp + 0x68]
cmp r14, r15
je 0x18004eea0
add r13, 0xffffffffffffffc8
imul rax, rbp, 0x38
mov rcx, qword [r12 + 0x30]
mov qword [rdi + rax + 0x30], rcx
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmm2, xmmword [r12 + 0x20]
movups xmmword [rdi + rax + 0x20], xmm2
movups xmmword [rdi + rax + 0x10], xmm1
movups xmmword [rdi + rax], xmm0
inc rbp
add r12, 0x38
jmp 0x18004edc0
imul r13, rbp, 0x38
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
mov r12, r15
sub r12, rbp
mov r14, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x160]
mov ebx, dword [rsp + 0x44]
mov r11, qword [rsp + 0x60]
je 0x18004efb1
mov rax, qword [rsp + 0x38]
add rax, r13
lea rcx, [rbp + 1]
cmp r15, rcx
jne 0x18004eeef
xor r8d, r8d
jmp 0x18004ef72
mov rcx, r12
and rcx, 0xfffffffffffffffe
mov r15, qword [rsp + 0x58]
add r15, qword [rsp + 0x70]
mov rdx, rax
xor r9d, r9d
movabs r10, 0x1ffffffffffffffe
mov r8, qword [r15 + 0x30]
mov qword [rdx + 0x30], r8
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
imul r9, r9, 0x38
movups xmm0, xmmword [r11 + r9]
movups xmm1, xmmword [r11 + r9 + 0x10]
movups xmm2, xmmword [r11 + r9 + 0x20]
movups xmmword [rdx + 0x38], xmm0
movups xmmword [rdx + 0x48], xmm1
movups xmmword [rdx + 0x58], xmm2
mov r9, qword [r11 + r9 + 0x30]
mov qword [rdx + 0x68], r9
add rdx, 0x70
add r15, 0xffffffffffffff90
mov r9, r8
cmp rcx, r8
jne 0x18004ef10
test r12b, 1
mov r15, qword [rsp + 0x68]
je 0x18004efb1
imul rcx, r8, 0x38
not r8
imul rdx, r8, 0x38
mov r8, qword [r11 + rdx + 0x30]
mov qword [rax + rcx + 0x30], r8
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 r15, rbp
jb 0x18004f052
add qword [rsp + 0x38], r13
mov eax, 0
mov qword [rsp + 0x50], rax
cmp r12, 0x21
jae 0x18004ea5e
jmp 0x18004ea1f
mov qword [rsp + 0x28], rsi
mov byte [rsp + 0x20], 1
mov rcx, qword [rsp + 0x38]
mov rdx, r13
mov r8, rdi
mov r9, r14
call fcn.1800245e0
nop
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x180151048]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
mov qword [rsp + 0x90], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x98], xmm0
lea rdx, str._rustc_1e4f10ba6476e48a42a79b9f846a2d9366525b9elibrarycore_src_slice_sort_stablequicksort.rsmid___len_
lea rcx, [rsp + 0x80]
call fcn.180149210
lea r8, str._rustc_1e4f10ba6476e48a42a79b9f846a2d9366525b9elibrarycore_src_slice_sort_stablequicksort.rsmid___len_
mov rcx, rbp
mov rdx, r15
call fcn.180149650
int3