Function at 0x140243590
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 [0x14036a040]
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 0x1402438c2
test rdi, rdi
jne 0x1402435f6
mov rax, qword [rsi]
lea rdx, str.NULL_passed_to_CBC_decryptor
mov rcx, rsi
call qword [rax + 0x28]
xor al, al
jmp 0x1402438c4
mov ecx, dword [rcx + 0xa8]
cmp ecx, 1
ja 0x14024361c
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 0x1402438c4
xor edx, edx
mov eax, r12d
div ecx
test edx, edx
je 0x140243666
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.1400da3d0
mov r8d, dword [rbx + 0xa8]
lea rdx, str.cipherBlockSize
mov rcx, rsi
call fcn.1400da3d0
xor al, al
jmp 0x1402438c4
movzx r13d, byte [0x1403af1f0]
xor edx, edx
mov eax, r12d
div ecx
mov rcx, r8
mov r14d, eax
call fcn.1400c9940
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.1400c9120
test al, al
jne 0x1402436b4
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 0x1402438c4
mov edx, ebp
mov rcx, r12
call fcn.1400c95e0
mov rsi, rax
mov eax, dword [rbx + 0xa8]
test r13b, r13b
je 0x1402437be
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 0x14024372a
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 0x140243710
mov eax, ecx
add rsi, rax
lea r15, [rax + rdi]
add r14d, 0xffffffff
je 0x14024379a
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 0x140243789
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 0x140243770
mov eax, ecx
mov rdi, r15
add r15, rax
add rsi, rax
add r14d, 0xffffffff
jne 0x140243740
test ecx, ecx
je 0x1402437b4
nop
movzx eax, byte [rbp + rdi]
mov byte [rbp + r12], al
inc ebp
cmp ebp, dword [rbx + 0xa8]
jb 0x1402437a0
mov rcx, qword [rsp + 0x38]
jmp 0x1402438b9
cmp eax, 0x10
jne 0x140243851
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 0x140243840
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 0x140243800
nop dword [rax + rax]
mov rax, qword [rdi]
mov qword [r15 + 8], rax
mov rax, qword [rdi + 8]
mov qword [r15 + 0x10], rax
jmp 0x1402438b6
cmp eax, 8
jne 0x1402438c2
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 0x1402438af
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 0x140243881
mov rax, qword [rdi]
mov qword [r15 + 8], rax
mov rcx, r12
mov edx, dword [rsp + 0x30]
call fcn.1400cb5f0
mov al, 1
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14008b8a0
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret