Function at 0x14012cc00
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 [0x1402c8b58]
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 0x14012d08b
test r8, r8
jne 0x14012cc63
mov rax, qword [r15]
lea rdx, str.NULL_passed_to_CBC_encryptor
mov rcx, r15
call qword [rax + 0x28]
xor al, al
jmp 0x14012d08d
xor edx, edx
mov eax, r9d
div dword [rsi + 0xa8]
mov r12d, eax
test edx, edx
je 0x14012cc8c
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 0x14012d08d
cmp byte [0x1402cb9e0], 0
mov edx, r9d
je 0x14012cfea
lea r13, [rdi + 8]
call fcn.140042cd0
mov rdi, rax
test rax, rax
jne 0x14012ccc4
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 0x14012d08d
mov r8d, dword [rsi + 0xa8]
xor r15d, r15d
mov edx, r15d
test r8d, r8d
je 0x14012ce15
cmp r8d, 8
jb 0x14012cde3
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 0x14012cd06
cmp r9, r13
jae 0x14012cde3
lea rax, [rcx + r14]
lea rcx, [rbp - 0x30]
cmp rcx, rax
ja 0x14012cd1c
cmp r9, r14
jae 0x14012cde3
cmp r8d, 0x40
jb 0x14012cdb3
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 0x14012cd40
cmp r10d, 8
jb 0x14012cdde
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 0x14012cdc0
cmp edx, r8d
jae 0x14012ce15
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 0x14012ce00
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 0x14012cfc5
nop
mov edx, r15d
test r8d, r8d
je 0x14012cf85
cmp r8d, 8
jb 0x14012cf52
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 0x14012ce88
cmp r9, rbx
jae 0x14012cf52
lea rax, [rcx + rdi]
lea rcx, [rbp - 0x30]
cmp rcx, rax
ja 0x14012ce9e
cmp r9, rdi
jae 0x14012cf52
cmp r8d, 0x40
jb 0x14012cf2b
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 0x14012cec0
cmp r9d, 8
jb 0x14012cf4d
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 0x14012cf31
cmp edx, r8d
jae 0x14012cf85
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 0x14012cf70
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 0x14012ce50
test r8d, r8d
je 0x14012d07f
nop
movzx eax, byte [r15 + rdi]
mov byte [r15 + r13], al
inc r15d
cmp r15d, dword [rsi + 0xa8]
jb 0x14012cfd0
jmp 0x14012d07f
call fcn.140042cd0
mov rbx, rax
test rax, rax
je 0x14012ccad
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 0x14012d070
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 0x14012d030
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.14003e9b0
mov al, 1
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1401e12d0
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret