Function at 0x40e0c0
Capabilities:
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x45d21b
mov eax, dword fs:[0]
push eax
mov eax, 0x5098
call fcn.00439c50
mov eax, dword [0x483ca0]
xor eax, esp
mov dword [esp + 0x5094], eax
push esi
push edi
mov eax, dword [0x483ca0]
xor eax, esp
push eax
lea eax, [esp + 0x50a4]
mov dword fs:[0], eax
mov eax, dword [esp + 0x50b8]
lea ecx, [esp + 0x88]
mov esi, dword [esp + 0x50b4]
push 0xc
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x50c0]
push 0x4613f0
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], eax
mov dword [esp + 0xa4], 0xf
mov dword [esp + 0xa0], 0
mov byte [esp + 0x90], 0
call fcn.00401eb7
push 0x463c54
lea eax, [esp + 0x8c]
mov dword [esp + 0x50b0], 0
push eax
lea eax, [esp + 0x78]
mov byte [esp + 0x77], 1
push eax
call fcn.00403a10
mov edi, eax
add esp, 0xc
lea eax, [esp + 0x88]
cmp eax, edi
je 0x40e1ca
cmp dword [esp + 0x9c], 0x10
jb 0x40e19f
push dword [esp + 0x88]
call fcn.004167f4
add esp, 4
push edi
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa0], 0xf
mov dword [esp + 0x9c], 0
mov byte [esp + 0x8c], 0
call fcn.004091a0
cmp dword [esp + 0x84], 0x10
jb 0x40e1e0
push dword [esp + 0x70]
call fcn.004167f4
add esp, 4
push 0x44
lea eax, [esp + 0x10]
push 0
push eax
call fcn.00438b10
cmp dword [esp + 0xa8], 0x10
lea eax, [esp + 0x94]
mov dword [esp + 0x18], 0x44
cmovae eax, dword [esp + 0x94]
push eax
push esi
mov dword [esp + 0x4c], 1
call fcn.00439380
add esp, 0x14
test eax, eax
je 0x40e22f
mov byte [esp + 0x6e], 1
mov eax, 5
jmp 0x40e236
mov byte [esp + 0x6e], 0
xor eax, eax
mov word [esp + 0x3c], ax
lea eax, [esp + 0xa0]
push 0x800
push eax
push esi
call fcn.0040fa60
mov eax, dword [esp + 0x74]
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
xorps xmm0, xmm0
movdqu xmmword [esp + 0x50], xmm0
test eax, eax
je 0x40e369
push eax
push esi
push str.sCommandLine___s__sWorkingDirectory___s
push 0x821
push 0x46360c
push 0
push str.Utility::StartProcess
push dword [0x4868e8]
call fcn.0040a4c0
push 0x800
lea eax, [esp + 0x10c4]
push eax
push dword [esp + 0x90]
call fcn.0040fa60
push str.UTF8ToUTF16_is_OK
push 0x823
push 0x46360c
push 0
push str.Utility::StartProcess
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x44
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x10a8]
push eax
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0xc0]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
setne al
mov byte [esp + 0x6d], al
test al, al
je 0x40e32e
push str.succeeded.
push 0x831
push 0x46360c
push 0
push str.Utility::StartProcess
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x18
jmp 0x40e3eb
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
mov esi, eax
push esi
call fcn.004031d0
push eax
push esi
push str.iErrorCode___d__Error___s
push 0x836
push 0x46360c
push 0
push str.Utility::StartProcess
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x24
jmp 0x40e3f6
push esi
push str.sCommandLine___s
push 0x83c
push 0x46360c
push 0
push str.Utility::StartProcess
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x1c
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x10]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0xc0]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
setne byte [esp + 0x6d]
call edi
mov esi, eax
push esi
call fcn.004031d0
push eax
push esi
push str.iErrorCode___d__Error___s
push 0x849
push 0x46360c
push 0
push str.Utility::StartProcess
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x24
cmp byte [esp + 0x6d], 0
jne 0x40e57d
call edi
mov esi, eax
push esi
call fcn.004031d0
push eax
push esi
push str.iErrorCode___d__Error___s
push 0x853
push 0x46360c
push 0
push str.Utility::StartProcess
push dword [0x4868e8]
call fcn.0040a4c0
push 0x7ff
lea eax, [esp + 0x48c9]
mov byte [esp + 0x48c8], 0
push 0
push eax
call fcn.00438b10
push 0x7ff
lea eax, [esp + 0x40d5]
mov byte [esp + 0x40d4], 0
push 0
push eax
call fcn.00438b10
xor eax, eax
push 0xffe
push eax
mov word [esp + 0x20e4], ax
lea eax, [esp + 0x20e6]
push eax
call fcn.00438b10
add esp, 0x48
xor eax, eax
mov word [esp + 0x30a0], ax
push 0xffe
push eax
lea eax, [esp + 0x30aa]
push eax
call fcn.00438b10
lea eax, [esp + 0x40ac]
push eax
lea eax, [esp + 0x48b0]
push eax
push dword [esp + 0x78]
call fcn.0040d5e0
push 0x800
lea eax, [esp + 0x20bc]
push eax
lea eax, [esp + 0x48c0]
push eax
call fcn.0040fa60
push 0x800
lea eax, [esp + 0x30c8]
push eax
lea eax, [esp + 0x40cc]
push eax
call fcn.0040fa60
xor ecx, ecx
add esp, 0x30
cmp byte [esp + 0x6e], cl
mov eax, 5
cmove eax, ecx
push eax
cmp dword [esp + 0x6c], ecx
jne 0x40e500
push ecx
jmp 0x40e508
lea eax, [esp + 0x10a4]
push eax
lea eax, [esp + 0x30a8]
push eax
lea eax, [esp + 0x20ac]
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [esp + 0x68], eax
cmp eax, 0x20
jg 0x40e599
call edi
mov esi, eax
lea eax, [esp + 0x40a0]
push eax
lea eax, [esp + 0x48a4]
push eax
push esi
call fcn.004031d0
add esp, 4
push eax
push esi
push dword [esp + 0x78]
push str.ShellExecute__:_iHinstance___d__iErrorCode___d__Error___s__sExecutable___s__sParameter___s
push 0x87f
push 0x46360c
push 0
push str.Utility::StartProcess
push dword [0x4868e8]
call fcn.0040a4c0
add esp, 0x2c
xor al, al
mov byte [esp + 0x6f], al
jmp 0x40e59d
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x58]
push dword [esp + 0x54]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ecx], eax
call esi
push dword [esp + 0x50]
call esi
mov al, byte [esp + 0x6f]
cmp dword [esp + 0x9c], 0x10
jb 0x40e5ba
push dword [esp + 0x88]
call fcn.004167f4
mov al, byte [esp + 0x73]
add esp, 4
mov ecx, dword [esp + 0x50a4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x5094]
xor ecx, esp
call fcn.004396df
add esp, 0x50a4
ret