Function at 0x140247a40
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 0x140247a91
cmp rbp, 1
jbe 0x140248172
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::h4f3a641cddeaa54c
movabs rax, 0x7ffffffffffffffe
mov rcx, rbp
and rcx, rax
mov rsi, qword [0x14050df18]
movzx eax, byte [rsi]
mov edx, 1
mov qword [rsp + 0x60], rcx
call sym.__rust_alloc
test rax, rax
je 0x14024826a
mov rbx, rax
movzx eax, byte [rsi]
mov ecx, 0x100
mov edx, 8
call sym.__rust_alloc
test rax, rax
mov qword [rsp + 0x20], rbx
je 0x140248276
mov r12, rax
mov rax, qword [rsp + 0x30]
lea rcx, [rax + 3]
mov qword [rsp + 0x70], rcx
add rax, 0xfffffffffffffffe
mov qword [rsp + 0x68], rax
mov eax, 0x10
mov qword [rsp + 0x40], rax
xor r13d, r13d
lea rax, [0x1404e7f20]
mov qword [rsp + 0x58], rax
xor edi, edi
mov qword [rsp + 0x50], rbp
jmp 0x140247b43
mov edi, 1
mov r13, qword [rsp + 0x28]
cmp r13, rbp
jae 0x140248135
mov rax, rbp
sub rax, r13
mov rcx, qword [rsp + 0x30]
lea rcx, [rcx + r13*2]
cmp rax, 2
jae 0x140247bd0
mov r8, rax
lea r15, [r8 + r13]
mov rsi, r15
sub rsi, r13
jb 0x140248206
cmp r15, rbp
ja 0x140248206
jae 0x140247c80
cmp r8, 0xa
jae 0x140247c80
lea rsi, [r13 + 0xa]
cmp rsi, rbp
cmovae rsi, rbp
cmp r13, 0xfffffffffffffff5
ja 0x140248220
cmp r8, 1
adc r8, 0
mov qword [rsp + 0x28], rsi
sub rsi, r13
mov rdx, rsi
call sym.core::slice::sort::insertion_sort_shift_left::h4f3a641cddeaa54c
cmp rdi, qword [rsp + 0x40]
je 0x140247c8c
jmp 0x140247ce5
movzx edx, byte [rcx + 2]
movzx r9d, byte [rcx + 3]
xor r8d, r8d
cmp r9b, byte [rcx + 1]
setb r8b
xor r10d, r10d
cmp dl, byte [rcx]
setb r10b
cmove r10d, r8d
mov r8d, 2
test r10b, r10b
je 0x140248000
cmp rax, 2
je 0x140247c49
nop word cs:[rax + rax]
mov r10d, edx
mov r11d, r9d
movzx edx, byte [rcx + r8*2]
movzx r9d, byte [rcx + r8*2 + 1]
xor esi, esi
cmp r9b, r11b
setb sil
xor r11d, r11d
cmp dl, r10b
setb r11b
cmove r11d, esi
cmp r11b, 1
jne 0x140247c49
inc r8
cmp rax, r8
jne 0x140247c10
mov r8, rax
mov r15, r8
add r15, r13
jb 0x140248253
cmp r15, rbp
ja 0x14024823f
cmp r8, 2
jae 0x14024804e
mov r8d, 1
jmp 0x140247b5f
mov qword [rsp + 0x28], r15
cmp rdi, qword [rsp + 0x40]
jne 0x140247ce5
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 0x140248231
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 0x140247b35
mov qword [rsp + 0x78], r12
jmp 0x140247d85
mov rbp, r12
mov rbx, qword [rsp + 0x20]
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 + 0x50]
jbe 0x140247b30
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 0x140247df0
mov rdx, r13
shl rdx, 4
mov r8, qword [rdx + r12 - 0x20]
cmp r8, rax
jbe 0x140247df0
cmp r13, 2
je 0x140248072
lea r11, [r13 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r12 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140247e05
cmp r13, 3
jbe 0x140248123
add r8, rcx
cmp qword [rdx + r12 - 0x40], r8
jbe 0x140247e05
jmp 0x14024812d
cmp r13, 2
je 0x140247e0a
lea r11, [r13 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r12 + rcx]
cmp rcx, rax
jb 0x140247e0e
lea r11, [r13 - 2]
cmp r13, r11
jbe 0x14024819f
mov qword [rsp + 0x48], r10
lea rdi, [r11 + 1]
cmp r13, rdi
jbe 0x140248187
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 0x1402481de
cmp r14, rbp
ja 0x1402481f2
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*2]
lea r12, [r13*2]
add r12, rbp
mov rbx, r15
sub rbx, r13
cmp rbx, r13
jae 0x140247f40
lea r8, [rbx + rbx]
mov r15, qword [rsp + 0x20]
mov rcx, r15
mov rdx, r12
call sym.memcpy
lea r8, [r15 + rbx*2]
test r13, r13
mov r15, r13
jle 0x140247fe1
test rbx, rbx
mov r13, qword [rsp + 0x38]
jle 0x140247d09
mov rax, qword [rsp + 0x68]
lea rax, [rax + r14*2]
mov rbx, qword [rsp + 0x20]
nop
movzx ecx, byte [r8 - 2]
movzx edx, byte [r8 - 1]
xor r9d, r9d
cmp dl, byte [r12 - 1]
setb r9b
xor edx, edx
cmp cl, byte [r12 - 2]
setb dl
cmove edx, r9d
movzx ecx, dl
sub r12, rcx
sub r12, rcx
lea r8, [r8 + rcx*2]
add r8, 0xfffffffffffffffe
test cl, cl
mov rcx, r8
cmovne rcx, r12
movzx ecx, word [rcx]
mov word [rax], cx
cmp r12, rbp
jbe 0x140247f32
add rax, 0xfffffffffffffffe
cmp r8, rbx
ja 0x140247ee0
mov rbp, r12
mov rdx, rbx
jmp 0x140247d20
lea r8, [r13*2]
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
mov rdx, rbp
call sym.memcpy
lea r8, [rbx + r13*2]
test r13, r13
jle 0x140247fee
cmp r15, r13
mov r15, r13
jle 0x140247fe9
mov rax, qword [rsp + 0x30]
lea rax, [rax + r14*2]
mov rdx, rbx
mov r13, qword [rsp + 0x38]
nop
movzx r9d, byte [r12]
movzx ecx, byte [r12 + 1]
xor r10d, r10d
cmp cl, byte [rdx + 1]
setb r10b
xor ecx, ecx
cmp r9b, byte [rdx]
setb cl
cmove ecx, r10d
mov r9, r12
test cl, cl
jne 0x140247fab
mov r9, rdx
movzx r9d, word [r9]
mov word [rbp], r9w
add rbp, 2
mov r9d, ecx
xor r9b, 1
movzx r9d, r9b
lea rdx, [rdx + r9*2]
cmp rdx, r8
jae 0x140247d20
movzx ecx, cl
lea r12, [r12 + rcx*2]
cmp r12, rax
jb 0x140247f80
jmp 0x140247d20
mov rbp, r12
mov rbx, qword [rsp + 0x20]
mov rdx, rbx
jmp 0x140247ff4
mov rdx, rbx
mov r15, r13
mov r13, qword [rsp + 0x38]
jmp 0x140247d20
cmp rax, 2
je 0x140247b5b
nop word [rax + rax]
mov r10d, edx
mov r11d, r9d
movzx edx, byte [rcx + r8*2]
movzx r9d, byte [rcx + r8*2 + 1]
xor esi, esi
cmp r9b, r11b
setb sil
xor r11d, r11d
cmp dl, r10b
setb r11b
cmove r11d, esi
test r11b, r11b
jne 0x140247b5b
inc r8
cmp rax, r8
jne 0x140248010
jmp 0x140247b58
mov qword [rsp + 0x48], rdi
mov rax, r8
shr rax, 1
lea rdx, [rcx + r8*2]
mov r9, r8
and r9, 0xfffffffffffffffe
sub rdx, r9
cmp rax, 1
jne 0x14024807c
xor r9d, r9d
jmp 0x1402480ec
mov edi, 2
jmp 0x140247b35
mov r10, rax
movabs r14, 0x7ffffffffffffffe
and r10, r14
mov r9, qword [rsp + 0x70]
lea r11, [r9 + r13*2]
mov r9, qword [rsp + 0x68]
lea rsi, [r9 + r15*2]
xor r9d, r9d
nop word cs:[rax + rax]
movzx edi, word [r11 + r9*2 - 3]
movzx ebx, word [rsi]
mov word [r11 + r9*2 - 3], bx
mov word [rsi], di
mov rdi, r9
xor rdi, r14
add rdi, rax
movzx ebx, word [r11 + r9*2 - 1]
movzx ebp, word [rdx + rdi*2]
mov word [r11 + r9*2 - 1], bp
mov word [rdx + rdi*2], bx
add r9, 2
add rsi, 0xfffffffffffffffc
cmp r10, r9
jne 0x1402480b0
test r8b, 2
je 0x14024810f
mov r10, r9
not r10
add rax, r10
movzx r10d, word [rcx + r9*2]
movzx r11d, word [rdx + rax*2]
mov word [rcx + r9*2], r11w
mov word [rdx + rax*2], r10w
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
jmp 0x140247b5f
mov edi, 3
jmp 0x140247b35
mov rdi, r13
jmp 0x140247b35
mov rdx, qword [rsp + 0x40]
shl rdx, 4
mov r8d, 8
mov rcx, r12
call sym.__rust_dealloc
mov r8d, 1
mov rcx, rbx
mov rdx, qword [rsp + 0x60]
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 0x1402481b5
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 0x140248282
lea r8, [0x1404e7f68]
mov rdx, r14
call sym.core::slice::index::slice_index_order_fail::hf943cfe51be07c4a
jmp 0x140248282
lea r8, [0x1404e7f68]
mov rcx, r14
mov rdx, rbp
call sym.core::slice::index::slice_end_index_len_fail::ha4157f6c56c31a58
jmp 0x140248282
lea rcx, [0x1404e7fc8]
lea r8, [0x1404e7ff8]
mov edx, 0x2c
call sym.core::panicking::panic::h2104b77c7bdaa98f
jmp 0x140248282
mov rdx, rsi
lea rax, [0x1404e8010]
mov qword [rsp + 0x58], rax
jmp 0x140248256
lea rcx, [0x1404e7fb0]
call sym.core::option::unwrap_failed::h511674c62460528b
jmp 0x140248282
lea r8, [0x1404e7f20]
mov rcx, r15
mov rdx, rbp
call sym.core::slice::index::slice_end_index_len_fail::ha4157f6c56c31a58
jmp 0x140248282
mov rdx, r15
mov rcx, r13
mov r8, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x20]
call sym.core::slice::index::slice_index_order_fail::hf943cfe51be07c4a
jmp 0x140248282
lea rcx, [0x1404e7f80]
call sym.core::option::unwrap_failed::h511674c62460528b
lea rcx, [0x1404e7f98]
call sym.core::option::unwrap_failed::h511674c62460528b
ud2