Function at 0x1400f8600
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x178
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xe0], xmm15
movaps xmmword [rbp + 0xd0], xmm14
movaps xmmword [rbp + 0xc0], xmm13
movaps xmmword [rbp + 0xb0], xmm12
movaps xmmword [rbp + 0xa0], xmm11
movaps xmmword [rbp + 0x90], xmm10
movaps xmmword [rbp + 0x80], xmm9
movaps xmmword [rbp + 0x70], xmm8
movaps xmmword [rbp + 0x60], xmm7
movaps xmmword [rbp + 0x50], xmm6
mov qword [rbp + 0x48], 0xfffffffffffffffe
mov qword [rbp + 0x38], r9
mov r13, r8
mov r15, rdx
mov r12, rcx
cmp rdx, 0x21
mov qword [rbp + 0x40], r8
jae 0x1400f8a17
cmp r15, 2
jb 0x1400f93df
mov rax, r15
shr rax, 1
cmp r15, 8
jb 0x1400f8fe2
mov rcx, qword [r12 + 0x30]
mov rdx, qword [r12 + 0x48]
xor r8d, r8d
cmp rdx, qword [r12 + 0x18]
setb r8b
xor edx, edx
cmp rcx, qword [r12]
setb dl
cmove edx, r8d
mov r8, qword [r12 + 0x90]
mov rcx, qword [r12 + 0xa8]
xor r9d, r9d
cmp rcx, qword [r12 + 0x78]
setb r9b
xor ecx, ecx
cmp r8, qword [r12 + 0x60]
lea r8, [r12 + 0x90]
setb cl
cmove ecx, r9d
lea r10, [r12 + 0x60]
movzx edx, dl
lea r9, [rdx + rdx*2]
shl r9d, 4
xor dl, 1
movzx edx, dl
lea rdx, [rdx + rdx*2]
shl edx, 4
test cl, cl
mov rcx, r10
cmovne rcx, r8
cmovne r8, r10
mov r10, qword [rcx]
mov r11, qword [rcx + 0x18]
xor edi, edi
cmp r11, qword [r12 + r9 + 0x18]
setb dil
xor esi, esi
cmp r10, qword [r12 + r9]
setb sil
cmove esi, edi
mov r10, qword [r8]
mov r11, qword [r8 + 0x18]
xor edi, edi
cmp r11, qword [r12 + rdx + 0x18]
setb dil
xor ebx, ebx
cmp r10, qword [r12 + rdx]
lea rdx, [r12 + rdx]
setb bl
cmove ebx, edi
test bl, bl
mov r11, rdx
cmovne r11, rcx
lea r10, [r12 + r9]
test sil, sil
cmovne r11, r10
cmovne r10, rcx
cmovne rcx, rdx
test bl, bl
cmove rdx, r8
mov qword [rbp + 0x30], rdx
cmovne rcx, r8
mov r8, qword [rcx]
mov r9, qword [rcx + 0x18]
xor esi, esi
cmp r9, qword [r11 + 0x18]
setb sil
xor r9d, r9d
cmp r8, qword [r11]
setb r9b
cmove r9d, esi
test r9b, r9b
mov r9, r11
cmovne r9, rcx
cmovne rcx, r11
movups xmm1, xmmword [r10]
movups xmm2, xmmword [r10 + 0x10]
movups xmm3, xmmword [r10 + 0x20]
movups xmm0, xmmword [r9]
mov r8, rax
shl r8, 4
lea r8, [r8 + r8*2]
mov r10, qword [r12 + r8 + 0x30]
mov r11, qword [r12 + r8 + 0x48]
xor edi, edi
cmp r11, qword [r12 + r8 + 0x18]
setb dil
xor esi, esi
cmp r10, qword [r12 + r8]
setb sil
cmove esi, edi
mov r11, qword [r12 + r8 + 0x90]
mov r10, qword [r12 + r8 + 0xa8]
xor edi, edi
cmp r10, qword [r12 + r8 + 0x78]
setb dil
xor r10d, r10d
cmp r11, qword [r12 + r8 + 0x60]
lea r11, [r12 + r8 + 0x90]
setb r10b
cmove r10d, edi
lea rbx, [r12 + r8]
add rbx, 0x60
movzx edi, sil
lea rsi, [rdi + rdi*2]
shl esi, 4
xor dil, 1
movzx edi, dil
lea rdi, [rdi + rdi*2]
shl edi, 4
test r10b, r10b
mov r10, rbx
cmovne r10, r11
lea r14, [r12 + r8]
cmovne r11, rbx
mov qword [rbp + 0x38], r15
mov r15, qword [r10]
mov rbx, qword [r10 + 0x18]
mov rdx, r12
xor r12d, r12d
cmp rbx, qword [rsi + r14 + 0x18]
setb r12b
xor ebx, ebx
cmp r15, qword [rsi + r14]
movups xmm4, xmmword [r9 + 0x10]
setb bl
cmove ebx, r12d
movups xmm5, xmmword [r9 + 0x20]
mov r9, qword [r11]
mov r15, qword [r11 + 0x18]
xor r12d, r12d
cmp r15, qword [rdi + r14 + 0x18]
setb r12b
xor r15d, r15d
cmp r9, qword [rdi + r14]
lea rsi, [r14 + rsi]
lea r9, [r14 + rdi]
setb r15b
cmove r15d, r12d
mov r12, rdx
test r15b, r15b
mov rdi, r9
cmovne rdi, r10
test bl, bl
movups xmm6, xmmword [rcx]
movups xmm7, xmmword [rcx + 0x10]
cmovne rdi, rsi
cmovne rsi, r10
cmovne r10, r9
movups xmm8, xmmword [rcx + 0x20]
test r15b, r15b
mov r15, qword [rbp + 0x38]
cmove r9, r11
cmovne r10, r11
mov rcx, qword [r10]
mov r11, qword [r10 + 0x18]
xor ebx, ebx
cmp r11, qword [rdi + 0x18]
setb bl
xor r11d, r11d
cmp rcx, qword [rdi]
setb r11b
cmove r11d, ebx
mov rcx, qword [rbp + 0x30]
movups xmm9, xmmword [rcx]
movups xmm10, xmmword [rcx + 0x10]
mov rdx, rcx
test r11b, r11b
mov rcx, rdi
cmovne rcx, r10
movups xmm11, xmmword [rdx + 0x20]
cmovne r10, rdi
movups xmm12, xmmword [rsi]
movups xmm13, xmmword [rsi + 0x10]
movups xmm14, xmmword [rsi + 0x20]
movups xmmword [r13 + 0x20], xmm3
movups xmmword [r13 + 0x10], xmm2
movups xmm2, xmmword [rcx]
movups xmm3, xmmword [rcx + 0x10]
movups xmm15, xmmword [rcx + 0x20]
movups xmmword [r13], xmm1
movups xmmword [r13 + 0x50], xmm5
movups xmmword [r13 + 0x40], xmm4
movups xmm1, xmmword [r10]
movups xmm4, xmmword [r10 + 0x10]
movups xmm5, xmmword [r10 + 0x20]
movups xmmword [r13 + 0x30], xmm0
movups xmmword [r13 + 0x80], xmm8
movups xmmword [r13 + 0x70], xmm7
movups xmm0, xmmword [r9]
movups xmm7, xmmword [r9 + 0x10]
movups xmm8, xmmword [r9 + 0x20]
movups xmmword [r13 + 0x60], xmm6
movups xmmword [r13 + 0x90], xmm9
movups xmmword [r13 + 0xa0], xmm10
movups xmmword [r13 + 0xb0], xmm11
movups xmmword [r13 + r8 + 0x20], xmm14
movups xmmword [r13 + r8 + 0x10], xmm13
movups xmmword [r13 + r8], xmm12
movups xmmword [r13 + r8 + 0x50], xmm15
movups xmmword [r13 + r8 + 0x40], xmm3
movups xmmword [r13 + r8 + 0x30], xmm2
movups xmmword [r13 + r8 + 0x80], xmm5
movups xmmword [r13 + r8 + 0x70], xmm4
movups xmmword [r13 + r8 + 0x60], xmm1
movups xmmword [r13 + r8 + 0x90], xmm0
movups xmmword [r13 + r8 + 0xa0], xmm7
movups xmmword [r13 + r8 + 0xb0], xmm8
mov edx, 4
mov r8, r15
sub r8, rax
cmp rdx, rax
jb 0x1400f9044
jmp 0x1400f9156
mov rax, qword [rbp + 0x168]
mov qword [rbp + 0x28], rax
mov ebx, dword [rbp + 0x160]
lea rax, [r13 - 0x30]
mov qword [rbp + 0x18], rax
mov rdi, r15
nop word cs:[rax + rax]
sub ebx, 1
jb 0x1400f8fc6
mov dword [rbp + 0x24], ebx
mov r9, rdi
shr r9, 3
lea rdx, [r9 + r9*2]
shl rdx, 6
add rdx, r12
imul r8, r9, 0x150
add r8, r12
cmp rdi, 0x40
jae 0x1400f8ae0
mov rsi, qword [r12]
mov rbx, qword [r12 + 0x18]
mov rcx, qword [rdx]
mov r9, qword [rdx + 0x18]
xor r10d, r10d
cmp rbx, r9
setb r10b
xor eax, eax
cmp rsi, rcx
setb al
cmove eax, r10d
mov r10, qword [r8]
mov r11, qword [r8 + 0x18]
xor r14d, r14d
cmp rbx, r11
setb r14b
xor r13d, r13d
cmp rsi, r10
setb r13b
cmove r13d, r14d
mov rbx, r12
cmp al, r13b
jne 0x1400f8aeb
xor esi, esi
cmp r9, r11
setb sil
xor r9d, r9d
cmp rcx, r10
setb r9b
cmove r9d, esi
xor al, r9b
cmovne rdx, r8
mov rbx, rdx
jmp 0x1400f8aeb
mov rcx, r12
call fcn.1400f9570
mov rbx, rax
mov rcx, rbx
sub rcx, r12
shr rcx, 4
movabs rax, 0xaaaaaaaaaaaaaaab
imul rcx, rax
mov qword [rbp + 0x30], rcx
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movaps xmmword [rbp - 0x30], xmm2
movaps xmmword [rbp - 0x40], xmm1
movaps xmmword [rbp - 0x50], xmm0
cmp qword [rbp + 0x28], 0
je 0x1400f8b4c
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx]
mov rcx, qword [rcx + 0x18]
xor edx, edx
cmp rcx, qword [rbx + 0x18]
setae dl
xor ecx, ecx
cmp rax, qword [rbx]
setae cl
cmove ecx, edx
test cl, cl
jne 0x1400f8da0
cmp rdi, qword [rbp + 0x38]
ja 0x1400f9489
lea r14, [rdi + rdi*2]
shl r14, 4
mov rax, qword [rbp + 0x40]
lea rsi, [rax + r14]
xor r13d, r13d
mov rax, r12
mov rcx, rsi
mov rdx, qword [rbp + 0x30]
nop word cs:[rax + rax]
lea r8, [rdx + rdx*2]
shl r8, 4
mov r15, r12
add r8, r12
cmp rax, r8
mov r12, qword [rbp + 0x40]
jae 0x1400f8c09
nop word [rax + rax]
cmp rdi, qword [rbp + 0x38]
ja 0x1400f9489
lea rsi, [rdi + rdi*2]
shl rsi, 4
mov rax, qword [rbp + 0x40]
lea rcx, [rax + rsi]
xor r14d, r14d
mov rax, r12
mov qword [rbp + 0x28], rcx
mov r15, qword [rbp + 0x30]
nop dword [rax + rax]
lea rdx, [r15 + r15*2]
shl rdx, 4
add rdx, r12
cmp rax, rdx
mov r11, qword [rbp + 0x40]
jae 0x1400f8e52
nop word cs:[rax + rax]
mov r8, qword [rbx]
mov r9, qword [rbx + 0x18]
xor r10d, r10d
cmp r9, qword [rax + 0x18]
setae r10b
xor r9d, r9d
cmp r8, qword [rax]
setae r9b
cmove r9d, r10d
add rcx, 0xffffffffffffffd0
test r9b, r9b
mov r8, rcx
cmovne r8, r11
lea r10, [r14 + r14*2]
shl r10, 4
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [r8 + r10 + 0x20], xmm2
movups xmmword [r8 + r10 + 0x10], xmm1
movups xmmword [r8 + r10], xmm0
movzx r8d, r9b
add r14, r8
add rax, 0x30
cmp rax, rdx
jb 0x1400f8df0
cmp r15, rdi
je 0x1400f8ea0
add rcx, 0xffffffffffffffd0
lea rdx, [r14 + r14*2]
shl rdx, 4
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
mov r8, qword [rbp + 0x40]
movups xmmword [r8 + rdx + 0x20], xmm2
movups xmmword [r8 + rdx + 0x10], xmm1
movups xmmword [r8 + rdx], xmm0
inc r14
add rax, 0x30
mov r15, rdi
jmp 0x1400f8dd0
mov rax, r14
shl rax, 4
lea r8, [rax + rax*2]
mov rcx, r12
mov r13, qword [rbp + 0x40]
mov rdx, r13
call fcn.14025a776
mov r15, rdi
sub r15, r14
mov ebx, dword [rbp + 0x24]
movabs r10, 0xffffffffffffffe
mov r11, qword [rbp + 0x28]
je 0x1400f8f9a
lea rax, [r14 + r14*2]
shl rax, 4
add rax, r12
lea rcx, [r14 + 1]
cmp rdi, rcx
jne 0x1400f8ef0
xor r8d, r8d
jmp 0x1400f8f62
mov rcx, r15
and rcx, 0xfffffffffffffffe
add rsi, qword [rbp + 0x18]
mov rdx, rax
xor r9d, r9d
nop word cs:[rax + rax]
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmmword [rdx + 0x20], xmm2
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea r8, [r9 + 2]
xor r9, r10
lea r9, [r9 + r9*2]
shl r9, 4
movups xmm0, xmmword [r11 + r9]
movups xmm1, xmmword [r11 + r9 + 0x10]
movups xmm2, xmmword [r11 + r9 + 0x20]
movups xmmword [rdx + 0x30], xmm0
movups xmmword [rdx + 0x40], xmm1
movups xmmword [rdx + 0x50], xmm2
add rdx, 0x60
add rsi, 0xffffffffffffffa0
mov r9, r8
cmp rcx, r8
jne 0x1400f8f10
test r15b, 1
je 0x1400f8f9a
lea rcx, [r8 + r8*2]
not r8
lea rdx, [r8 + r8*2]
shl rdx, 4
shl rcx, 4
movups xmm0, xmmword [r11 + rdx]
movups xmm1, xmmword [r11 + rdx + 0x10]
movups xmm2, xmmword [r11 + rdx + 0x20]
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
cmp rdi, r14
jb 0x1400f946a
lea rax, [r14 + r14*2]
shl rax, 4
add r12, rax
mov eax, 0
mov qword [rbp + 0x28], rax
cmp r15, 0x21
jae 0x1400f8a30
jmp 0x1400f8683
mov byte [rsp + 0x20], 1
mov rcx, r12
mov rdx, rdi
mov r8, r13
mov r9, qword [rbp + 0x38]
call fcn.1400f7e80
jmp 0x1400f93df
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmm2, xmmword [r12 + 0x20]
movups xmmword [r13 + 0x20], xmm2
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
mov rcx, rax
shl rcx, 4
lea rcx, [rcx + rcx*2]
movups xmm0, xmmword [r12 + rcx]
movups xmm1, xmmword [r12 + rcx + 0x10]
movups xmm2, xmmword [r12 + rcx + 0x20]
movups xmmword [r13 + rcx + 0x20], xmm2
and byte [rcx + 0xf], al
adc dword [rbp + rcx + 0x10], ecx
movups xmmword [r13 + rcx], xmm0
mov edx, 1
mov r8, r15
sub r8, rax
sub eax, eax
cmp rdx, rax
jae 0x1400f9156
mov ecx, edx
shl ecx, 4
lea rcx, [rcx + rcx*2]
mov r9, rdx
jmp 0x1400f908a
mov rsi, r13
mov qword [rsi], r11
movaps xmm0, xmmword [rbp - 0x20]
movups xmmword [rsi + 8], xmm0
mov qword [rsi + 0x18], r10
movaps xmm0, xmmword [rbp - 0x50]
movups xmmword [rsi + 0x20], xmm0
inc r9
add rcx, 0x30
cmp r9, rax
je 0x1400f9156
mov r10, r9
shl r10, 4
lea rsi, [r10 + r10*2]
movups xmm0, xmmword [r12 + rsi]
movups xmm1, xmmword [r12 + rsi + 0x10]
adc byte [rsp + rsi + 0x10], cl
movups xmm2, xmmword [r12 + rsi + 0x20]
push rsp
xor al, 0x20
movups xmmword [r13 + rsi], xmm0
xor eax, 0x110f4100
xor rax, 0x110f4110
adc byte [rcx + 0xf], al
adc dword [rbp + rsi + 0x20], edx
mov r11, qword [r13 + rsi]
mov r10, qword [r13 + rsi + 0x18]
xor edi, edi
cmp r10, qword [r13 + rsi - 0x18]
setb dil
xor ebx, ebx
cmp r11, qword [r13 + rsi - 0x30]
setb bl
cmove ebx, edi
cmp bl, 1
jne 0x1400f907a
add rsi, r12
movups xmm0, xmmword [rsi + 8]
movaps xmmword [rbp - 0x20], xmm0
movups xmm0, xmmword [rsi + 0x20]
movaps xmmword [rbp - 0x50], xmm0
mov rsi, rcx
nop word cs:[rax + rax]
movups xmm0, xmmword [r13 + rsi - 0x30]
movups xmm1, xmmword [r13 + rsi - 0x20]
movups xmm2, xmmword [r13 + rsi - 0x10]
movups xmmword [r13 + rsi + 0x20], xmm2
movups xmmword [r13 + rsi + 0x10], xmm1
movups xmmword [r13 + rsi], xmm0
cmp rsi, 0x30
je 0x1400f9060
xor edi, edi
cmp r10, qword [r13 + rsi - 0x48]
setb dil
xor ebx, ebx
cmp r11, qword [r13 + rsi - 0x60]
setb bl
cmove ebx, edi
add rsi, 0xffffffffffffffd0
test bl, bl
jne 0x1400f9100
add rsi, r13
jmp 0x1400f9063
mov rcx, rax
shl rcx, 4
lea r9, [rcx + rcx*2]
lea rcx, [r9 + r13]
cmp rdx, r8
jae 0x1400f9272
add r9, r12
mov r10d, edx
shl r10d, 4
lea r10, [r10 + r10*2]
jmp 0x1400f91aa
movaps xmm6, xmmword [rbp + 0x50]
movaps xmm7, xmmword [rbp + 0x60]
movaps xmm8, xmmword [rbp + 0x70]
movaps xmm9, xmmword [rbp + 0x80]
movaps xmm10, xmmword [rbp + 0x90]
movaps xmm11, xmmword [rbp + 0xa0]
movaps xmm12, xmmword [rbp + 0xb0]
movaps xmm13, xmmword [rbp + 0xc0]
movaps xmm14, xmmword [rbp + 0xd0]
movaps xmm15, xmmword [rbp + 0xe0]
add rsp, 0x178
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r8, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rs
mov rcx, r14
mov rdx, rdi
call fcn.14025b950