Function at 0x14023b120
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 [0x14040f040]
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 0x14023b5ab
test r8, r8
jne 0x14023b183
mov rax, qword [r15]
lea rdx, str.NULL_passed_to_CBC_encryptor
mov rcx, r15
call qword [rax + 0x28]
xor al, al
jmp 0x14023b5ad
xor edx, edx
mov eax, r9d
div dword [rsi + 0xa8]
mov r12d, eax
test edx, edx
je 0x14023b1ac
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 0x14023b5ad
cmp byte [0x140549324], 0
mov edx, r9d
je 0x14023b50a
lea r13, [rdi + 8]
call fcn.14014b4a0
mov rdi, rax
test rax, rax
jne 0x14023b1e4
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 0x14023b5ad
mov r8d, dword [rsi + 0xa8]
xor r15d, r15d
mov edx, r15d
test r8d, r8d
je 0x14023b335
cmp r8d, 8
jb 0x14023b303
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 0x14023b226
cmp r9, r13
jae 0x14023b303
lea rax, [rcx + r14]
lea rcx, [rbp - 0x30]
cmp rcx, rax
ja 0x14023b23c
cmp r9, r14
jae 0x14023b303
cmp r8d, 0x40
jb 0x14023b2d3
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 0x14023b260
cmp r10d, 8
jb 0x14023b2fe
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 0x14023b2e0
cmp edx, r8d
jae 0x14023b335
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 0x14023b320
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 0x14023b4e5
nop
mov edx, r15d
test r8d, r8d
je 0x14023b4a5
cmp r8d, 8
jb 0x14023b472
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 0x14023b3a8
cmp r9, rbx
jae 0x14023b472
lea rax, [rcx + rdi]
lea rcx, [rbp - 0x30]
cmp rcx, rax
ja 0x14023b3be
cmp r9, rdi
jae 0x14023b472
cmp r8d, 0x40
jb 0x14023b44b
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 0x14023b3e0
cmp r9d, 8
jb 0x14023b46d
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 0x14023b451
cmp edx, r8d
jae 0x14023b4a5
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 0x14023b490
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 0x14023b370
test r8d, r8d
je 0x14023b59f
nop
movzx eax, byte [r15 + rdi]
mov byte [r15 + r13], al
inc r15d
cmp r15d, dword [rsi + 0xa8]
jb 0x14023b4f0
jmp 0x14023b59f
call fcn.14014b4a0
mov rbx, rax
test rax, rax
je 0x14023b1cd
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 0x14023b590
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 0x14023b550
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.140147180
mov al, 1
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140109210
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret