Function at 0x140006860
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rbx, rcx
mov rdi, qword [rsp + 0xc8]
test rdi, rdi
je 0x1400069a7
setns al
js 0x140006b34
mov r14, r9
mov r13, r8
mov r15, rdx
movzx r12d, al
mov rax, qword [0x141511d08]
movzx eax, byte [rax]
mov rcx, rdi
mov rdx, r12
call sym.__rust_alloc
test rax, rax
je 0x140006b3b
mov rsi, rax
mov r12, qword [rsp + 0xc0]
mov rcx, rax
mov rdx, r12
mov r8, rdi
call sym.memcpy
cmp rdi, 0x10
mov qword [rsp + 0x30], rsi
jb 0x1400069b1
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], 0x10
lea rcx, [rsp + 0x38]
mov rdx, r15
call sym.libaes::aes_encrypt::h049d027b4c5c4928
mov rbx, rdi
lea rbp, [rdi - 0x10]
mov rdi, rsi
add rdi, 0x10
movups xmm0, xmmword [r12]
movups xmm1, xmmword [rsi]
xorps xmm1, xmm0
movups xmmword [rsi], xmm1
cmp rbp, 0x10
jb 0x1400069c8
mov r14d, 0x20
lea r13, [rsp + 0x38]
nop dword [rax + rax]
lea rax, [rdi - 0x10]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 0x10
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], 0x10
mov rcx, r13
mov rdx, r15
call sym.libaes::aes_encrypt::h049d027b4c5c4928
test r14, r14
je 0x140006b09
cmp r14, rbx
ja 0x140006b20
lea rsi, [rdi + 0x10]
add rbp, 0xfffffffffffffff0
movups xmm0, xmmword [r12 + r14 - 0x10]
movups xmm1, xmmword [rdi]
xorps xmm1, xmm0
movups xmmword [rdi], xmm1
add r14, 0x10
mov rdi, rsi
cmp rbp, 0xf
ja 0x140006940
lea r13, [rsi - 0x10]
jmp 0x1400069ce
mov eax, 1
jmp 0x140006ad6
test r14, r14
je 0x140006a12
mov rbp, rdi
jns 0x1400069e5
mov rbx, rdi
call dbg.capacity_overflow
jmp 0x140006b58
mov r13, rsi
mov rsi, rdi
mov r14d, 0x10
test rbp, rbp
mov rdi, rbx
mov rbx, qword [rsp + 0x28]
je 0x140006ad1
mov rax, qword [0x141511d08]
movzx eax, byte [rax]
mov edx, 1
mov rcx, r14
call sym.__rust_alloc
test rax, rax
je 0x140006b48
mov r12, rax
mov dword [rsp + 0x28], 0
jmp 0x140006a24
mov r12d, 1
mov al, 1
mov dword [rsp + 0x28], eax
xor r14d, r14d
mov rbp, rdi
mov rcx, r12
mov rdx, r13
mov r8, r14
call sym.memcpy
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], r14
lea rcx, [rsp + 0x38]
mov rdx, r15
call sym.libaes::aes_encrypt::h049d027b4c5c4928
lea rax, [rbp - 1]
cmp r14, rax
cmovb rax, r14
inc rax
cmp rax, 0x11
jae 0x140006a6b
xor eax, eax
jmp 0x140006aa0
mov ecx, eax
and ecx, 0xf
mov edx, 0x10
cmovne rdx, rcx
sub rax, rdx
xor ecx, ecx
nop
movups xmm0, xmmword [r12 + rcx]
movups xmm1, xmmword [rsi + rcx]
xorps xmm1, xmm0
movups xmmword [rsi + rcx], xmm1
add rcx, 0x10
cmp rax, rcx
jne 0x140006a80
nop dword [rax]
cmp r14, rax
je 0x140006af5
movzx ecx, byte [r12 + rax]
xor byte [rsi + rax], cl
lea rcx, [rax + 1]
mov rax, rcx
cmp rbp, rcx
jne 0x140006aa0
cmp byte [rsp + 0x28], 0
jne 0x140006ad1
mov r8d, 1
mov rcx, r12
mov rdx, r14
call sym.__rust_dealloc
mov rax, qword [rsp + 0x30]
mov qword [rbx], rax
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rdi
mov rax, rbx
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x1414da900]
mov rcx, r14
mov rdx, r14
call dbg.panic_bounds_check
jmp 0x140006b58
lea r8, [0x1414da8d0]
mov rcx, 0xfffffffffffffff0
xor edx, edx
call dbg.slice_index_order_fail
jmp 0x140006b58
lea r8, [0x1414da8d0]
mov rcx, r14
mov rdx, rbx
call dbg.slice_end_index_len_fail
jmp 0x140006b58
call dbg.capacity_overflow
ud2
mov rcx, r12
mov rdx, rdi
call dbg.handle_alloc_error
ud2
mov rbx, rdi
mov ecx, 1
mov rdx, r14
call dbg.handle_alloc_error
ud2