Function at 0x14018e334
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 ebx, ebx
mov rax, rdx
mov r15, rcx
cmp byte [rcx + 8], bl
jne 0x14018e374
mov edi, 0xc004d101
mov ecx, edi
call fcn.140078308
jmp 0x14018e564
test rax, rax
jne 0x14018e382
mov ecx, 0x80070057
mov edi, ecx
jmp 0x14018e36a
mov rax, qword [rcx]
mov r12d, dword [rbp + 0x68]
mov esi, dword [rax + 0x10]
lea eax, [r12 + 1]
add eax, esi
cmp r8d, eax
jb 0x14018e379
mov r14d, r8d
mov dword [rbp + 0x48], esi
sub r14d, esi
dec r14d
mov dword [rbp + 0x70], r14d
lea ebx, [rsi + r14]
add ebx, esi
add ebx, r14d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x14018e3d4
mov edi, 0x8007000e
jmp 0x14018e368
mov edx, r14d
lea rcx, [rsi + r14]
add rcx, rbx
mov qword [rbp - 0x30], rdx
mov qword [rbp - 0x38], rcx
lea r8, [rbp + 0x78]
mov rcx, qword [r15]
mov r9, rbx
mov r13d, r14d
add r13, rsi
mov dword [rbp + 0x78], r14d
add r13, rdx
mov rdx, rbx
add r13, rbx
call fcn.14018dee0
mov edi, eax
test eax, eax
jns 0x14018e415
mov ecx, eax
jmp 0x14018e36a
mov rax, qword [r15]
mov edi, dword [rbp + 0x58]
mov ecx, dword [rax + 0x10]
add ecx, ecx
sub edi, ecx
sub edi, r12d
mov r12d, dword [rbp + 0x78]
sub edi, 2
je 0x14018e43c
mov r8d, edi
lea rcx, [rbx + r12]
xor edx, edx
call sub.msvcrt.dll_memset
mov r8d, dword [rbp + 0x68]
add r12d, edi
mov rdx, qword [rbp + 0x60]
lea ecx, [r12 + 1]
mov byte [r12 + rbx], 1
add rcx, rbx
call sub.msvcrt.dll_memcpy
and dword [rbp - 0x20], 0
mov r12d, r14d
add r12, rbx
mov qword [rbp - 0x28], r12
jne 0x14018e46d
xor eax, eax
jmp 0x14018e47d
mov rax, qword [0x140422958]
mov ecx, dword [rax]
lea rax, [rbp - 0x28]
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.14017ffa8
mov edi, eax
test eax, eax
js 0x14018e40e
mov rcx, qword [r15]
lea r8, [rbp + 0x70]
mov dword [rsp + 0x28], r14d
mov r9, r12
mov dword [rsp + 0x20], esi
mov rsi, qword [rbp - 0x38]
mov rdx, rsi
call fcn.14018df84
mov edi, eax
test eax, eax
js 0x14018e40e
test r14d, r14d
je 0x14018e4e8
mov rcx, rbx
mov edx, r14d
sub rsi, rbx
mov al, byte [rsi + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14018e4da
mov rcx, qword [r15]
lea r8, [rbp + 0x48]
mov r9, rbx
mov rdx, r13
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
call fcn.14018df84
mov edi, eax
test eax, eax
js 0x14018e40e
mov esi, dword [rbp + 0x48]
test esi, esi
je 0x14018e52e
mov rcx, r13
sub r12, r13
mov edx, esi
mov al, byte [r12 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14018e51f
lea eax, [rsi + r14]
cmp dword [rbp + 0x58], eax
jbe 0x14018e379
mov r14, qword [rbp + 0x50]
mov r8, rsi
mov rdx, r13
lea rcx, [r14 + 1]
mov byte [r14], 0
call sub.msvcrt.dll_memcpy
mov r8, qword [rbp - 0x30]
lea ecx, [rsi + 1]
add rcx, r14
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov ecx, edi
call fcn.140078324
test rbx, rbx
je 0x14018e584
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, edi
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret