Function at 0x140066e00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r15, r9
mov rsi, r8
mov rbx, rdx
mov rdi, rcx
cmp rdx, 0x21
jae 0x140067042
cmp rbx, 2
jb 0x14006779e
lea rax, [rbx + 0x10]
cmp rax, r15
ja 0x1400677b2
mov r13, rbx
shr r13, 1
cmp rbx, 7
jbe 0x1400674e4
movsd xmm0, qword [rdi]
movsd xmm1, qword [rdi + 0x40]
xor r10d, r10d
xor r9d, r9d
ucomisd xmm0, qword [rdi + 0x20]
setbe r10b
seta r9b
xor r8d, r8d
ucomisd xmm1, qword [rdi + 0x60]
seta r8b
shl r9d, 5
shl r10d, 5
lea rcx, [rdi + r10]
mov eax, r8d
shl eax, 5
lea rdx, [rdi + rax]
add rdx, 0x40
xor r8d, 3
shl r8d, 5
movsd xmm0, qword [rdi + r10]
movsd xmm1, qword [rdi + r8]
ucomisd xmm0, xmm1
mov r10, rcx
cmova r10, rdx
movsd xmm2, qword [rdi + r9]
ucomisd xmm2, qword [rdi + rax + 0x40]
lea rax, [rdi + r9]
cmova r10, rax
cmova rax, rdx
cmova rdx, rcx
ucomisd xmm0, xmm1
lea r8, [rdi + r8]
cmovbe rcx, r8
cmova rdx, r8
movsd xmm0, qword [r10]
ucomisd xmm0, qword [rdx]
mov r8, r10
cmova r8, rdx
cmova rdx, r10
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [rsi + 0x30], xmm1
movups xmmword [rsi + 0x20], xmm0
movups xmm0, xmmword [rdx + 0x10]
movups xmmword [rsi + 0x50], xmm0
mov r8, r13
shl r8, 5
movsd xmm0, qword [rdi + r8]
movsd xmm1, qword [rdi + r8 + 0x40]
xor r12d, r12d
xor r15d, r15d
ucomisd xmm0, qword [rdi + r8 + 0x20]
setbe r12b
seta r15b
xor r10d, r10d
ucomisd xmm1, qword [rdi + r8 + 0x60]
lea r14, [rdi + r8]
seta r10b
shl r15d, 5
shl r12d, 5
lea r9, [r14 + r12]
mov eax, r10d
shl eax, 5
lea r11, [rax + r14]
add r11, 0x40
xor r10d, 3
shl r10d, 5
movsd xmm0, qword [r15 + r14]
movsd xmm1, qword [r12 + r14]
movsd xmm2, qword [r10 + r14]
ucomisd xmm1, xmm2
mov r12, r9
cmova r12, r11
ucomisd xmm0, qword [r14 + rax + 0x40]
movups xmm0, xmmword [rdx]
lea rax, [r14 + r15]
cmova r12, rax
movups xmmword [rsi + 0x40], xmm0
cmova rax, r11
movups xmm0, xmmword [rcx + 0x10]
cmova r11, r9
movups xmmword [rsi + 0x70], xmm0
movups xmm0, xmmword [rcx]
ucomisd xmm1, xmm2
lea rcx, [r14 + r10]
cmovbe r9, rcx
movups xmmword [rsi + 0x60], xmm0
cmova r11, rcx
movsd xmm0, qword [r12]
ucomisd xmm0, qword [r11]
mov rcx, r12
cmova rcx, r11
cmova r11, r12
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + r8 + 0x10], xmm1
movups xmmword [rsi + r8], xmm0
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rsi + r8 + 0x20], xmm0
movups xmmword [rsi + r8 + 0x30], xmm1
movups xmm0, xmmword [r11]
movups xmm1, xmmword [r11 + 0x10]
movups xmmword [rsi + r8 + 0x40], xmm0
movups xmmword [rsi + r8 + 0x50], xmm1
movupd xmm0, xmmword [r9]
movupd xmm1, xmmword [r9 + 0x10]
movupd xmmword [rsi + r8 + 0x60], xmm0
movupd xmmword [rsi + r8 + 0x70], xmm1
mov ecx, 4
jmp 0x140067514
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x40], rax
mov ebp, dword [rsp + 0x120]
lea rax, [rsi - 0x20]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], r15
lea rax, [rdi + 0x20]
mov qword [rsp + 0x50], rax
mov r14, rbx
sub ebp, 1
jb 0x1400674c9
mov dword [rsp + 0x38], ebp
mov r9, r14
shr r9, 3
mov r12, r9
shl r12, 7
add r12, rdi
imul r8, r9, 0xe0
add r8, rdi
cmp r14, 0x40
jae 0x1400670e0
movsd xmm0, qword [rdi]
movsd xmm1, qword [r12]
ucomisd xmm1, xmm0
seta al
movsd xmm2, qword [r8]
ucomisd xmm2, xmm0
seta cl
xor cl, al
ucomisd xmm2, xmm1
seta dl
xor dl, al
cmovne r12, r8
test cl, cl
cmovne r12, rdi
jmp 0x1400670ee
mov rcx, rdi
mov rdx, r12
call fcn.140070420
mov r12, rax
mov r11, r12
sub r11, rdi
shr r11, 5
movupd xmm0, xmmword [r12]
movupd xmm1, xmmword [r12 + 0x10]
movapd xmmword [rsp + 0xa0], xmm1
movapd xmmword [rsp + 0x90], xmm0
cmp qword [rsp + 0x40], 0
je 0x140067134
movsd xmm0, qword [r12]
mov rax, qword [rsp + 0x40]
ucomisd xmm0, qword [rax]
jbe 0x140067320
cmp r14, r15
ja 0x1400677b2
mov r15, r14
shl r15, 5
lea rbp, [rsi + r15]
xor ebx, ebx
mov rax, rdi
mov rcx, rbp
mov qword [rsp + 0x30], r11
mov rdx, r11
nop dword [rax + rax]
mov r8, rdx
shl r8, 5
add r8, rdi
cmp rax, r8
jae 0x1400671b5
nop
movsd xmm0, qword [r12]
add rcx, 0xffffffffffffffe0
xor r9d, r9d
ucomisd xmm0, qword [rax]
seta r9b
mov r10, rcx
cmova r10, rsi
mov r11, rbx
shl r11, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [r10 + r11 + 0x10], xmm1
movupd xmmword [r10 + r11], xmm0
add rbx, r9
add rax, 0x20
cmp rax, r8
jb 0x140067170
cmp rdx, r14
je 0x1400671f0
mov rdx, rbx
shl rdx, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [rcx + rdx - 0x10], xmm1
movupd xmmword [rcx + rdx - 0x20], xmm0
add rcx, 0xffffffffffffffe0
add rax, 0x20
mov rdx, r14
jmp 0x140067160
mov r13, rbx
shl r13, 5
mov rcx, rdi
mov rdx, rsi
mov r8, r13
call fcn.1403125c0
mov rdx, r14
sub rdx, rbx
movabs r10, 0x7fffffffffffffe
mov r11, qword [rsp + 0x30]
je 0x1400672c7
lea rax, [rbx + 1]
cmp r14, rax
jne 0x140067230
xor eax, eax
jmp 0x140067297
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x50]
lea r8, [rax + r13]
add r15, qword [rsp + 0x48]
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
movupd xmm0, xmmword [rbp + r9]
movupd xmm1, xmmword [rbp + r9 + 0x10]
movupd xmmword [r8], xmm0
movupd xmmword [r8 + 0x10], xmm1
add r8, 0x40
add r15, 0xffffffffffffffc0
mov r9, rax
cmp rcx, rax
jne 0x140067250
test dl, 1
je 0x1400672c7
lea rcx, [rdi + r13]
mov r8, rax
not r8
shl r8, 5
shl rax, 5
movupd xmm0, xmmword [rbp + r8]
movupd xmm1, xmmword [rbp + r8 + 0x10]
movupd xmmword [rcx + rax + 0x10], xmm1
movupd xmmword [rcx + rax], xmm0
test rbx, rbx
mov r15, qword [rsp + 0x58]
je 0x140067320
cmp r14, rbx
jb 0x1400677b4
add r13, rdi
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
mov ebp, dword [rsp + 0x38]
mov dword [rsp + 0x20], ebp
mov rcx, r13
mov r8, rsi
mov r9, r15
call fcn.140066e00
mov r14, rbx
cmp rbx, 0x21
jae 0x140067070
jmp 0x140066e29
cmp r14, r15
ja 0x1400677b2
mov rbp, r14
shl rbp, 5
lea rcx, [rsi + rbp]
xor r13d, r13d
mov rax, rdi
mov qword [rsp + 0x30], rcx
nop
mov rdx, r11
shl rdx, 5
add rdx, rdi
cmp rax, rdx
jae 0x140067395
nop
movsd xmm0, qword [rax]
add rcx, 0xffffffffffffffe0
xor r8d, r8d
ucomisd xmm0, qword [r12]
setbe r8b
mov r9, rcx
cmovbe r9, rsi
mov r10, r13
shl r10, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [r9 + r10 + 0x10], xmm1
movupd xmmword [r9 + r10], xmm0
add r13, r8
add rax, 0x20
cmp rax, rdx
jb 0x140067350
cmp r11, r14
je 0x1400673d0
add rcx, 0xffffffffffffffe0
mov rdx, r13
shl rdx, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [rsi + rdx + 0x10], xmm1
movupd xmmword [rsi + rdx], xmm0
inc r13
add rax, 0x20
mov r11, r14
jmp 0x140067340
mov r12, r13
shl r12, 5
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.1403125c0
movabs r9, 0x7fffffffffffffe
mov rbx, r14
sub rbx, r13
mov r10, qword [rsp + 0x30]
je 0x1400674a0
lea rax, [r13 + 1]
cmp r14, rax
jne 0x14006740d
xor eax, eax
jmp 0x140067471
mov rcx, rbx
and rcx, 0xfffffffffffffffe
lea rdx, [rdi + r12]
add rdx, 0x20
add rbp, qword [rsp + 0x48]
xor r8d, r8d
nop word cs:[rax + rax]
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdx - 0x20], xmm0
lea rax, [r8 + 2]
xor r8, r9
shl r8, 5
movupd xmm0, xmmword [r10 + r8]
movupd xmm1, xmmword [r10 + r8 + 0x10]
movupd xmmword [rdx], xmm0
movupd xmmword [rdx + 0x10], xmm1
add rdx, 0x40
add rbp, 0xffffffffffffffc0
mov r8, rax
cmp rcx, rax
jne 0x140067430
test bl, 1
je 0x1400674a0
lea rcx, [rdi + r12]
mov rdx, rax
not rdx
shl rdx, 5
shl rax, 5
movupd xmm0, xmmword [r10 + rdx]
movupd xmm1, xmmword [r10 + rdx + 0x10]
movupd xmmword [rcx + rax + 0x10], xmm1
movupd xmmword [rcx + rax], xmm0
cmp r14, r13
jb 0x1400677ed
add rdi, r12
mov eax, 0
mov qword [rsp + 0x40], rax
cmp rbx, 0x21
mov ebp, dword [rsp + 0x38]
jae 0x140067064
jmp 0x140066e29
mov byte [rsp + 0x20], 1
mov rcx, rdi
mov rdx, r14
mov r8, rsi
mov r9, r15
call fcn.1400694f0
jmp 0x14006779e
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rax, r13
shl rax, 5
movupd xmm0, xmmword [rdi + rax]
movupd xmm1, xmmword [rdi + rax + 0x10]
movupd xmmword [rsi + rax + 0x10], xmm1
movupd xmmword [rsi + rax], xmm0
mov ecx, 1
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x78], 2
mov rdx, rbx
sub rdx, r13
mov r8d, ecx
shl r8d, 5
mov r14d, 2
xor r11d, r11d
cmp r14, r11
jne 0x140067561
jmp 0x140067671
inc r11
cmp rcx, r10
jb 0x140067573
cmp r14, r11
je 0x140067671
mov r9, qword [rsp + r11*8 + 0x60]
mov r10, r13
test r9, r9
je 0x140067550
mov r10, rdx
jmp 0x140067550
mov qword [rsp + 0x70], r11
shl r9, 5
lea r11, [rdi + r9]
add r9, rsi
mov r14, r8
mov r15, rcx
jmp 0x1400675c6
mov r12, r9
movsd qword [r12], xmm0
movapd xmm0, xmmword [rsp + 0x90]
movupd xmmword [r12 + 8], xmm0
mov rax, qword [rsp + 0xa0]
mov qword [r12 + 0x18], rax
inc r15
add r14, 0x20
cmp r15, r10
je 0x14006765e
mov rax, r15
shl rax, 5
movups xmm0, xmmword [r11 + rax]
movups xmm1, xmmword [r11 + rax + 0x10]
movups xmmword [r9 + rax], xmm0
movups xmmword [r9 + rax + 0x10], xmm1
movsd xmm0, qword [r9 + rax]
movsd xmm1, qword [r9 + rax - 0x20]
ucomisd xmm1, xmm0
jbe 0x1400675b6
add rax, r11
mov r12, qword [rax + 0x18]
mov qword [rsp + 0xa0], r12
movups xmm1, xmmword [rax + 8]
movaps xmmword [rsp + 0x90], xmm1
mov r12, r14
nop word cs:[rax + rax]
movupd xmm1, xmmword [r9 + r12 - 0x20]
movupd xmm2, xmmword [r9 + r12 - 0x10]
movupd xmmword [r9 + r12 + 0x10], xmm2
movupd xmmword [r9 + r12], xmm1
cmp r12, 0x20
je 0x140067590
movsd xmm1, qword [r9 + r12 - 0x40]
add r12, 0xffffffffffffffe0
ucomisd xmm1, xmm0
ja 0x140067620
add r12, r9
jmp 0x140067593
mov r11, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
cmp r14, r11
jne 0x140067561
mov rax, r13
shl rax, 5
lea rcx, [rsi + rax]
lea rbp, [rsi + rax]
add rbp, 0xffffffffffffffe0
mov rax, rbx
shl rax, 5
lea rdx, [rsi + rax]
add rdx, 0xffffffffffffffe0
lea r9, [rdi + rax]
add r9, 0xffffffffffffffe0
jmp 0x1400676f5
mov r12b, al
shl r12d, 5
add rcx, r12
mov r11b, r15b
shl r11d, 5
add rsi, r11
add rdi, 0x20
movupd xmm0, xmmword [r8]
movupd xmm1, xmmword [r8 + 0x10]
movupd xmmword [r9 + 0x10], xmm1
movupd xmmword [r9], xmm0
mov r14b, r13b
shl r14d, 5
sub rdx, r14
movzx eax, byte [rsp + 0x30]
mov r10b, al
shl r10d, 5
sub rbp, r10
add r9, 0xffffffffffffffe0
mov r13, qword [rsp + 0x38]
dec r13
je 0x140067750
mov qword [rsp + 0x38], r13
movsd xmm0, qword [rsi]
xor r11d, r11d
xor r12d, r12d
ucomisd xmm0, qword [rcx]
setbe r15b
seta al
mov r8, rcx
ja 0x140067717
mov r8, rsi
movups xmm0, xmmword [r8]
movsd xmm1, qword [rbp]
xor r10d, r10d
xor r14d, r14d
ucomisd xmm1, qword [rdx]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [rdi + 0x10], xmm1
seta byte [rsp + 0x30]
movups xmmword [rdi], xmm0
setbe r13b
mov r8, rbp
ja 0x1400676a0
mov r8, rdx
jmp 0x1400676a0
add rbp, 0x20
test bl, 1
je 0x140067790
xor eax, eax
xor r8d, r8d
cmp rsi, rbp
setae al
setb r8b
mov r9, rcx
cmovb r9, rsi
movupd xmm0, xmmword [r9]
movupd xmm1, xmmword [r9 + 0x10]
movupd xmmword [rdi + 0x10], xmm1
movupd xmmword [rdi], xmm0
shl r8d, 5
add rsi, r8
shl eax, 5
add rcx, rax
cmp rsi, rbp
jne 0x1400677ff
add rdx, 0x20
cmp rcx, rdx
jne 0x1400677ff
add rsp, 0xb8
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 + 0x60], rax
mov qword [rsp + 0x68], 1
mov qword [rsp + 0x70], 8
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x78], xmm0
lea rdx, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rs
lea rcx, [rsp + 0x60]
call fcn.140313650
lea r8, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rs
mov rcx, r13
mov rdx, r14
call fcn.140313570
call fcn.140313bf0
int3