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

Disassembly:
push 0xffffffffffffffff
push 0x40f232
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x41b08c]
xor eax, esp
mov dword [esp + 0x164], eax
push ebx
push esi
mov eax, dword [0x41b08c]
xor eax, esp
push eax
lea eax, [esp + 0x174]
mov dword fs:[0], eax
call dword [sym.imp.Mail.dll_bool___cdecl_IsMMInstallerRunning_void_]
test al, al
je 0x4044da
mov eax, dword [sym.imp.Common.dll_struct_LogFileInterface__g_AppLogFile]
mov ecx, dword [eax]
push 0x1bc
push str..FlashMail_Start.cpp
push ecx
lea ecx, [esp + 0x24]
call dword [sym.imp.Common.dll_public:_void___thiscall_LogMessage::constructor_struct_LogFileInterface___wchar_t_const___long_int_]
push str.App:_MM_is_being_installing...
push 0
push 3
push eax
mov dword [esp + 0x18c], 0
call dword [sym.imp.Common.dll_public:_void___cdecl_LogMessage::operator___int__bool__wchar_t_const__]
add esp, 0x10
lea ecx, [esp + 0x18]
mov dword [esp + 0x17c], 0xffffffff
call dword [sym.imp.Common.dll_public:_void___thiscall_LogMessage::destructor_void_]
push 0
push 0x30
push str.ck_WGS
call sub.MFC80U.DLL_Ordinal_1118
mov eax, 1
jmp 0x40488e
lea ecx, [esp + 0x118]
call dword [sym.imp.Common.dll_public:_void___thiscall_common::MMInfo::constructor_void_]
lea edx, [esp + 0x118]
mov dword [esp + 0x17c], 1
mov esi, dword [sym.imp.Common.dll_public:_static_class_common::MMInfoManager____cdecl_common::MMInfoManager::GetInstance_void_]
push edx
call esi
mov ecx, eax
call dword [sym.imp.Common.dll_public:_bool___thiscall_common::MMInfoManager::Load_struct_common::MMInfo__const]
test al, al
je 0x404874
push 0xfde9
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.Common.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_common::String_to_CString_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int_]
add esp, 0xc
mov bl, 2
push 0
mov byte [esp + 0x180], bl
call esi
mov ecx, eax
call dword [sym.imp.Common.dll_public:_bool___thiscall_common::MMInfoManager::IsImported_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__const]
test al, al
je 0x4046fa
lea ecx, [esp + 0xe0]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [esp + 0x154]
mov byte [esp + 0x17c], 3
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [esp + 0xfc]
mov byte [esp + 0x17c], 4
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0x15c]
push ecx
lea edx, [esp + 0xec]
push edx
mov byte [esp + 0x18c], 5
call dword [sym.imp.Mail.dll_void___cdecl_GetConfigMigrationState_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____long_long___int64___]
lea eax, [esp + 0x10c]
push eax
lea ecx, [esp + 0x130]
push ecx
call dword [sym.imp.MSVCP80.dll_bool___cdecl_std::operator__char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
add esp, 0x18
test al, al
je 0x4046bc
mov edx, dword [sym.imp.Common.dll_struct_LogFileInterface__g_AppLogFile]
mov eax, dword [edx]
push 0x1cf
push str..FlashMail_Start.cpp
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.Common.dll_public:_void___thiscall_LogMessage::constructor_struct_LogFileInterface___wchar_t_const___long_int_]
push str.App:_First_time_after_MM_migrated.
push 0
push 3
push eax
mov byte [esp + 0x18c], 6
call dword [sym.imp.Common.dll_public:_void___cdecl_LogMessage::operator___int__bool__wchar_t_const__]
add esp, 0x10
lea ecx, [esp + 0x18]
mov byte [esp + 0x17c], 5
call dword [sym.imp.Common.dll_public:_void___thiscall_LogMessage::destructor_void_]
push 0
push 0x40
push 0x412ab8
call sub.MFC80U.DLL_Ordinal_1118
mov ecx, dword [esp + 0xc]
push 5
push 0
push 0
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea edx, [esp + 0x11c]
push edx
push 0
push 0
call dword [sym.imp.Mail.dll_void___cdecl_SetConfigMigrationState_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
add esp, 0xc
lea ecx, [esp + 0xfc]
mov byte [esp + 0x17c], 4
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x154]
mov byte [esp + 0x17c], 3
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xe0]
mov byte [esp + 0x17c], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x118]
mov dword [esp + 0x17c], 0xffffffff
call dword [sym.imp.Common.dll_public:_void___thiscall_common::MMInfo::destructor_void_]
mov eax, 1
jmp 0x40488e
lea ecx, [esp + 0xfc]
mov byte [esp + 0x17c], 4
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x154]
mov byte [esp + 0x17c], 3
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xe0]
mov byte [esp + 0x17c], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp dword [esp + 0x118], 1
jne 0x40486a
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40486a
call dword [sym.imp.Mail.dll_bool___cdecl_IsMMRunning_void_]
mov ecx, dword [sym.imp.Common.dll_struct_LogFileInterface__g_AppLogFile]
mov edx, dword [ecx]
test al, al
sete al
test al, al
je 0x4047ef
push 0x1db
push str..FlashMail_Start.cpp
push edx
lea ecx, [esp + 0x24]
call dword [sym.imp.Common.dll_public:_void___thiscall_LogMessage::constructor_struct_LogFileInterface___wchar_t_const___long_int_]
push str.App:_MM_migrating_is_interrupted.
push 0
push 3
push eax
mov byte [esp + 0x18c], 7
call dword [sym.imp.Common.dll_public:_void___cdecl_LogMessage::operator___int__bool__wchar_t_const__]
add esp, 0x10
lea ecx, [esp + 0x18]
mov byte [esp + 0x17c], bl
call dword [sym.imp.Common.dll_public:_void___thiscall_LogMessage::destructor_void_]
push 0
push 0x44
push 0x412b24
call sub.MFC80U.DLL_Ordinal_1118
cmp eax, 6
je 0x4047a1
push 0
push 0x34
push 0x412b60
call sub.MFC80U.DLL_Ordinal_1118
cmp eax, 6
jne 0x40486a
call dword [sym.imp.Device.dll_struct_IAppUpdateController____cdecl_DvGetAppUpdateController_void_]
push 0x412514
lea ecx, [esp + 0xe4]
mov esi, eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov byte [esp + 0x17c], 8
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
lea ecx, [esp + 0xe0]
push ecx
lea edx, [esp + 0x10]
push edx
mov ecx, esi
call eax
lea ecx, [esp + 0xe0]
mov byte [esp + 0x17c], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x404841
push 0x1e7
push str..FlashMail_Start.cpp
push edx
lea ecx, [esp + 0x88]
call dword [sym.imp.Common.dll_public:_void___thiscall_LogMessage::constructor_struct_LogFileInterface___wchar_t_const___long_int_]
push str.App:_MM_is_importing_data...
push 1
push 3
push eax
mov byte [esp + 0x18c], 9
call dword [sym.imp.Common.dll_public:_void___cdecl_LogMessage::operator___int__bool__wchar_t_const__]
add esp, 0x10
lea ecx, [esp + 0x7c]
mov byte [esp + 0x17c], bl
call dword [sym.imp.Common.dll_public:_void___thiscall_LogMessage::destructor_void_]
push 0
push 0x30
push str.ck_WGS
call sub.MFC80U.DLL_Ordinal_1118
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x118]
mov dword [esp + 0x17c], 0xffffffff
call dword [sym.imp.Common.dll_public:_void___thiscall_common::MMInfo::destructor_void_]
mov eax, 1
jmp 0x40488e
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x118]
mov dword [esp + 0x17c], 0xffffffff
call dword [sym.imp.Common.dll_public:_void___thiscall_common::MMInfo::destructor_void_]
xor eax, eax
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x164]
xor ecx, esp
call fcn.0040e898
add esp, 0x174
ret