Function at 0x1401a1890
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x47]
sub rsp, 0x88
xor esi, esi
mov rax, rdx
mov r13, rcx
mov ebx, esi
cmp byte [rcx + 8], sil
jne 0x1401a18d7
mov esi, 0xc004d101
mov ecx, esi
call fcn.14007ac40
jmp 0x1401a1b0d
test rax, rax
jne 0x1401a18e5
mov ecx, 0x80070057
mov esi, ecx
jmp 0x1401a18cd
mov rax, qword [rcx]
mov r15d, dword [rax + 0x10]
mov eax, dword [rbp + 0x6f]
inc eax
add eax, r15d
cmp r8d, eax
jb 0x1401a18dc
mov r12d, r8d
mov dword [rbp + 0x4f], r15d
sub r12d, r15d
dec r12d
mov dword [rbp + 0x77], r12d
lea eax, [r12 + r15]
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 0x1401a1932
mov rbx, rsi
jmp 0x1401a193d
mov r14, rdi
mov rbx, rdi
test rdi, rdi
jne 0x1401a1944
mov esi, 0x8007000e
jmp 0x1401a18cb
mov edx, r12d
lea rcx, [r15 + r12]
mov qword [rbp - 0x39], rcx
lea r8, [rbp + 0x7f]
add rcx, r14
mov qword [rbp - 0x31], rdx
mov qword [rbp - 0x41], rcx
add rax, r12
mov ecx, r12d
mov r9, r14
add rcx, r14
mov qword [rbp - 0x51], rax
add rcx, r15
mov dword [rbp + 0x7f], r12d
add rcx, rdx
mov rdx, r14
mov qword [rbp - 0x49], rcx
mov rcx, qword [r13]
call fcn.1401a1418
mov esi, eax
test eax, eax
jns 0x1401a1995
mov ecx, eax
jmp 0x1401a18cd
mov rax, qword [r13]
mov ebx, dword [rbp + 0x5f]
mov esi, dword [rbp + 0x6f]
mov ecx, dword [rax + 0x10]
add ecx, ecx
sub ebx, ecx
sub ebx, esi
sub ebx, 2
je 0x1401a19bd
mov ecx, dword [rbp + 0x7f]
xor edx, edx
add rcx, r14
mov r8d, ebx
call sub.msvcrt.dll_memset
mov eax, dword [rbp + 0x7f]
mov r8, rsi
mov rdx, qword [rbp + 0x67]
add eax, ebx
mov dword [rbp + 0x7f], eax
mov byte [rax + rdi], 1
mov eax, dword [rbp + 0x7f]
inc eax
mov ecx, eax
add rcx, r14
mov dword [rbp + 0x7f], eax
call sub.msvcrt.dll_memcpy
mov rbx, qword [rbp - 0x51]
add dword [rbp + 0x7f], esi
and dword [rbp - 0x21], 0
mov qword [rbp - 0x29], rbx
test rbx, rbx
jne 0x1401a19fa
xor eax, eax
jmp 0x1401a1a0a
mov rax, qword [0x14045d6d8]
mov ecx, dword [rax]
lea rax, [rbp - 0x29]
add rax, rcx
and dword [rbp - 9], 0
lea rcx, [rbp - 0x11]
mov qword [rbp - 0x11], rax
mov edx, r15d
movaps xmm0, xmmword [rbp - 0x11]
movdqa xmmword [rbp - 0x11], xmm0
call fcn.14019269c
mov esi, eax
test eax, eax
jns 0x1401a1a3c
mov ecx, eax
call fcn.14007ac40
mov rbx, rdi
jmp 0x1401a1b0d
mov rdx, qword [rbp - 0x41]
lea r8, [rbp + 0x77]
mov rcx, qword [r13]
mov r9, rbx
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r15d
call fcn.1401a14f0
mov esi, eax
test eax, eax
js 0x1401a1a2d
mov rbx, rdi
test r12d, r12d
je 0x1401a1a81
mov r8, qword [rbp - 0x39]
mov rcx, r14
mov edx, r12d
mov al, byte [rcx + r8]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401a1a72
mov rcx, qword [r13]
lea r8, [rbp + 0x4f]
mov r15, qword [rbp - 0x49]
mov r9, r14
mov rdx, r15
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r12d
call fcn.1401a14f0
mov esi, eax
test eax, eax
js 0x1401a198e
mov edi, dword [rbp + 0x4f]
test edi, edi
je 0x1401a1ad5
sub qword [rbp - 0x51], r15
mov rcx, r15
mov r15, qword [rbp - 0x51]
mov edx, edi
mov al, byte [rcx + r15]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401a1ac2
mov r15, qword [rbp - 0x49]
lea eax, [rdi + r12]
cmp dword [rbp + 0x5f], eax
jbe 0x1401a18dc
mov r12, qword [rbp + 0x57]
mov r8, rdi
mov rdx, r15
lea rcx, [r12 + 1]
mov byte [r12], 0
call sub.msvcrt.dll_memcpy
mov r8, qword [rbp - 0x31]
lea ecx, [rdi + 1]
add rcx, r12
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov ecx, esi
call fcn.14007ace8
test rbx, rbx
je 0x1401a1b2d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret