Function at 0x140191cbc
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 0x140191cfd
mov ebx, 0xc004d101
mov ecx, ebx
call fcn.1400790f8
jmp 0x140191ee0
test rax, rax
jne 0x140191d0b
mov ecx, 0x80070057
mov ebx, ecx
jmp 0x140191cf3
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 0x140191d02
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 0x140191d5a
mov ebx, 0x8007000e
jmp 0x140191cf1
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.14019184c
mov ebx, eax
test eax, eax
jns 0x140191d97
mov ecx, eax
jmp 0x140191cf3
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 0x140191dbc
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 0x140191dea
xor eax, eax
jmp 0x140191dfa
mov rax, qword [0x14042f758]
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.140183898
mov ebx, eax
test eax, eax
js 0x140191d90
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.1401918f4
mov ebx, eax
test eax, eax
js 0x140191d90
test r15d, r15d
je 0x140191e65
mov rcx, rdi
mov edx, r15d
sub rsi, rdi
mov al, byte [rsi + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140191e57
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.1401918f4
mov ebx, eax
test eax, eax
js 0x140191d90
mov esi, dword [rbp + 0x48]
test esi, esi
je 0x140191eab
mov rcx, r12
sub r13, r12
mov edx, esi
mov al, byte [rcx + r13]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140191e9c
lea eax, [rsi + r15]
cmp dword [rbp + 0x58], eax
jbe 0x140191d02
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.140079118
test rdi, rdi
je 0x140191f00
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