Function at 0x180009ef0
Capabilities:
Create directory
Create process on windows
Enumerate gui resources
Get common file path
Manipulate console buffer
Read file on windows
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
cmp edx, 1
jne 0x18000a3f7
lea rax, [0x180009310]
add rax, 0x130
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0x130
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0x30]
call fcn.18000f100
lea rax, [0x180009ae0]
add rax, 0x184
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0x184
xor eax, eax
mov word [rsp + 0x40], ax
mov byte [rsp + 0x42], al
xor edi, edi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov ecx, 0x10
call fcn.1800722f8
mov qword [rax + 8], rdi
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x48]
mov qword [rax], rcx
mov word [rsp + 0x78], di
mov qword [rsp + 0x7e], rdi
mov qword [rbp - 0x7a], rdi
xor eax, eax
mov word [rsp + 0x7b], ax
mov byte [rsp + 0x7d], al
mov word [rsp + 0x7e], ax
mov byte [rbp - 0x80], al
mov word [rbp - 0x7f], ax
mov byte [rbp - 0x7d], al
mov word [rbp - 0x7c], ax
mov byte [rbp - 0x7a], al
mov word [rbp - 0x79], ax
mov byte [rbp - 0x77], al
mov word [rbp - 0x76], ax
mov byte [rbp - 0x74], al
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x74], edi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.180012090
nop
lea rcx, [rsp + 0x48]
call fcn.180016870
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rdi
mov edx, 0x10
call fcn.18007220c
xor ecx, ecx
call fcn.18007f040
mov ecx, eax
call fcn.18007bb48
lea rbx, [0x180009850]
lea rax, [rbx + 0x1c0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0x1c0
xor eax, eax
mov word [rsp + 0x40], ax
mov byte [rsp + 0x42], al
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov ecx, 0x10
call fcn.1800722f8
mov qword [rax + 8], rdi
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x48]
mov qword [rax], rcx
mov word [rsp + 0x78], di
mov qword [rsp + 0x7e], rdi
mov qword [rbp - 0x7a], rdi
xor eax, eax
mov word [rsp + 0x7b], ax
mov byte [rsp + 0x7d], al
mov word [rsp + 0x7e], ax
mov byte [rbp - 0x80], al
mov word [rbp - 0x7f], ax
mov byte [rbp - 0x7d], al
mov word [rbp - 0x7c], ax
mov byte [rbp - 0x7a], al
mov word [rbp - 0x79], ax
mov byte [rbp - 0x77], al
mov word [rbp - 0x76], ax
mov byte [rbp - 0x74], al
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x74], edi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea r8, [rbp]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.180011e60
nop
lea rcx, [rsp + 0x48]
call fcn.180016870
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rdi
mov edx, 0x10
call fcn.18007220c
add rbx, 0x1c6
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x38], 0x1c6
xor eax, eax
mov word [rsp + 0x40], ax
mov byte [rsp + 0x42], al
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov ecx, 0x10
call fcn.1800722f8
mov qword [rax + 8], rdi
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x48]
mov qword [rax], rcx
mov word [rsp + 0x78], di
mov qword [rsp + 0x7e], rdi
mov qword [rbp - 0x7a], rdi
xor eax, eax
mov word [rsp + 0x7b], ax
mov byte [rsp + 0x7d], al
mov word [rsp + 0x7e], ax
mov byte [rbp - 0x80], al
mov word [rbp - 0x7f], ax
mov byte [rbp - 0x7d], al
mov word [rbp - 0x7c], ax
mov byte [rbp - 0x7a], al
mov word [rbp - 0x79], ax
mov byte [rbp - 0x77], al
mov word [rbp - 0x76], ax
mov byte [rbp - 0x74], al
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x74], edi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea r8, [rbp - 0x70]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.180011e60
nop
lea rcx, [rsp + 0x48]
call fcn.180016870
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rdi
mov edx, 0x10
call fcn.18007220c
lea rax, [0x180009940]
add rax, 0x1b0
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0x1b0
xor eax, eax
mov word [rsp + 0x40], ax
mov byte [rsp + 0x42], al
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov ecx, 0x10
call fcn.1800722f8
mov qword [rax + 8], rdi
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x48]
mov qword [rax], rcx
mov word [rsp + 0x78], di
mov qword [rsp + 0x7e], rdi
mov qword [rbp - 0x7a], rdi
xor eax, eax
mov word [rsp + 0x7b], ax
mov byte [rsp + 0x7d], al
mov word [rsp + 0x7e], ax
mov byte [rbp - 0x80], al
mov word [rbp - 0x7f], ax
mov byte [rbp - 0x7d], al
mov word [rbp - 0x7c], ax
mov byte [rbp - 0x7a], al
mov word [rbp - 0x79], ax
mov byte [rbp - 0x77], al
mov word [rbp - 0x76], ax
mov byte [rbp - 0x74], al
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x74], edi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea rax, [rbp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x70]
lea r8, [rbp]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.180011c20
nop
lea rcx, [rsp + 0x48]
call fcn.180016870
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rdi
mov edx, 0x10
call fcn.18007220c
lea rax, [0x180003af0]
add rax, 0x214
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0x214
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0x30]
call fcn.18000f100
cmp dword [0x1800fe978], 0xf3577f84
jne 0x18000a3dd
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindFirstChangeNotificationW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Wow64GetThreadSelectorEntry]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetNumaNodeProcessorMask]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
mov qword [rsp + 0x20], rdi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ReadFileEx]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_EscapeCommFunction]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_InitializeSRWLock]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_RtlPcToFileHeader]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_BuildCommDCBAndTimeoutsW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WriteConsoleInputW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Wow64SetThreadContext]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, 1
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret
cmp edx, 2
je 0x18000a3dd
cmp edx, 3
jne 0x18000a4fd
cmp dword [0x1800fe978], 0x6edc6906
jne 0x18000a3dd
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WaitForThreadpoolTimerCallbacks]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryTransactedW]
xor edx, edx
lea rcx, [0x180117098]
call qword [sym.imp.KERNEL32.dll_WinExec]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetFileShortNameW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetConsoleAliasExesW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_EnumLanguageGroupLocalesW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FatalExit]
test edx, edx
jne 0x18000a3dd
mov ecx, 0x1409b
nop word [rax + rax]
inc ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea edx, [rdx + rdx*2]
cmp ecx, edx
jne 0x18000a510
cmp ecx, 0x1409d
je 0x18000a3dd
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_ExitProcess]