Function at 0x14001ad50
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 r14, r9
mov r13, r8
mov r15, rdx
mov rbx, rcx
mov rsi, qword [rsp + 0xc8]
test rsi, rsi
je 0x14001add7
js 0x14001b02c
mov rax, qword [0x1400f2fa8]
movzx eax, byte [rax]
mov r12d, 1
mov edx, 1
mov rcx, rsi
call sym.__rust_alloc
test rax, rax
je 0x14001b02f
mov rdi, rax
mov r12, qword [rsp + 0xc0]
mov rcx, rax
mov rdx, r12
mov r8, rsi
call sym.memcpy
cmp rsi, 0x10
jae 0x14001adef
xor ebp, ebp
mov rax, rsi
sub rsi, rbp
ja 0x14001aee1
jmp 0x14001afe2
mov edi, 1
xor ebp, ebp
mov rax, rsi
sub rsi, rbp
ja 0x14001aee1
jmp 0x14001afe2
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], 0x10
lea rcx, [rsp + 0x30]
mov rdx, r15
call sym.libaes::aes_encrypt::ha6eedb2f3c908eb9
movups xmm0, xmmword [r12]
movups xmm1, xmmword [rdi]
xorps xmm1, xmm0
movups xmmword [rdi], xmm1
mov ebp, 0x10
cmp rsi, 0x20
jae 0x14001ae47
mov r14d, 0x10
mov r13, r12
mov rax, rsi
sub rsi, rbp
ja 0x14001aee1
jmp 0x14001afe2
mov qword [rsp + 0x28], rbx
mov rbx, rsi
mov esi, 0x10
lea r14, [rsp + 0x30]
nop dword [rax]
cmp rsi, 0xfffffffffffffff0
je 0x14001b015
lea rax, [r12 + rsi]
add rax, 0xfffffffffffffff0
lea r13, [rdi + rsi]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0x10
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], 0x10
mov rcx, r14
mov rdx, r15
call sym.libaes::aes_encrypt::ha6eedb2f3c908eb9
movups xmm0, xmmword [r12 + rsi]
movups xmm1, xmmword [r13]
xorps xmm1, xmm0
movups xmmword [r13], xmm1
lea rbp, [rsi + 0x10]
add rsi, 0x20
cmp rsi, rbx
mov rsi, rbp
jbe 0x14001ae60
lea r13, [r12 + rbp]
add r13, 0xfffffffffffffff0
mov r14d, 0x10
mov rsi, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rsi
sub rsi, rbp
jbe 0x14001afe2
mov qword [rsp + 0x28], rbx
mov rbx, rax
test r14, r14
je 0x14001af23
js 0x14001b03a
mov rax, qword [0x1400f2fa8]
movzx eax, byte [rax]
mov eax, 1
mov qword [rsp + 0x50], rax
mov edx, 1
mov rcx, r14
call sym.__rust_alloc
test rax, rax
je 0x14001b041
mov r12, rax
jmp 0x14001af29
mov r12d, 1
mov rcx, r12
mov rdx, r13
mov r8, r14
call sym.memcpy
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r14
lea rcx, [rsp + 0x30]
mov rdx, r15
call sym.libaes::aes_encrypt::ha6eedb2f3c908eb9
lea rax, [rdi + rbp]
not rbp
add rbp, rbx
cmp r14, rbp
cmovb rbp, r14
inc rbp
cmp rbp, 0x11
jae 0x14001af76
xor ebp, ebp
jmp 0x14001afb0
mov ecx, ebp
and ecx, 0xf
mov edx, 0x10
cmovne rdx, rcx
sub rbp, rdx
xor ecx, ecx
nop dword [rax]
movups xmm0, xmmword [r12 + rcx]
movups xmm1, xmmword [rax + rcx]
xorps xmm1, xmm0
movups xmmword [rax + rcx], xmm1
add rcx, 0x10
cmp rbp, rcx
jne 0x14001af90
nop dword [rax]
cmp r14, rbp
je 0x14001b001
movzx ecx, byte [r12 + rbp]
xor byte [rax + rbp], cl
lea rcx, [rbp + 1]
mov rbp, rcx
cmp rsi, rcx
jne 0x14001afb0
mov r8d, 1
mov rcx, r12
mov rdx, r14
call sym.__rust_dealloc
mov rax, rbx
mov rbx, qword [rsp + 0x28]
mov qword [rbx], rax
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rax
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, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
mov rcx, r14
mov rdx, r14
call sym.core::panicking::panic_bounds_check::hc59ada7dadd9fb7c
jmp 0x14001b04e
lea r8, str._home_f_.cargo_registry_src_index.crates.io_6f17d22bba15001f_libaes_0.7.0_src_lib.rs
mov rcx, 0xfffffffffffffff0
xor edx, edx
call sym.core::slice::index::slice_index_order_fail::hf943cfe51be07c4a
jmp 0x14001b04e
xor r12d, r12d
mov rcx, r12
mov rdx, rsi
call sym.alloc::raw_vec::handle_error::hb4a2c97b2f2cc7c5
xor eax, eax
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x50]
mov rdx, r14
call sym.alloc::raw_vec::handle_error::hb4a2c97b2f2cc7c5
ud2