Function at 0x1402471a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rbp, rdx
mov qword [rsp + 0x30], rcx
cmp rdx, 0x15
jae 0x1402471f1
cmp rbp, 1
jbe 0x1402478e8
mov r8d, 1
mov rcx, qword [rsp + 0x30]
mov rdx, rbp
add rsp, 0xc8
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::h4485ae5fc5fa317d
movabs rax, 0x7ffffffffffffff8
lea rcx, [rbp*4]
and rcx, rax
mov rsi, qword [0x14050df18]
movzx eax, byte [rsi]
mov edx, 4
mov qword [rsp + 0x58], rcx
call sym.__rust_alloc
test rax, rax
je 0x1402479e0
mov rbx, rax
movzx eax, byte [rsi]
mov ecx, 0x100
mov edx, 8
call sym.__rust_alloc
test rax, rax
mov qword [rsp + 0x28], rbx
je 0x1402479ec
mov r12, rax
mov rax, qword [rsp + 0x30]
lea rcx, [rax + 8]
mov qword [rsp + 0x68], rcx
add rax, 0xfffffffffffffff8
mov qword [rsp + 0x60], rax
mov eax, 0x10
mov qword [rsp + 0x40], rax
xor r13d, r13d
lea rax, [0x1404e7f20]
mov qword [rsp + 0x50], rax
xor edi, edi
mov qword [rsp + 0x70], rbp
jmp 0x1402472a3
mov edi, 1
mov r13, qword [rsp + 0x20]
cmp r13, rbp
jae 0x1402478ab
mov rax, rbp
sub rax, r13
mov rcx, qword [rsp + 0x30]
lea rcx, [rcx + r13*8]
cmp rax, 2
jae 0x140247330
mov r8, rax
lea rax, [r8 + r13]
mov rsi, rax
sub rsi, r13
jb 0x14024797c
cmp rax, rbp
ja 0x14024797c
jae 0x1402473e0
cmp r8, 0xa
jae 0x1402473e0
lea rsi, [r13 + 0xa]
cmp rsi, rbp
cmovae rsi, rbp
cmp r13, 0xfffffffffffffff5
ja 0x140247996
cmp r8, 1
adc r8, 0
mov qword [rsp + 0x20], rsi
sub rsi, r13
mov rdx, rsi
call sym.core::slice::sort::insertion_sort_shift_left::h4485ae5fc5fa317d
cmp rdi, qword [rsp + 0x40]
je 0x1402473ec
jmp 0x140247445
mov edx, dword [rcx + 8]
mov r9d, dword [rcx + 0xc]
xor r8d, r8d
cmp r9d, dword [rcx + 4]
setb r8b
xor r10d, r10d
cmp edx, dword [rcx]
setb r10b
cmove r10d, r8d
mov r8d, 2
test r10b, r10b
je 0x140247770
cmp rax, 2
je 0x1402473a7
nop word cs:[rax + rax]
mov r10d, edx
mov r11d, r9d
mov edx, dword [rcx + r8*8]
mov r9d, dword [rcx + r8*8 + 4]
xor esi, esi
cmp r9d, r11d
setb sil
xor r11d, r11d
cmp edx, r10d
setb r11b
cmove r11d, esi
cmp r11b, 1
jne 0x1402473a7
inc r8
cmp rax, r8
jne 0x140247370
mov r8, rax
mov rax, r8
add rax, r13
jb 0x1402479c9
cmp rax, rbp
ja 0x1402479b5
cmp r8, 2
jae 0x1402477bc
mov r8d, 1
jmp 0x1402472bf
mov qword [rsp + 0x20], rax
cmp rdi, qword [rsp + 0x40]
jne 0x140247445
lea rax, [rdi + rdi]
mov qword [rsp + 0x40], rax
mov rcx, rdi
shl rcx, 5
mov rax, qword [0x14050df18]
movzx eax, byte [rax]
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1402479a7
mov r14, rax
mov r15, rdi
shl r15, 4
mov rcx, rax
mov rdx, r12
mov r8, r15
call sym.memcpy
mov r8d, 8
mov rcx, r12
mov rdx, r15
call sym.__rust_dealloc
mov r12, r14
mov rax, rdi
shl rax, 4
mov qword [r12 + rax], rsi
mov qword [r12 + rax + 8], r13
inc rdi
cmp rdi, 2
jb 0x140247295
mov qword [rsp + 0x78], r12
jmp 0x1402474e5
mov rbp, r12
mov rbx, qword [rsp + 0x28]
mov rdx, rbx
nop word cs:[rax + rax]
mov r12, qword [rsp + 0x78]
add rsi, r12
add rdi, r12
sub r8, rdx
mov rcx, rbp
call sym.memcpy
mov rax, qword [rsp + 0x80]
add rax, r15
mov qword [rdi], rax
mov rax, qword [rsp + 0x88]
mov qword [rdi + 8], rax
lea rdx, [rsi + 0x10]
mov rax, qword [rsp + 0x90]
not rax
add r13, rax
shl r13, 4
mov rcx, rsi
mov r8, r13
call sub.msvcrt.dll_memmove
mov rdi, qword [rsp + 0x48]
cmp rdi, 1
mov rbp, qword [rsp + 0x70]
jbe 0x140247290
mov r13, rdi
lea r10, [rdi - 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 0x140247550
mov rdx, r13
shl rdx, 4
mov r8, qword [rdx + r12 - 0x20]
cmp r8, rax
jbe 0x140247550
cmp r13, 2
je 0x1402477e9
lea r11, [r13 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r12 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140247565
cmp r13, 3
jbe 0x140247899
add r8, rcx
cmp qword [rdx + r12 - 0x40], r8
jbe 0x140247565
jmp 0x1402478a3
cmp r13, 2
je 0x14024756a
lea r11, [r13 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r12 + rcx]
cmp rcx, rax
jb 0x14024756e
lea r11, [r13 - 2]
cmp r13, r11
jbe 0x140247915
mov qword [rsp + 0x48], r10
lea rdi, [r11 + 1]
cmp r13, rdi
jbe 0x1402478fd
mov rsi, r11
shl rsi, 4
mov rcx, qword [r12 + rsi + 8]
shl rdi, 4
mov rax, qword [r12 + rdi]
mov r14, qword [r12 + rdi + 8]
add r14, rax
mov r15, r14
sub r15, rcx
jb 0x140247954
cmp r14, rbp
ja 0x140247968
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x90], r11
mov r13, qword [r12 + rsi]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x88], rcx
lea rbp, [rax + rcx*8]
lea r12, [r13*8]
add r12, rbp
mov rbx, r15
sub rbx, r13
cmp rbx, r13
jae 0x1402476b0
lea r8, [rbx*8]
mov r15, qword [rsp + 0x28]
mov rcx, r15
mov rdx, r12
call sym.memcpy
lea r8, [r15 + rbx*8]
test r13, r13
mov r15, r13
jle 0x14024774c
test rbx, rbx
mov r13, qword [rsp + 0x38]
jle 0x140247469
mov rax, qword [rsp + 0x60]
lea rax, [rax + r14*8]
mov rbx, qword [rsp + 0x28]
nop word cs:[rax + rax]
mov ecx, dword [r8 - 8]
mov edx, dword [r8 - 4]
xor r9d, r9d
cmp edx, dword [r12 - 4]
setb r9b
xor edx, edx
cmp ecx, dword [r12 - 8]
setb dl
cmove edx, r9d
movzx ecx, dl
lea rdx, [rcx*8]
sub r12, rdx
lea r8, [r8 + rcx*8]
add r8, 0xfffffffffffffff8
test cl, cl
mov rcx, r8
cmovne rcx, r12
mov rcx, qword [rcx]
mov qword [rax], rcx
cmp r12, rbp
jbe 0x1402476a5
add rax, 0xfffffffffffffff8
cmp r8, rbx
ja 0x140247650
mov rbp, r12
mov rdx, rbx
jmp 0x140247480
lea r8, [r13*8]
mov rbx, qword [rsp + 0x28]
mov rcx, rbx
mov rdx, rbp
call sym.memcpy
lea r8, [rbx + r13*8]
test r13, r13
jle 0x140247759
cmp r15, r13
mov r15, r13
jle 0x140247754
mov rax, qword [rsp + 0x30]
lea rax, [rax + r14*8]
mov rdx, rbx
mov r13, qword [rsp + 0x38]
nop
mov r9d, dword [r12]
mov ecx, dword [r12 + 4]
xor r10d, r10d
cmp ecx, dword [rdx + 4]
setb r10b
xor ecx, ecx
cmp r9d, dword [rdx]
setb cl
cmove ecx, r10d
test cl, cl
mov r9, rdx
cmovne r9, r12
mov r9, qword [r9]
mov qword [rbp], r9
add rbp, 8
mov r9d, ecx
xor r9b, 1
movzx r9d, r9b
lea rdx, [rdx + r9*8]
cmp rdx, r8
jae 0x140247480
movzx ecx, cl
lea r12, [r12 + rcx*8]
cmp r12, rax
jb 0x1402476f0
jmp 0x140247480
mov rbp, r12
mov rbx, qword [rsp + 0x28]
mov rdx, rbx
jmp 0x14024775f
mov rdx, rbx
mov r15, r13
mov r13, qword [rsp + 0x38]
jmp 0x140247480
cmp rax, 2
je 0x1402472bb
nop word [rax + rax]
mov r10d, edx
mov r11d, r9d
mov edx, dword [rcx + r8*8]
mov r9d, dword [rcx + r8*8 + 4]
xor esi, esi
cmp r9d, r11d
setb sil
xor r11d, r11d
cmp edx, r10d
setb r11b
cmove r11d, esi
test r11b, r11b
jne 0x1402472bb
inc r8
cmp rax, r8
jne 0x140247780
jmp 0x1402472b8
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x48], rdi
mov rax, r8
shr rax, 1
lea rdx, [rcx + r8*8]
lea r9, [rax*8]
sub rdx, r9
cmp rax, 1
jne 0x1402477f3
xor r9d, r9d
jmp 0x140247866
mov edi, 2
jmp 0x140247295
movabs r9, 0x7ffffffffffffff8
lea r10, [r9 + 6]
and r10, rax
mov r9, qword [rsp + 0x68]
lea r11, [r9 + r13*8]
mov r9, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x20]
lea rsi, [r9 + rsi*8]
xor r9d, r9d
movabs r15, 0x1ffffffffffffffe
nop dword [rax + rax]
mov rdi, qword [rsi]
mov rbx, qword [r11 + r9*8 - 8]
mov qword [r11 + r9*8 - 8], rdi
mov qword [rsi], rbx
mov rdi, r9
xor rdi, r15
add rdi, rax
mov rbx, qword [rdx + rdi*8]
mov r14, qword [r11 + r9*8]
mov qword [r11 + r9*8], rbx
mov qword [rdx + rdi*8], r14
add r9, 2
add rsi, 0xfffffffffffffff0
cmp r10, r9
jne 0x140247830
test r8b, 2
je 0x140247885
mov r10, r9
not r10
add rax, r10
mov r10, qword [rdx + rax*8]
mov r11, qword [rcx + r9*8]
mov qword [rcx + r9*8], r10
mov qword [rdx + rax*8], r11
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x48]
mov rax, qword [rsp + 0x20]
jmp 0x1402472bf
mov edi, 3
jmp 0x140247295
mov rdi, r13
jmp 0x140247295
mov rdx, qword [rsp + 0x40]
shl rdx, 4
mov r8d, 8
mov rcx, r12
call sym.__rust_dealloc
mov r8d, 4
mov rcx, rbx
mov rdx, qword [rsp + 0x58]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sym.__rust_dealloc
nop
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [0x1404e7ec0]
mov qword [rsp + 0x98], rax
lea rdx, [0x1404e7f50]
jmp 0x14024792b
lea rax, [0x1404e7ec0]
mov qword [rsp + 0x98], rax
lea rdx, [0x1404e7f38]
lea rcx, [rsp + 0x98]
mov qword [rcx + 8], 1
mov qword [rcx + 0x10], 8
xorps xmm0, xmm0
movups xmmword [rcx + 0x18], xmm0
call sym.core::panicking::panic_fmt::hbf31d8edd17cf412
jmp 0x1402479f8
lea r8, [0x1404e7f68]
mov rdx, r14
call sym.core::slice::index::slice_index_order_fail::hf943cfe51be07c4a
jmp 0x1402479f8
lea r8, [0x1404e7f68]
mov rcx, r14
mov rdx, rbp
call sym.core::slice::index::slice_end_index_len_fail::ha4157f6c56c31a58
jmp 0x1402479f8
lea rcx, [0x1404e7fc8]
lea r8, [0x1404e7ff8]
mov edx, 0x2c
call sym.core::panicking::panic::h2104b77c7bdaa98f
jmp 0x1402479f8
mov rdx, rsi
lea rax, [0x1404e8010]
mov qword [rsp + 0x50], rax
jmp 0x1402479cc
lea rcx, [0x1404e7fb0]
call sym.core::option::unwrap_failed::h511674c62460528b
jmp 0x1402479f8
lea r8, [0x1404e7f20]
mov rcx, rax
mov rdx, rbp
call sym.core::slice::index::slice_end_index_len_fail::ha4157f6c56c31a58
jmp 0x1402479f8
mov rdx, rax
mov rcx, r13
mov r8, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x28]
call sym.core::slice::index::slice_index_order_fail::hf943cfe51be07c4a
jmp 0x1402479f8
lea rcx, [0x1404e7f80]
call sym.core::option::unwrap_failed::h511674c62460528b
lea rcx, [0x1404e7f98]
call sym.core::option::unwrap_failed::h511674c62460528b
ud2