Function at 0x402778
Capabilities:
Create process on windows
Get common file path

Disassembly:
push ebx
push esi
add esp, 0xfffff9f8
mov esi, eax
xor ebx, ebx
mov eax, esi
call fcn.00402724
cmp al, 1
jne 0x402b0e
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
push 0x402b20
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_lstrcpyA
push 4
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_RtlZeroMemory
push 4
lea eax, [esp + 4]
push eax
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_RtlMoveMemory
call sub.kernel32.dll_GetCurrentProcessId
push 0x402b24
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcmpiA
push 0x402b20
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_lstrcpyA
push 4
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_RtlZeroMemory
push 4
lea eax, [esp + 4]
push eax
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_RtlMoveMemory
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
call sub.kernel32.dll_GetCurrentProcessId
call sub.kernel32.dll_GetCurrentProcess
push 1
call sub.kernel32.dll_Sleep
push 0x402b20
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_lstrcpyA
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_lstrlenA
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
push 0
call sub.user32.dll_IsWindowEnabled
push 0x402b20
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_lstrcpyA
call sub.kernel32.dll_GetCurrentProcess
push 1
call sub.kernel32.dll_Sleep
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_lstrlenA
push 0x402b20
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_lstrcpyA
call sub.kernel32.dll_GetCurrentProcessId
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_lstrlenA
push 0
call sub.user32.dll_IsWindowVisible
push 0
call sub.user32.dll_IsWindowEnabled
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
push 1
call sub.kernel32.dll_Sleep
push 0
call sub.user32.dll_IsWindowVisible
call sub.kernel32.dll_GetTickCount
call sub.user32.dll_GetForegroundWindow
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_lstrlenA
push 1
call sub.kernel32.dll_Sleep
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
call sub.user32.dll_GetForegroundWindow
call sub.kernel32.dll_GetTickCount
push 0
call sub.user32.dll_IsWindowVisible
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
push 0x402b20
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_lstrcatA
push 0
call sub.user32.dll_IsWindowEnabled
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_lstrlenA
push 0x402b24
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcmpiA
push 1
call sub.kernel32.dll_Sleep
push 0x402b24
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcmpA
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
call sub.kernel32.dll_GetTickCount
push 0x104
lea eax, [esp + 0x108]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
call sub.user32.dll_GetForegroundWindow
push 4
lea eax, [esp + 4]
push eax
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_RtlMoveMemory
push 0x402b24
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcmpA
push 1
call sub.kernel32.dll_Sleep
push 0x402b28
lea eax, [esp + 0x108]
push eax
call sub.kernel32.dll_lstrcpyA
call sub.kernel32.dll_GetTickCount
mov dword [esp], eax
push esp
push 0x402b1c
lea eax, [esp + 0xc]
push eax
call sub.user32.dll_wvsprintfA
lea eax, [esp + 4]
push eax
lea eax, [esp + 0x108]
push eax
call sub.kernel32.dll_lstrcatA
push 0x402b30
lea eax, [esp + 0x108]
push eax
call sub.kernel32.dll_lstrcatA
lea eax, [esp + 0x104]
call fcn.0040274c
cmp al, 1
jne 0x402b0e
push 0x402b38
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcpyA
push 0x402b44
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcatA
push 0x402b4c
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcatA
push esi
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcatA
push 0x402b58
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcatA
push esi
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcatA
push 0x402b70
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcatA
push esi
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcatA
push 0x402b80
lea eax, [esp + 0x20c]
push eax
call sub.kernel32.dll_lstrcatA
push 0
push 1
lea eax, [esp + 0x210]
push eax
call sub.kernel32.dll_lstrlenA
mov ecx, eax
lea edx, [esp + 0x210]
lea eax, [esp + 0x10c]
call fcn.00402bc0
push 0
lea eax, [esp + 0x108]
push eax
call sub.kernel32.dll_WinExec
mov bl, 1
mov eax, ebx
add esp, 0x608
pop esi
pop ebx
ret