Function at 0x140109e90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x14039bc30]
xor rax, rsp
mov qword [rbp - 8], rax
mov r15, rcx
mov qword [rbp - 0x28], rcx
call fcn.140051f68
nop
lea rdi, [r15 + 0x80]
xor r12d, r12d
mov qword [rdi], r12
mov qword [rdi + 8], r12
mov qword [rdi + 0x10], r12
lea rbx, [r15 + 0x98]
mov qword [rbx], r12
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r12
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x20], r12
xor r9d, r9d
lea r8, [rbp - 0x10]
xor edx, edx
lea r14, [0x1403b0a68]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
test eax, eax
je 0x14010a18d
cmp dword [rbp - 0x10], r12d
je 0x140109f4a
mov qword [rbp - 0x38], r14
mov dword [rbp - 0x30], 4
call fcn.140030920
mov esi, eax
xor r8d, r8d
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_InitOnceComplete]
test eax, eax
je 0x14010a18d
test esi, esi
jne 0x14010a16c
mov byte [rsp + 0x20], 1
lea r9, [rbp - 0x20]
lea r8, [rbp - 0x18]
mov edx, 1
mov rcx, r15
call fcn.140051ff4
test eax, eax
jne 0x14010a16c
mov r14, qword [rdi + 8]
mov rdx, qword [rdi]
mov rcx, r14
sub rcx, rdx
mov rsi, qword [rbp - 0x18]
cmp rsi, rcx
jae 0x140109f8c
lea rax, [rdx + rsi]
mov qword [rdi + 8], rax
jmp 0x140109fc4
jbe 0x140109fc4
mov rax, qword [rdi + 0x10]
sub rax, rdx
cmp rsi, rax
jbe 0x140109fab
lea r8, [rbp - 0x40]
mov rdx, rsi
mov rcx, rdi
call fcn.1400534d4
jmp 0x140109fc4
sub rsi, rcx
je 0x140109fc0
mov r8, rsi
xor edx, edx
mov rcx, r14
call fcn.14013d7a0
add r14, rsi
mov qword [rdi + 8], r14
mov rdx, qword [rbx]
mov r14, qword [rbx + 8]
mov rcx, r14
sub rcx, rdx
mov rsi, qword [rbp - 0x20]
cmp rsi, rcx
jae 0x140109fe4
lea rax, [rdx + rsi]
mov qword [rbx + 8], rax
jmp 0x14010a01c
jbe 0x14010a01c
mov rax, qword [rbx + 0x10]
sub rax, rdx
cmp rsi, rax
jbe 0x14010a003
lea r8, [rbp - 0x40]
mov rdx, rsi
mov rcx, rbx
call fcn.1400534d4
jmp 0x14010a01c
sub rsi, rcx
je 0x14010a018
mov r8, rsi
xor edx, edx
mov rcx, r14
call fcn.14013d7a0
add r14, rsi
mov qword [rbx + 8], r14
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi]
mov r9, rcx
sub r9, rdx
cmp r9, 0x80
ja 0x14010a193
mov rax, rcx
sub rax, rdx
cmp r9, rax
jae 0x14010a045
mov qword [rdi + 8], rcx
mov r10, r12
test r9, r9
je 0x14010a083
lea rsi, [0x1402fb610]
mov r11d, 6
sub r11, rsi
nop dword [rax]
lea r8, [r10 + rsi]
lea rax, [r8 + r11]
xor edx, edx
div r9
movzx ecx, byte [rdx + rsi]
xor cl, byte [r8]
mov rax, qword [rdi]
mov byte [r10 + rax], cl
inc r10
cmp r10, r9
jb 0x14010a060
mov rcx, qword [rbx + 8]
mov rdx, qword [rbx]
mov r9, rcx
sub r9, rdx
cmp r9, 0x80
ja 0x14010a1b4
mov rax, rcx
sub rax, rdx
cmp r9, rax
jae 0x14010a0ac
mov qword [rbx + 8], rcx
mov r10, r12
test r9, r9
je 0x14010a0f3
lea rsi, [0x1402fb6b0]
mov r11d, 0x63
sub r11, rsi
nop dword [rax]
nop dword [rax + rax]
lea r8, [r10 + rsi]
lea rax, [r8 + r11]
xor edx, edx
div r9
movzx ecx, byte [rdx + rsi]
xor cl, byte [r8]
mov rax, qword [rbx]
mov byte [r10 + rax], cl
inc r10
cmp r10, r9
jb 0x14010a0d0
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x18], r12
lea rdx, [rbp - 0x20]
mov rcx, r15
call fcn.140052588
test eax, eax
jne 0x14010a144
lea rdx, [rbp - 0x18]
mov rcx, r15
call fcn.1400525f4
test eax, eax
jne 0x14010a144
mov rdx, qword [rdi]
mov rax, qword [rdi + 8]
sub rax, rdx
cmp qword [rbp - 0x20], rax
jne 0x14010a144
mov r8, qword [rbx]
mov rcx, qword [rbx + 8]
sub rcx, r8
cmp qword [rbp - 0x18], rcx
jne 0x14010a144
mov rcx, r15
call fcn.140052768
nop
mov rax, r15
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.14013af80
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
lea rdx, str.Failed_to_initialize_McCryptoLib
lea rcx, [rbp - 0x38]
call fcn.14003cbd0
lea rdx, [0x1403969d0]
lea rcx, [rbp - 0x38]
call fcn.14013d01c
int3
call fcn.140149e7c
int3
lea rdx, str.Requested_key_is_too_big
lea rcx, [rbp - 0x38]
call fcn.14003cbd0
lea rdx, [0x1403969d0]
lea rcx, [rbp - 0x38]
call fcn.14013d01c
int3
lea rdx, str.Requested_initialization_vector_is_too_big
lea rcx, [rbp - 0x38]
call fcn.14003cbd0
lea rdx, [0x1403969d0]
lea rcx, [rbp - 0x38]
call fcn.14013d01c
int3