Function at 0x1d2190
Capabilities:
Accept command line arguments
Create process on windows
Get common file path
Get memory capacity
Get system information on windows

Disassembly:
sub esp, 0xf8
push ebx
push ebp
push esi
xorps xmm0, xmm0
push 0x1eb200
movlpd qword [esp + 0x2c], xmm0
movlpd qword [esp + 0x34], xmm0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x1d22b2
mov dword [esp + 0x10], eax
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0x40
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov eax, dword [esp + 0xa8]
mov ebx, eax
mov ecx, dword [esp + 0xac]
add ebx, 0xeb600000
mov ebp, ecx
mov dword [esp + 0x14], eax
adc ebp, 0xffffffff
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], ebp
test ebp, ebp
jb 0x1d222b
ja 0x1d221c
cmp ebx, 0x40000000
jbe 0x1d222b
mov ebx, 0x40000000
xor ebp, ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], ebp
push edi
push 2
push 0x2000
push 0x14a00000
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
xor esi, esi
mov dword [esp + 0x2c], eax
xor edi, edi
mov dword [esp + 0x24], 1
cmp dword [esp + 0x1c], esi
jb 0x1d2320
ja 0x1d2266
cmp dword [esp + 0x18], esi
jbe 0x1d2320
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
nop
push 0x1c
lea eax, [esp + 0x48]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
cmp dword [esp + 0x4c], 0
mov eax, dword [esp + 0x50]
jne 0x1d22a8
cmp dword [esp + 0x54], 0x10000
jne 0x1d22a8
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x1d22a8
cmp eax, edi
jbe 0x1d22a8
cmp ecx, 0x7d000000
cmovb edi, eax
test eax, eax
jne 0x1d2301
add esi, dword [esp + 0x64]
jmp 0x1d2303
push str.IsWow64Process
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
mov dword [esp + 0x10], 0
test esi, esi
je 0x1d21bf
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
test eax, eax
je 0x1d21bf
cmp dword [esp + 0x10], 0
je 0x1d21bf
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
jmp 0x1d21ca
add esi, eax
xor eax, eax
cmp eax, ebp
jb 0x1d2270
ja 0x1d2317
cmp esi, ebx
jb 0x1d2270
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
nop
cmp edi, 0x500000
jbe 0x1d2368
test ebp, ebp
jne 0x1d2330
test ebx, ebx
je 0x1d2368
add edi, 0xfff00000
test ebp, ebp
ja 0x1d2340
jb 0x1d2342
cmp ebx, edi
jb 0x1d2342
mov ebx, edi
push 2
push 0x2000
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], 2
mov dword [esp + 0x10], 0
jmp 0x1d2374
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0
push 0
call edi
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.001d2470
add esp, 4
mov ebp, eax
push ebp
push esi
call edi
push str.Empire.Retail.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
mov dword [esp + 0x28], 0
pop edi
test esi, esi
je 0x1d2443
push str.entry_point
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
push esi
mov ecx, eax
lea eax, [esp + 0x2c]
push eax
push 0
push dword [esp + 0x1c]
lea eax, [esp + 0x3c]
push ebx
push eax
mov eax, dword [esp + 0x3c]
inc eax
push eax
push dword [esp + 0x130]
push dword [esp + 0x130]
push dword [esp + 0x130]
call ecx
add esp, 0x2c
mov bl, al
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test bl, bl
je 0x1d2443
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xc4]
push eax
push ebp
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
push ebp
call fcn.001d2460
add esp, 4
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret 0x10