Function at 0x180071e10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x188
mov qword [rsp + 0x70], r8
cmp rdx, 0x15
jae 0x180071e60
mov rsi, rdx
mov r15, rcx
cmp rsi, 1
jbe 0x180071e4b
mov r8d, 1
mov rcx, r15
mov rdx, rsi
call fcn.180071ba0
nop
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, r9
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rcx
mov eax, dword [rsp + 0x1f0]
mov dword [rsp + 0x2c], eax
mov bl, 1
movabs r14, 0xffffffffffffffe
mov bpl, 1
and bpl, bl
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x30]
mov qword [rsp + 0x60], rdi
nop dword [rax]
cmp dword [rsp + 0x2c], 0
je 0x180072971
test bl, 1
je 0x18007227c
mov rdx, r12
shr rdx, 2
lea rax, [rdx + rdx]
lea rcx, [rdx + rdx*2]
cmp r12, 0x31
jbe 0x180071f00
lea r9, [rdx - 1]
mov r8, rdx
shl r8, 4
mov r10, r9
shl r10, 4
mov r11, qword [r15 + r8]
mov r8, qword [r15 + r10]
cmp r8, r11
jae 0x180071f10
mov esi, 1
mov r10, r11
mov rdi, r9
mov r9, rdx
mov r11, r8
jmp 0x180071f18
xor r8d, r8d
mov r13, rax
jmp 0x180072035
mov r10, r8
xor esi, esi
mov rdi, rdx
inc rdx
mov r8, rdx
shl r8, 4
mov r14, qword [r15 + r8]
xor r8d, r8d
cmp r11, r14
cmovae rdx, rdi
cmova r14, r11
setb r8b
cmp r10, r14
adc r8, rsi
cmp r10, r14
cmovb rdx, r9
lea r10, [rax - 1]
mov r9, rax
shl r9, 4
mov r11, r10
shl r11, 4
mov r9, qword [r15 + r9]
mov rsi, qword [r15 + r11]
cmp rsi, r9
jae 0x180071f80
inc r8
mov r11, r9
mov rdi, r10
mov r10, rax
jmp 0x180071f89
mov r11, rsi
mov rdi, rax
mov rsi, r9
mov r13, rax
or r13, 1
mov r9, r13
shl r9, 4
mov r14, qword [r15 + r9]
xor r9d, r9d
cmp rsi, r14
cmovae r13, rdi
cmova r14, rsi
setb r9b
cmp r11, r14
adc r9, r8
cmp r11, r14
cmovb r13, r10
lea r10, [rcx - 1]
mov r8, rcx
shl r8, 4
mov r11, r10
shl r11, 4
mov r8, qword [r15 + r8]
mov rsi, qword [r15 + r11]
cmp rsi, r8
jae 0x180071ff0
inc r9
mov r11, r8
mov rdi, r10
mov r10, rcx
jmp 0x180071ff9
mov r11, rsi
mov rdi, rcx
mov rsi, r8
inc rcx
mov r8, rcx
shl r8, 4
mov r14, qword [r15 + r8]
xor r8d, r8d
cmp rsi, r14
cmovae rcx, rdi
cmova r14, rsi
setb r8b
cmp r11, r14
adc r8, r9
cmp r11, r14
cmovb rcx, r10
mov rdi, qword [rsp + 0x60]
movabs r14, 0xffffffffffffffe
mov r9, r13
shl r9, 4
mov r10, rdx
shl r10, 4
mov rsi, qword [r15 + r9]
mov r9, qword [r15 + r10]
cmp r9, rsi
jae 0x180072060
inc r8
mov r10, rsi
mov r11, rdx
jmp 0x18007206c
mov r10, r9
mov r11, r13
mov r13, rdx
mov r9, rsi
mov rdx, rcx
shl rdx, 4
mov rdx, qword [r15 + rdx]
cmp r9, rdx
adc r8, 0
cmp r9, rdx
cmovb r11, rcx
cmova rdx, r9
cmp r10, rdx
jae 0x1800720c0
mov ecx, 1
cmp r8, 0xb
jb 0x1800720c6
mov rcx, r12
shr rcx, 1
mov r8, r12
shl r8, 4
lea rdx, [r15 + r8]
mov r9, rcx
shl r9, 4
sub rdx, r9
cmp rcx, 1
jne 0x1800720da
xor r8d, r8d
jmp 0x180072132
mov r13, r11
mov rcx, r8
test rcx, rcx
sete al
test bpl, al
je 0x18007216c
jmp 0x180072290
lea r9, [r15 + 0x10]
lea r10, [r15 + r8]
add r10, 0xfffffffffffffff0
xor r8d, r8d
nop dword [rax]
movups xmm0, xmmword [r9 - 0x10]
movups xmm1, xmmword [r10]
movups xmmword [r9 - 0x10], xmm1
movups xmmword [r10], xmm0
mov r11, r8
xor r11, r14
add r11, rcx
shl r11, 4
movups xmm0, xmmword [r9]
movups xmm1, xmmword [rdx + r11]
movups xmmword [r9], xmm1
movups xmmword [rdx + r11], xmm0
add r8, 2
add r9, 0x20
add r10, 0xffffffffffffffe0
cmp rax, r8
jne 0x1800720f0
test r12b, 2
je 0x18007215b
mov rax, r8
not rax
add rcx, rax
shl r8, 4
shl rcx, 4
movups xmm0, xmmword [r15 + r8]
movups xmm1, xmmword [rdx + rcx]
movups xmmword [r15 + r8], xmm1
movups xmmword [rdx + rcx], xmm0
not r13
add r13, r12
mov al, 1
test bpl, al
jne 0x180072290
test rdi, rdi
je 0x1800722b0
cmp r13, r12
jae 0x180072981
mov rax, r13
shl rax, 4
mov rcx, qword [r15 + rax]
cmp rcx, qword [rdi]
jb 0x1800722c0
add rax, r15
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rax]
movups xmmword [r15], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [rax], xmm0
lea rax, [r15 + 0x10]
lea rdx, [r12 - 1]
movups xmm0, xmmword [r15]
mov r8, qword [r15]
xor ecx, ecx
cmp rcx, rdx
jae 0x1800721f4
mov r9, rcx
shl r9, 4
add r9, rax
nop word cs:[rax + rax]
cmp qword [r9], r8
jb 0x1800721f4
inc rcx
add r9, 0x10
cmp rdx, rcx
jne 0x1800721e0
mov rcx, rdx
mov r9, rdx
shl r9, 4
add r9, rax
nop
dec rdx
cmp rcx, rdx
jae 0x180072250
lea r10, [r9 - 0x10]
cmp qword [r9 - 0x10], r8
mov r9, r10
jb 0x180072200
mov r9, rcx
shl r9, 4
movups xmm1, xmmword [rax + r9]
movaps xmmword [rsp + 0x80], xmm1
movups xmm1, xmmword [r10]
movups xmmword [rax + r9], xmm1
movaps xmm1, xmmword [rsp + 0x80]
movups xmmword [r10], xmm1
inc rcx
cmp rcx, rdx
jb 0x1800721ca
jmp 0x1800721f4
inc rcx
movups xmmword [r15], xmm0
mov rsi, r12
sub rsi, rcx
jb 0x1800729b4
shl rcx, 4
add r15, rcx
mov r12, rsi
cmp rsi, 0x15
jae 0x180071ea0
jmp 0x180071e34
mov rcx, r15
mov rdx, r12
call fcn.180128540
dec dword [rsp + 0x2c]
jmp 0x180071eb4
mov rcx, r15
mov rdx, r12
call fcn.1801286e0
test al, al
je 0x18007216c
jmp 0x180071e4b
mov r12, qword [rsp + 0x30]
jmp 0x1800722c5
mov qword [rsp + 0x38], r15
cmp r13, r12
mov r8, qword [rsp + 0x38]
jae 0x180072993
shl r13, 4
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [r8 + r13]
movups xmmword [r8], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [r8 + r13], xmm0
lea r9, [r8 + 0x10]
lea rax, [r12 - 1]
movups xmm0, xmmword [r8]
mov r10, qword [r8]
mov rdx, r9
xor ecx, ecx
nop
cmp r10, qword [rdx]
jae 0x180072324
inc rcx
add rdx, 0x10
cmp rax, rcx
jne 0x180072310
mov rcx, rax
mov rdx, r12
shl rdx, 4
add rdx, r8
nop
mov r8, rax
mov r13, rdx
cmp rcx, rax
jae 0x180072349
lea rax, [r8 - 1]
lea rdx, [r13 - 0x10]
cmp r10, qword [r13 - 0x10]
jae 0x180072330
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x68], r8
cmp rcx, r8
ja 0x1800729c3
mov qword [rsp + 0x58], rcx
mov rax, rcx
shl rax, 4
add r9, rax
mov ecx, 0x80
xor r11d, r11d
xor ebp, ebp
xor ebx, ebx
xor eax, eax
mov edi, 0x80
mov qword [rsp + 0x78], r9
jmp 0x1800723da
shl r14, 4
movups xmmword [r13 + r14], xmm1
inc rax
inc rbp
cmp rax, rbx
mov edx, 0
cmove rdx, rdi
shl rdx, 4
add r9, rdx
mov rdx, rcx
neg rdx
cmp rbp, r11
mov r8d, 0
cmovne rdx, r8
shl rdx, 4
add r13, rdx
cmp r12, 0x1010
jb 0x1800726b0
mov r12, r13
sub r12, r9
cmp r12, 0x1010
jae 0x18007242c
mov r8, r12
shr r8, 4
cmp rax, rbx
setb sil
cmp rbp, r11
setb r14b
or r14b, sil
lea rsi, [r8 - 0x80]
test r14b, r14b
mov r15, r8
cmovne r15, rsi
cmp rax, rbx
cmovb rcx, rsi
cmovae rdi, r15
test r14b, r14b
jne 0x18007242c
mov rdi, r12
shr rdi, 5
sub r8, rdi
mov rcx, r8
cmp rax, rbx
je 0x1800724e0
cmp rbp, r11
je 0x180072510
mov r8, rbx
sub r8, rax
mov rsi, r11
sub rsi, rbp
cmp r8, rsi
cmovb rsi, r8
test rsi, rsi
je 0x1800723a0
movzx edx, byte [rax]
shl edx, 4
movups xmm1, xmmword [r9 + rdx]
movzx r8d, byte [rbp]
mov r14, r8
not r14
mov r15, r14
shl r15, 4
movups xmm2, xmmword [r13 + r15]
movups xmmword [r9 + rdx], xmm2
cmp rsi, 1
je 0x180072390
dec rsi
nop
movzx edx, byte [rax + 1]
inc rax
shl edx, 4
movzx r8d, r8b
not r8
shl r8, 4
movups xmm2, xmmword [r9 + rdx]
movups xmmword [r13 + r8], xmm2
movzx r8d, byte [rbp + 1]
inc rbp
mov r14, r8
not r14
mov r15, r14
shl r15, 4
movups xmm2, xmmword [r13 + r15]
movups xmmword [r9 + rdx], xmm2
dec rsi
jne 0x180072490
jmp 0x180072390
test rdi, rdi
je 0x180072532
cmp rdi, 4
lea rdx, [rsp + 0x108]
jae 0x180072552
mov rbx, rdx
mov r14, r9
mov rax, rdx
xor esi, esi
mov r8d, edi
and r8d, 3
jne 0x1800725d0
jmp 0x180072435
test rcx, rcx
je 0x180072542
cmp rcx, 4
jae 0x1800725f3
lea r11, [rsp + 0x80]
xor r14d, r14d
mov r8, r13
jmp 0x180072661
lea rax, [rsp + 0x108]
mov rbx, rax
jmp 0x180072435
lea rbp, [rsp + 0x80]
mov r11, rbp
jmp 0x18007243e
mov rax, rdi
and rax, 0xfffffffffffffffc
mov rbx, rdx
mov r14, r9
xor esi, esi
nop word cs:[rax + rax]
mov r8d, esi
mov byte [rbx], sil
cmp r10, qword [r14]
sbb rbx, 0xffffffffffffffff
lea r15d, [r8 + 1]
mov byte [rbx], r15b
cmp r10, qword [r14 + 0x10]
sbb rbx, 0xffffffffffffffff
lea r15d, [r8 + 2]
cmp r10, qword [r14 + 0x20]
mov byte [rbx], r15b
sbb rbx, 0xffffffffffffffff
add rsi, 4
add r8d, 3
mov byte [rbx], r8b
cmp r10, qword [r14 + 0x30]
sbb rbx, 0xffffffffffffffff
add r14, 0x40
cmp rax, rsi
jne 0x180072570
lea rax, [rsp + 0x108]
mov r8d, edi
and r8d, 3
je 0x180072435
nop dword [rax]
mov byte [rbx], sil
cmp r10, qword [r14]
sbb rbx, 0xffffffffffffffff
add r14, 0x10
inc sil
dec r8
jne 0x1800725d0
lea rax, [rsp + 0x108]
jmp 0x180072435
mov rsi, rcx
and rsi, 0xfffffffffffffffc
lea r11, [rsp + 0x80]
xor r15d, r15d
mov rbp, r13
xor r14d, r14d
nop dword [rax + rax]
mov byte [r11], r15b
xor r8d, r8d
cmp qword [rbp - 0x10], r10
seta r8b
lea edx, [r15 + 1]
mov byte [r11 + r8], dl
cmp r10, qword [rbp - 0x20]
adc r11, r8
lea edx, [r15 + 2]
xor r8d, r8d
cmp qword [rbp - 0x30], r10
seta r8b
mov byte [r11], dl
add r14, 4
lea edx, [r15 + 3]
mov byte [r11 + r8], dl
cmp r10, qword [rbp - 0x40]
adc r11, r8
lea r8, [rbp - 0x40]
mov r15, r14
mov rbp, r8
cmp rsi, r14
jne 0x180072610
mov esi, ecx
lea rbp, [rsp + 0x80]
and esi, 3
je 0x18007243e
shl esi, 4
xor r15d, r15d
nop word [rax + rax]
mov byte [r11], r14b
cmp r10, qword [r8 + r15 - 0x10]
adc r11, 0
inc r14b
add r15, 0xfffffffffffffff0
mov rbp, rsi
add rbp, r15
jne 0x180072680
lea rbp, [rsp + 0x80]
jmp 0x18007243e
cmp rax, rbx
jae 0x1800726d0
mov ecx, ebx
sub ecx, eax
test cl, 1
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x38]
jne 0x18007270e
mov r10, rbx
jmp 0x18007273e
cmp rbp, r11
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x38]
jae 0x1800727c1
mov eax, r11d
sub eax, ebp
test al, 1
mov rdx, qword [rsp + 0x30]
jne 0x1800727d3
mov rax, r11
dec r11
cmp r11, rbp
mov r11, qword [rsp + 0x58]
jne 0x180072820
jmp 0x180072890
lea r10, [rbx - 1]
movzx ecx, byte [rbx - 1]
shl ecx, 4
lea rsi, [r13 - 0x10]
movups xmm1, xmmword [r9 + rcx]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 - 0x10]
movups xmmword [r9 + rcx], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 - 0x10], xmm1
mov r13, rsi
mov r11, qword [rsp + 0x58]
dec rbx
cmp rbx, rax
mov rdx, qword [rsp + 0x30]
je 0x180072890
nop word cs:[rax + rax]
movzx ecx, byte [r10 - 1]
shl ecx, 4
movups xmm1, xmmword [r9 + rcx]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 - 0x10]
movups xmmword [r9 + rcx], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 - 0x10], xmm1
movzx ecx, byte [r10 - 2]
add r10, 0xfffffffffffffffe
shl ecx, 4
lea rsi, [r13 - 0x20]
movups xmm1, xmmword [r9 + rcx]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 - 0x20]
movups xmmword [r9 + rcx], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 - 0x20], xmm1
mov r13, rsi
cmp rax, r10
jb 0x180072760
jmp 0x180072890
mov rsi, r9
mov rdx, qword [rsp + 0x30]
mov r11, qword [rsp + 0x58]
jmp 0x180072890
lea rax, [r11 - 1]
movzx ecx, byte [r11 - 1]
not rcx
shl rcx, 4
movups xmm1, xmmword [r9]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 + rcx]
movups xmmword [r9], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 + rcx], xmm1
add r9, 0x10
mov rsi, r9
dec r11
cmp r11, rbp
mov r11, qword [rsp + 0x58]
je 0x180072890
nop word cs:[rax + rax]
movzx ecx, byte [rax - 1]
not rcx
shl rcx, 4
movups xmm1, xmmword [r9]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 + rcx]
movups xmmword [r9], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 + rcx], xmm1
movzx ecx, byte [rax - 2]
add rax, 0xfffffffffffffffe
not rcx
shl rcx, 4
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [r13 + rcx]
movups xmmword [r9 + 0x10], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 + rcx], xmm1
add r9, 0x20
cmp rbp, rax
jb 0x180072820
mov rsi, r9
nop word cs:[rax + rax]
sub rsi, qword [rsp + 0x78]
shr rsi, 4
add rsi, r11
movups xmmword [r8], xmm0
mov r15, rdx
sub r15, rsi
jbe 0x1800729a5
cmp r11, qword [rsp + 0x68]
setae bpl
mov rax, rsi
shl rax, 4
mov r13, r8
lea r12, [r8 + rax]
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [r8 + rax]
movups xmmword [r8], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [r8 + rax], xmm0
cmp rsi, r15
mov rcx, r15
cmovb rcx, rsi
shr rdx, 3
cmp rcx, rdx
setae bl
lea r14, [r8 + rax]
add r14, 0x10
dec r15
cmp rsi, r15
jae 0x180072930
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x20], eax
mov rcx, r13
mov rdx, rsi
mov r8, qword [rsp + 0x70]
mov r9, rdi
call fcn.180071e10
mov rdi, r12
mov rsi, r15
mov r15, r14
jmp 0x18007294e
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x20], eax
mov rcx, r14
mov rdx, r15
mov r8, qword [rsp + 0x70]
mov r9, r12
call fcn.180071e10
mov r15, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r15
cmp rsi, 0x15
movabs r14, 0xffffffffffffffe
jae 0x180071e87
jmp 0x180071e34
mov rcx, r15
mov rdx, r12
call fcn.1801292f0
jmp 0x180071e4b
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rcx, r13
mov rdx, r12
call fcn.18012dc60
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rcx, r13
mov rdx, r12
call fcn.18012dc60
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rcx, rsi
call fcn.18012dc60
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rdx, r12
call fcn.18012df50
lea r8, str._rustc_4d570eea025a19564429eb52b34ec34e14659f55librarycore_src_slice_sort.rs
mov rdx, qword [rsp + 0x68]
call fcn.18012df70
int3