Function at 0x1402d3cb0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0x88
mov rax, qword [0x14040f040]
xor rax, rsp
mov qword [rbp - 9], rax
mov rbx, qword [rbp + 0x7f]
mov r14, r8
mov r8, qword [rbp + 0x77]
mov r13d, r9d
mov qword [rbp - 0x41], r8
mov rdi, rdx
mov dword [rbp - 0x29], r9d
mov rsi, rcx
test r9d, r9d
je 0x1402d41dc
test r14, r14
jne 0x1402d3d18
mov rax, qword [rbx]
lea rdx, str.NULL_passed_to_CBC_encryptor
mov rcx, rbx
call qword [rax + 0x28]
xor al, al
jmp 0x1402d41de
mov ecx, dword [rcx + 0xa8]
cmp ecx, 1
ja 0x1402d3d3e
mov rax, qword [rsi]
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r8
mov r8, r14
call qword [rax + 0x30]
jmp 0x1402d41de
xor edx, edx
mov eax, r13d
div ecx
mov r15d, eax
test edx, edx
je 0x1402d3d63
mov rax, qword [rbx]
lea rdx, str.CBC_input_not_a_multiple_of_the_cipher_block_size.
mov rcx, rbx
call qword [rax + 0x28]
xor al, al
jmp 0x1402d41de
movzx r12d, byte [0x140549324]
mov rcx, r8
call fcn.14014b850
mov rcx, qword [rbp - 0x41]
lea edx, [r13 + 0x20]
add edx, eax
mov dword [rbp - 0x49], eax
call fcn.14014afd0
test al, al
jne 0x1402d3da0
mov rax, qword [rbx]
lea rdx, str.Unable_to_allocate_CBC_encrypt_output_buffer.
mov rcx, rbx
call qword [rax + 0x28]
xor al, al
jmp 0x1402d41de
mov edx, dword [rbp - 0x49]
mov rcx, qword [rbp - 0x41]
call fcn.14014b4f0
mov r8d, dword [rsi + 0xa8]
mov rbx, rax
test r12b, r12b
je 0x1402d40e0
xor r12d, r12d
lea r13, [rdi + 8]
mov edx, r12d
test r8d, r8d
je 0x1402d3f05
cmp r8d, 8
jb 0x1402d3ed3
lea eax, [r8 - 1]
mov ecx, eax
lea r9, [rbp - 0x39]
add r9, rcx
lea r10, [rbp - 0x39]
add rax, r13
cmp r10, rax
ja 0x1402d3dfe
cmp r9, r13
jae 0x1402d3ed3
lea rax, [rcx + r14]
lea rcx, [rbp - 0x39]
cmp rcx, rax
ja 0x1402d3e14
cmp r9, r14
jae 0x1402d3ed3
cmp r8d, 0x40
jb 0x1402d3ea4
mov r10d, r8d
mov r11d, r8d
and r10d, 0x3f
sub r11d, r10d
mov r9d, 0x20
mov eax, edx
add edx, 0x40
movdqu xmm0, xmmword [r14 + rax]
movdqu xmm1, xmmword [rax + r13]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x39], xmm1
lea eax, [r9 - 0x10]
movdqu xmm0, xmmword [rax + r14]
movdqu xmm1, xmmword [rax + r13]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x39], xmm1
mov eax, r9d
movdqu xmm0, xmmword [rax + r14]
movdqu xmm1, xmmword [rax + r13]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x39], xmm1
lea eax, [r9 + 0x10]
add r9d, 0x40
movdqu xmm1, xmmword [rax + r13]
movdqu xmm0, xmmword [rax + r14]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x39], xmm1
cmp edx, r11d
jb 0x1402d3e31
cmp r10d, 8
jb 0x1402d3ece
mov ecx, r8d
and ecx, 0xfffffff8
nop word [rax + rax]
mov eax, edx
add edx, 8
movq xmm1, qword [rax + r13]
movq xmm0, qword [rax + r14]
xorps xmm1, xmm0
movq qword [rbp + rax - 0x39], xmm1
cmp edx, ecx
jb 0x1402d3eb0
cmp edx, r8d
jae 0x1402d3f05
mov ecx, edx
lea r10, [rbp - 0x39]
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 0x1402d3ef0
mov rax, qword [rsi]
lea r8, [rbp - 0x19]
lea rdx, [rbp - 0x39]
mov rcx, rsi
call qword [rax + 0x20]
mov r8d, dword [rsi + 0xa8]
lea rdx, [rbp - 0x19]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r8d, dword [rsi + 0xa8]
lea rdi, [r14 + r8]
add r15d, 0xffffffff
je 0x1402d40b5
nop
mov edx, r12d
test r8d, r8d
je 0x1402d4075
cmp r8d, 8
jb 0x1402d4042
lea eax, [r8 - 1]
mov ecx, eax
lea r9, [rbp - 0x39]
add r9, rcx
lea r10, [rbp - 0x39]
add rax, rdi
cmp r10, rax
ja 0x1402d3f78
cmp r9, rdi
jae 0x1402d4042
lea rax, [rcx + rbx]
lea rcx, [rbp - 0x39]
cmp rcx, rax
ja 0x1402d3f8e
cmp r9, rbx
jae 0x1402d4042
cmp r8d, 0x40
jb 0x1402d401b
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 + rbx]
movdqu xmm1, xmmword [rdi + rax]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x39], xmm1
lea eax, [r11 - 0x10]
movdqu xmm0, xmmword [rax + rbx]
movdqu xmm1, xmmword [rdi + rax]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x39], xmm1
mov eax, r11d
movdqu xmm0, xmmword [rax + rbx]
movdqu xmm1, xmmword [rdi + rax]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x39], xmm1
lea eax, [r11 + 0x10]
add r11d, 0x40
movdqu xmm1, xmmword [rdi + rax]
movdqu xmm0, xmmword [rax + rbx]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x39], xmm1
cmp edx, r10d
jb 0x1402d3fb0
cmp r9d, 8
jb 0x1402d403d
mov ecx, r8d
and ecx, 0xfffffff8
mov eax, edx
add edx, 8
movq xmm1, qword [rdi + rax]
movq xmm0, qword [rax + rbx]
xorps xmm1, xmm0
movq qword [rbp + rax - 0x39], xmm1
cmp edx, ecx
jb 0x1402d4021
cmp edx, r8d
jae 0x1402d4075
mov ecx, edx
lea r10, [rbp - 0x39]
mov r9, rbx
add rcx, rdi
sub r9, rdi
sub r10, rdi
mov eax, r8d
sub eax, edx
mov edx, eax
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 0x1402d4060
mov eax, r8d
lea rdx, [rbp - 0x39]
add rbx, rax
lea r8, [rbp - 0x19]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x20]
mov r8d, dword [rsi + 0xa8]
lea rdx, [rbp - 0x19]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsi + 0xa8]
add rdi, rax
mov r8d, eax
add r15d, 0xffffffff
jne 0x1402d3f40
test r8d, r8d
je 0x1402d40d5
nop word [rax + rax]
movzx eax, byte [r12 + rbx]
mov byte [r12 + r13], al
inc r12d
cmp r12d, dword [rsi + 0xa8]
jb 0x1402d40c0
mov edx, dword [rbp - 0x29]
add edx, dword [rbp - 0x49]
jmp 0x1402d41d3
cmp r8d, 0x10
jne 0x1402d4171
mov rax, qword [rdi + 8]
lea rdx, [rbp - 0x29]
xor rax, qword [r14]
mov r8, rbx
mov qword [rbp - 0x29], rax
mov rcx, rsi
mov rax, qword [r14 + 8]
xor rax, qword [rdi + 0x10]
mov qword [rbp - 0x21], rax
mov rax, qword [rsi]
call qword [rax + 0x20]
add r15d, 0xffffffff
je 0x1402d4160
sub r14, rbx
nop word [rax + rax]
mov rax, qword [rbx]
lea rdx, [rbp - 0x29]
xor rax, qword [r14 + rbx + 0x10]
mov rcx, rsi
mov qword [rbp - 0x29], rax
mov rax, qword [r14 + rbx + 0x18]
xor rax, qword [rbx + 8]
add rbx, 0x10
mov qword [rbp - 0x21], rax
mov r8, rbx
mov rax, qword [rsi]
call qword [rax + 0x20]
add r15d, 0xffffffff
jne 0x1402d4120
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
jmp 0x1402d41cd
cmp r8d, 8
jne 0x1402d41dc
mov rax, qword [rdi + 8]
lea rdx, [rbp - 0x29]
xor rax, qword [r14]
mov r8, rbx
mov qword [rbp - 0x29], rax
mov rcx, rsi
mov rax, qword [rsi]
call qword [rax + 0x20]
add r15d, 0xffffffff
je 0x1402d41c6
sub r14, rbx
nop dword [rax + rax]
mov rax, qword [r14 + rbx + 8]
lea rdx, [rbp - 0x29]
xor rax, qword [rbx]
mov rcx, rsi
mov qword [rbp - 0x29], rax
add rbx, 8
mov rax, qword [rsi]
mov r8, rbx
call qword [rax + 0x20]
add r15d, 0xffffffff
jne 0x1402d41a0
mov rax, qword [rbx]
mov qword [rdi + 8], rax
mov edx, dword [rbp - 0x49]
add edx, r13d
mov rcx, qword [rbp - 0x41]
call fcn.14014d590
mov al, 1
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.140109210
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret