Function at 0x14010e5d0
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 qword [rsp + 0x48], r9
mov rdi, r8
mov rbx, rdx
mov r15, rcx
cmp rdx, 0x21
jae 0x14010e657
cmp rbx, 2
jb 0x14010f0a2
lea rax, [rbx + 0x10]
cmp rax, qword [rsp + 0x48]
ja 0x14010f0b6
mov rsi, rbx
shr rsi, 1
mov r14, rsi
shl r14, 5
mov rcx, r15
add r15, r14
add r14, rdi
cmp rbx, 7
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], r14
jbe 0x14010ecd1
mov rdx, rdi
call fcn.1400bb780
mov rcx, r15
mov rdx, r14
call fcn.1400bb780
mov ecx, 4
jmp 0x14010ecf6
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x60], rax
mov esi, dword [rsp + 0x150]
lea rax, [rdi - 0x20]
mov qword [rsp + 0x70], rax
lea rax, [r15 + 0x20]
mov qword [rsp + 0x78], rax
mov rdx, rbx
mov qword [rsp + 0x50], r15
nop word cs:[rax + rax]
sub esi, 1
jb 0x14010ecb7
mov dword [rsp + 0x68], esi
mov r9, rdx
shr r9, 3
mov rbx, r9
shl rbx, 7
add rbx, r15
imul r13, r9, 0xe0
add r13, r15
mov qword [rsp + 0x38], rdx
cmp rdx, 0x40
jae 0x14010e7e0
mov rcx, qword [r15 + 8]
mov qword [rsp + 0x30], rcx
mov rax, r15
mov r15, qword [r15 + 0x10]
mov r14, rax
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
mov rsi, r15
sub rsi, r8
mov qword [rsp + 0x58], r8
cmovb r8, r15
mov qword [rsp + 0x40], rdx
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
movzx ebp, byte [r14 + 0x18]
movzx ecx, byte [rbx + 0x18]
mov eax, ebp
mov byte [rsp + 0x80], cl
sub al, cl
xor r14d, r14d
cmp al, 0xff
sete r14b
xor eax, eax
test rsi, rsi
sets al
cmovne r14d, eax
mov rdx, qword [r13 + 8]
mov rsi, qword [r13 + 0x10]
mov r12, r15
sub r12, rsi
cmovae r15, rsi
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x30], rdx
mov r8, r15
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r12, rax
movzx r15d, byte [r13 + 0x18]
sub bpl, r15b
xor eax, eax
cmp bpl, 0xff
sete al
xor ecx, ecx
test r12, r12
sets cl
cmovne eax, ecx
mov rcx, qword [rsp + 0x50]
mov r12, rcx
cmp r14b, al
jne 0x14010e7f4
mov rax, qword [rsp + 0x58]
mov r12, rax
sub r12, rsi
cmovb rsi, rax
mov rbp, rcx
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
mov r8, rsi
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r12, rax
movzx ecx, byte [rsp + 0x80]
sub cl, r15b
xor eax, eax
cmp cl, 0xff
sete al
xor ecx, ecx
test r12, r12
sets cl
cmovne eax, ecx
mov rcx, rbp
xor r14b, al
cmovne rbx, r13
mov r12, rbx
jmp 0x14010e7f4
mov rcx, r15
mov rdx, rbx
mov r8, r13
call fcn.1400bb480
mov r12, rax
mov rcx, r15
mov rbp, r12
sub rbp, rcx
shr rbp, 5
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
cmp qword [rsp + 0x60], 0
mov r15, rcx
mov r14, qword [rsp + 0x38]
je 0x14010e87b
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
mov rsi, rax
sub rsi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
movzx eax, byte [rbx + 0x18]
sub al, byte [r12 + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rsi, rsi
sets al
cmovne ecx, eax
cmp cl, 1
jne 0x14010eaa0
cmp r14, qword [rsp + 0x48]
ja 0x14010f0b6
shl r14, 5
mov qword [rsp + 0x58], r14
lea r13, [rdi + r14]
xor ebx, ebx
mov rsi, r15
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x30], rbp
nop word cs:[rax + rax]
mov r14, rbp
shl r14, 5
add r14, r15
cmp rsi, r14
jae 0x14010e937
nop
mov rcx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
mov r15, rax
sub r15, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r15, rax
movzx eax, byte [rsi + 0x18]
sub al, byte [r12 + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test r15, r15
sets al
cmovne ecx, eax
add r13, 0xffffffffffffffe0
test cl, cl
mov rax, r13
cmovne rax, rdi
mov rdx, rbx
shl rdx, 5
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rax + rdx + 0x10], xmm1
movups xmmword [rax + rdx], xmm0
movzx eax, cl
add rbx, rax
add rsi, 0x20
cmp rsi, r14
jb 0x14010e8c0
mov r14, qword [rsp + 0x38]
cmp rbp, r14
je 0x14010e970
mov rax, rbx
shl rax, 5
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [r13 + rax - 0x10], xmm1
movups xmmword [r13 + rax - 0x20], xmm0
add r13, 0xffffffffffffffe0
add rsi, 0x20
mov rbp, r14
mov r15, qword [rsp + 0x50]
jmp 0x14010e8b0
mov r13, rbx
shl r13, 5
mov r15, qword [rsp + 0x50]
mov rcx, r15
mov rdx, rdi
mov r8, r13
call sub.msvcrt.dll_memcpy
mov rdx, r14
sub rdx, rbx
mov rbp, qword [rsp + 0x30]
mov r11, qword [rsp + 0x40]
je 0x14010ea4b
lea rax, [rbx + 1]
cmp r14, rax
jne 0x14010e9b0
xor eax, eax
jmp 0x14010ea20
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x78]
lea r8, [rax + r13]
mov rsi, qword [rsp + 0x58]
add rsi, qword [rsp + 0x70]
xor r9d, r9d
movabs r10, 0x7fffffffffffffe
nop word [rax + 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 0x14010e9e0
test dl, 1
je 0x14010ea4b
lea rcx, [r15 + r13]
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 rbx, rbx
je 0x14010eaa0
cmp r14, rbx
jb 0x14010f0b8
add r13, r15
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x68]
mov dword [rsp + 0x20], esi
mov rcx, r13
mov r8, rdi
mov r9, qword [rsp + 0x48]
call fcn.14010e5d0
mov rdx, rbx
cmp rbx, 0x21
jae 0x14010e690
jmp 0x14010e5f7
cmp r14, qword [rsp + 0x48]
ja 0x14010f0b6
shl r14, 5
mov qword [rsp + 0x40], r14
lea rbx, [rdi + r14]
xor r13d, r13d
mov rsi, r15
mov qword [rsp + 0x30], rbx
nop word cs:[rax + rax]
mov r14, rbp
mov r15, rbp
shl r15, 5
add r15, qword [rsp + 0x50]
jmp 0x14010eb12
mov r8, r13
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 r13, rcx
add rsi, 0x20
cmp rsi, r15
jae 0x14010eb80
mov rcx, qword [r12 + 8]
mov rax, qword [r12 + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov rbp, rax
sub rbp, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rbp, rax
xor eax, eax
test rbp, rbp
setne al
mov ecx, 0xff
cmovs eax, ecx
test al, al
jne 0x14010eb60
movzx eax, byte [r12 + 0x18]
sub al, byte [rsi + 0x18]
movzx eax, al
add rbx, 0xffffffffffffffe0
xor ecx, ecx
mov rdx, rdi
cmp al, 0xff
setne al
jne 0x14010eaf0
mov rdx, rbx
jmp 0x14010eaf0
mov rbp, qword [rsp + 0x38]
cmp r14, rbp
je 0x14010ebc0
add rbx, 0xffffffffffffffe0
mov rax, r13
shl rax, 5
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rdi + rax + 0x10], xmm1
movups xmmword [rdi + rax], xmm0
inc r13
add rsi, 0x20
jmp 0x14010ead0
mov r12, r13
shl r12, 5
mov r15, qword [rsp + 0x50]
mov rcx, r15
mov rdx, rdi
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rbx, rbp
sub rbx, r13
mov r10, qword [rsp + 0x30]
je 0x14010ec8e
lea rax, [r13 + 1]
cmp rbp, rax
movabs r9, 0x7fffffffffffffe
jne 0x14010ec02
xor eax, eax
jmp 0x14010ec5e
mov rcx, rbx
and rcx, 0xfffffffffffffffe
lea rdx, [r15 + r12]
add rdx, 0x20
mov r11, qword [rsp + 0x40]
add r11, qword [rsp + 0x70]
xor r8d, r8d
nop
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 0x14010ec20
test bl, 1
mov rbp, qword [rsp + 0x38]
je 0x14010ec8e
lea rcx, [r15 + r12]
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 rbp, r13
jb 0x14010f0fe
add r15, r12
mov eax, 0
mov qword [rsp + 0x60], rax
cmp rbx, 0x21
mov esi, dword [rsp + 0x68]
jae 0x14010e674
jmp 0x14010e5f7
mov byte [rsp + 0x20], 1
mov rcx, r15
mov r8, rdi
mov r9, qword [rsp + 0x48]
call fcn.14010dde0
jmp 0x14010f0a2
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [r14 + 0x10], xmm1
movups xmmword [r14], xmm0
mov ecx, 1
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xd0], 2
mov rdx, rbx
sub rdx, rsi
mov r8d, ecx
shl r8d, 5
mov eax, 2
xor r9d, r9d
mov rbp, qword [rsp + 0x50]
jmp 0x14010ed48
inc r9
cmp rcx, r10
jb 0x14010ed70
cmp rax, r9
je 0x14010ef3c
mov r14, qword [rsp + r9*8 + 0xb8]
mov r10, rsi
test r14, r14
je 0x14010ed40
mov r10, rdx
jmp 0x14010ed40
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x38], rsi
shl r14, 5
lea rax, [r14 + rbp]
mov qword [rsp + 0x40], rax
add r14, rdi
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x80], rcx
mov r13, rcx
mov qword [rsp + 0x30], r10
jmp 0x14010edfa
mov r13, r14
mov rax, qword [rsp + 0x60]
mov qword [r13], rax
mov qword [r13 + 8], r15
mov qword [r13 + 0x10], rbp
mov byte [r13 + 0x18], r12b
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x93]
mov dword [r13 + 0x19], eax
mov dword [r13 + 0x1c], ecx
mov r13, qword [rsp + 0x48]
inc r13
add qword [rsp + 0x68], 0x20
mov r10, qword [rsp + 0x30]
cmp r13, r10
je 0x14010ef10
mov qword [rsp + 0x48], r13
shl r13, 5
mov rax, qword [rsp + 0x40]
movups xmm0, xmmword [rax + r13]
movups xmm1, xmmword [rax + r13 + 0x10]
movups xmmword [r14 + r13], xmm0
movups xmmword [r14 + r13 + 0x10], xmm1
mov r15, qword [r14 + r13 + 8]
mov rbp, qword [r14 + r13 + 0x10]
mov rdx, qword [r14 + r13 - 0x18]
mov r8, qword [r14 + r13 - 0x10]
mov rsi, rbp
sub rsi, r8
cmovb r8, rbp
mov rcx, r15
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
movzx r12d, byte [r14 + r13 + 0x18]
mov eax, r12d
sub al, byte [r14 + r13 - 8]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rsi, rsi
sets al
cmovne ecx, eax
cmp cl, 1
jne 0x14010edde
add r13, r14
mov rax, qword [r13]
mov qword [rsp + 0x60], rax
mov eax, dword [r13 + 0x1c]
mov dword [rsp + 0x93], eax
mov eax, dword [r13 + 0x19]
mov dword [rsp + 0x90], eax
mov r13, qword [rsp + 0x68]
nop dword [rax]
movups xmm0, xmmword [r14 + r13 - 0x20]
movups xmm1, xmmword [r14 + r13 - 0x10]
movups xmmword [r14 + r13 + 0x10], xmm1
movups xmmword [r14 + r13], xmm0
cmp r13, 0x20
je 0x14010edb0
mov rdx, qword [r14 + r13 - 0x38]
mov r8, qword [r14 + r13 - 0x30]
mov rsi, rbp
sub rsi, r8
cmovb r8, rbp
mov rcx, r15
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
mov eax, r12d
sub al, byte [r14 + r13 - 0x28]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rsi, rsi
sets al
cmovne ecx, eax
add r13, 0xffffffffffffffe0
test cl, cl
jne 0x14010eea0
add r13, r14
jmp 0x14010edb3
mov rax, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov r9, qword [rsp + 0x88]
jmp 0x14010ed2b
mov r14, qword [rsp + 0x58]
lea r13, [r14 - 0x20]
mov rax, rbx
shl rax, 5
lea r15, [rdi + rax]
add r15, 0xffffffffffffffe0
lea r12, [rax + rbp]
add r12, 0xffffffffffffffe0
nop dword [rax]
mov qword [rsp + 0x38], rsi
mov rsi, rdi
mov rcx, qword [r14 + 8]
mov rax, qword [r14 + 0x10]
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
movzx eax, byte [r14 + 0x18]
sub al, byte [rsi + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rdi, rdi
sets al
cmovne ecx, eax
test cl, cl
mov rax, rsi
cmovne rax, r14
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x10], xmm1
movups xmmword [rbp], xmm0
movzx eax, cl
xor cl, 1
shl eax, 5
add rax, r14
mov r14, rax
movzx edi, cl
shl edi, 5
add rdi, rsi
add rbp, 0x20
mov rcx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
mov rdx, qword [r13 + 8]
mov r8, qword [r13 + 0x10]
mov rsi, rax
sub rsi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
movzx eax, byte [r15 + 0x18]
sub al, byte [r13 + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rsi, rsi
mov rsi, qword [rsp + 0x38]
sets al
cmovne ecx, eax
test cl, cl
mov rax, r15
cmovne rax, r13
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
movzx eax, cl
shl eax, 5
add r15, rax
add r15, 0xffffffffffffffe0
sub r13, rax
add r12, 0xffffffffffffffe0
dec rsi
jne 0x14010ef60
add r13, 0x20
test bl, 1
je 0x14010f094
xor eax, eax
xor ecx, ecx
cmp rdi, r13
setae al
setb cl
mov rdx, r14
cmovb rdx, rdi
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rbp + 0x10], xmm1
movups xmmword [rbp], xmm0
shl ecx, 5
add rdi, rcx
shl eax, 5
add r14, rax
cmp rdi, r13
jne 0x14010f110
add r15, 0x20
cmp r14, r15
jne 0x14010f110
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, str.mid___len
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], 1
mov qword [rsp + 0xc8], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0xd0], xmm0
lea rdx, str._rustc_3cb521a4344f0b556b81c55eec8facddeb1ead83librarycore_src_slice_sort_stablequicksort.rs
lea rcx, [rsp + 0xb8]
call fcn.1400467a0
lea r8, str._rustc_3cb521a4344f0b556b81c55eec8facddeb1ead83librarycore_src_slice_sort_stablequicksort.rs
mov rcx, r13
mov rdx, rbp
call fcn.1400467e0
call fcn.14004baf0
int3