Function at 0x1401019d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x140353c70]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r15, qword [rbp + 0x68]
mov rsi, rcx
mov rcx, qword [rbp + 0x60]
mov r14, r8
mov qword [rbp - 0x38], rcx
mov rdi, rdx
mov dword [rbp - 0x40], r9d
test r9d, r9d
je 0x140101e5b
test r8, r8
jne 0x140101a33
mov rax, qword [r15]
lea rdx, str.NULL_passed_to_CBC_encryptor
mov rcx, r15
call qword [rax + 0x28]
xor al, al
jmp 0x140101e5d
xor edx, edx
mov eax, r9d
div dword [rsi + 0xa8]
mov r12d, eax
test edx, edx
je 0x140101a5c
mov rax, qword [r15]
lea rdx, str.AES_CBC_input_not_a_multiple_of_the_cipher_block_size.
mov rcx, r15
call qword [rax + 0x28]
xor al, al
jmp 0x140101e5d
cmp byte [0x140357081], 0
mov edx, r9d
je 0x140101dba
lea r13, [rdi + 8]
call fcn.140042850
mov rdi, rax
test rax, rax
jne 0x140101a94
mov rax, qword [r15]
lea rdx, str.Unable_to_allocate_CBC_encrypt_output_buffer.
mov rcx, r15
call qword [rax + 0x28]
xor al, al
jmp 0x140101e5d
mov r8d, dword [rsi + 0xa8]
xor r15d, r15d
mov edx, r15d
test r8d, r8d
je 0x140101be5
cmp r8d, 8
jb 0x140101bb3
lea eax, [r8 - 1]
mov ecx, eax
lea r9, [rbp - 0x30]
add r9, rcx
lea r10, [rbp - 0x30]
add rax, r13
cmp r10, rax
ja 0x140101ad6
cmp r9, r13
jae 0x140101bb3
lea rax, [rcx + r14]
lea rcx, [rbp - 0x30]
cmp rcx, rax
ja 0x140101aec
cmp r9, r14
jae 0x140101bb3
cmp r8d, 0x40
jb 0x140101b83
mov r10d, r8d
mov r11d, r8d
and r10d, 0x3f
sub r11d, r10d
mov r9d, 0x20
nop dword [rax]
mov eax, edx
add edx, 0x40
movdqu xmm0, xmmword [rax + r13]
movdqu xmm1, xmmword [r14 + rax]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x30], xmm1
lea eax, [r9 - 0x10]
movdqu xmm0, xmmword [rax + r13]
movdqu xmm1, xmmword [rax + r14]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x30], xmm1
mov eax, r9d
movdqu xmm0, xmmword [rax + r13]
movdqu xmm1, xmmword [rax + r14]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x30], xmm1
lea eax, [r9 + 0x10]
add r9d, 0x40
movdqu xmm1, xmmword [rax + r14]
movdqu xmm0, xmmword [rax + r13]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x30], xmm1
cmp edx, r11d
jb 0x140101b10
cmp r10d, 8
jb 0x140101bae
mov ecx, r8d
and ecx, 0xfffffff8
nop dword [rax]
mov eax, edx
add edx, 8
movq xmm1, qword [rax + r14]
movq xmm0, qword [rax + r13]
xorps xmm1, xmm0
movq qword [rbp + rax - 0x30], xmm1
cmp edx, ecx
jb 0x140101b90
cmp edx, r8d
jae 0x140101be5
mov ecx, edx
lea r10, [rbp - 0x30]
mov r9, r14
add rcx, r13
sub r9, r13
sub r10, r13
sub r8d, edx
mov edx, r8d
nop dword [rax + rax]
movzx eax, byte [rcx + r9]
xor al, byte [rcx]
mov byte [r10 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140101bd0
mov rax, qword [rsi]
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x30]
mov rcx, rsi
call qword [rax + 0x20]
mov r8d, dword [rsi + 0xa8]
lea rdx, [rbp - 0x20]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov r8d, dword [rsi + 0xa8]
lea rbx, [r14 + r8]
add r12d, 0xffffffff
je 0x140101d95
nop
mov edx, r15d
test r8d, r8d
je 0x140101d55
cmp r8d, 8
jb 0x140101d22
lea eax, [r8 - 1]
mov ecx, eax
lea r9, [rbp - 0x30]
add r9, rcx
lea r10, [rbp - 0x30]
add rax, rbx
cmp r10, rax
ja 0x140101c58
cmp r9, rbx
jae 0x140101d22
lea rax, [rcx + rdi]
lea rcx, [rbp - 0x30]
cmp rcx, rax
ja 0x140101c6e
cmp r9, rdi
jae 0x140101d22
cmp r8d, 0x40
jb 0x140101cfb
mov r9d, r8d
mov r10d, r8d
and r9d, 0x3f
sub r10d, r9d
mov r11d, 0x20
nop dword [rax + rax]
mov eax, edx
add edx, 0x40
movdqu xmm0, xmmword [rax + rdi]
movdqu xmm1, xmmword [rbx + rax]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x30], xmm1
lea eax, [r11 - 0x10]
movdqu xmm0, xmmword [rax + rdi]
movdqu xmm1, xmmword [rbx + rax]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x30], xmm1
mov eax, r11d
movdqu xmm0, xmmword [rax + rdi]
movdqu xmm1, xmmword [rbx + rax]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x30], xmm1
lea eax, [r11 + 0x10]
add r11d, 0x40
movdqu xmm1, xmmword [rbx + rax]
movdqu xmm0, xmmword [rax + rdi]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x30], xmm1
cmp edx, r10d
jb 0x140101c90
cmp r9d, 8
jb 0x140101d1d
mov ecx, r8d
and ecx, 0xfffffff8
mov eax, edx
add edx, 8
movq xmm1, qword [rbx + rax]
movq xmm0, qword [rax + rdi]
xorps xmm1, xmm0
movq qword [rbp + rax - 0x30], xmm1
cmp edx, ecx
jb 0x140101d01
cmp edx, r8d
jae 0x140101d55
mov eax, edx
lea r10, [rbp - 0x30]
mov r9, rdi
add rax, rbx
sub r9, rbx
sub r10, rbx
mov ecx, r8d
sub ecx, edx
mov edx, ecx
nop dword [rax + rax]
movzx ecx, byte [rax + r9]
xor cl, byte [rax]
mov byte [r10 + rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x140101d40
mov eax, r8d
lea rdx, [rbp - 0x30]
add rdi, rax
lea r8, [rbp - 0x20]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x20]
mov r8d, dword [rsi + 0xa8]
lea rdx, [rbp - 0x20]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsi + 0xa8]
add rbx, rax
mov r8d, eax
add r12d, 0xffffffff
jne 0x140101c20
test r8d, r8d
je 0x140101e4f
nop
movzx eax, byte [r15 + rdi]
mov byte [r15 + r13], al
inc r15d
cmp r15d, dword [rsi + 0xa8]
jb 0x140101da0
jmp 0x140101e4f
call fcn.140042850
mov rbx, rax
test rax, rax
je 0x140101a7d
mov rax, qword [rdi + 8]
lea rdx, [rbp - 0x20]
xor rax, qword [r14]
mov r8, rbx
mov qword [rbp - 0x20], rax
mov rcx, rsi
mov rax, qword [rdi + 0x10]
xor rax, qword [r14 + 8]
mov qword [rbp - 0x18], rax
mov rax, qword [rsi]
call qword [rax + 0x20]
add r12d, 0xffffffff
je 0x140101e40
sub r14, rbx
nop dword [rax + rax]
mov rax, qword [r14 + rbx + 0x10]
lea rdx, [rbp - 0x20]
xor rax, qword [rbx]
mov rcx, rsi
mov qword [rbp - 0x20], rax
mov rax, qword [r14 + rbx + 0x18]
xor rax, qword [rbx + 8]
add rbx, 0x10
mov qword [rbp - 0x18], rax
mov r8, rbx
mov rax, qword [rsi]
call qword [rax + 0x20]
add r12d, 0xffffffff
jne 0x140101e00
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx]
mov qword [rdi + 8], rax
mov rax, qword [rbx + 8]
mov qword [rdi + 0x10], rax
mov edx, dword [rbp - 0x40]
mov rcx, qword [rbp - 0x38]
call fcn.14003e750
mov al, 1
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1402474e0
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret