Function at 0x1401e1500
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov rax, qword [0x1403291e8]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rsi, qword [rsp + 0xe8]
mov rdi, r8
mov r8, qword [rsp + 0xe0]
mov r12d, r9d
mov qword [rsp + 0x38], r8
mov r15, rdx
mov rbx, rcx
test r9d, r9d
je 0x1401e1832
test rdi, rdi
jne 0x1401e1566
mov rax, qword [rsi]
lea rdx, str.NULL_passed_to_CBC_decryptor
mov rcx, rsi
call qword [rax + 0x28]
xor al, al
jmp 0x1401e1834
mov ecx, dword [rcx + 0xa8]
cmp ecx, 1
ja 0x1401e158c
mov rax, qword [rbx]
mov rcx, rbx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r8
mov r8, rdi
call qword [rax + 0x38]
jmp 0x1401e1834
xor edx, edx
mov eax, r12d
div ecx
test edx, edx
je 0x1401e15d6
mov rax, qword [rsi]
lea rdx, str.CBC_decrypt_input_not_a_multiple_of_the_cipher_block_size.
mov rcx, rsi
call qword [rax + 0x28]
mov r8d, r12d
lea rdx, str.inputLen
mov rcx, rsi
call fcn.1400a1850
mov r8d, dword [rbx + 0xa8]
lea rdx, str.cipherBlockSize
mov rcx, rsi
call fcn.1400a1850
xor al, al
jmp 0x1401e1834
movzx r13d, byte [0x14046da50]
xor edx, edx
mov eax, r12d
div ecx
mov rcx, r8
mov r14d, eax
call fcn.140091190
mov ebp, eax
add eax, r12d
mov r12, qword [rsp + 0x38]
mov rcx, r12
mov dword [rsp + 0x30], eax
lea edx, [rax + 0x20]
call fcn.140090970
test al, al
jne 0x1401e1624
mov rax, qword [rsi]
lea rdx, str.Unable_to_allocate_CBC_decrypt_output_buffer.
mov rcx, rsi
call qword [rax + 0x28]
xor al, al
jmp 0x1401e1834
mov edx, ebp
mov rcx, r12
call fcn.140090e30
mov rsi, rax
mov eax, dword [rbx + 0xa8]
test r13b, r13b
je 0x1401e172e
mov r8d, eax
lea rcx, [rsp + 0x48]
mov rdx, rdi
lea r12, [r15 + 8]
call sub.VCRUNTIME140.dll_memcpy
mov r9, qword [rbx]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x48]
mov rcx, rbx
call qword [r9 + 0x28]
mov ecx, dword [rbx + 0xa8]
xor ebp, ebp
mov edx, ebp
test ecx, ecx
je 0x1401e169a
nop word [rax + rax]
mov ecx, edx
inc edx
movzx eax, byte [rcx + r12]
xor al, byte [rsp + rcx + 0x58]
mov byte [rcx + rsi], al
mov ecx, dword [rbx + 0xa8]
cmp edx, ecx
jb 0x1401e1680
mov eax, ecx
add rsi, rax
lea r15, [rax + rdi]
add r14d, 0xffffffff
je 0x1401e170a
nop dword [rax]
mov r8d, ecx
mov rdx, r15
lea rcx, [rsp + 0x48]
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rbx]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x48]
mov rcx, rbx
call qword [rax + 0x28]
mov ecx, dword [rbx + 0xa8]
mov eax, ebp
test ecx, ecx
je 0x1401e16f9
nop
mov edx, eax
inc eax
movzx ecx, byte [rdx + rdi]
xor cl, byte [rsp + rdx + 0x58]
mov byte [rdx + rsi], cl
mov ecx, dword [rbx + 0xa8]
cmp eax, ecx
jb 0x1401e16e0
mov eax, ecx
mov rdi, r15
add r15, rax
add rsi, rax
add r14d, 0xffffffff
jne 0x1401e16b0
test ecx, ecx
je 0x1401e1724
nop
movzx eax, byte [rbp + rdi]
mov byte [rbp + r12], al
inc ebp
cmp ebp, dword [rbx + 0xa8]
jb 0x1401e1710
mov rcx, qword [rsp + 0x38]
jmp 0x1401e1829
cmp eax, 0x10
jne 0x1401e17c1
mov rax, qword [rbx]
lea r8, [rsp + 0x38]
mov rdx, rdi
mov rcx, rbx
call qword [rax + 0x28]
mov rax, qword [rsp + 0x38]
lea rbp, [rdi + 0x10]
xor rax, qword [r15 + 8]
mov qword [rsi], rax
mov rax, qword [rsp + 0x40]
xor rax, qword [r15 + 0x10]
mov qword [rsi + 8], rax
add rsi, 0x10
add r14d, 0xffffffff
je 0x1401e17b0
nop
mov rax, qword [rbx]
lea r8, [rsp + 0x38]
mov rdx, rbp
mov rcx, rbx
call qword [rax + 0x28]
mov rax, qword [rsp + 0x38]
lea rsi, [rsi + 0x10]
xor rax, qword [rdi]
mov qword [rsi - 0x10], rax
mov rax, qword [rsp + 0x40]
xor rax, qword [rdi + 8]
mov rdi, rbp
add rbp, 0x10
mov qword [rsi - 8], rax
add r14d, 0xffffffff
jne 0x1401e1770
nop dword [rax + rax]
mov rax, qword [rdi]
mov qword [r15 + 8], rax
mov rax, qword [rdi + 8]
mov qword [r15 + 0x10], rax
jmp 0x1401e1826
cmp eax, 8
jne 0x1401e1832
mov rax, qword [rbx]
lea r8, [rsp + 0x38]
mov rdx, rdi
mov rcx, rbx
call qword [rax + 0x28]
mov rax, qword [rsp + 0x38]
lea rbp, [rdi + 8]
xor rax, qword [r15 + 8]
mov qword [rsi], rax
add rsi, 8
add r14d, 0xffffffff
je 0x1401e181f
mov rax, qword [rbx]
lea r8, [rsp + 0x38]
mov rdx, rbp
mov rcx, rbx
call qword [rax + 0x28]
mov rax, qword [rsp + 0x38]
lea rsi, [rsi + 8]
xor rax, qword [rdi]
mov rdi, rbp
add rbp, 8
mov qword [rsi - 8], rax
add r14d, 0xffffffff
jne 0x1401e17f1
mov rax, qword [rdi]
mov qword [r15 + 8], rax
mov rcx, r12
mov edx, dword [rsp + 0x30]
call fcn.140092cb0
mov al, 1
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1401feaa0
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret