Function at 0x1401969b4
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
xor edi, edi
mov rax, rdx
mov r14, rcx
cmp byte [rcx + 8], dil
jne 0x1401969f5
mov ebx, 0xc004d101
mov ecx, ebx
call fcn.140079c40
jmp 0x140196bd8
test rax, rax
jne 0x140196a03
mov ecx, 0x80070057
mov ebx, ecx
jmp 0x1401969eb
mov rax, qword [rcx]
mov r13d, dword [rbp + 0x68]
mov esi, dword [rax + 0x10]
lea eax, [r13 + 1]
add eax, esi
cmp r8d, eax
jb 0x1401969fa
mov r15d, r8d
mov dword [rbp + 0x48], esi
sub r15d, esi
dec r15d
mov dword [rbp + 0x70], r15d
lea eax, [r15 + rsi]
lea ebx, [rax + rax]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
jne 0x140196a52
mov ebx, 0x8007000e
jmp 0x1401969e9
mov edx, r15d
lea rcx, [rax + rsi]
add rcx, rdx
mov r12d, r15d
add r12, rsi
mov qword [rbp - 0x38], rcx
mov rcx, qword [r14]
lea r8, [rbp + 0x78]
add r12, rdx
mov dword [rbp + 0x78], r15d
mov rdx, rdi
mov r9, rdi
add r12, rdi
call fcn.140196538
mov ebx, eax
test eax, eax
jns 0x140196a8f
mov ecx, eax
jmp 0x1401969eb
mov rax, qword [r14]
mov ebx, dword [rbp + 0x58]
mov ecx, dword [rax + 0x10]
add ecx, ecx
sub ebx, ecx
sub ebx, r13d
sub ebx, 2
je 0x140196ab4
mov ecx, dword [rbp + 0x78]
xor edx, edx
add rcx, rdi
mov r8d, ebx
call sub.msvcrt.dll_memset
mov ecx, dword [rbp + 0x78]
mov r8, r13
mov rdx, qword [rbp + 0x60]
add ecx, ebx
mov byte [rcx + rdi], 1
inc ecx
add rcx, rdi
call sub.msvcrt.dll_memcpy
and dword [rbp - 0x28], 0
mov r13d, r15d
add r13, rdi
mov qword [rbp - 0x30], r13
jne 0x140196ae2
xor eax, eax
jmp 0x140196af2
mov rax, qword [0x140440198]
mov ecx, dword [rax]
lea rax, [rbp - 0x30]
add rax, rcx
and dword [rbp - 0x10], 0
lea rcx, [rbp - 0x18]
mov qword [rbp - 0x18], rax
mov edx, esi
movaps xmm0, xmmword [rbp - 0x18]
movdqa xmmword [rbp - 0x18], xmm0
call fcn.14018833c
mov ebx, eax
test eax, eax
js 0x140196a88
mov rcx, qword [r14]
lea r8, [rbp + 0x70]
mov dword [rsp + 0x28], r15d
mov r9, r13
mov dword [rsp + 0x20], esi
mov rsi, qword [rbp - 0x38]
mov rdx, rsi
call fcn.1401965e0
mov ebx, eax
test eax, eax
js 0x140196a88
test r15d, r15d
je 0x140196b5d
mov rcx, rdi
mov edx, r15d
sub rsi, rdi
mov al, byte [rsi + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140196b4f
mov rcx, qword [r14]
lea r8, [rbp + 0x48]
mov r9, rdi
mov rdx, r12
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r15d
call fcn.1401965e0
mov ebx, eax
test eax, eax
js 0x140196a88
mov esi, dword [rbp + 0x48]
test esi, esi
je 0x140196ba3
mov rcx, r12
sub r13, r12
mov edx, esi
mov al, byte [rcx + r13]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140196b94
lea eax, [rsi + r15]
cmp dword [rbp + 0x58], eax
jbe 0x1401969fa
mov r14, qword [rbp + 0x50]
mov r8, rsi
mov rdx, r12
lea rcx, [r14 + 1]
mov byte [r14], 0
call sub.msvcrt.dll_memcpy
lea ecx, [rsi + 1]
mov r8d, r15d
add rcx, r14
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov ecx, ebx
call fcn.140079c60
test rdi, rdi
je 0x140196bf8
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, ebx
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret