Function at 0x180003f80
Capabilities:
Accept command line arguments
Get memory capacity
Identify system language via api
Read .ini file

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
cmp dword [rcx + 0x18], 0
mov rbx, rcx
jne 0x180004025
call fcn.180044dc8
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.18003eef0
mov edx, dword [rbx + 0x18]
mov rdi, rax
sub edx, 1
je 0x180004008
sub edx, 1
je 0x180003ff5
cmp edx, 1
jne 0x180004018
mov edx, 0x3ec0
mov rcx, rax
call fcn.1800057c0
mov qword [rbx + 0x10], rax
jmp 0x180004018
mov edx, 0x3ec0
mov rcx, rdi
call fcn.1800057c0
mov qword [rbx + 8], rax
jmp 0x180004018
mov edx, 0x3ec0
mov rcx, rdi
call fcn.1800057c0
mov qword [rbx], rax
mov edx, 1
mov rcx, rdi
call fcn.18003ee04
mov edx, dword [0x1800c9fa0]
xor esi, esi
cmp edx, 0x6536a269
jne 0x180004117
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_DdeInitializeW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CloseThreadpoolWait]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_CreateWindowStationW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetCommConfig]
mov r9d, dword [rsp + 0x40]
xor edx, edx
xor r8d, r8d
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_SendInput]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ShowCaret]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
call qword [sym.imp.USER32.dll_EndMenu]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetThreadPriorityBoost]
xor edx, edx
xor ecx, ecx
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_DeleteMenu]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetClassLongPtrW]
mov edx, dword [0x1800c9fa0]
mov ecx, dword [rbx + 0x18]
mov rdi, rsi
sub ecx, 1
je 0x180004138
sub ecx, 1
je 0x180004132
cmp ecx, 1
jne 0x18000413b
mov rdi, qword [rbx + 0x10]
jmp 0x18000413b
mov rdi, qword [rbx + 8]
jmp 0x18000413b
mov rdi, qword [rbx]
cmp edx, 0x9b183197
jne 0x18000421e
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetProcessAffinityMask]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindNextVolumeMountPointW]
call qword [sym.imp.USER32.dll_GetOpenClipboardWindow]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetComputerNameExW]
xor r9d, r9d
mov qword [rsp + 0x20], rsi
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
xor ecx, ecx
call qword [sym.imp.USER32.dll_UnloadKeyboardLayout]
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
xor ecx, ecx
call qword [sym.imp.USER32.dll_SetActiveWindow]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_EnumCalendarInfoExW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_IsBadStringPtrW]
xor r9d, r9d
mov qword [rsp + 0x20], rsi
lea r8, str.C9FLgi3cA7jy4jJp
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetStringTypeA]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
xor ecx, ecx
call qword [sym.imp.USER32.dll_SetProcessRestrictionExemption]
xor r9d, r9d
mov qword [rsp + 0x20], rsi
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_DdeConnectList]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CancelIo]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MapUserPhysicalPages]
mov rbx, qword [rsp + 0x48]
mov rax, rdi
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret