Function at 0x14004d670
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 r12, rdx
mov qword [rsp + 0x30], rcx
cmp rdx, 0x15
jae 0x14004d6c1
cmp r12, 1
jbe 0x14004dd7c
mov r8d, 1
mov rcx, qword [rsp + 0x30]
mov rdx, r12
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::hc3a6bb072a14c1f3
movabs rax, 0x7ffffffffffffff0
lea rcx, [r12*8]
and rcx, rax
mov rsi, qword [str.1__r_]
movzx eax, byte [rsi]
mov edx, 8
mov qword [rsp + 0x50], rcx
call sym.__rust_alloc
test rax, rax
je 0x14004de7f
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 0x14004de8b
mov r14, 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 ebp, ebp
lea rax, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
mov qword [rsp + 0x48], rax
xor r13d, r13d
mov qword [rsp + 0x70], r12
jmp 0x14004d774
mov r13d, 1
mov rbp, qword [rsp + 0x28]
cmp rbp, r12
jae 0x14004dd3f
mov rdx, r12
sub rdx, rbp
mov rax, rbp
shl rax, 4
mov rcx, qword [rsp + 0x30]
add rcx, rax
cmp rdx, 2
jae 0x14004d800
mov r8, rdx
lea rdx, [r8 + rbp]
mov rsi, rdx
sub rsi, rbp
jb 0x14004de1d
cmp rdx, r12
ja 0x14004de1d
jae 0x14004d880
cmp r8, 0xa
jae 0x14004d880
lea rsi, [rbp + 0xa]
cmp rsi, r12
cmovae rsi, r12
cmp rbp, 0xfffffffffffffff5
ja 0x14004de37
cmp r8, 1
adc r8, 0
mov qword [rsp + 0x28], rsi
sub rsi, rbp
mov rdx, rsi
call sym.core::slice::sort::insertion_sort_shift_left::hc3a6bb072a14c1f3
cmp r13, qword [rsp + 0x40]
je 0x14004d88c
jmp 0x14004d8ec
mov r9, qword [rcx + 0x10]
cmp r9, qword [rcx]
jae 0x14004dc10
mov r8d, 2
cmp rdx, 2
je 0x14004d84a
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 0x14004d84a
inc r8
add r10, 0x10
cmp rdx, r8
jne 0x14004d830
mov r8, rdx
mov rdx, r8
add rdx, rbp
jb 0x14004de46
cmp rdx, r12
ja 0x14004de6b
cmp r8, 2
jae 0x14004dc50
mov r8d, 1
jmp 0x14004d796
mov qword [rsp + 0x28], rdx
cmp r13, qword [rsp + 0x40]
jne 0x14004d8ec
mov r15, r14
lea rax, [r13*2]
mov qword [rsp + 0x40], rax
mov rcx, r13
shl rcx, 5
mov rax, qword [str.1__r_]
movzx eax, byte [rax]
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x14004de5a
mov rbx, rax
mov r14, r13
shl r14, 4
mov rcx, rax
mov rdx, r15
mov r8, r14
call sym.memcpy
mov r8d, 8
mov rcx, r15
mov rdx, r14
call sym.__rust_dealloc
mov r14, rbx
mov rax, r13
shl rax, 4
mov qword [r14 + rax], rsi
mov qword [r14 + rax + 8], rbp
inc r13
cmp r13, 2
jb 0x14004d766
mov qword [rsp + 0x78], r14
jmp 0x14004d98b
mov rdi, qword [rsp + 0x20]
mov rdx, rdi
mov r14, qword [rsp + 0x78]
mov r15, qword [rsp + 0x80]
add r15, r14
add rbx, r14
sub r13, rdx
mov rcx, r12
mov r8, r13
call sym.memcpy
mov rax, qword [rsp + 0x88]
add rax, rsi
mov qword [rbx], rax
mov rax, qword [rsp + 0x90]
mov qword [rbx + 8], rax
lea rdx, [r15 + 0x10]
mov rax, qword [rsp + 0x98]
not rax
add rbp, rax
shl rbp, 4
mov rcx, r15
mov r8, rbp
call sub.msvcrt.dll_memmove
mov r13, qword [rsp + 0xa0]
cmp r13, 1
mov r12, qword [rsp + 0x70]
jbe 0x14004d760
lea r10, [r13 - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [r14 + rcx]
mov rcx, qword [r14 + rcx + 8]
add rcx, rax
cmp rcx, r12
je 0x14004da00
mov rdx, r13
shl rdx, 4
mov r8, qword [rdx + r14 - 0x20]
cmp r8, rax
jbe 0x14004da00
cmp r13, 2
je 0x14004dc7b
lea r11, [r13 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r14 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14004da15
cmp r13, 3
jbe 0x14004dd34
add r8, rcx
cmp qword [rdx + r14 - 0x40], r8
jbe 0x14004da15
jmp 0x14004d766
cmp r13, 2
je 0x14004da1a
lea r11, [r13 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r14 + rcx]
cmp rcx, rax
jb 0x14004da1e
lea r11, [r13 - 2]
cmp r13, r11
jbe 0x14004dda9
lea rbx, [r11 + 1]
cmp r13, rbx
jbe 0x14004dd91
mov rdx, r11
shl rdx, 4
mov rcx, qword [r14 + rdx + 8]
shl rbx, 4
mov rax, qword [r14 + rbx]
mov r15, qword [r14 + rbx + 8]
add r15, rax
mov rdi, r15
sub rdi, rcx
jb 0x14004ddeb
cmp r15, r12
ja 0x14004de04
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x98], r11
mov qword [rsp + 0x38], r13
mov qword [rsp + 0xa0], r10
mov qword [rsp + 0x80], rdx
mov rsi, qword [r14 + rdx]
mov qword [rsp + 0x90], rcx
mov r12, rcx
shl r12, 4
add r12, qword [rsp + 0x30]
mov r13, rsi
shl r13, 4
lea r14, [r12 + r13]
shl r15, 4
mov rbp, rdi
sub rbp, rsi
cmp rbp, rsi
jae 0x14004db60
mov r13, rbp
shl r13, 4
mov rdi, qword [rsp + 0x20]
mov rcx, rdi
mov rdx, r14
mov r8, r13
call sym.memcpy
add r13, rdi
test rsi, rsi
jle 0x14004dbf0
test rbp, rbp
jle 0x14004dbf0
add r15, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x38]
nop dword [rax]
mov rax, r14
mov rcx, r13
mov rdx, qword [r13 - 0x10]
mov r8, qword [r14 - 0x10]
cmp rdx, r8
mov r14d, 0
sbb r14, r14
cmp rdx, r8
mov r13d, 0
adc r13, 0xffffffffffffffff
shl r14, 4
add r14, rax
shl r13, 4
add r13, rcx
cmp rdx, r8
mov rax, r13
cmovb rax, r14
movups xmm0, xmmword [rax]
movups xmmword [r15], xmm0
cmp r14, r12
jbe 0x14004db54
add r15, 0xfffffffffffffff0
cmp r13, rdi
ja 0x14004db00
mov r12, r14
jmp 0x14004d915
mov rbp, qword [rsp + 0x20]
mov rcx, rbp
mov rdx, r12
mov r8, r13
call sym.memcpy
add r13, rbp
test rsi, rsi
jle 0x14004dbf5
cmp rdi, rsi
mov rbp, qword [rsp + 0x38]
jle 0x14004d910
add r15, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x20]
mov rdx, rdi
nop word cs:[rax + rax]
mov r8, rdx
mov rcx, qword [r14]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, r14
movups xmm0, xmmword [r9]
movups xmmword [r12], xmm0
add r12, 0x10
shl edx, 4
add rdx, r8
cmp rdx, r13
jae 0x14004d918
mov al, cl
shl eax, 4
add r14, rax
cmp r14, r15
jb 0x14004dba0
jmp 0x14004d918
mov r12, r14
jmp 0x14004dbfa
mov rdi, qword [rsp + 0x20]
mov rdx, rdi
mov rbp, qword [rsp + 0x38]
jmp 0x14004d918
mov r8d, 2
cmp rdx, 2
je 0x14004d792
add rax, qword [rsp + 0x58]
nop word cs:[rax + rax]
mov r10, r9
mov r9, qword [rax]
cmp r9, r10
jb 0x14004d792
inc r8
add rax, 0x10
cmp rdx, r8
jne 0x14004dc30
jmp 0x14004d78f
mov r15, 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 0x14004dc86
xor r10d, r10d
jmp 0x14004dcfc
mov r13d, 2
jmp 0x14004d766
movabs r10, 0x7ffffffffffffff0
lea r11, [r10 + 0xe]
and r11, rdx
add rax, qword [rsp + 0x68]
mov rsi, r15
shl rsi, 4
add rsi, qword [rsp + 0x60]
xor r10d, r10d
movabs rbx, 0xffffffffffffffe
nop word cs:[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 0x14004dcc0
test r8b, 2
je 0x14004dd27
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, r15
jmp 0x14004d796
mov r13d, 3
jmp 0x14004d766
mov rdx, qword [rsp + 0x40]
shl rdx, 4
mov r8d, 8
mov rcx, r14
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._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
jmp 0x14004ddbf
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0xa8], rax
lea rdx, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
lea rcx, [rsp + 0xa8]
mov qword [rcx + 8], 1
lea rax, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
mov qword [rcx + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rcx + 0x18], xmm0
call sym.core::panicking::panic_fmt::h42f2b602a3a68c01
jmp 0x14004de97
lea r8, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
mov rdx, r15
mov rdi, qword [rsp + 0x20]
call sym.core::slice::index::slice_index_order_fail::h1450da68480ab90e
jmp 0x14004de97
lea r8, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
mov rcx, r15
mov rdx, r12
mov rdi, qword [rsp + 0x20]
call sym.core::slice::index::slice_end_index_len_fail::hc473902aa46132a2
jmp 0x14004de97
lea rcx, str.assertion_failed:_end___start__end___len
lea r8, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
mov edx, 0x2c
call sym.core::panicking::panic::h467566c8418d2e96
jmp 0x14004de97
mov rdx, rsi
lea rax, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
mov qword [rsp + 0x48], rax
mov rcx, rbp
mov r8, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x20]
call sym.core::slice::index::slice_index_order_fail::h1450da68480ab90e
jmp 0x14004de97
lea rcx, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
mov r14, r15
call sym.core::option::unwrap_failed::h33810b69b67c35d3
jmp 0x14004de97
lea r8, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
mov rcx, rdx
mov rdx, r12
call sym.core::slice::index::slice_end_index_len_fail::hc473902aa46132a2
jmp 0x14004de97
lea rcx, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
call sym.core::option::unwrap_failed::h33810b69b67c35d3
lea rcx, str._Users_elyzianfields_.rustup_toolchains_nightly_aarch64_apple_darwin_lib_rustlib_src_rust_library_core_src_slice_sort.rsx
call sym.core::option::unwrap_failed::h33810b69b67c35d3
ud2