Function at 0x4010e0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4027f7
mov eax, dword fs:[0]
push eax
sub esp, 0x100
push esi
mov eax, dword [0x40508c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xac], ecx
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x64]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xac]
mov dword [eax + 0xa8], 0
call dword [sym.imp.SDDEnv.dll_public:_static_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_______cdecl_SDDEnv::GetAppPath_void_]
push eax
lea ecx, [ebp - 0x68]
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov byte [ebp - 4], 2
push 0
push 0x403298
lea ecx, [ebp - 0x68]
call dword [sym.imp.mfc90.dll_Ordinal_2481]
push eax
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x68]
call dword [sym.imp.mfc90.dll_Ordinal_4392]
mov byte [ebp - 4], 3
push 0
push 0x4032a0
lea ecx, [ebp - 0x68]
call dword [sym.imp.mfc90.dll_Ordinal_2481]
mov esi, eax
push 0x5c
lea ecx, [ebp - 0x60]
call dword [sym.imp.mfc90.dll_Ordinal_5963]
sub esi, eax
sub esi, 1
push esi
lea edx, [ebp - 0x74]
push edx
lea ecx, [ebp - 0x60]
call dword [sym.imp.mfc90.dll_Ordinal_5997]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0xb4]
push ecx
lea ecx, [ebp - 0x60]
call dword [sym.imp.mfc90.dll_Ordinal_817]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x74]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea edx, [ebp - 0x60]
push edx
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_void___thiscall_SDDEnv::constructor_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_____]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_enum_SDDEnv::eErrorCode___thiscall_SDDEnv::CheckEnvVariables_void_]
push eax
mov ecx, dword [ebp - 0xac]
call fcn.004018a0
lea ecx, [ebp - 0x40]
call dword [sym.imp.mfc90.dll_Ordinal_4311]
movzx eax, al
test eax, eax
je 0x401253
push str..exe
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x78]
push edx
call fcn.00401a80
add esp, 0xc
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xbc], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xbc]
push ecx
lea ecx, [ebp - 0x40]
call dword [sym.imp.mfc90.dll_Ordinal_817]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x78]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [ebp - 0x3c]
call dword [sym.imp.mfc90.dll_Ordinal_4311]
movzx edx, al
test edx, edx
je 0x401321
push str.MGC_HOME
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_______thiscall_SDDEnv::GetFamilyDir_void_]
push eax
call fcn.00401c00
add esp, 8
movzx eax, al
test eax, eax
je 0x4012c1
mov ecx, dword [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_______thiscall_SDDEnv::GetBinDir_void_]
mov ecx, eax
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_______thiscall_SDDEnv::GetMGC_HOME_void_]
mov ecx, eax
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
push str._s_s_s
lea edx, [ebp - 0x70]
push edx
call dword [sym.imp.mfc90.dll_Ordinal_2539]
add esp, 0x14
jmp 0x40131f
mov eax, dword [ebp - 0x40]
push eax
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_______thiscall_SDDEnv::GetBinDir_void_]
mov ecx, eax
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_______thiscall_SDDEnv::GetSDD_PLATFORM_void_]
mov ecx, eax
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_______thiscall_SDDEnv::GetFamilyDir_void_]
mov ecx, eax
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char_______thiscall_SDDEnv::GetSDD_HOME_void_]
mov ecx, eax
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
push str._s_s_s_s_s
lea ecx, [ebp - 0x70]
push ecx
call dword [sym.imp.mfc90.dll_Ordinal_2539]
add esp, 0x1c
jmp 0x40132e
lea edx, [ebp - 0x3c]
push edx
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x4013db
push str.TRUE
lea eax, [ebp - 0x14]
push eax
call fcn.00401c20
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x4013db
mov edx, dword [ebp - 0x70]
push edx
push str._s_not_found.__n
call dword [sym.imp.MSVCR90.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.MSVCR90.dll_fprintf]
add esp, 0xc
push 0
push 0x10
push str.Application_not_found___n
call sub.mfc90.dll_Ordinal_1183
mov dword [ebp - 0x7c], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_void___thiscall_SDDEnv::destructor_void_]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x60]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x68]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x64]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [ebp - 0x7c]
jmp 0x401884
push str.______
lea eax, [ebp - 0x70]
push eax
push 0x403310
lea ecx, [ebp - 0x80]
push ecx
call fcn.00401b40
add esp, 0xc
mov dword [ebp - 0xc0], eax
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], edx
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x84]
push ecx
call fcn.00401a80
add esp, 0xc
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0xcc], edx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0xcc]
push eax
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_817]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x84]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x80]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [ebp - 0x34]
call dword [sym.imp.mfc90.dll_Ordinal_4311]
movzx ecx, al
test ecx, ecx
jne 0x40162a
lea ecx, [ebp - 0x30]
call dword [sym.imp.mfc90.dll_Ordinal_4311]
movzx edx, al
test edx, edx
jne 0x40151a
lea eax, [ebp - 0x70]
push eax
push 0x403314
lea ecx, [ebp - 0x30]
push ecx
lea edx, [ebp - 0x88]
push edx
call fcn.00401a80
add esp, 0xc
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xd4]
push ecx
lea edx, [ebp - 0x8c]
push edx
call fcn.004019c0
add esp, 0xc
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xdc]
push ecx
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_817]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x8c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x88]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea edx, [ebp - 0x70]
push edx
push 0x403318
push 0x40331c
lea eax, [ebp - 0x34]
push eax
push 0x403320
lea ecx, [ebp - 0x90]
push ecx
call fcn.00401b40
add esp, 0xc
mov dword [ebp - 0xe0], eax
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xe4], edx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0xe4]
push eax
lea ecx, [ebp - 0x94]
push ecx
call fcn.00401a80
add esp, 0xc
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0xec], edx
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0xec]
push eax
lea ecx, [ebp - 0x98]
push ecx
call fcn.00401a80
add esp, 0xc
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
mov dword [ebp - 0xf4], edx
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0xf4]
push eax
lea ecx, [ebp - 0x9c]
push ecx
call fcn.004019c0
add esp, 0xc
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0xfc], edx
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0xfc]
push eax
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_817]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x9c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x98]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x94]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x90]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [ebp - 0xac]
cmp dword [ecx + 0x48], 0
je 0x40166b
mov ecx, dword [ebp - 0xac]
add ecx, 0xa4
call dword [sym.imp.mfc90.dll_Ordinal_4311]
movzx edx, al
test edx, edx
je 0x40166b
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0x48]
push ecx
mov ecx, dword [ebp - 0xac]
add ecx, 0xa4
call dword [sym.imp.mfc90.dll_Ordinal_820]
lea ecx, [ebp - 0x38]
call dword [sym.imp.mfc90.dll_Ordinal_4311]
movzx edx, al
test edx, edx
jne 0x40171e
mov eax, dword [ebp - 0xac]
add eax, 0xa4
push eax
push 0x403324
lea ecx, [ebp - 0x38]
push ecx
lea edx, [ebp - 0xa0]
push edx
call fcn.00401a80
add esp, 0xc
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x104], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x104]
push ecx
lea edx, [ebp - 0xa4]
push edx
call fcn.004019c0
add esp, 0xc
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x10c]
push ecx
mov ecx, dword [ebp - 0xac]
add ecx, 0xa4
call dword [sym.imp.mfc90.dll_Ordinal_817]
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xa4]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xa0]
call dword [sym.imp.mfc90.dll_Ordinal_601]
push 0x403328
lea edx, [ebp - 0x14]
push edx
call fcn.00401c00
add esp, 8
movzx eax, al
test eax, eax
je 0x401770
mov ecx, dword [ebp - 0xac]
add ecx, 0xa4
push ecx
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_817]
push 1
push 0
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_2082]
push 0x40327d
mov ecx, dword [ebp - 0xac]
add ecx, 0xa4
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ecx, dword [ebp - 0xac]
add ecx, 0xa4
call dword [sym.imp.mfc90.dll_Ordinal_4311]
movzx edx, al
test edx, edx
jne 0x4017b4
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0xa4]
push ecx
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
push str._s__s
lea edx, [ebp - 0x64]
push edx
call dword [sym.imp.mfc90.dll_Ordinal_2539]
add esp, 0x10
jmp 0x4017d0
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
push 0x403338
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.mfc90.dll_Ordinal_2539]
add esp, 0xc
push str.FALSE
lea ecx, [ebp - 0x18]
push ecx
call fcn.00401c00
add esp, 8
movzx edx, al
test edx, edx
je 0x40180d
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x64]
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_int___thiscall_SDDEnv::CmdExecRunCmd_char_const___unsigned_long_int__]
mov ecx, dword [ebp - 0xac]
mov dword [ecx + 0xa8], eax
jmp 0x401830
lea edx, [ebp - 0x6c]
push edx
lea ecx, [ebp - 0x64]
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_int___thiscall_SDDEnv::CmdExecRunCmdPipes_char_const___unsigned_long_int__]
mov ecx, dword [ebp - 0xac]
mov dword [ecx + 0xa8], eax
mov dword [ebp - 0xa8], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x5c]
call dword [sym.imp.SDDEnv.dll_public:_void___thiscall_SDDEnv::destructor_void_]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x60]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x68]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x64]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret