Function at 0x40bba0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x449086
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x50ac
call fcn.004213b0
mov eax, dword [0x4668f4]
mov ecx, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, ebp
push edi
mov dword [esp + 0x50b4], eax
mov eax, dword [ebp + 0xc]
push 0xc
mov dword [esp + 0x2c], ecx
xor ebx, ebx
push 0x44c72c
lea ecx, [esp + 0x9c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
call fcn.004014a5
push 0x44d0dc
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x50d0], ebx
mov byte [esp + 0x19], 1
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0x50d0], 1
call fcn.00401416
cmp dword [esp + 0x44], 0x10
mov byte [esp + 0x50c4], bl
jb 0x40bc73
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0043beef
add esp, 4
xor eax, eax
mov ecx, 0x11
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
cmp dword [esp + 0xac], 0x10
mov eax, dword [esp + 0x98]
mov dword [esp + 0x48], 0x44
mov dword [esp + 0x74], 1
jae 0x40bca8
lea eax, [esp + 0x98]
push eax
push esi
call fcn.00422370
add esp, 8
test eax, eax
je 0x40bcc4
mov byte [esp + 0xf], 1
mov word [esp + 0x78], 5
jmp 0x40bccd
mov byte [esp + 0xf], bl
mov word [esp + 0x78], bx
push 0x800
lea edx, [esp + 0x30b4]
push edx
push 0xffffffffffffffff
push esi
push ebx
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, dword [esp + 0x10]
mov ecx, dword [0x467980]
xor eax, eax
cmp edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
je 0x40be00
push edi
push esi
push str.sCommandLine___s__sWorkingDirectory___s
push 0x77e
push str..Utility.cpp
push ebx
push str.Utility::StartProcess
push ecx
call fcn.0040ebc0
add esp, 0x20
push 0x800
lea edx, [esp + 0x40b4]
push edx
push 0xffffffffffffffff
push edi
push ebx
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [0x467980]
push str.UTF8ToUTF16_is_OK
push 0x780
push str..Utility.cpp
push ebx
push str.Utility::StartProcess
push eax
call fcn.0040ebc0
add esp, 0x18
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x40b8]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea ecx, [esp + 0x30d0]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
setne al
cmp al, bl
mov byte [esp + 0xe], al
je 0x40bdc8
mov edx, dword [0x467980]
push str.succeeded.
push 0x78e
push str..Utility.cpp
push ebx
push str.Utility::StartProcess
push edx
call fcn.0040ebc0
add esp, 0x18
jmp 0x40be79
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.0040f290
push eax
mov eax, dword [0x467980]
push esi
push str.iErrorCode___d__Error___s
push 0x793
push str..Utility.cpp
push ebx
push str.Utility::StartProcess
push eax
call fcn.0040ebc0
add esp, 0x24
jmp 0x40be83
push esi
push str.sCommandLine___s
push 0x799
push str..Utility.cpp
push ebx
push str.Utility::StartProcess
push ecx
call fcn.0040ebc0
add esp, 0x1c
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x4c]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea ecx, [esp + 0x30d0]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
setne byte [esp + 0xe]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.0040f290
mov edx, dword [0x467980]
push eax
push esi
push str.iErrorCode___d__Error___s
push 0x7a6
push str..Utility.cpp
push ebx
push str.Utility::StartProcess
push edx
call fcn.0040ebc0
add esp, 0x24
cmp byte [esp + 0xe], bl
jne 0x40c007
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.0040f290
push eax
mov eax, dword [0x467980]
push esi
push str.iErrorCode___d__Error___s
push 0x7b0
push str..Utility.cpp
push ebx
push str.Utility::StartProcess
push eax
call fcn.0040ebc0
xor eax, eax
mov byte [esp + 0x8d4], bl
mov ecx, 0x1ff
lea edi, [esp + 0x8d5]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0xd4], bl
mov ecx, 0x1ff
lea edi, [esp + 0xd5]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov word [esp + 0x20d4], bx
mov ecx, 0x3ff
lea edi, [esp + 0x20d6]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x10d4], bx
mov ecx, 0x3ff
lea edi, [esp + 0x10d6]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xd4]
push ecx
lea edx, [esp + 0x8d8]
stosw word es:[edi], ax
mov eax, dword [esp + 0x4c]
push edx
push eax
call fcn.00405f20
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
add esp, 0x30
push 0x800
lea ecx, [esp + 0x20b4]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0x8bc]
push edx
push ebx
push 0xfde9
call esi
push 0x800
lea eax, [esp + 0x10b4]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0xbc]
push ecx
push ebx
push 0xfde9
call esi
cmp byte [esp + 0xf], bl
mov eax, 5
jne 0x40bf89
xor eax, eax
cmp dword [esp + 0x10], ebx
push eax
lea edx, [esp + 0x10b4]
lea eax, [esp + 0x20b4]
jne 0x40bfa1
push ebx
jmp 0x40bfa9
lea ecx, [esp + 0x40b4]
push ecx
push edx
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov edi, eax
cmp edi, 0x20
jg 0x40c025
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x8b4]
mov esi, eax
push edx
push esi
call fcn.0040f290
add esp, 4
push eax
mov eax, dword [0x467980]
push esi
push edi
push str.ShellExecute__:_iHinstance___d__iErrorCode___d__Error___s__sExecutable___s__sParameter___s
push 0x7dc
push str..Utility.cpp
push ebx
push str.Utility::StartProcess
push eax
call fcn.0040ebc0
add esp, 0x2c
jmp 0x40c029
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
mov dword [edx], ecx
call esi
mov ecx, dword [esp + 0x14]
push ecx
call esi
mov bl, byte [esp + 0xd]
cmp dword [esp + 0xac], 0x10
jb 0x40c043
mov edx, dword [esp + 0x98]
push edx
call fcn.0043beef
add esp, 4
mov ecx, dword [esp + 0x50bc]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x50b4]
pop edi
pop esi
mov al, bl
xor ecx, ebp
pop ebx
call fcn.004205fd
mov esp, ebp
pop ebp
ret