Function at 0x1400661e0
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 + 0x40], r9
mov rsi, r8
mov rbx, rdx
mov rbp, rcx
cmp rdx, 0x21
jae 0x14006626d
cmp rbx, 2
jb 0x140066d7d
mov qword [rsp + 0x38], rbp
lea rax, [rbx + 0x10]
cmp rax, qword [rsp + 0x40]
ja 0x140066d91
mov rbp, rbx
shr rbp, 1
mov qword [rsp + 0x70], rbp
shl rbp, 5
mov rcx, qword [rsp + 0x38]
lea r14, [rcx + rbp]
lea rdi, [rsi + rbp]
cmp rbx, 7
mov qword [rsp + 0x60], r14
jbe 0x140066888
mov rdx, rsi
call fcn.140054cc0
mov rcx, r14
mov rdx, rdi
call fcn.140054cc0
mov ecx, 4
jmp 0x1400668ab
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x80], rax
mov edi, dword [rsp + 0x150]
lea rax, [rsi - 0x20]
mov qword [rsp + 0x58], rax
lea rax, [rbp + 0x20]
mov qword [rsp + 0x60], rax
mov rdx, rbx
mov qword [rsp + 0x38], rbp
nop
sub edi, 1
jb 0x14006686e
mov dword [rsp + 0x50], edi
mov r9, rdx
shr r9, 3
mov rbx, r9
shl rbx, 7
add rbx, rbp
imul r13, r9, 0xe0
add r13, rbp
mov qword [rsp + 0x78], rdx
cmp rdx, 0x40
jae 0x1400663a0
mov r12, qword [rbp + 0x10]
mov r14, qword [rbx + 0x10]
cmp r12, r14
setb r15b
jne 0x140066312
mov rcx, qword [rbp]
mov rax, qword [rbp + 8]
mov rdx, qword [rbx]
mov r8, qword [rbx + 8]
mov r15, rax
sub r15, r8
cmovb r8, rax
call fcn.140313000
cdqe
test eax, eax
cmovne r15, rax
shr r15, 0x3f
mov rdi, qword [r13 + 0x10]
cmp r12, rdi
setb bpl
jne 0x14006634e
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rdx, qword [r13]
mov r8, qword [r13 + 8]
mov rbp, rax
sub rbp, r8
cmovb r8, rax
call fcn.140313000
cdqe
test eax, eax
cmovne rbp, rax
shr rbp, 0x3f
mov rax, qword [rsp + 0x38]
mov r12, rax
cmp r15b, bpl
mov rbp, rax
jne 0x1400663b1
cmp r14, rdi
setb dil
jne 0x140066391
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
mov rdx, qword [r13]
mov r8, qword [r13 + 8]
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call fcn.140313000
cdqe
test eax, eax
cmovne rdi, rax
shr rdi, 0x3f
xor r15b, dil
cmovne rbx, r13
mov r12, rbx
jmp 0x1400663b1
mov rcx, rbp
mov rdx, rbx
mov r8, r13
call fcn.140070640
mov r12, rax
mov rdi, r12
sub rdi, rbp
shr rdi, 5
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
cmp qword [rsp + 0x80], 0
mov r14, qword [rsp + 0x78]
je 0x140066436
mov rax, qword [r12 + 0x10]
mov rdx, qword [rsp + 0x80]
cmp qword [rdx + 0x10], rax
jne 0x140066430
mov rcx, qword [rdx]
mov rax, qword [rdx + 8]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov rbx, rdi
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call fcn.140313000
cdqe
test eax, eax
cmovne rdi, rax
test rdi, rdi
mov rdi, rbx
js 0x140066436
jmp 0x140066660
jae 0x140066660
cmp r14, qword [rsp + 0x40]
ja 0x140066d91
shl r14, 5
mov qword [rsp + 0x48], r14
lea rax, [rsi + r14]
xor ebx, ebx
mov r13, rbp
mov qword [rsp + 0x68], rax
mov rbp, rax
mov qword [rsp + 0x70], rdi
mov r14, rdi
shl r14, 5
add r14, qword [rsp + 0x38]
jmp 0x1400664a3
add rbp, 0xffffffffffffffe0
test r15b, r15b
mov rax, rbp
cmovne rax, rsi
mov rcx, rbx
shl rcx, 5
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
movzx eax, r15b
add rbx, rax
add r13, 0x20
cmp r13, r14
jae 0x1400664f0
mov rax, qword [r13 + 0x10]
cmp rax, qword [r12 + 0x10]
setb r15b
jne 0x140066470
mov rcx, qword [r13]
mov rax, qword [r13 + 8]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov r15, rax
sub r15, r8
cmovb r8, rax
call fcn.140313000
cdqe
test eax, eax
cmovne r15, rax
shr r15, 0x3f
jmp 0x140066470
mov r14, qword [rsp + 0x78]
cmp rdi, r14
je 0x140066530
mov rax, rbx
shl rax, 5
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rbp + rax - 0x10], xmm1
movups xmmword [rbp + rax - 0x20], xmm0
add rbp, 0xffffffffffffffe0
add r13, 0x20
mov rdi, r14
jmp 0x140066460
mov r13, rbx
shl r13, 5
mov rbp, qword [rsp + 0x38]
mov rcx, rbp
mov rdx, rsi
mov r8, r13
call fcn.1403125c0
mov rdx, r14
sub rdx, rbx
movabs r10, 0x7fffffffffffffe
mov rdi, qword [rsp + 0x70]
mov r11, qword [rsp + 0x68]
mov r15, qword [rsp + 0x48]
je 0x14006660f
lea rax, [rbx + 1]
cmp r14, rax
jne 0x140066580
xor eax, eax
jmp 0x1400665e2
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x60]
lea r8, [rax + r13]
add r15, qword [rsp + 0x58]
xor r9d, r9d
nop dword [rax + rax]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 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 r15, 0xffffffffffffffc0
mov r9, rax
cmp rcx, rax
jne 0x1400665a0
test dl, 1
je 0x14006660f
mov rcx, rbp
add rcx, 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 0x140066660
cmp r14, rbx
jb 0x140066d93
add r13, rbp
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov edi, dword [rsp + 0x50]
mov dword [rsp + 0x20], edi
mov rcx, r13
mov r8, rsi
mov r9, qword [rsp + 0x40]
call fcn.1400661e0
mov rdx, rbx
cmp rbx, 0x21
jae 0x1400662a0
jmp 0x140066207
cmp r14, qword [rsp + 0x40]
ja 0x140066d91
shl r14, 5
mov qword [rsp + 0x68], r14
lea r15, [rsi + r14]
xor r13d, r13d
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x70], r15
nop word cs:[rax + rax]
mov rbp, rdi
mov r14, rdi
shl r14, 5
add r14, qword [rsp + 0x38]
jmp 0x1400666e3
mov eax, edi
xor al, 1
add r15, 0xffffffffffffffe0
test dil, dil
mov rcx, rsi
cmovne rcx, r15
mov rdx, r13
shl rdx, 5
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rcx + rdx + 0x10], xmm1
movups xmmword [rcx + rdx], xmm0
movzx eax, al
add r13, rax
add rbx, 0x20
cmp rbx, r14
jae 0x140066730
mov rax, qword [r12 + 0x10]
cmp rax, qword [rbx + 0x10]
setb dil
jne 0x1400666b0
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
mov rdx, qword [rbx]
mov r8, qword [rbx + 8]
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call fcn.140313000
cdqe
test eax, eax
cmovne rdi, rax
shr rdi, 0x3f
jmp 0x1400666b0
mov rdi, qword [rsp + 0x78]
cmp rbp, rdi
je 0x140066770
add r15, 0xffffffffffffffe0
mov rax, r13
shl rax, 5
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsi + rax + 0x10], xmm1
movups xmmword [rsi + rax], xmm0
inc r13
add rbx, 0x20
jmp 0x140066690
mov r12, r13
shl r12, 5
mov rcx, qword [rsp + 0x38]
mov rdx, rsi
mov r8, r12
call fcn.1403125c0
mov rbx, rdi
sub rbx, r13
movabs r9, 0x7fffffffffffffe
mov r10, qword [rsp + 0x70]
je 0x14006683d
lea rax, [r13 + 1]
cmp rdi, rax
jne 0x1400667af
xor eax, eax
jmp 0x14006680e
mov rcx, rbx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x38]
lea rdx, [rax + r12]
add rdx, 0x20
mov r11, qword [rsp + 0x68]
add r11, qword [rsp + 0x58]
xor r8d, r8d
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 0x1400667d0
test bl, 1
je 0x14006683d
mov rcx, qword [rsp + 0x38]
add rcx, 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 rdi, r13
jb 0x140066dd9
mov rbp, qword [rsp + 0x38]
add rbp, r12
mov eax, 0
mov qword [rsp + 0x80], rax
cmp rbx, 0x21
mov edi, dword [rsp + 0x50]
jae 0x14006628d
jmp 0x140066207
mov byte [rsp + 0x20], 1
mov rcx, rbp
mov r8, rsi
mov r9, qword [rsp + 0x40]
call fcn.14006a440
jmp 0x140066d7d
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
mov ecx, 1
mov rdx, rbx
mov rax, qword [rsp + 0x70]
sub rdx, rax
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x48], rcx
cmp rcx, rax
mov qword [rsp + 0x78], rdi
jae 0x140066a5f
mov rax, qword [rsp + 0x48]
mov r12d, eax
shl r12d, 5
add r12, 0xffffffffffffffe0
mov rdi, rax
jmp 0x140066921
mov r15, rsi
mov r12, qword [rsp + 0x88]
mov rax, qword [rsp + 0x50]
mov qword [r15], rax
mov qword [r15 + 8], r13
mov qword [r15 + 0x10], rcx
mov rax, qword [rsp + 0x58]
mov qword [r15 + 0x18], rax
mov rdi, qword [rsp + 0x68]
inc rdi
add r12, 0x20
cmp rdi, qword [rsp + 0x70]
je 0x140066a5f
mov qword [rsp + 0x68], rdi
shl rdi, 5
lea r15, [rsi + rdi]
mov rax, qword [rsp + 0x38]
movups xmm0, xmmword [rax + rdi]
movups xmm1, xmmword [rax + rdi + 0x10]
movups xmmword [rsi + rdi + 0x10], xmm1
movups xmmword [rsi + rdi], xmm0
mov rcx, qword [rsi + rdi + 0x10]
cmp rcx, qword [rsi + rdi - 0x10]
mov qword [rsp + 0x40], rcx
jne 0x1400669a0
mov rcx, qword [r15]
mov r13, qword [r15 + 8]
mov rdx, qword [r15 - 0x20]
mov r8, qword [r15 - 0x18]
mov r14, r12
mov r12, r13
sub r12, r8
cmovb r8, r13
mov qword [rsp + 0x50], rcx
call fcn.140313000
mov rcx, qword [rsp + 0x40]
cdqe
test eax, eax
cmovne r12, rax
test r12, r12
mov r12, r14
jns 0x14006690a
jmp 0x1400669b2
jae 0x14006690a
mov rax, qword [r15]
mov qword [rsp + 0x50], rax
mov r13, qword [r15 + 8]
add rdi, rsi
add rdi, 0xffffffffffffffe0
mov rax, qword [r15 + 0x18]
mov qword [rsp + 0x58], rax
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [r15], xmm0
movups xmmword [r15 + 0x10], xmm1
mov r15, rsi
cmp rdi, rsi
je 0x1400668f1
mov qword [rsp + 0x88], r12
jmp 0x140066a4a
mov rdx, qword [rsi + r12 - 0x20]
mov r8, qword [rsi + r12 - 0x18]
mov r14, r13
sub r14, r8
cmovb r8, r13
mov rcx, qword [rsp + 0x50]
call fcn.140313000
mov rcx, qword [rsp + 0x40]
cdqe
test eax, eax
cmovne r14, rax
test r14, r14
jns 0x1400668e9
add rdi, 0xffffffffffffffe0
lea rax, [rsi + r12]
add rax, 0xffffffffffffffe0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmmword [r15], xmm0
add r12, 0xffffffffffffffe0
je 0x1400668e6
lea r15, [rsi + r12]
cmp rcx, qword [rsi + r12 - 0x10]
je 0x1400669f0
jb 0x140066a24
mov r15, rdi
jmp 0x1400668e9
mov r9, qword [rsp + 0x48]
cmp r9, qword [rsp + 0x80]
mov rax, qword [rsp + 0x60]
jae 0x140066c0d
add rbp, rsi
mov r12d, r9d
shl r12d, 5
add r12, 0xffffffffffffffe0
jmp 0x140066ac7
mov rdi, rbp
mov rax, qword [rsp + 0x60]
mov r9, qword [rsp + 0x48]
mov r12, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov qword [rdi], rcx
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], rdx
mov rcx, qword [rsp + 0x68]
mov qword [rdi + 0x18], rcx
inc r9
add r12, 0x20
cmp r9, qword [rsp + 0x80]
je 0x140066c0d
mov r14, r9
shl r14, 5
lea rdi, [r14 + rbp]
movups xmm0, xmmword [rax + r14]
movups xmm1, xmmword [rax + r14 + 0x10]
movups xmmword [rbp + r14 + 0x10], xmm1
movups xmmword [rbp + r14], xmm0
mov rdx, qword [rbp + r14 + 0x10]
cmp rdx, qword [rbp + r14 - 0x10]
mov qword [rsp + 0x40], rdx
jne 0x140066b50
mov rcx, qword [rdi]
mov r13, qword [rdi + 8]
mov rdx, qword [rdi - 0x20]
mov r8, qword [rdi - 0x18]
mov qword [rsp + 0x48], r9
mov r15, r13
sub r15, r8
cmovb r8, r13
mov qword [rsp + 0x50], rcx
call fcn.140313000
mov rdx, qword [rsp + 0x40]
cdqe
test eax, eax
cmovne r15, rax
test r15, r15
mov r9, qword [rsp + 0x48]
mov rax, qword [rsp + 0x60]
jns 0x140066ab2
jmp 0x140066b62
jae 0x140066ab2
mov rcx, qword [rdi]
mov qword [rsp + 0x50], rcx
mov r13, qword [rdi + 8]
add r14, rbp
add r14, 0xffffffffffffffe0
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x68], rcx
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm1
mov rdi, rbp
cmp r14, rbp
je 0x140066a99
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x58], r12
mov r15, r12
jmp 0x140066bf8
mov rdx, qword [rbp + r15 - 0x20]
mov r8, qword [rbp + r15 - 0x18]
mov r12, r13
sub r12, r8
cmovb r8, r13
mov rcx, qword [rsp + 0x50]
call fcn.140313000
mov rdx, qword [rsp + 0x40]
cdqe
test eax, eax
cmovne r12, rax
test r12, r12
jns 0x140066a8a
add r14, 0xffffffffffffffe0
lea rax, [r15 + rbp]
add rax, 0xffffffffffffffe0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
add r15, 0xffffffffffffffe0
je 0x140066a87
lea rdi, [r15 + rbp]
cmp rdx, qword [rbp + r15 - 0x10]
je 0x140066ba0
jb 0x140066bd4
mov rdi, r14
jmp 0x140066a8a
mov r14, qword [rsp + 0x78]
lea r12, [r14 - 0x20]
mov rax, rbx
shl rax, 5
lea r15, [rsi + rax]
add r15, 0xffffffffffffffe0
mov rbp, qword [rsp + 0x38]
lea r13, [rax + rbp]
add r13, 0xffffffffffffffe0
jmp 0x140066c9f
movzx eax, dil
xor dil, 1
shl eax, 5
mov rcx, qword [rsp + 0x78]
add rcx, rax
movzx eax, dil
shl eax, 5
add rsi, rax
add rbp, 0x20
test r14b, r14b
mov rax, r15
cmovne rax, r12
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
movzx eax, r14b
mov r14, rcx
shl eax, 5
add r15, rax
add r15, 0xffffffffffffffe0
sub r12, rax
add r13, 0xffffffffffffffe0
dec qword [rsp + 0x70]
je 0x140066d37
mov rax, qword [r14 + 0x10]
cmp rax, qword [rsi + 0x10]
setb dil
jne 0x140066cd6
mov rcx, qword [r14]
mov rax, qword [r14 + 8]
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call fcn.140313000
cdqe
test eax, eax
cmovne rdi, rax
shr rdi, 0x3f
test dil, dil
mov rax, rsi
mov qword [rsp + 0x78], r14
cmovne rax, r14
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x10], xmm1
movups xmmword [rbp], xmm0
mov rax, qword [r15 + 0x10]
cmp rax, qword [r12 + 0x10]
setb r14b
jne 0x140066c40
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
mov rdx, qword [r12]
mov r8, qword [r12 + 8]
mov r14, rax
sub r14, r8
cmovb r8, rax
call fcn.140313000
cdqe
test eax, eax
cmovne r14, rax
shr r14, 0x3f
jmp 0x140066c40
add r12, 0x20
test bl, 1
je 0x140066d6f
xor eax, eax
xor ecx, ecx
cmp rsi, r12
setae al
setb cl
mov rdx, r14
cmovb rdx, rsi
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rbp + 0x10], xmm1
movups xmmword [rbp], xmm0
shl ecx, 5
add rsi, rcx
shl eax, 5
add r14, rax
cmp rsi, r12
jne 0x140066deb
add r15, 0x20
cmp r14, r15
jne 0x140066deb
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 + 0x90], rax
mov qword [rsp + 0x98], 1
mov qword [rsp + 0xa0], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0xa8], xmm0
lea rdx, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rs
lea rcx, [rsp + 0x90]
call fcn.140313650
lea r8, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rs
mov rcx, r13
mov rdx, rdi
call fcn.140313570
call fcn.140313bf0
int3