Function at 0x180077c40
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Spawn thread to rwx shellcode
Terminate process

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rax, qword [0x18016f040]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbx, rcx
cmp edx, 1
jne 0x180077e7a
lea rax, [rsp + 0x30]
mov rdx, rcx
xor ebp, ebp
mov qword [rsp + 0x20], rax
mov rcx, 0xffffffffffffffff
mov dword [rsp + 0x30], ebp
mov r9d, 4
mov r8d, 0x40
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x180077cbc
mov qword [rbx], rbp
mov qword [rbx + 8], rbp
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rbp
mov qword [rbx + 0x20], rbp
mov qword [rbx + 0x28], rbp
mov qword [rbx + 0x30], rbp
mov qword [rbx + 0x38], rbp
test rbx, rbx
je 0x180077d2f
lea rax, [rsp + 0x30]
mov r9d, 4
mov r8d, 0x108
mov qword [rsp + 0x20], rax
mov rdx, rbx
mov rcx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x180077d2f
mov rax, rbx
xorps xmm0, xmm0
xor edx, edx
mov ecx, 2
nop dword [rax + rax]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmmword [rax - 0x10], xmm0
sub rcx, 1
jne 0x180077d00
mov qword [rax], rdx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
lea rcx, str.tier0_s64.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r8, rax
test rax, rax
je 0x180077e00
movsxd rax, dword [rax + 0x3c]
lea rdi, str.48_89_5C_24___48_89_6C_24___48_89_74_24___57_48_83_EC_30
mov r11, rbp
mov esi, dword [rax + r8 + 0x50]
add rsi, 0xfffffffffffff000
add rsi, r8
add r8, 0x1000
cmp r8, rsi
jae 0x180077e00
mov r14d, 0x37
movzx r9d, byte [rdi]
cmp r9b, 0x3f
je 0x180077dd4
lea eax, [r9 - 0x30]
cmp al, 9
ja 0x180077d9c
movzx r10d, r9b
jmp 0x180077da0
lea r10d, [r9 - 0x37]
movzx edx, byte [rdi + 1]
mov ecx, 0x30
lea eax, [rdx - 0x30]
cmp al, 9
cmova ecx, r14d
shl r10b, 4
sub dl, cl
or dl, r10b
cmp byte [r8], dl
je 0x180077dd4
test r11, r11
je 0x180077df8
mov r8, r11
lea rdi, str.48_89_5C_24___48_89_6C_24___48_89_74_24___57_48_83_EC_30
mov r11, rbp
jmp 0x180077df8
test r11, r11
mov rax, r8
cmovne rax, r11
cmp r9b, 0x3f
mov r11, rax
mov rax, rbp
setne al
add rax, 2
add rdi, rax
cmp byte [rdi - 1], bpl
je 0x180077e2c
inc r8
cmp r8, rsi
jb 0x180077d84
mov qword [0x18021d118], rbp
mov r9d, 0x10
lea r8, str.Error
lea rdx, str.CST_not_found.
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov qword [0x18021d118], r11
test r11, r11
je 0x180077e07
xor r9d, r9d
lea rcx, [0x180077240]
xor r8d, r8d
xor edx, edx
call r11
mov r9, rbx
mov qword [rsp + 0x28], rbp
lea r8, [0x180077700]
mov dword [rsp + 0x20], ebp
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x180077e7a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1800e9b60
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret