Function at 0x180003ed0
Capabilities:
Accept command line arguments
Check for debugger via api
Enumerate gui resources
Manipulate console buffer
Set current directory
Set file attributes
Terminate process
Terminate thread

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x50
cmp dword [rcx + 0x18], 0
mov rbx, rcx
jne 0x180004007
call fcn.180047788
mov r9d, eax
mov eax, 0x55555556
imul r9d
mov r8d, edx
shr r8d, 0x1f
add edx, r8d
lea ecx, [rdx + rdx*2]
sub r9d, ecx
mov ecx, 1
inc r9d
mov dword [rbx + 0x18], r9d
call fcn.1800418b0
mov edx, dword [rbx + 0x18]
mov rdi, rax
sub edx, 1
je 0x180003fea
sub edx, 1
je 0x180003f4b
cmp edx, 1
jne 0x180003ffa
mov edx, 0x3ec0
mov rcx, rax
call fcn.1800055e0
mov qword [rbx + 0x10], rax
jmp 0x180003ffa
mov r8d, 0xfffed9b1
inc r8d
test r8b, 1
jne 0x180003f51
mov ecx, 0x3271
nop
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 0x180003f60
lea eax, [r8 - 0x330c]
sub ecx, 0x6937
test al, 1
je 0x180003f8e
inc eax
test al, 1
jne 0x180003f88
lea edx, [rax - 0x69bf]
mov eax, 0xffffe24f
add edx, ecx
sub eax, edx
sub edx, 0x1392
add ecx, eax
sub ecx, edx
lea eax, [rcx*2 + 0x6d44]
lea ecx, [rax*4]
lea eax, [rax*8]
cmp eax, 0x3e9790
jne 0x180003fde
cmp ecx, 0x1f4bc8
jne 0x180003fde
mov edx, 0x3ec0
mov rcx, rdi
call fcn.1800055e0
mov qword [rbx + 8], rax
jmp 0x180003ffa
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov edx, 0x3ec0
mov rcx, rdi
call fcn.1800055e0
mov qword [rbx], rax
mov edx, 1
mov rcx, rdi
call fcn.1800417c4
mov edx, dword [0x1800cbfa0]
mov qword [rsp + 0x60], rsi
xor esi, esi
cmp edx, 0x4a424256
jne 0x18000412a
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_IsDlgButtonChecked]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetCommTimeouts]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WriteConsoleInputW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GlobalReAlloc]
call qword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_UnionRect]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetProcessPreferredUILanguages]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_SetCaretPos]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetSystemFileCacheSize]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetProtectedPolicy]
xor r9d, r9d
mov qword [rsp + 0x20], rsi
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStructW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetNamedPipeClientSessionId]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeW]
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WaitForThreadpoolIoCallbacks]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CheckRemoteDebuggerPresent]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
call qword [sym.imp.USER32.dll_GetClipboardViewer]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeleteSynchronizationBarrier]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetPriorityClass]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DebugBreakProcess]
mov edx, dword [0x1800cbfa0]
mov ecx, dword [rbx + 0x18]
mov rdi, rsi
sub ecx, 1
je 0x18000414b
sub ecx, 1
je 0x180004145
cmp ecx, 1
jne 0x18000414e
mov rdi, qword [rbx + 0x10]
jmp 0x18000414e
mov rdi, qword [rbx + 8]
jmp 0x18000414e
mov rdi, qword [rbx]
cmp edx, 0x91bccb
jne 0x180004227
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetCurrentConsoleFontEx]
mov qword [rsp + 0x48], rsi
xor r9d, r9d
mov qword [rsp + 0x40], rsi
xor r8d, r8d
mov qword [rsp + 0x38], rsi
xor edx, edx
mov qword [rsp + 0x30], rsi
xor ecx, ecx
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_CreateFileTransactedW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_UnregisterHotKey]
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetMonitorInfoW]
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDynamicTimeZoneInformation]
xor r9d, r9d
mov qword [rsp + 0x20], rsi
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_EnumResourceLanguagesW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_lstrcatW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeleteSynchronizationBarrier]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_EnumResourceTypesW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_EndPaint]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDlgItemTextW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetThreadpoolThreadMinimum]
mov rsi, qword [rsp + 0x60]
mov rax, rdi
mov rbx, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret