Function at 0x1400216a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rbp, rdx
mov qword [rsp + 0x30], rcx
cmp rdx, 0x15
jae 0x1400216f1
cmp rbp, 1
jbe 0x140021da4
mov r8d, 1
mov rcx, qword [rsp + 0x30]
mov rdx, rbp
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sym.core::slice::sort::insertion_sort_shift_left::hc6194990df6ecfaf
movabs rax, 0x7ffffffffffffff0
lea rcx, [rbp*8]
and rcx, rax
mov rsi, qword [0x140121bb8]
movzx eax, byte [rsi]
mov edx, 8
mov qword [rsp + 0x50], rcx
call sym.__rust_alloc
test rax, rax
je 0x140021eb0
mov rdi, rax
movzx eax, byte [rsi]
mov ecx, 0x100
mov edx, 8
call sym.__rust_alloc
test rax, rax
mov qword [rsp + 0x20], rdi
je 0x140021ebc
mov r12, rax
mov rax, qword [rsp + 0x30]
lea rcx, [rax + 0x20]
mov qword [rsp + 0x58], rcx
lea rcx, [rax + 0x10]
mov qword [rsp + 0x68], rcx
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x60], rax
mov eax, 0x10
mov qword [rsp + 0x40], rax
xor r13d, r13d
lea rax, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
mov qword [rsp + 0x48], rax
xor r15d, r15d
mov qword [rsp + 0x70], rbp
jmp 0x1400217b4
mov r15d, 1
mov r13, qword [rsp + 0x28]
cmp r13, rbp
jae 0x140021d67
mov rdx, rbp
sub rdx, r13
mov rax, r13
shl rax, 4
mov rcx, qword [rsp + 0x30]
add rcx, rax
cmp rdx, 2
jae 0x140021840
mov r8, rdx
lea rdx, [r8 + r13]
mov rsi, rdx
sub rsi, r13
jb 0x140021e48
cmp rdx, rbp
ja 0x140021e48
jae 0x1400218e0
cmp r8, 0xa
jae 0x1400218e0
lea rsi, [r13 + 0xa]
cmp rsi, rbp
cmovae rsi, rbp
mov qword [rsp + 0x28], rsi
sub rsi, r13
jb 0x140021e62
cmp r8, 1
adc r8, 0
mov rdx, rsi
call sym.core::slice::sort::insertion_sort_shift_left::hc6194990df6ecfaf
cmp r15, qword [rsp + 0x40]
je 0x1400218ec
jmp 0x140021945
mov r9, qword [rcx + 0x10]
cmp r9, qword [rcx]
jae 0x140021c60
mov r8d, 2
cmp rdx, 2
je 0x14002188a
mov r8, qword [rsp + 0x58]
lea r10, [r8 + rax]
mov r8d, 2
nop dword [rax + rax]
mov r11, r9
mov r9, qword [r10]
cmp r9, r11
jae 0x14002188a
inc r8
add r10, 0x10
cmp rdx, r8
jne 0x140021870
mov r8, rdx
mov rdx, r8
add rdx, r13
jb 0x140021e92
cmp rdx, rbp
ja 0x140021e7e
cmp r8, 2
jb 0x1400217d6
mov r14, rdx
mov rdx, r8
shr rdx, 1
mov r9, r8
shl r9, 4
add r9, rcx
mov r10, rdx
shl r10, 4
sub r9, r10
cmp rdx, 1
jne 0x140021cab
xor r10d, r10d
jmp 0x140021d1c
mov qword [rsp + 0x28], rdx
cmp r15, qword [rsp + 0x40]
jne 0x140021945
lea rax, [r15 + r15]
mov qword [rsp + 0x40], rax
mov rcx, r15
shl rcx, 5
mov rax, qword [0x140121bb8]
movzx eax, byte [rax]
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x140021e70
mov rbx, rax
mov r14, r15
shl r14, 4
mov rcx, rax
mov rdx, r12
mov r8, r14
call sym.memcpy
mov r8d, 8
mov rcx, r12
mov rdx, r14
call sym.__rust_dealloc
mov r12, rbx
mov rax, r15
shl rax, 4
mov qword [r12 + rax], rsi
mov qword [r12 + rax + 8], r13
inc r15
cmp r15, 2
jb 0x1400217a6
mov qword [rsp + 0x78], r12
jmp 0x1400219d8
mov rdi, qword [rsp + 0x20]
mov rdx, rdi
sub rbp, rdx
mov rcx, r12
mov r8, rbp
call sym.memcpy
mov rax, qword [rsp + 0x90]
add rax, r13
mov qword [r14], rax
mov rax, qword [rsp + 0x98]
mov qword [r14 + 8], rax
mov rcx, qword [rsp + 0x88]
lea rdx, [rcx + 0x10]
not rbx
mov r8, qword [rsp + 0x80]
add r8, rbx
shl r8, 4
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov r15, qword [rsp + 0xa0]
cmp r15, 1
mov r12, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
jbe 0x1400217a0
mov rsi, r15
lea r10, [r15 - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [r12 + rcx]
mov rcx, qword [r12 + rcx + 8]
add rcx, rax
cmp rcx, rbp
je 0x140021a50
mov rdx, rsi
shl rdx, 4
mov r8, qword [rdx + r12 - 0x20]
cmp r8, rax
jbe 0x140021a50
cmp rsi, 2
jbe 0x140021ca0
lea r11, [rsi - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r12 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140021a65
cmp rsi, 3
jbe 0x140021d54
add r8, rcx
cmp qword [rdx + r12 - 0x40], r8
jbe 0x140021a65
jmp 0x140021d5f
cmp rsi, 3
jb 0x140021a6a
lea r11, [rsi - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r12 + rcx]
cmp rcx, rax
jb 0x140021a6e
lea r11, [rsi - 2]
cmp rsi, r11
jbe 0x140021dd1
lea r14, [r11 + 1]
cmp rsi, r14
jbe 0x140021db9
mov qword [rsp + 0xa0], r10
mov rax, r11
shl rax, 4
mov rcx, qword [r12 + rax + 8]
shl r14, 4
mov rdx, qword [r12 + r14]
mov r15, qword [r12 + r14 + 8]
add r15, rdx
mov rdi, r15
sub rdi, rcx
jb 0x140021e13
cmp r15, rbp
ja 0x140021e2c
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x38], r11
lea rdx, [r12 + rax]
mov qword [rsp + 0x88], rdx
mov r13, qword [r12 + rax]
add r14, r12
mov qword [rsp + 0x98], rcx
mov r12, rcx
shl r12, 4
add r12, qword [rsp + 0x30]
mov rbp, r13
shl rbp, 4
lea rsi, [r12 + rbp]
shl r15, 4
mov rbx, rdi
sub rbx, r13
cmp rbx, r13
jae 0x140021bb0
mov rbp, rbx
shl rbp, 4
mov rdi, qword [rsp + 0x20]
mov rcx, rdi
mov rdx, rsi
mov r8, rbp
call sym.memcpy
add rbp, rdi
test r13, r13
jle 0x140021c40
test rbx, rbx
jle 0x140021c40
add r15, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x38]
mov rax, rsi
mov rcx, rbp
mov rdx, qword [rbp - 0x10]
mov r8, qword [rsi - 0x10]
cmp rdx, r8
mov esi, 0
sbb rsi, rsi
cmp rdx, r8
mov ebp, 0
adc rbp, 0xffffffffffffffff
shl rsi, 4
add rsi, rax
shl rbp, 4
add rbp, rcx
cmp rdx, r8
mov rax, rbp
cmovb rax, rsi
movups xmm0, xmmword [rax]
movups xmmword [r15], xmm0
cmp rsi, r12
jbe 0x140021ba2
add r15, 0xfffffffffffffff0
cmp rbp, rdi
ja 0x140021b50
mov r12, rsi
jmp 0x14002196e
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
mov rdx, r12
mov r8, rbp
call sym.memcpy
add rbp, rbx
test r13, r13
jle 0x140021c45
cmp rdi, r13
mov rbx, qword [rsp + 0x38]
jle 0x140021969
add r15, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x20]
mov rdx, rdi
nop word cs:[rax + rax]
mov r8, rdx
mov rcx, qword [rsi]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, rsi
movups xmm0, xmmword [r9]
movups xmmword [r12], xmm0
add r12, 0x10
shl rdx, 4
add rdx, r8
cmp rdx, rbp
jae 0x140021971
mov al, cl
shl rax, 4
add rsi, rax
cmp rsi, r15
jb 0x140021bf0
jmp 0x140021971
mov r12, rsi
jmp 0x140021c4a
mov rdi, qword [rsp + 0x20]
mov rdx, rdi
mov rbx, qword [rsp + 0x38]
jmp 0x140021971
mov r8d, 2
cmp rdx, 2
je 0x1400217d2
add rax, qword [rsp + 0x58]
nop word cs:[rax + rax]
mov r10, r9
mov r9, qword [rax]
cmp r9, r10
jb 0x1400217d2
inc r8
add rax, 0x10
cmp rdx, r8
jne 0x140021c80
jmp 0x1400217cf
mov r15d, 2
jmp 0x1400217a6
movabs r10, 0x7ffffffffffffff0
lea r11, [r10 + 0xe]
and r11, rdx
add rax, qword [rsp + 0x68]
mov rsi, r14
shl rsi, 4
add rsi, qword [rsp + 0x60]
xor r10d, r10d
movabs rbx, 0xffffffffffffffe
nop word [rax + rax]
movups xmm0, xmmword [rax - 0x10]
movups xmm1, xmmword [rsi]
movups xmmword [rax - 0x10], xmm1
movups xmmword [rsi], xmm0
mov rdi, r10
xor rdi, rbx
add rdi, rdx
shl rdi, 4
movups xmm0, xmmword [rax]
movups xmm1, xmmword [r9 + rdi]
movups xmmword [rax], xmm1
movups xmmword [r9 + rdi], xmm0
add r10, 2
add rax, 0x20
add rsi, 0xffffffffffffffe0
cmp r11, r10
jne 0x140021ce0
test r8b, 2
je 0x140021d47
mov rax, r10
not rax
add rdx, rax
shl r10, 4
shl rdx, 4
movups xmm0, xmmword [rcx + r10]
movups xmm1, xmmword [r9 + rdx]
movups xmmword [rcx + r10], xmm1
movups xmmword [r9 + rdx], xmm0
mov rdi, qword [rsp + 0x20]
mov rdx, r14
jmp 0x1400217d6
mov r15d, 3
jmp 0x1400217a6
mov r15, rsi
jmp 0x1400217a6
mov rdx, qword [rsp + 0x40]
shl rdx, 4
mov r8d, 8
mov rcx, r12
call sym.__rust_dealloc
mov r8d, 8
mov rcx, rdi
mov rdx, qword [rsp + 0x50]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sym.__rust_dealloc
nop
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0xa8], rax
lea rdx, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
jmp 0x140021de7
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0xa8], rax
lea rdx, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
lea rcx, [rsp + 0xa8]
mov qword [rcx + 8], 1
lea rax, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
mov qword [rcx + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rcx + 0x18], xmm0
call sym.core::panicking::panic_fmt::h1831a24803b4fdac
jmp 0x140021ec8
lea r8, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
mov rdx, r15
mov rdi, qword [rsp + 0x20]
call sym.core::slice::index::slice_index_order_fail::h45d2375853bc76ce
jmp 0x140021ec8
lea r8, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
mov rcx, r15
mov rdx, rbp
mov rdi, qword [rsp + 0x20]
call sym.core::slice::index::slice_end_index_len_fail::h28c5568a35fadd59
jmp 0x140021ec8
lea rcx, str.assertion_failed:_end___start__end___len
lea r8, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
mov edx, 0x2c
call sym.core::panicking::panic::hd174330580e7869e
jmp 0x140021ec8
lea rax, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
mov qword [rsp + 0x48], rax
jmp 0x140021e97
lea rcx, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
call sym.core::option::unwrap_failed::hf5a192e0952253c6
jmp 0x140021ec8
lea r8, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
mov rcx, rdx
mov rdx, rbp
call sym.core::slice::index::slice_end_index_len_fail::h28c5568a35fadd59
jmp 0x140021ec8
mov qword [rsp + 0x28], rdx
mov rcx, r13
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x20]
call sym.core::slice::index::slice_index_order_fail::h45d2375853bc76ce
jmp 0x140021ec8
lea rcx, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
call sym.core::option::unwrap_failed::hf5a192e0952253c6
lea rcx, str.F:Ollvm_rust_rust_1.77.1_rustlibrarycore_src_slice_sort.rs
call sym.core::option::unwrap_failed::hf5a192e0952253c6
ud2