Function at 0x140052610
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
cmp rdx, 0x21
jb 0x140052afe
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x38], rax
mov ebp, dword [rsp + 0x120]
lea rax, [rsi - 0x20]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x30], rcx
lea rax, [rcx + 0x20]
mov qword [rsp + 0x48], rax
mov r14, rbx
nop dword [rax]
sub ebp, 1
jb 0x140052adc
mov r9, r14
shr r9, 3
mov rax, r9
shl rax, 7
mov rdi, qword [rsp + 0x30]
add rax, rdi
imul r8, r9, 0xe0
add r8, rdi
cmp r14, 0x40
mov dword [rsp + 0x40], ebp
jae 0x1400526e0
xor ecx, ecx
sub rcx, qword [rdi + 0x10]
xor edx, edx
sub rdx, qword [rax + 0x10]
cmp rcx, rdx
setb r9b
xor r10d, r10d
sub r10, qword [r8 + 0x10]
cmp rcx, r10
setb cl
xor cl, r9b
cmp rdx, r10
setb dl
xor dl, r9b
cmovne rax, r8
test cl, cl
cmovne rax, rdi
jmp 0x1400526eb
mov rcx, rdi
mov rdx, rax
call fcn.140053130
mov rbp, rax
sub rbp, rdi
shr rbp, 5
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
cmp qword [rsp + 0x38], 0
movabs rdi, 0x7fffffffffffffe
je 0x14005273b
xor ecx, ecx
mov rdx, qword [rsp + 0x38]
sub rcx, qword [rdx + 0x10]
mov rax, qword [rax + 0x10]
xor edx, edx
sub rdx, rax
cmp rcx, rdx
jae 0x140052910
cmp r14, r15
ja 0x140053101
mov r15, r14
shl r15, 5
lea r13, [rsi + r15]
mov rax, rbp
shl rax, 5
mov r12, qword [rsp + 0x30]
add rax, r12
add rax, 0x10
xor ebx, ebx
mov rcx, r12
mov rdx, r13
mov r8, rbp
nop dword [rax]
mov r9, r8
shl r9, 5
add r9, r12
cmp rcx, r9
jae 0x1400527c3
nop
xor r10d, r10d
sub r10, qword [rcx + 0x10]
mov r11, qword [rax]
xor edi, edi
sub rdi, r11
add rdx, 0xffffffffffffffe0
mov r11, rbx
shl r11, 5
cmp r10, rdi
mov r10, rdx
cmovb r10, rsi
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [r10 + r11 + 0x10], xmm1
movups xmmword [r10 + r11], xmm0
adc rbx, 0
add rcx, 0x20
cmp rcx, r9
jb 0x140052780
cmp r8, r14
je 0x1400527f0
mov r8, rbx
shl r8, 5
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rdx + r8 - 0x10], xmm1
movups xmmword [rdx + r8 - 0x20], xmm0
add rdx, 0xffffffffffffffe0
add rcx, 0x20
mov r8, r14
jmp 0x140052770
mov rcx, r12
mov r12, rbx
shl r12, 5
mov rdx, rsi
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rdx, r14
sub rdx, rbx
movabs rdi, 0x7fffffffffffffe
je 0x1400528c3
lea rax, [rbx + 1]
cmp r14, rax
jne 0x140052830
xor eax, eax
jmp 0x140052893
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x48]
lea r8, [rax + r12]
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, rdi
shl r9, 5
movups xmm0, xmmword [r13 + r9]
movups xmm1, xmmword [r13 + r9 + 0x10]
movups xmmword [r8], xmm0
movups xmmword [r8 + 0x10], xmm1
add r8, 0x40
add r15, 0xffffffffffffffc0
mov r9, rax
cmp rcx, rax
jne 0x140052850
test dl, 1
je 0x1400528c3
mov rcx, qword [rsp + 0x30]
add rcx, r12
mov r8, rax
not r8
shl r8, 5
shl rax, 5
movups xmm0, xmmword [r13 + r8]
movups xmm1, xmmword [r13 + r8 + 0x10]
movups xmmword [rcx + rax + 0x10], xmm1
movups xmmword [rcx + rax], xmm0
test rbx, rbx
mov r15, qword [rsp + 0x50]
je 0x140052910
cmp r14, rbx
jb 0x1400530b3
add r12, qword [rsp + 0x30]
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
mov ebp, dword [rsp + 0x40]
mov dword [rsp + 0x20], ebp
mov rcx, r12
mov r8, rsi
mov r9, r15
call fcn.140052610
mov r14, rbx
cmp rbx, 0x21
jae 0x140052670
jmp 0x140052af9
cmp r14, r15
ja 0x140053101
mov r13, r14
shl r13, 5
lea rdx, [rsi + r13]
mov rax, rbp
shl rax, 5
mov rcx, qword [rsp + 0x30]
add rax, rcx
add rax, 0x10
xor r12d, r12d
mov qword [rsp + 0x48], rdx
nop
mov r8, rbp
shl r8, 5
add r8, qword [rsp + 0x30]
cmp rcx, r8
jae 0x1400529a4
nop word cs:[rax + rax]
xor r9d, r9d
sub r9, qword [rax]
mov r10, qword [rcx + 0x10]
xor r11d, r11d
sub r11, r10
add rdx, 0xffffffffffffffe0
mov r10, r12
shl r10, 5
cmp r9, r11
mov r9, rdx
cmovae r9, rsi
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [r9 + r10 + 0x10], xmm1
movups xmmword [r9 + r10], xmm0
sbb r12, 0xffffffffffffffff
add rcx, 0x20
cmp rcx, r8
jb 0x140052960
cmp rbp, r14
je 0x1400529e0
add rdx, 0xffffffffffffffe0
mov r8, r12
shl r8, 5
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rsi + r8 + 0x10], xmm1
movups xmmword [rsi + r8], xmm0
inc r12
add rcx, 0x20
mov rbp, r14
jmp 0x140052940
mov r8, r12
shl r8, 5
mov rcx, qword [rsp + 0x30]
mov rdx, rsi
mov qword [rsp + 0x38], r8
call sub.msvcrt.dll_memcpy
mov rbx, r14
sub rbx, r12
mov ebp, dword [rsp + 0x40]
mov r9, qword [rsp + 0x48]
je 0x140052ab3
lea rax, [r12 + 1]
cmp r14, rax
jne 0x140052a1c
xor eax, eax
jmp 0x140052a7f
mov rcx, rbx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
add rdx, rax
add rdx, 0x20
add r13, qword [rsp + 0x58]
xor r8d, r8d
nop dword [rax]
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdx - 0x20], xmm0
lea rax, [r8 + 2]
xor r8, rdi
shl r8, 5
movups xmm0, xmmword [r9 + r8]
movups xmm1, xmmword [r9 + r8 + 0x10]
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
add rdx, 0x40
add r13, 0xffffffffffffffc0
mov r8, rax
cmp rcx, rax
jne 0x140052a40
test bl, 1
je 0x140052ab3
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
add rcx, rdx
mov rdx, rax
not rdx
shl rdx, 5
shl rax, 5
movups xmm0, xmmword [r9 + rdx]
movups xmm1, xmmword [r9 + rdx + 0x10]
movups xmmword [rcx + rax + 0x10], xmm1
movups xmmword [rcx + rax], xmm0
cmp r14, r12
jb 0x1400530ea
mov rcx, qword [rsp + 0x30]
add rcx, qword [rsp + 0x38]
mov eax, 0
mov qword [rsp + 0x38], rax
cmp rbx, 0x21
jae 0x140052658
jmp 0x140052afe
mov byte [rsp + 0x20], 1
mov rcx, qword [rsp + 0x30]
mov rdx, r14
mov r8, rsi
mov r9, r15
call fcn.140051f00
jmp 0x14005309f
mov rcx, qword [rsp + 0x30]
cmp rbx, 2
jb 0x14005309f
lea rax, [rbx + 0x10]
cmp rax, r15
ja 0x140053101
mov rdi, rbx
shr rdi, 1
cmp rbx, 7
mov qword [rsp + 0x30], rcx
jbe 0x140052d65
xor eax, eax
sub rax, qword [rcx + 0x30]
xor edx, edx
sub rdx, qword [rcx + 0x10]
xor r10d, r10d
xor r14d, r14d
cmp rax, rdx
setae r10b
setb r14b
xor eax, eax
sub rax, qword [rcx + 0x70]
xor edx, edx
sub rdx, qword [rcx + 0x50]
xor r11d, r11d
cmp rax, rdx
setb r11b
shl r14d, 5
lea rdx, [rcx + r14]
shl r10d, 5
lea r8, [rcx + r10]
mov eax, r11d
shl eax, 5
lea r9, [rcx + rax]
add r9, 0x40
xor r15d, r15d
sub r15, qword [rcx + rax + 0x50]
xor r11d, 3
xor eax, eax
sub rax, qword [rcx + r14 + 0x10]
shl r11d, 5
xor r14d, r14d
sub r14, qword [rcx + r11 + 0x10]
xor r12d, r12d
mov rcx, qword [rsp + 0x30]
sub r12, qword [rcx + r10 + 0x10]
cmp r14, r12
mov r10, r8
cmovb r10, r9
cmp r15, rax
cmovb r10, rdx
cmovb rdx, r9
mov rax, qword [rsp + 0x30]
lea rax, [rax + r11]
cmovb r9, r8
cmp r14, r12
cmovae r8, rax
cmovb r9, rax
xor eax, eax
sub rax, qword [r9 + 0x10]
xor r11d, r11d
sub r11, qword [r10 + 0x10]
cmp rax, r11
mov rax, r10
cmovb rax, r9
cmovb r9, r10
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x30], xmm1
movups xmmword [rsi + 0x20], xmm0
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movups xmmword [rsi + 0x50], xmm1
movups xmmword [rsi + 0x40], xmm0
mov rdx, rdi
shl rdx, 5
xor eax, eax
mov rcx, qword [rsp + 0x30]
sub rax, qword [rcx + rdx + 0x30]
movups xmm0, xmmword [r8]
xor r10d, r10d
mov rcx, qword [rsp + 0x30]
sub r10, qword [rcx + rdx + 0x10]
xor r14d, r14d
xor r9d, r9d
cmp rax, r10
setae r14b
setb r9b
xor eax, eax
mov rcx, qword [rsp + 0x30]
sub rax, qword [rcx + rdx + 0x70]
movups xmm1, xmmword [r8 + 0x10]
xor r8d, r8d
mov rcx, qword [rsp + 0x30]
sub r8, qword [rcx + rdx + 0x50]
mov rcx, qword [rsp + 0x30]
lea r10, [rcx + rdx]
xor r11d, r11d
cmp rax, r8
setb r11b
shl r9d, 5
shl r14d, 5
lea r8, [r10 + r14]
mov eax, r11d
shl eax, 5
xor r12d, r12d
sub r12, qword [r10 + rax + 0x50]
xor r11d, 3
xor r13d, r13d
sub r13, qword [r9 + r10 + 0x10]
shl r11d, 5
xor ebp, ebp
sub rbp, qword [r11 + r10 + 0x10]
lea r15, [rax + r10]
add r15, 0x40
xor eax, eax
sub rax, qword [r14 + r10 + 0x10]
cmp rbp, rax
mov r14, r8
cmovb r14, r15
add r9, r10
cmp r12, r13
mov rcx, qword [rsp + 0x30]
cmovb r14, r9
cmovb r9, r15
cmovb r15, r8
add r10, r11
cmp rbp, rax
cmovae r8, r10
movups xmmword [rsi + 0x70], xmm1
cmovb r15, r10
xor eax, eax
sub rax, qword [r15 + 0x10]
xor r10d, r10d
sub r10, qword [r14 + 0x10]
cmp rax, r10
mov rax, r14
cmovb rax, r15
movups xmmword [rsi + 0x60], xmm0
cmovb r15, r14
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movups xmmword [rsi + rdx + 0x10], xmm1
movups xmmword [rsi + rdx], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + rdx + 0x20], xmm0
movups xmmword [rsi + rdx + 0x30], xmm1
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rsi + rdx + 0x40], xmm0
movups xmmword [rsi + rdx + 0x50], xmm1
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [rsi + rdx + 0x60], xmm0
movups xmmword [rsi + rdx + 0x70], xmm1
mov edx, 4
jmp 0x140052d91
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rax, rdi
shl rax, 5
movups xmm0, xmmword [rcx + rax]
movups xmm1, xmmword [rcx + rax + 0x10]
movups xmmword [rsi + rax + 0x10], xmm1
movups xmmword [rsi + rax], xmm0
mov edx, 1
mov rax, rbx
sub rax, rdi
mov r13, rax
mov qword [rsp + 0x40], rdi
cmp rdx, rdi
jae 0x140052e6e
mov r8d, edx
shl r8d, 5
mov r9, rdx
jmp 0x140052dec
add r15, rsi
mov rax, rsi
movups xmm0, xmmword [r11]
movups xmmword [rax], xmm0
mov qword [r15 - 0x10], r10
mov qword [r15 - 8], r14
inc r9
add r8, 0x20
cmp r9, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
je 0x140052e6e
mov rax, r9
shl rax, 5
movups xmm0, xmmword [rcx + rax]
movups xmm1, xmmword [rcx + rax + 0x10]
movups xmmword [rsi + rax + 0x10], xmm1
movups xmmword [rsi + rax], xmm0
mov r10, qword [rsi + rax + 0x10]
mov r12, r10
neg r12
xor r11d, r11d
sub r11, qword [rsi + rax - 0x10]
cmp r12, r11
jae 0x140052dd5
mov rcx, qword [rsp + 0x30]
lea r11, [rcx + rax]
add rax, rsi
mov r14, qword [rax + 0x18]
mov rax, r8
mov r15, rax
movups xmm0, xmmword [rsi + rax - 0x20]
movups xmm1, xmmword [rsi + rax - 0x10]
movups xmmword [rsi + rax + 0x10], xmm1
movups xmmword [rsi + rax], xmm0
cmp rax, 0x20
je 0x140052dc0
mov rax, qword [rsi + r15 - 0x30]
xor edi, edi
sub rdi, rax
lea rax, [r15 - 0x20]
cmp r12, rdi
jb 0x140052e30
add r15, rsi
add rax, rsi
jmp 0x140052dc6
mov rax, qword [rsp + 0x40]
shl rax, 5
mov qword [rsp + 0x38], rax
cmp rdx, r13
jae 0x140052f53
mov rdi, r13
mov rax, qword [rsp + 0x38]
lea r9, [rcx + rax]
lea r10, [rsi + rax]
mov r11d, edx
shl r11d, 5
jmp 0x140052eca
add r13, r10
mov rax, r10
movups xmm0, xmmword [r15]
movups xmmword [rax], xmm0
mov qword [r13 - 0x10], r14
mov qword [r13 - 8], r12
mov rcx, qword [rsp + 0x30]
inc rdx
add r11, 0x20
cmp rdx, rdi
je 0x140052f53
mov rax, rdx
shl rax, 5
movups xmm0, xmmword [r9 + rax]
movups xmm1, xmmword [r9 + rax + 0x10]
movups xmmword [r10 + rax + 0x10], xmm1
movups xmmword [r10 + rax], xmm0
mov r14, qword [r10 + rax + 0x10]
mov rbp, r14
neg rbp
xor r15d, r15d
sub r15, qword [r10 + rax - 0x10]
cmp rbp, r15
jae 0x140052eba
lea r15, [r9 + rax]
add rax, r10
mov r12, qword [rax + 0x18]
mov rax, r11
nop dword [rax]
mov r13, rax
movups xmm0, xmmword [r10 + rax - 0x20]
movups xmm1, xmmword [r10 + rax - 0x10]
movups xmmword [r10 + rax + 0x10], xmm1
movups xmmword [r10 + rax], xmm0
cmp rax, 0x20
je 0x140052ea0
mov rax, qword [r10 + r13 - 0x30]
xor r8d, r8d
sub r8, rax
lea rax, [r13 - 0x20]
cmp rbp, r8
jb 0x140052f10
add r13, r10
add rax, r10
jmp 0x140052ea6
mov rax, qword [rsp + 0x38]
lea rdx, [rsi + rax]
add rax, rsi
add rax, 0xffffffffffffffe0
mov r8, rbx
shl r8, 5
lea rbp, [rsi + r8]
add rbp, 0xffffffffffffffe0
mov qword [rsp + 0x50], r8
lea r11, [rcx + r8 - 0x20]
mov r9, rsi
mov r10, rcx
mov rcx, qword [rsp + 0x40]
jmp 0x140052fe4
movzx edi, byte [rsp + 0x38]
mov r12b, dil
mov edi, 0
sbb rdi, rdi
shl r12d, 5
add rdx, r12
movzx r14d, byte [rsp + 0x40]
mov r15b, r14b
shl r15d, 5
add r9, r15
add r10, 0x20
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r11 + 0x10], xmm1
movups xmmword [r11], xmm0
shl r13, 5
add rbp, r13
shl rdi, 5
add rax, rdi
add r11, 0xffffffffffffffe0
dec rcx
je 0x140053052
xor r14d, r14d
sub r14, qword [rdx + 0x10]
xor r13d, r13d
sub r13, qword [r9 + 0x10]
xor r15d, r15d
xor r12d, r12d
mov r8, rdx
cmp r14, r13
setae byte [rsp + 0x40]
setb byte [rsp + 0x38]
jb 0x14005300d
mov r8, r9
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r10 + 0x10], xmm1
movups xmmword [r10], xmm0
xor edi, edi
sub rdi, qword [rbp + 0x10]
mov r14, rbp
xor ebp, ebp
sub rbp, qword [rax + 0x10]
cmp rdi, rbp
mov r13d, 0
adc r13, 0xffffffffffffffff
mov r8, rax
cmp rdi, rbp
mov rbp, r14
jb 0x140052f90
mov r8, rbp
jmp 0x140052f90
add rax, 0x20
test bl, 1
je 0x140053091
xor r8d, r8d
xor r11d, r11d
cmp r9, rax
setae r8b
setb r11b
mov rdi, rdx
cmovb rdi, r9
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [r10 + 0x10], xmm1
movups xmmword [r10], xmm0
shl r11d, 5
add r9, r11
shl r8d, 5
add rdx, r8
cmp r9, rax
jne 0x1400530fc
add rbp, 0x20
cmp rdx, rbp
jne 0x1400530fc
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.mid___len
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 1
mov qword [rsp + 0x70], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
lea rdx, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rs
lea rcx, [rsp + 0x60]
call fcn.14000fd10
lea r8, str._rustc_f6e511eec7342f59a25f7c0534f1dbea00d01b14librarycore_src_slice_sort_stablequicksort.rs
mov rcx, r12
mov rdx, r14
call fcn.14000fb10
call fcn.140014070
ud2