Function at 0x405e60
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x20]
push eax
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push str.ExecuteFile__s___s___s___d__Wait1____d__ShowWindow____Begin
call fcn.00408a40
add esp, 0x18
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x405ea3
xor eax, eax
jmp 0x40605e
push 0x3c
push 0
lea eax, [ebp - 0x3c]
push eax
call fcn.00411070
add esp, 0xc
mov dword [ebp - 0x3c], 0x3c
mov dword [ebp - 0x38], 0x540
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp + 0x18]
movzx eax, word [edx]
test eax, eax
jne 0x405eda
mov dword [ebp - 0x30], 0
jmp 0x405ee0
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp + 0x20]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x28], eax
cmp dword [ebp + 8], 0
je 0x405efa
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x34], ecx
jmp 0x405f03
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov dword [ebp - 0x34], eax
cmp dword [ebp + 0x14], 0
je 0x405f1b
mov edx, dword [ebp + 0x14]
movzx eax, word [edx]
test eax, eax
je 0x405f1b
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x24], ecx
jmp 0x405f22
mov dword [ebp - 0x24], 0
mov edx, dword [ebp + 0x14]
push edx
push str.ExecuteFile____Directory_s
call fcn.00408a40
add esp, 8
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x406043
cmp dword [ebp + 0x1c], 0
je 0x406043
push 0x64
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x48], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x48]
push edx
push str.ExecuteFile____WaitForSingleObject_X
call fcn.00408e70
add esp, 8
cmp dword [ebp - 0x48], 0
je 0x406019
cmp dword [ebp - 0x48], 0xffffffff
je 0x406019
cmp dword [ebp - 0x48], 0x80
je 0x406019
cmp dword [0x429e34], 0
jne 0x406019
push 0x3e8
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x48], eax
cmp dword [0x4321cc], 0
je 0x406006
cmp dword [0x4321d0], 0x64
jbe 0x405fd3
mov dword [0x4321d0], 0
jmp 0x405fe2
mov ecx, dword [0x4321d0]
add ecx, 1
mov dword [0x4321d0], ecx
push 0
mov edx, dword [0x4321d0]
push edx
push 0x402
push 0x5dc
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00406070
add esp, 8
jmp 0x405f7d
push 0x427004
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x48]
push eax
push str.ExecuteFile____WaitForSingleObject_X_Time_d_ms
call fcn.00408e70
add esp, 0xc
mov ecx, dword [0x427004]
push ecx
mov edx, dword [ebp - 0x40]
push edx
push str.ExecuteFile____End__d____x_
call fcn.00408e70
add esp, 0xc
mov eax, dword [ebp - 0x40]
mov esp, ebp
pop ebp
ret