Function at 0x1401db650
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
mov rdi, r9
mov r15, r8
mov r12, rdx
mov qword [rsp + 0x38], rcx
cmp rdx, 0x21
jae 0x1401db69c
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x38]
mov rdx, r12
mov r8, r15
mov r9, rdi
call fcn.1401dda50
jmp 0x1401dbcc0
mov rbp, qword [rsp + 0x1c8]
mov esi, dword [rsp + 0x1c0]
lea rax, [r15 - 0x90]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x78], rdi
mov r14, r12
mov qword [rsp + 0x48], rbp
nop dword [rax]
sub esi, 1
jb 0x1401dbc9b
mov dword [rsp + 0x5c], esi
mov rsi, qword [rsp + 0x38]
mov rcx, rsi
mov rdx, r14
mov rbx, qword [rsp + 0x1d0]
mov r8, rbx
call fcn.1401dd4f0
mov qword [rsp + 0x68], rax
lea r13, [rax + rax*8]
shl r13, 4
add r13, rsi
mov r8d, 0x90
lea rcx, [rsp + 0xc8]
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
mov rsi, qword [rbx]
test rbp, rbp
mov qword [rsp + 0x50], r14
je 0x1401db73e
cmp dword [rbp], 2
mov rax, qword [r13]
jne 0x1401db750
cmp eax, 2
je 0x1401dba30
cmp r14, rdi
jbe 0x1401db78b
jmp 0x1401dbcd5
cmp eax, 2
je 0x1401dba30
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rdx, rbp
mov r8, r13
call qword [rax + 0x20]
cmp al, 0xff
jne 0x1401dba30
mov rax, qword [rsp + 0x1d0]
mov rsi, qword [rax]
cmp r14, rdi
ja 0x1401dbcd5
lea rax, [r14 + r14*8]
shl rax, 4
mov qword [rsp + 0x90], rax
add r15, rax
mov qword [rsp + 0x60], r15
xor r12d, r12d
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x68]
lea r14, [rbp*8]
add r14, rbp
shl r14, 4
add r14, qword [rsp + 0x38]
jmp 0x1401db7ff
add r15, 0xffffffffffffff70
xor edi, edi
mov rax, r15
lea rcx, [r12 + r12*8]
shl rcx, 4
add rcx, rax
mov r8d, 0x90
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
add r12, rdi
add rbx, 0x90
cmp rbx, r14
jae 0x1401db860
cmp dword [rbx], 2
mov rax, qword [r13]
jne 0x1401db820
add r15, 0xffffffffffffff70
cmp eax, 2
je 0x1401db7d7
jmp 0x1401db846
cmp eax, 2
je 0x1401db7d0
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rdx, rbx
mov r8, r13
call qword [rax + 0x20]
add r15, 0xffffffffffffff70
cmp al, 0xff
jne 0x1401db7d7
mov edi, 1
mov rax, qword [rsp + 0x40]
jmp 0x1401db7dc
mov rdi, qword [rsp + 0x50]
cmp rbp, rdi
je 0x1401db8b0
lea rax, [r12 + r12*8]
shl rax, 4
lea rcx, [r15 + rax]
add rcx, 0xffffffffffffff70
add r15, 0xffffffffffffff70
mov r8d, 0x90
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
add rbx, 0x90
mov rbp, rdi
jmp 0x1401db7b0
mov rax, r12
shl rax, 4
lea r8, [rax + rax*8]
mov rcx, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
mov rdx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rdx, rdi
sub rdx, r12
mov rbp, qword [rsp + 0x48]
je 0x1401db9ca
lea rbx, [r12 + r12*8]
shl rbx, 4
add rbx, qword [rsp + 0x38]
lea rax, [r12 + 1]
cmp qword [rsp + 0x50], rax
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x80], rbx
jne 0x1401db910
xor r14d, r14d
jmp 0x1401db97c
mov rsi, rdx
and rsi, 0xfffffffffffffffe
mov rbp, qword [rsp + 0x90]
add rbp, qword [rsp + 0x70]
xor edi, edi
mov r15, qword [rsp + 0x60]
nop dword [rax + rax]
mov r8d, 0x90
mov rcx, rbx
mov rdx, rbp
call sub.VCRUNTIME140.dll_memcpy
lea r14, [rdi + 2]
xor rdi, 0xfffffffffffffffe
lea rdx, [rdi + rdi*8]
shl rdx, 4
add rdx, r15
lea rcx, [rbx + 0x90]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
add rbx, 0x120
add rbp, 0xfffffffffffffee0
mov rdi, r14
cmp rsi, r14
jne 0x1401db930
mov rdx, qword [rsp + 0x88]
test dl, 1
mov r15, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
je 0x1401db9ca
lea rax, [r14 + r14*8]
not r14
lea rcx, [r14 + r14*8]
shl rcx, 4
mov rsi, rdx
mov rdx, qword [rsp + 0x60]
add rdx, rcx
shl rax, 4
mov rcx, qword [rsp + 0x80]
add rcx, rax
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rdx, rsi
test r12, r12
mov rdi, qword [rsp + 0x78]
mov r14, qword [rsp + 0x50]
je 0x1401dba30
cmp r14, r12
jb 0x1401dbcd7
lea rcx, [r12 + r12*8]
shl rcx, 4
add rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x5c]
mov dword [rsp + 0x20], esi
mov r8, r15
mov r9, rdi
call fcn.1401db650
mov r14, r12
cmp r12, 0x21
jae 0x1401db6d0
jmp 0x1401db677
cmp r14, rdi
ja 0x1401dbcd5
lea rax, [r14 + r14*8]
shl rax, 4
mov qword [rsp + 0x60], rax
add r15, rax
xor esi, esi
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x48], r15
mov r14, qword [rsp + 0x68]
nop word [rax + rax]
mov rdi, r14
lea r12, [r14 + r14*8]
shl r12, 4
add r12, qword [rsp + 0x38]
cmp rbx, r12
mov r14, qword [rsp + 0x1d0]
jb 0x1401dbaf9
mov r14, qword [rsp + 0x50]
cmp rdi, r14
je 0x1401dbb70
add r15, 0xffffffffffffff70
lea rcx, [rsi + rsi*8]
shl rcx, 4
add rcx, qword [rsp + 0x40]
mov r8d, 0x90
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
inc rsi
add rbx, 0x90
jmp 0x1401dba60
add r15, 0xffffffffffffff70
mov ebp, 1
mov rdx, qword [rsp + 0x40]
lea rcx, [rsi + rsi*8]
shl rcx, 4
add rcx, rdx
mov r8d, 0x90
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
add rsi, rbp
add rbx, 0x90
cmp rbx, r12
jae 0x1401dba7d
cmp dword [r13], 2
mov rax, qword [rbx]
jne 0x1401dbb20
add r15, 0xffffffffffffff70
mov ebp, 1
mov rdx, qword [rsp + 0x40]
cmp eax, 2
je 0x1401dbad1
jmp 0x1401dbb57
cmp eax, 2
je 0x1401dbac0
mov rax, qword [r14]
mov rax, qword [rax]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rdx, r13
mov r8, rbx
call qword [rax + 0x20]
add r15, 0xffffffffffffff70
mov ebp, 1
mov rdx, qword [rsp + 0x40]
cmp al, 0xff
jne 0x1401dbad1
xor ebp, ebp
mov rdx, r15
jmp 0x1401dbad1
mov rax, rsi
shl rax, 4
lea r8, [rax + rax*8]
mov rcx, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
mov rdx, r15
call sub.VCRUNTIME140.dll_memcpy
mov r12, r14
sub r12, rsi
je 0x1401dbc68
lea r13, [rsi + rsi*8]
shl r13, 4
add r13, qword [rsp + 0x38]
lea rax, [rsi + 1]
cmp r14, rax
mov qword [rsp + 0x68], r13
jne 0x1401dbbb8
xor ebp, ebp
jmp 0x1401dbc1c
mov r15, r12
and r15, 0xfffffffffffffffe
mov rbx, qword [rsp + 0x60]
add rbx, qword [rsp + 0x70]
xor edi, edi
mov r14, qword [rsp + 0x48]
mov r8d, 0x90
mov rcx, r13
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
lea rbp, [rdi + 2]
xor rdi, 0xfffffffffffffffe
lea rdx, [rdi + rdi*8]
shl rdx, 4
add rdx, r14
lea rcx, [r13 + 0x90]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
add r13, 0x120
add rbx, 0xfffffffffffffee0
mov rdi, rbp
cmp r15, rbp
jne 0x1401dbbd0
test r12b, 1
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x50]
je 0x1401dbc68
lea rax, [rbp*8]
add rax, rbp
not rbp
lea rcx, [rbp*8]
add rcx, rbp
shl rcx, 4
mov rdx, qword [rsp + 0x48]
add rdx, rcx
shl rax, 4
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
cmp r14, rsi
jb 0x1401dbd1d
lea rax, [rsi + rsi*8]
shl rax, 4
add qword [rsp + 0x38], rax
mov ebp, 0
cmp r12, 0x21
mov rdi, qword [rsp + 0x78]
mov esi, dword [rsp + 0x5c]
jae 0x1401db6c1
jmp 0x1401db677
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, qword [rsp + 0x38]
mov rdx, r14
mov r8, r15
mov r9, rdi
call fcn.1401de0b0
nop
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x1404025e0]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0xb0], xmm0
lea rdx, str._rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrarycore_src_slice_sort_stablequicksort.rsmid___len
lea rcx, [rsp + 0x98]
call fcn.140359e80
lea r8, str._rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrarycore_src_slice_sort_stablequicksort.rsmid___len
mov rcx, rsi
mov rdx, r14
call fcn.14035a340
int3