Function at 0x1401a0540
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
xor esi, esi
mov dword [rbp - 0x39], 0x8c80
mov r10d, r9d
mov rax, r8
mov rbx, rcx
mov edi, esi
mov r12d, esi
mov r13d, esi
cmp qword [rdx], rsi
je 0x1401a07d2
mov r9, qword [rcx]
test r9, r9
je 0x1401a07d2
test rax, rax
je 0x1401a07d2
mov r15d, 0x80
cmp r10d, r15d
jne 0x1401a07d2
mov rax, qword [0x14045d6d8]
mov ecx, dword [rax]
sub r9, rcx
cmp dword [r9 + 8], esi
jne 0x1401a05d6
cmp qword [r9], rsi
je 0x1401a05d6
mov r14d, dword [rbx + 8]
add r14, qword [r9]
jne 0x1401a0628
mov ebx, 0x8007000e
jmp 0x1401a07d7
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x1401a05cc
movups xmm0, xmmword [rbx]
mov ebx, esi
mov rsi, rax
movdqu xmmword [rbp - 0x29], xmm0
mov r14d, dword [rbp - 0x21]
mov rcx, qword [rbp - 0x29]
lea edx, [r14 + rbx]
lea r8, [rbp - 0x59]
call fcn.14018d9f4
mov cl, byte [rbp - 0x59]
inc ebx
xor cl, byte [rax]
mov byte [rsi], cl
inc rsi
cmp ebx, r15d
jb 0x1401a0603
mov r14, rdi
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, 0x2760
xor edx, edx
mov rcx, rax
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov r8d, 0x8c80
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r15, rax
test rsi, rsi
je 0x1401a071e
test rax, rax
je 0x1401a071e
mov rcx, qword [0x14045d6d8]
and dword [rbp - 0x21], r12d
and dword [rbp - 0x11], r12d
mov qword [rbp - 0x19], rsi
mov edx, dword [rcx]
lea rcx, [rbp - 0x19]
add rcx, rdx
mov edx, ebx
mov qword [rbp - 0x29], rcx
lea rcx, [rbp - 0x49]
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x49], xmm0
call fcn.14019268c
mov ebx, eax
test eax, eax
js 0x1401a0728
lea rdx, [rbp - 0x39]
mov rcx, r15
call fcn.1401a0818
mov ebx, eax
test eax, eax
js 0x1401a0728
mov ecx, 0x614
call fcn.14018d6a4
mov r12, rax
test rax, rax
jne 0x1401a06d5
mov ebx, 0x8007000e
jmp 0x1401a0728
mov rdx, qword [rbp + 0x77]
lea rcx, [rbp - 9]
call fcn.1401af5a0
test eax, eax
je 0x1401a06ce
mov rax, qword [rbp + 0x6f]
lea r8, [rbp - 0x49]
mov qword [rsp + 0x30], r15
lea rdx, [rbp - 9]
mov qword [rsp + 0x28], rsi
lea r13, [rbp - 9]
mov r9, r14
mov rcx, r12
movups xmm0, xmmword [rax]
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x20], rax
movdqu xmmword [rbp - 0x49], xmm0
call fcn.14019cd3c
jmp 0x1401a0728
mov ebx, 0x8007000e
test rax, rax
je 0x1401a0771
mov rax, qword [0x14045d6d8]
and dword [rbp - 0x41], 0
mov edx, dword [rbp - 0x39]
and dword [rbp - 0x21], 0
mov ecx, dword [rax]
lea rax, [rbp - 0x29]
add rax, rcx
mov qword [rbp - 0x29], r15
mov qword [rbp - 0x49], rax
lea rcx, [rbp - 0x49]
movaps xmm0, xmmword [rbp - 0x49]
movdqa xmmword [rbp - 0x49], xmm0
call fcn.14019268c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test rsi, rsi
je 0x1401a07c1
mov rax, qword [0x14045d6d8]
mov edx, 0x2760
and dword [rbp - 0x41], 0
and dword [rbp - 0x21], 0
mov qword [rbp - 0x29], rsi
mov ecx, dword [rax]
lea rax, [rbp - 0x29]
add rax, rcx
lea rcx, [rbp - 0x49]
mov qword [rbp - 0x49], rax
movaps xmm0, xmmword [rbp - 0x49]
movdqa xmmword [rbp - 0x49], xmm0
call fcn.14019268c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r13, r13
je 0x1401a07d7
mov rcx, qword [r13 + 8]
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x1401a07d7
mov ebx, 0x80070057
mov rcx, r12
call fcn.14018d8f0
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
mov rbx, qword [rsp + 0x100]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret