Function at 0x1401b3f40
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 [0x1402b87c0]
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 0x1401b4272
test rdi, rdi
jne 0x1401b3fa6
mov rax, qword [rsi]
lea rdx, str.NULL_passed_to_CBC_decryptor
mov rcx, rsi
call qword [rax + 0x28]
xor al, al
jmp 0x1401b4274
mov ecx, dword [rcx + 0xa8]
cmp ecx, 1
ja 0x1401b3fcc
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 0x1401b4274
xor edx, edx
mov eax, r12d
div ecx
test edx, edx
je 0x1401b4016
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.14004fab0
mov r8d, dword [rbx + 0xa8]
lea rdx, str.cipherBlockSize
mov rcx, rsi
call fcn.14004fab0
xor al, al
jmp 0x1401b4274
movzx r13d, byte [0x1402bb550]
xor edx, edx
mov eax, r12d
div ecx
mov rcx, r8
mov r14d, eax
call fcn.14003f010
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.14003e7f0
test al, al
jne 0x1401b4064
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 0x1401b4274
mov edx, ebp
mov rcx, r12
call fcn.14003ecb0
mov rsi, rax
mov eax, dword [rbx + 0xa8]
test r13b, r13b
je 0x1401b416e
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 0x1401b40da
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 0x1401b40c0
mov eax, ecx
add rsi, rax
lea r15, [rax + rdi]
add r14d, 0xffffffff
je 0x1401b414a
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 0x1401b4139
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 0x1401b4120
mov eax, ecx
mov rdi, r15
add r15, rax
add rsi, rax
add r14d, 0xffffffff
jne 0x1401b40f0
test ecx, ecx
je 0x1401b4164
nop
movzx eax, byte [rbp + rdi]
mov byte [rbp + r12], al
inc ebp
cmp ebp, dword [rbx + 0xa8]
jb 0x1401b4150
mov rcx, qword [rsp + 0x38]
jmp 0x1401b4269
cmp eax, 0x10
jne 0x1401b4201
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 0x1401b41f0
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 0x1401b41b0
nop dword [rax + rax]
mov rax, qword [rdi]
mov qword [r15 + 8], rax
mov rax, qword [rdi + 8]
mov qword [r15 + 0x10], rax
jmp 0x1401b4266
cmp eax, 8
jne 0x1401b4272
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 0x1401b425f
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 0x1401b4231
mov rax, qword [rdi]
mov qword [r15 + 8], rax
mov rcx, r12
mov edx, dword [rsp + 0x30]
call fcn.140040cc0
mov al, 1
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1401d42a0
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret