Function at 0x401874
Capabilities:
Check if file exists
Get file system object information
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42c219
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x15f4
call fcn.00429b30
mov eax, dword [0x441028]
xor eax, esp
mov dword [esp + 0x15f0], eax
push ebx
push esi
push edi
mov eax, dword [0x441028]
xor eax, esp
push eax
lea eax, [esp + 0x1608]
mov dword fs:[0], eax
mov esi, dword [sym.imp.SolvusoftWMhelper.dll_unsigned_long_int___cdecl__winmajor_void_]
mov edi, ecx
mov dword [esp + 0x14], edi
call esi
mov ebx, dword [sym.imp.SolvusoftWMhelper.dll_int___cdecl_STIsCurrentUserLocalAdministrator_void_]
cmp eax, 6
jae 0x401937
call ebx
test eax, eax
jne 0x401937
push 0x42fe20
lea eax, [esp + 0x14]
push str.IDS_ADMIN_RIGHTS_REQD_PROG
push eax
call dword [sym.imp.SolvusoftWMhelper.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_STLoadStringFromMainINI_wchar_t_const___wchar_t_const__]
xor ecx, ecx
push 1
push ecx
push ecx
mov dword [esp + 0x1628], ecx
push 0x30
push dword [eax]
call dword [sym.imp.SolvusoftWMhelper.dll_public:_static_int___cdecl_CSystweakApp::AfxMessageBox_wchar_t_const___unsigned_int__class_CDialog___class_CRect___bool_]
add esp, 0x20
lea ecx, [esp + 0x10]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
xor eax, eax
mov ecx, dword [esp + 0x1608]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x15f0]
xor ecx, esp
call fcn.0042918e
mov esp, ebp
pop ebp
ret
call esi
cmp eax, 5
jbe 0x401965
call ebx
test eax, eax
jne 0x401965
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x430ef8
call dword [0x42f7ec]
mov ecx, 0x441f98
call dword [sym.imp.SolvusoftWMhelper.dll_public:_bool___thiscall_CSystweakApp::RestartSelfAsAdmin_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____bool_]
jmp 0x401911
lea esi, [edi + 0x138]
mov ecx, esi
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Empty]
mov eax, dword [sym.imp.MSVCR90.dll___wargv]
mov eax, dword [eax]
push dword [eax + 4]
lea ecx, [esp + 0x1c]
call dword [0x42f7ec]
lea ecx, [esp + 0x18]
mov dword [esp + 0x1610], 1
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Trim]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::MakeLower]
push str._filefolder
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CompareNoCase]
test eax, eax
jne 0x401b47
mov eax, dword [sym.imp.MSVCR90.dll___wargv]
mov eax, dword [eax]
push dword [eax + 8]
mov ecx, esi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
mov eax, dword [esi]
xor ebx, ebx
cmp dword [eax - 0xc], ebx
je 0x4019ec
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4019ec
mov byte [edi + 0x134], 1
jmp 0x4019fa
mov ecx, esi
mov byte [edi + 0x134], bl
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Empty]
mov eax, dword [sym.imp.SolvusoftWMhelper.dll_bool_CSystweakApp::m_bIsMuliInstncHandlBySysApp]
mov ecx, edi
mov byte [eax], bl
call dword [sym.imp.SolvusoftWMhelper.dll_public:_bool___thiscall_CSystweakApp::AlreadyRunning_void_]
test al, al
je 0x401b49
cmp byte [edi + 0x134], bl
je 0x401b49
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
mov byte [esp + 0x1610], 2
push dword [sym.imp.SolvusoftWMhelper.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____CSystweakApp::m_ProgramName]
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
push dword [esp + 0x20]
push str.32770
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [esp + 0x24], eax
mov eax, dword [sym.imp.MSVCR90.dll___wargv]
mov eax, dword [eax]
push dword [eax + 4]
lea ecx, [esp + 0x18]
call dword [0x42f7ec]
push dword [esp + 0x24]
mov byte [esp + 0x1614], 3
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x401b22
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.SolvusoftWMhelper.dll_public:_static_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_CSystweakApp::GetRegAppPath_void_]
pop ecx
lea eax, [esp + 0x1c]
mov byte [esp + 0x1610], 4
mov edi, SysReAllocString
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x20], edi
call dword [sym.imp.SolvusoftWMhelper.dll_public:_void___thiscall_CRegistry::constructor_struct_HKEY____const_const__]
push 1
mov byte [esp + 0x1614], 5
push dword [esp + 0x14]
lea ecx, [esp + 0x30]
push edi
mov dword [esp + 0x38], 0x2001f
call dword [sym.imp.SolvusoftWMhelper.dll_public:_int___thiscall_CRegistry::Open_struct_HKEY_____wchar_t_const___bool_]
test eax, eax
je 0x401ae4
mov esi, dword [esi]
push ebx
push esi
push str.ShellExtReadPath
lea ecx, [esp + 0x34]
call dword [sym.imp.SolvusoftWMhelper.dll_public:_int___thiscall_CRegistry::WriteString_wchar_t_const___wchar_t_const___bool_]
lea ecx, [esp + 0x28]
call dword [sym.imp.SolvusoftWMhelper.dll_public:_void___thiscall_CRegistry::Close_void_]
push str.ShellAdding
push ebx
push dword [0x441f90]
push dword [esp + 0x30]
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x28]
mov ebx, eax
mov byte [esp + 0x1610], 4
call dword [sym.imp.SolvusoftWMhelper.dll_public_virtual:_void___thiscall_CRegistry::destructor_void_]
lea ecx, [esp + 0x10]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, ebx
jmp 0x401913
xor ebx, ebx
mov ecx, edi
call dword [sym.imp.SolvusoftWMhelper.dll_public_virtual:_int___thiscall_CSystweakApp::InitInstance_void_]
cmp eax, ebx
je 0x401b36
call dword [sym.imp.SolvusoftWMhelper.dll_public:_static_bool___cdecl_CSystweakApp::IsRegisteredVersion_void_]
push str.SecureDelete
mov ecx, edi
mov byte [edi + 0x128], al
call dword [sym.imp.SolvusoftWMhelper.dll_public:_void___thiscall_CSystweakApp::SetDefaultINISectionName_wchar_t_const__]
lea eax, [esp + 0x44]
push eax
call fcn.00401000
push edi
lea ebx, [esp + 0x48]
mov byte [esp + 0x1614], 6
call fcn.0040138d
push str.UndeleteDLL.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x441f48], eax
test eax, eax
je 0x402377
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.Undelete_Create
push eax
call esi
mov dword [0x441f44], eax
test eax, eax
je 0x402377
push str.Undelete_Delete
push dword [0x441f48]
call esi
mov dword [0x441f40], eax
test eax, eax
je 0x402377
push str.Undelete_SetVerbose
push dword [0x441f48]
call esi
mov dword [0x441f3c], eax
test eax, eax
je 0x402377
push str.Undelete_SearchMultiple
push dword [0x441f48]
call esi
mov dword [0x441f38], eax
test eax, eax
je 0x402377
push str.Undelete_IsSearching
push dword [0x441f48]
call esi
mov dword [0x441f34], eax
test eax, eax
je 0x402377
push str.Undelete_GetScanStage
push dword [0x441f48]
call esi
mov dword [0x441f30], eax
test eax, eax
je 0x402377
push str.Undelete_GetProgress
push dword [0x441f48]
call esi
mov dword [0x441f2c], eax
test eax, eax
je 0x402377
push str.Undelete_ResetProgress
push dword [0x441f48]
call esi
mov dword [0x441f28], eax
test eax, eax
je 0x402377
push str.Undelete_GetBytesProcessed
push dword [0x441f48]
call esi
mov dword [0x441f24], eax
test eax, eax
je 0x402377
push str.Undelete_Cancel
push dword [0x441f48]
call esi
mov dword [0x441f20], eax
test eax, eax
je 0x402377
push str.Undelete_TotalCancel
push dword [0x441f48]
call esi
mov dword [0x441f1c], eax
test eax, eax
je 0x402377
push str.Undelete_GetFilesCount
push dword [0x441f48]
call esi
mov dword [0x441f18], eax
test eax, eax
je 0x402377
push str.Undelete_GetDeletedCount
push dword [0x441f48]
call esi
mov dword [0x441f14], eax
test eax, eax
je 0x402377
push str.Undelete_GetFileInfo
push dword [0x441f48]
call esi
mov dword [0x441f10], eax
test eax, eax
je 0x402377
push str.Undelete_GetFolderCount
push dword [0x441f48]
call esi
mov dword [0x441f0c], eax
test eax, eax
je 0x402377
push str.Undelete_GetFolderInfo
push dword [0x441f48]
call esi
mov dword [0x441f08], eax
test eax, eax
je 0x402377
push str.Undelete_RecoverFile
push dword [0x441f48]
call esi
mov dword [0x441f04], eax
test eax, eax
je 0x402377
push str.Undelete_WipeFolder
push dword [0x441f48]
call esi
mov dword [0x441f00], eax
test eax, eax
je 0x402377
push str.Undelete_WipeFile
push dword [0x441f48]
call esi
mov dword [0x441efc], eax
test eax, eax
je 0x402377
push str.Undelete_GetWipeProgress
push dword [0x441f48]
call esi
mov dword [0x441ef8], eax
test eax, eax
je 0x402377
push str.Undelete_WipeFreeSpace
push dword [0x441f48]
call esi
mov dword [0x441ef4], eax
test eax, eax
je 0x402377
push str.Undelete_WipeMultiple
push dword [0x441f48]
call esi
mov dword [0x441ef0], eax
test eax, eax
je 0x402377
push str.Undelete_SetWipeMethod
push dword [0x441f48]
call esi
mov dword [0x441eec], eax
test eax, eax
je 0x402377
push str.Undelete_Done
push dword [0x441f48]
call esi
mov dword [0x441ee8], eax
test eax, eax
je 0x402377
push str.Undelete_TooManyFiles
push dword [0x441f48]
call esi
mov dword [0x441ee4], eax
test eax, eax
je 0x402377
push str.Undelete_IsCancelled
push dword [0x441f48]
call esi
mov dword [0x441ee0], eax
test eax, eax
je 0x402377
push str.Undelete_GetFileState
push dword [0x441f48]
call esi
mov dword [0x441edc], eax
test eax, eax
je 0x402377
push str.Undelete_GetDriveInfo
push dword [0x441f48]
call esi
mov dword [0x441ed8], eax
test eax, eax
je 0x402377
push str.Undelete_GetError
push dword [0x441f48]
call esi
mov dword [0x441ed4], eax
test eax, eax
je 0x402377
push str.Undelete_GetErrorMessage
push dword [0x441f48]
call esi
mov dword [0x441ed0], eax
test eax, eax
je 0x402377
push str.Undelete_IsGoodOS
push dword [0x441f48]
call esi
mov dword [0x441ecc], eax
test eax, eax
je 0x402377
push str.Undelete_PhysicalDrivePresent
push dword [0x441f48]
call esi
mov dword [0x441ec8], eax
test eax, eax
je 0x402377
push str.Undelete_DetectPhysicalDrivesPartitions
push dword [0x441f48]
call esi
mov dword [0x441ec4], eax
test eax, eax
je 0x402377
push str.Undelete_GetPartitionCount
push dword [0x441f48]
call esi
mov dword [0x441ec0], eax
test eax, eax
je 0x402377
push str.Undelete_GetPartition
push dword [0x441f48]
call esi
mov dword [0x441ebc], eax
test eax, eax
je 0x402377
push str.Undelete_ScanForPartitions
push dword [0x441f48]
call esi
mov dword [0x441eb8], eax
test eax, eax
je 0x402377
push str.Undelete_GetGlobalPartitionIndex
push dword [0x441f48]
call esi
mov dword [0x441eb4], eax
test eax, eax
je 0x402377
push str.Undelete_GetPartitionDesc
push dword [0x441f48]
call esi
mov dword [0x441eb0], eax
test eax, eax
je 0x402377
push str.Undelete_CanMakeActive
push dword [0x441f48]
call esi
mov dword [0x441eac], eax
test eax, eax
je 0x402377
push str.Undelete_ShouldShow
push dword [0x441f48]
call esi
mov dword [0x441ea8], eax
test eax, eax
je 0x402377
push str.Undelete_MakeActive
push dword [0x441f48]
call esi
mov dword [0x441ea4], eax
test eax, eax
je 0x402377
push str.Undelete_GetPartitionTypeName
push dword [0x441f48]
call esi
mov dword [0x441ea0], eax
test eax, eax
je 0x402377
push str.Undelete_GetStatusName
push dword [0x441f48]
call esi
mov dword [0x441e9c], eax
test eax, eax
je 0x402377
push str.Undelete_GetPartitionProgress
push dword [0x441f48]
call esi
mov dword [0x441e98], eax
test eax, eax
je 0x402377
push str.Undelete_FixMBRBootCode
push dword [0x441f48]
call esi
mov dword [0x441e94], eax
test eax, eax
je 0x402377
push str.Undelete_NeedFixMBR
push dword [0x441f48]
call esi
mov dword [0x441e90], eax
test eax, eax
je 0x402377
push str.Undelete_NeedUnhide
push dword [0x441f48]
call esi
mov dword [0x441e8c], eax
test eax, eax
je 0x402377
push str.Undelete_NeedFixMBRBootCode
push dword [0x441f48]
call esi
mov dword [0x441e88], eax
test eax, eax
je 0x402377
push str.Undelete_NeedFixProtectiveMBR
push dword [0x441f48]
call esi
mov dword [0x441e84], eax
test eax, eax
je 0x402377
push str.Undelete_FixMBR
push dword [0x441f48]
call esi
mov dword [0x441e80], eax
test eax, eax
je 0x402377
push str.Undelete_CanUndoMBRFix
push dword [0x441f48]
call esi
mov dword [0x441e7c], eax
test eax, eax
je 0x402377
push str.Undelete_CanUndoGPTFix
push dword [0x441f48]
call esi
mov dword [0x441e78], eax
test eax, eax
je 0x402377
push str.Undelete_FixGPT
push dword [0x441f48]
call esi
mov dword [0x441e74], eax
test eax, eax
je 0x402377
push str.Undelete_UndoGPTFix
push dword [0x441f48]
call esi
mov dword [0x441e70], eax
test eax, eax
je 0x402377
push str.Undelete_IsDriveGPT
push dword [0x441f48]
call esi
mov dword [0x441e6c], eax
test eax, eax
je 0x402377
push str.Undelete_IsDriveDynamic
push dword [0x441f48]
call esi
mov dword [0x441e68], eax
test eax, eax
je 0x402377
push str.Undelete_NeedFixGPT
push dword [0x441f48]
call esi
mov dword [0x441e64], eax
test eax, eax
je 0x402377
push str.Undelete_MBRPresent
push dword [0x441f48]
call esi
mov dword [0x441e60], eax
test eax, eax
je 0x402377
push str.Undelete_UndoMBRFix
push dword [0x441f48]
call esi
mov dword [0x441e5c], eax
test eax, eax
je 0x402377
push str.Undelete_ReadMBR
push dword [0x441f48]
call esi
mov dword [0x441e58], eax
test eax, eax
je 0x402377
push str.Undelete_WriteMBR
push dword [0x441f48]
call esi
mov dword [0x441e54], eax
test eax, eax
je 0x402377
push str.Undelete_MayBeRecoveredTo
push dword [0x441f48]
call esi
mov dword [0x441e50], eax
test eax, eax
je 0x402377
mov ebx, str.Undelete_GetLogicalDriveInfo
push ebx
push dword [0x441f48]
call esi
mov dword [0x441e4c], eax
test eax, eax
je 0x402377
push str.Undelete_FileSystemIndexToName
push dword [0x441f48]
call esi
mov dword [0x441e48], eax
test eax, eax
je 0x402377
push str.Undelete_RestoreSession
push dword [0x441f48]
call esi
mov dword [0x441e44], eax
test eax, eax
je 0x402377
mov edi, str.Undelete_GetSessionInfo
push edi
push dword [0x441f48]
call esi
mov dword [0x441e40], eax
test eax, eax
je 0x402377
push ebx
push dword [0x441f48]
call esi
mov dword [0x441e4c], eax
test eax, eax
je 0x402377
push str.Undelete_GetPartitionCount
push dword [0x441f48]
call esi
mov dword [0x441ec0], eax
test eax, eax
je 0x402377
push str.Undelete_GetPartition
push dword [0x441f48]
call esi
mov dword [0x441ebc], eax
test eax, eax
je 0x402377
push edi
push dword [0x441f48]
call esi
mov dword [0x441e40], eax
test eax, eax
je 0x402377
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.SolvusoftWMhelper.dll_public:_static_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_CSystweakApp::GetAppDataAppPath_void_]
pop ecx
mov byte [esp + 0x1610], 7
mov esi, dword [esp + 0x14]
push eax
lea ecx, [esi + 0x110]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1610], 6
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push 0x4101
push 0x2b4
lea eax, [esp + 0x114]
push eax
push 0
push 0x430ef8
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
push eax
lea ecx, [esi + 0x120]
call sub.mfc90u.dll_CImageList::Attach
lea eax, [esp + 0x3c4]
push eax
call fcn.00402cfc
lea eax, [esp + 0x3c4]
mov byte [esp + 0x1610], 8
mov dword [esi + 0x20], eax
add esi, 0x11c
mov dword [0x441f50], eax
mov dword [esi], eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x3c8]
call dword [sym.imp.SolvusoftWMhelper.dll_public:_void___thiscall_CDlgBaseAppDlg::IntializeMainAppDlg_struct_MAINAPPDLGINIT__]
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x154]
lea ecx, [esp + 0x3c4]
mov byte [esp + 0x1610], 6
call fcn.00402d9e
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x1614], 1
call fcn.00402390
xor ebx, ebx
jmp 0x401b36