Function at 0x1400127a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov rdi, r9
mov r15, r8
mov r12, rdx
mov qword [rsp + 0x40], rcx
cmp rdx, 0x21
jae 0x1400127ec
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x40]
mov rdx, r12
mov r8, r15
mov r9, rdi
call fcn.140010a20
jmp 0x140012e64
mov rbp, qword [rsp + 0x1d8]
mov esi, dword [rsp + 0x1d0]
lea rax, [r15 - 0x90]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x88], rdi
mov r14, r12
mov qword [rsp + 0xa0], rbp
nop word cs:[rax + rax]
sub esi, 1
jb 0x140012e3f
mov dword [rsp + 0x64], esi
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
mov rdx, r14
mov rbx, qword [rsp + 0x1e0]
mov r8, rbx
call fcn.14000fb30
mov qword [rsp + 0x68], rax
lea r13, [rax + rax*8]
shl r13, 4
add r13, rsi
mov r8d, 0x90
lea rcx, [rsp + 0xd8]
mov rdx, r13
call sub.msvcrt.dll_memcpy
mov rsi, qword [rbx]
test rbp, rbp
mov qword [rsp + 0x58], r14
je 0x14001289e
cmp dword [rbp], 2
mov rax, qword [r13]
jne 0x1400128b0
cmp eax, 2
je 0x140012bb0
cmp r14, rdi
jbe 0x1400128eb
jmp 0x140012e79
cmp eax, 2
je 0x140012bb0
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 0x140012bb0
mov rax, qword [rsp + 0x1e0]
mov rsi, qword [rax]
cmp r14, rdi
ja 0x140012e79
lea rax, [r14 + r14*8]
shl rax, 4
mov qword [rsp + 0x70], rax
add r15, rax
mov qword [rsp + 0x50], r15
xor r12d, r12d
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x68]
nop dword [rax]
lea r14, [rbp*8]
add r14, rbp
shl r14, 4
add r14, qword [rsp + 0x40]
jmp 0x14001295f
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.msvcrt.dll_memcpy
add r12, rdi
add rbx, 0x90
cmp rbx, r14
jae 0x1400129c0
cmp dword [rbx], 2
mov rax, qword [r13]
jne 0x140012980
add r15, 0xffffffffffffff70
cmp eax, 2
je 0x140012937
jmp 0x1400129a6
cmp eax, 2
je 0x140012930
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 0x140012937
mov edi, 1
mov rax, qword [rsp + 0x48]
jmp 0x14001293c
mov rdi, qword [rsp + 0x58]
cmp rbp, rdi
je 0x140012a10
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.msvcrt.dll_memcpy
add rbx, 0x90
mov rbp, rdi
jmp 0x140012910
mov rax, r12
shl rax, 4
lea r8, [rax + rax*8]
mov rcx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov rdx, rdi
sub rdx, r12
je 0x140012b36
lea rbx, [r12 + r12*8]
shl rbx, 4
add rbx, qword [rsp + 0x40]
lea rax, [r12 + 1]
cmp qword [rsp + 0x58], rax
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x90], rbx
jne 0x140012a70
xor r14d, r14d
jmp 0x140012aed
and rdx, 0xfffffffffffffffe
mov qword [rsp + 0x78], rdx
mov rsi, qword [rsp + 0x70]
add rsi, qword [rsp + 0x80]
xor edi, edi
movabs rbp, 0xffffffffffffffe
mov r15, qword [rsp + 0x50]
nop word [rax + rax]
mov r8d, 0x90
mov rcx, rbx
mov rdx, rsi
call sub.msvcrt.dll_memcpy
lea r14, [rdi + 2]
xor rdi, rbp
lea rdx, [rdi + rdi*8]
shl rdx, 4
add rdx, r15
lea rcx, [rbx + 0x90]
mov r8d, 0x90
call sub.msvcrt.dll_memcpy
add rbx, 0x120
add rsi, 0xfffffffffffffee0
mov rdi, r14
cmp qword [rsp + 0x78], r14
jne 0x140012aa0
mov rdx, qword [rsp + 0x98]
test dl, 1
mov r15, qword [rsp + 0x48]
je 0x140012b36
lea rax, [r14 + r14*8]
not r14
lea rcx, [r14 + r14*8]
shl rcx, 4
mov rsi, rdx
mov rdx, qword [rsp + 0x50]
add rdx, rcx
shl rax, 4
mov rcx, qword [rsp + 0x90]
add rcx, rax
mov r8d, 0x90
call sub.msvcrt.dll_memcpy
mov rdx, rsi
test r12, r12
mov rdi, qword [rsp + 0x88]
mov r14, qword [rsp + 0x58]
mov rbp, qword [rsp + 0xa0]
je 0x140012bb0
cmp r14, r12
jb 0x140012e7b
lea rcx, [r12 + r12*8]
shl rcx, 4
add rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x64]
mov dword [rsp + 0x20], esi
mov r8, r15
mov r9, rdi
call fcn.1400127a0
mov r14, r12
cmp r12, 0x21
jae 0x140012830
jmp 0x1400127c7
cmp r14, rdi
ja 0x140012e79
lea rax, [r14 + r14*8]
shl rax, 4
mov qword [rsp + 0x70], rax
add r15, rax
xor esi, esi
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x50], 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 + 0x40]
cmp rbx, r12
mov r14, qword [rsp + 0x1e0]
jb 0x140012c79
mov r14, qword [rsp + 0x58]
cmp rdi, r14
je 0x140012cf0
add r15, 0xffffffffffffff70
lea rcx, [rsi + rsi*8]
shl rcx, 4
add rcx, qword [rsp + 0x48]
mov r8d, 0x90
mov rdx, rbx
call sub.msvcrt.dll_memcpy
inc rsi
add rbx, 0x90
jmp 0x140012be0
add r15, 0xffffffffffffff70
mov ebp, 1
mov rdx, qword [rsp + 0x48]
lea rcx, [rsi + rsi*8]
shl rcx, 4
add rcx, rdx
mov r8d, 0x90
mov rdx, rbx
call sub.msvcrt.dll_memcpy
add rsi, rbp
add rbx, 0x90
cmp rbx, r12
jae 0x140012bfd
cmp dword [r13], 2
mov rax, qword [rbx]
jne 0x140012ca0
add r15, 0xffffffffffffff70
mov ebp, 1
mov rdx, qword [rsp + 0x48]
cmp eax, 2
je 0x140012c51
jmp 0x140012cd7
cmp eax, 2
je 0x140012c40
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 + 0x48]
cmp al, 0xff
jne 0x140012c51
xor ebp, ebp
mov rdx, r15
jmp 0x140012c51
mov rax, rsi
shl rax, 4
lea r8, [rax + rax*8]
mov rcx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov r12, r14
sub r12, rsi
je 0x140012e09
lea r13, [rsi + rsi*8]
shl r13, 4
add r13, qword [rsp + 0x40]
lea rax, [rsi + 1]
cmp r14, rax
mov qword [rsp + 0x68], r13
jne 0x140012d3b
xor ebp, ebp
jmp 0x140012dbd
mov rax, r12
and rax, 0xfffffffffffffffe
mov qword [rsp + 0x78], rax
mov r15, qword [rsp + 0x70]
add r15, qword [rsp + 0x80]
xor edi, edi
movabs rbx, 0xffffffffffffffe
mov r14, qword [rsp + 0x50]
nop word cs:[rax + rax]
mov r8d, 0x90
mov rcx, r13
mov rdx, r15
call sub.msvcrt.dll_memcpy
lea rbp, [rdi + 2]
xor rdi, rbx
lea rdx, [rdi + rdi*8]
shl rdx, 4
add rdx, r14
lea rcx, [r13 + 0x90]
mov r8d, 0x90
call sub.msvcrt.dll_memcpy
add r13, 0x120
add r15, 0xfffffffffffffee0
mov rdi, rbp
cmp qword [rsp + 0x78], rbp
jne 0x140012d70
test r12b, 1
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x58]
je 0x140012e09
lea rax, [rbp*8]
add rax, rbp
not rbp
lea rcx, [rbp*8]
add rcx, rbp
shl rcx, 4
mov rdx, qword [rsp + 0x50]
add rdx, rcx
shl rax, 4
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov r8d, 0x90
call sub.msvcrt.dll_memcpy
cmp r14, rsi
jb 0x140012ec1
lea rax, [rsi + rsi*8]
shl rax, 4
add qword [rsp + 0x40], rax
mov ebp, 0
cmp r12, 0x21
mov rdi, qword [rsp + 0x88]
mov esi, dword [rsp + 0x64]
jae 0x140012817
jmp 0x1400127c7
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, qword [rsp + 0x40]
mov rdx, r14
mov r8, r15
mov r9, rdi
call fcn.1400111f0
nop
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x1400b4448]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], 1
mov qword [rsp + 0xb8], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0xc0], xmm0
lea rdx, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rsmid___len_D_v_
lea rcx, [rsp + 0xa8]
call fcn.140099d60
lea r8, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rsmid___len_D_v_
mov rcx, rsi
mov rdx, r14
call fcn.1400a0690
int3