Function at 0x14004db20
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 + 0x90], r9
mov rbp, rdx
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x88], rax
cmp rdx, 0x11
jae 0x14004db87
cmp rbp, 2
jb 0x14004e451
mov r8d, 1
mov rdx, rbp
mov r9, qword [rsp + 0x88]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sym.core::slice::sort::shared::smallsort::insertion_sort_shift_left::h3123b98f1d4014c7
mov r13, r8
mov eax, dword [rsp + 0x150]
lea rdx, [r8 - 0x90]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x58], r8
mov rdx, rbp
mov qword [rsp + 0x38], rcx
nop dword [rax]
sub eax, 1
jb 0x14004e42f
mov dword [rsp + 0x7c], eax
mov r9, rdx
shr r9, 3
lea rbx, [r9 + r9*8]
shl rbx, 6
add rbx, rcx
imul r15, r9, 0x3f0
add r15, rcx
mov qword [rsp + 0x60], rdx
cmp rdx, 0x40
jae 0x14004dc30
mov rdx, rbx
call sym.alloc::slice::__impl__T__::sort_by::__u7b__u7b_closure_u7d__u7d_::h349c0c4ec566ddb6
mov ebp, eax
mov rcx, qword [rsp + 0x38]
mov rdx, r15
call sym.alloc::slice::__impl__T__::sort_by::__u7b__u7b_closure_u7d__u7d_::h349c0c4ec566ddb6
mov rdx, qword [rsp + 0x38]
mov ecx, eax
mov rax, rdx
cmp bpl, cl
jne 0x14004dc40
mov rcx, rbx
mov rdx, r15
call sym.alloc::slice::__impl__T__::sort_by::__u7b__u7b_closure_u7d__u7d_::h349c0c4ec566ddb6
mov rdx, qword [rsp + 0x38]
xor bpl, al
cmovne rbx, r15
mov rax, rbx
jmp 0x14004dc40
mov rdx, rbx
mov r8, r15
call sym.core::slice::sort::shared::pivot::median3_rec::h8f48350b26e66415
mov rdx, qword [rsp + 0x38]
sub rax, rdx
mov rcx, rdx
movabs rdx, 0xe38e38e38e38e38f
mul rdx
mov rax, qword [rsp + 0x60]
cmp rax, qword [rsp + 0x90]
ja 0x14004e481
shr rdx, 7
lea r14, [rdx + rdx*8]
shl r14, 4
add r14, rcx
lea rax, [rax + rax*8]
shl rax, 4
mov qword [rsp + 0xa8], rax
add rax, r13
xor ebp, ebp
mov r12, rcx
mov qword [rsp + 0x70], rax
mov r15, rax
mov qword [rsp + 0x98], rdx
mov rsi, rdx
xor eax, eax
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x68], r14
nop
mov qword [rsp + 0x80], rsi
lea rsi, [rsi + rsi*8]
shl rsi, 4
add rsi, rcx
cmp r12, rsi
mov qword [rsp + 0x50], rsi
jb 0x14004dd7c
mov rsi, qword [rsp + 0x60]
cmp qword [rsp + 0x80], rsi
je 0x14004def0
lea rax, [rbp*8]
add rax, rbp
shl rax, 4
lea rcx, [r15 + rax]
add rcx, 0xffffffffffffff70
add r15, 0xffffffffffffff70
mov r8d, 0x90
mov qword [rsp + 0xb0], rcx
mov rdx, r12
call sym.memcpy
add r12, 0x90
mov rcx, qword [rsp + 0x38]
jmp 0x14004dcb0
setb dil
add r15, 0xffffffffffffff70
test dil, dil
mov rax, r15
cmovne rax, r13
lea rcx, [rbp*8]
add rcx, rbp
shl rcx, 4
add rcx, rax
mov r8d, 0x90
mov rdx, r12
call sym.memcpy
movzx eax, dil
add rbp, rax
add r12, 0x90
cmp r12, rsi
jae 0x14004dcd1
mov rdx, qword [r12 + 0x20]
mov rbx, qword [r12 + 0x28]
cmp rbx, rdx
ja 0x14004e472
mov rdx, qword [r14 + 0x20]
mov rcx, qword [r14 + 0x28]
cmp rcx, rdx
ja 0x14004e466
cmp rbx, rcx
jne 0x14004dd30
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x40], rbp
mov rbp, qword [r12 + 0x18]
mov rdi, qword [r14 + 0x18]
inc rbx
mov r14d, 0x28
nop word cs:[rax + rax]
dec rbx
je 0x14004de4d
mov rsi, r14
movzx r13d, byte [rbp + r14 + 0x10]
mov edx, 1
test r13b, r13b
je 0x14004de10
mov rcx, qword [rbp + rsi]
mov r8, qword [rbp + rsi + 8]
movzx r15d, byte [rdi + rsi + 0x10]
test r15b, r15b
je 0x14004de23
mov rdx, qword [rdi + rsi]
mov rax, qword [rdi + rsi + 8]
cmp r8, rax
je 0x14004de2a
jmp 0x14004de37
xor r8d, r8d
mov ecx, 1
movzx r15d, byte [rdi + rsi + 0x10]
test r15b, r15b
jne 0x14004ddfd
xor eax, eax
cmp r8, rax
jne 0x14004de37
lea r14, [rsi + 0x50]
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14004ddd0
mov edx, 1
test r13b, r13b
je 0x14004de60
mov rcx, qword [rbp + rsi]
mov rax, qword [rbp + rsi + 8]
jmp 0x14004de67
cmp qword [r12], 0
mov r14, qword [rsp + 0x68]
je 0x14004deb3
mov rax, qword [r12 + 8]
jmp 0x14004deb5
xor eax, eax
mov ecx, 1
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x40]
test r15b, r15b
mov r13, qword [rsp + 0x58]
je 0x14004de86
mov rdx, qword [rdi + rsi]
mov r8, qword [rdi + rsi + 8]
jmp 0x14004de89
xor r8d, r8d
mov r15, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, rax
sub rdi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
shr rdi, 0x3f
jmp 0x14004dd34
xor eax, eax
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
cmp qword [r14], 0
je 0x14004ded5
mov rcx, qword [r14 + 8]
jmp 0x14004ded7
xor ecx, ecx
cmp rax, rcx
setl dil
jmp 0x14004dd34
mov r8d, 0x90
mov rcx, qword [rsp + 0xb0]
mov rdx, r14
call sym.memcpy
mov rax, rbp
shl rax, 4
lea r8, [rax + rax*8]
mov rcx, qword [rsp + 0x38]
mov rdx, r13
call sym.memcpy
mov r12, rsi
sub r12, rbp
je 0x14004e021
lea rbx, [rbp*8]
add rbx, rbp
shl rbx, 4
add rbx, qword [rsp + 0x38]
lea rax, [rbp + 1]
cmp rsi, rax
mov qword [rsp + 0x40], rbx
jne 0x14004df60
xor edi, edi
jmp 0x14004dfdc
mov rsi, r12
and rsi, 0xfffffffffffffffe
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
lea r13, [rax + rcx]
xor r14d, r14d
mov r15, qword [rsp + 0x70]
nop word cs:[rax + rax]
mov r8d, 0x90
mov rcx, rbx
mov rdx, r13
call sym.memcpy
lea rdi, [r14 + 2]
xor r14, 0xfffffffffffffffe
lea rdx, [r14 + r14*8]
shl rdx, 4
add rdx, r15
lea rcx, [rbx + 0x90]
mov r8d, 0x90
call sym.memcpy
add rbx, 0x120
add r13, 0xfffffffffffffee0
mov r14, rdi
cmp rsi, rdi
jne 0x14004df90
test r12b, 1
mov r13, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
je 0x14004e021
lea rax, [rdi + rdi*8]
not rdi
lea rdx, [rdi + rdi*8]
shl rdx, 4
add rdx, qword [rsp + 0x70]
shl rax, 4
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov r8d, 0x90
call sym.memcpy
mov rsi, qword [rsp + 0x60]
test rbp, rbp
mov rcx, qword [rsp + 0x70]
je 0x14004e090
cmp rsi, rbp
mov rax, qword [rsp + 0x38]
jb 0x14004e483
lea rcx, [rbp*8]
add rcx, rbp
shl rcx, 4
add rcx, rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x7c]
mov dword [rsp + 0x20], esi
mov rdx, r12
mov r8, r13
mov r9, qword [rsp + 0x90]
call sym.core::slice::sort::stable::quicksort::quicksort::h61e5fa16c82507fc
mov eax, esi
mov rcx, qword [rsp + 0x38]
mov rdx, rbp
cmp rbp, 0x11
jae 0x14004dbb0
jmp 0x14004db54
xor r12d, r12d
mov rax, qword [rsp + 0x38]
mov r15, rax
mov rdi, rcx
xor ecx, ecx
mov qword [rsp + 0x80], rcx
mov rsi, qword [rsp + 0x98]
mov qword [rsp + 0x98], rsi
lea rbp, [rsi + rsi*8]
shl rbp, 4
add rbp, rax
cmp r15, rbp
mov qword [rsp + 0x50], rbp
jb 0x14004e169
mov rsi, qword [rsp + 0x60]
cmp qword [rsp + 0x98], rsi
je 0x14004e2e0
add rdi, 0xffffffffffffff70
lea rcx, [r12 + r12*8]
shl rcx, 4
add rcx, r13
mov r8d, 0x90
mov qword [rsp + 0x80], rcx
mov rdx, r15
call sym.memcpy
inc r12
add r15, 0x90
mov rax, qword [rsp + 0x38]
jmp 0x14004e0b0
setb sil
mov ebx, esi
xor bl, 1
add rdi, 0xffffffffffffff70
test sil, sil
mov rax, r13
cmovne rax, rdi
lea rcx, [r12 + r12*8]
shl rcx, 4
add rcx, rax
mov r8d, 0x90
mov rdx, r15
call sym.memcpy
movzx eax, bl
add r12, rax
add r15, 0x90
cmp r15, rbp
jae 0x14004e0d1
mov rdx, qword [r14 + 0x20]
mov rbx, qword [r14 + 0x28]
cmp rbx, rdx
ja 0x14004e472
mov rdx, qword [r15 + 0x20]
mov rcx, qword [r15 + 0x28]
cmp rcx, rdx
ja 0x14004e466
cmp rbx, rcx
jne 0x14004e120
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], r12
mov rbp, qword [r14 + 0x18]
mov rdi, qword [r15 + 0x18]
inc rbx
mov r14d, 0x28
nop dword [rax + rax]
dec rbx
je 0x14004e256
mov r12, r14
movzx esi, byte [rbp + r14 + 0x10]
mov edx, 1
test sil, sil
je 0x14004e200
mov rcx, qword [rbp + r12]
mov r8, qword [rbp + r12 + 8]
movzx r13d, byte [rdi + r12 + 0x10]
test r13b, r13b
je 0x14004e213
mov rdx, qword [rdi + r12]
mov rax, qword [rdi + r12 + 8]
cmp r8, rax
je 0x14004e21a
jmp 0x14004e228
xor r8d, r8d
mov ecx, 1
movzx r13d, byte [rdi + r12 + 0x10]
test r13b, r13b
jne 0x14004e1e1
xor eax, eax
cmp r8, rax
jne 0x14004e228
lea r14, [r12 + 0x50]
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14004e1b0
mov edx, 1
test sil, sil
je 0x14004e267
mov rcx, qword [rbp + r12]
mov rax, qword [rbp + r12 + 8]
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x50]
test r13b, r13b
je 0x14004e27d
mov rdx, qword [rdi + r12]
mov r8, qword [rdi + r12 + 8]
jmp 0x14004e280
mov r14, qword [rsp + 0x68]
cmp qword [r14], 0
je 0x14004e2af
mov rax, qword [r14 + 8]
jmp 0x14004e2b1
xor eax, eax
mov ecx, 1
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x50]
test r13b, r13b
jne 0x14004e24b
xor r8d, r8d
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
mov rsi, rax
sub rsi, r8
cmovb r8, rax
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
shr rsi, 0x3f
jmp 0x14004e124
xor eax, eax
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
cmp qword [r15], 0
je 0x14004e2d1
mov rcx, qword [r15 + 8]
jmp 0x14004e2d3
xor ecx, ecx
cmp rax, rcx
setl sil
jmp 0x14004e124
mov r8d, 0x90
mov rcx, qword [rsp + 0x80]
mov rdx, r14
call sym.memcpy
mov rax, r12
shl rax, 4
lea r8, [rax + rax*8]
mov rcx, qword [rsp + 0x38]
mov rdx, r13
call sym.memcpy
mov rbp, rsi
sub rbp, r12
mov rdx, rsi
je 0x14004e403
lea rbx, [r12 + r12*8]
shl rbx, 4
add rbx, qword [rsp + 0x38]
mov qword [rsp + 0x48], r12
lea rax, [r12 + 1]
cmp rdx, rax
mov qword [rsp + 0x40], rbp
jne 0x14004e342
xor edi, edi
jmp 0x14004e3bd
mov rsi, rbp
and rsi, 0xfffffffffffffffe
mov rbp, qword [rsp + 0xa8]
add rbp, qword [rsp + 0xa0]
mov r12, rbx
xor r14d, r14d
mov r15, qword [rsp + 0x70]
nop word cs:[rax + rax]
mov r8d, 0x90
mov rcx, r12
mov rdx, rbp
call sym.memcpy
lea rdi, [r14 + 2]
xor r14, 0xfffffffffffffffe
lea rdx, [r14 + r14*8]
shl rdx, 4
add rdx, r15
lea rcx, [r12 + 0x90]
mov r8d, 0x90
call sym.memcpy
add r12, 0x120
add rbp, 0xfffffffffffffee0
mov r14, rdi
cmp rsi, rdi
jne 0x14004e370
mov rbp, qword [rsp + 0x40]
test bpl, 1
mov rdx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x48]
je 0x14004e403
lea rax, [rdi + rdi*8]
not rdi
lea rcx, [rdi + rdi*8]
shl rcx, 4
mov rdx, qword [rsp + 0x70]
add rdx, rcx
shl rax, 4
add rbx, rax
mov r8d, 0x90
mov rcx, rbx
call sym.memcpy
mov rdx, qword [rsp + 0x60]
cmp rdx, r12
jb 0x14004e4c9
lea rax, [r12 + r12*8]
shl rax, 4
mov rcx, qword [rsp + 0x38]
add rcx, rax
cmp rbp, 0x11
mov eax, dword [rsp + 0x7c]
jae 0x14004dba5
jmp 0x14004db54
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov r8, r13
mov r9, qword [rsp + 0x90]
call sym.core::slice::sort::stable::drift::sort::he13218634d1559e8
nop
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x1402e1e78]
call sym.core::slice::index::slice_end_index_len_fail::hdaa9bbd2fcad4cbb
lea r8, [0x1402e1e78]
mov rcx, rbx
call sym.core::slice::index::slice_end_index_len_fail::hdaa9bbd2fcad4cbb
ud2
lea rax, [0x1402e5ab0]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], 1
mov qword [rsp + 0xc8], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0xd0], xmm0
lea rdx, str._rustc_eeb90cda1969383f56a2637cbd3037bdf598841clibrarycore_src_slice_sort_stablequicksort.rsmid___len
lea rcx, [rsp + 0xb8]
call sym.core::panicking::panic_fmt::h50bba86df16ca19f
lea r8, str.HZ._
mov rcx, r12
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
int3