Function at 0x4013c0
Capabilities:
Check mutex on windows
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x1d4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x3c], str.Red_Alert_2_launcher
mov dword [ebp - 0x5c], 0x401b10
mov dword [ebp - 0x60], 8
mov dword [ebp - 0x64], 0x30
sub esp, 8
push 0x7f00
push 0
call sub.USER32.dll_LoadIconA
add esp, 8
mov dword [ebp - 0x4c], eax
sub esp, 8
push 0x7f00
push 0
call sub.USER32.dll_LoadIconA
add esp, 8
mov dword [ebp - 0x38], eax
sub esp, 8
push 0x7f00
push 0
call sub.USER32.dll_LoadCursorA
add esp, 8
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x44], 1
sub esp, 0xc
lea eax, [ebp - 0x64]
push eax
call sub.USER32.dll_RegisterClassExA
add esp, 0xc
test ax, ax
jne 0x40146a
mov dword [ebp - 0x1d8], 0
jmp 0x40170e
sub esp, 0xc
push 1
call sub.USER32.dll_GetSystemMetrics
add esp, 0xc
mov ebx, eax
sub esp, 0xc
push 0
call sub.USER32.dll_GetSystemMetrics
add esp, 0xc
push 0
push dword [ebp + 8]
push 0
push 0
push ebx
push eax
push 0x80000000
push 0x80000000
push 0x80000000
push str.Red_Alert_2_launcher
push str.Red_Alert_2_launcher
push 8
call sub.USER32.dll_CreateWindowExA
mov dword [ebp - 0x18], eax
sub esp, 4
push str.48BC11BD_C4D7_466b_8A31_C6ABBAD47B3E
push 0
push 0
call sub.KERNEL32.dll_CreateMutexA
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x18], 0
je 0x401704
cmp dword [ebp - 0x14], 0
je 0x401704
call sub.KERNEL32.dll_GetLastError
cmp eax, 0xb7
je 0x401704
mov dword [ebp - 0x170], 0xc
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 1
sub esp, 8
push 0x403085
push str.conquer.dat
call sub.msvcrt.dll_fopen
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x401704
sub esp, 4
push 2
push 0
push dword [ebp - 0xc]
call sub.msvcrt.dll_fseek
add esp, 0x10
test eax, eax
je 0x40154e
mov dword [ebp - 8], 0xffffffff
jmp 0x40155f
sub esp, 0xc
push dword [ebp - 0xc]
call sub.msvcrt.dll_ftell
add esp, 0x10
mov dword [ebp - 8], eax
sub esp, 0xc
push dword [ebp - 0xc]
call sub.msvcrt.dll_fclose
add esp, 0x10
cmp dword [ebp - 8], 0xffffffff
je 0x401704
mov eax, dword [ebp - 8]
sub esp, 8
push 0
push eax
push 0
push 4
lea eax, [ebp - 0x170]
push eax
push 0xffffffffffffffff
call sub.KERNEL32.dll_CreateFileMappingA
add esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4015bf
call sub.KERNEL32.dll_GetLastError
cmp eax, 0xb7
jne 0x4015bf
sub esp, 0xc
push dword [ebp - 0x10]
call sub.KERNEL32.dll_CloseHandle
add esp, 0xc
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 0
je 0x401704
sub esp, 4
push 0x44
push 0
lea eax, [ebp - 0x1c8]
push eax
call sub.msvcrt.dll_memset
add esp, 0x10
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x1c8], 0x44
mov dword [ebp - 0x174], 0
cmp dword [ebp + 0x10], 0
je 0x401633
sub esp, 4
push dword [ebp + 0x10]
push str.Game.exe__s
lea eax, [ebp - 0x163]
push eax
call sub.msvcrt.dll_sprintf
add esp, 0x10
jmp 0x40164c
sub esp, 4
push 9
push str.Game.exe
lea eax, [ebp - 0x163]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
sub esp, 8
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x1c8]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
lea eax, [ebp - 0x163]
push eax
push 0
call sub.KERNEL32.dll_CreateProcessA
add esp, 8
test eax, eax
je 0x401704
push str.D6E7FC97_64F9_4d28_B52C_754EDF721C6F
push 0
push 0
push 0
call sub.KERNEL32.dll_CreateEventA
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
test eax, eax
je 0x401704
call sub.KERNEL32.dll_GetLastError
cmp eax, 0xb7
je 0x401704
push 0x493e0
push 0
lea eax, [ebp - 0x184]
push eax
push 2
call sub.KERNEL32.dll_WaitForMultipleObjects
test eax, eax
jne 0x4016de
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x174]
push eax
push 0
push 0xbeef
push edx
call sub.USER32.dll_PostThreadMessageA
mov eax, dword [ebp - 0x184]
sub esp, 0xc
push eax
call sub.KERNEL32.dll_CloseHandle
add esp, 0xc
mov eax, dword [ebp - 0x180]
sub esp, 8
push 0xffffffffffffffff
push eax
call sub.KERNEL32.dll_WaitForSingleObject
add esp, 8
mov dword [ebp - 0x1d8], 0
mov eax, dword [ebp - 0x1d8]
mov ebx, dword [ebp - 4]
leave
ret 0x10