Function at 0x405b58
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x420907
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x327bc
call fcn.0041dab0
mov eax, dword [0x42f028]
xor eax, esp
mov dword [esp + 0x327b8], eax
push ebx
push esi
push edi
mov eax, dword [0x42f028]
xor eax, esp
push eax
lea eax, [esp + 0x327d0]
mov dword fs:[0], eax
mov esi, dword [sym.imp.SolvusoftWMhelper.dll_unsigned_long_int___cdecl__winmajor_void_]
mov edi, ecx
mov dword [esp + 0x10], edi
call esi
mov ebx, dword [sym.imp.SolvusoftWMhelper.dll_int___cdecl_STIsCurrentUserLocalAdministrator_void_]
cmp eax, 6
jae 0x405bfa
call ebx
test eax, eax
jne 0x405bfa
push 0x421efc
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 + 0x327f0], 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]
jmp 0x4064af
call esi
cmp eax, 5
jbe 0x405c2b
call ebx
test eax, eax
jne 0x405c2b
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x4219d8
call dword [0x421644]
mov ecx, 0x42fd78
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 0x4064af
mov ecx, edi
call dword [sym.imp.SolvusoftWMhelper.dll_public_virtual:_int___thiscall_CSystweakApp::InitInstance_void_]
test eax, eax
je 0x4064af
call dword [sym.imp.SolvusoftWMhelper.dll_public:_static_bool___cdecl_CSystweakApp::IsRegisteredVersion_void_]
mov byte [edi + 0x11d], al
call sub.mfc90u.dll_AfxGetModuleState
and dword [eax + 0x98], 0
push str.Undelete
mov ecx, edi
call dword [sym.imp.SolvusoftWMhelper.dll_public:_void___thiscall_CSystweakApp::SetDefaultINISectionName_wchar_t_const__]
lea eax, [esp + 0x1c]
push eax
call fcn.00405742
push edi
lea esi, [esp + 0x20]
mov dword [esp + 0x327dc], 1
call fcn.004058ec
push str.UndeleteDLL.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x42fd28], eax
test eax, eax
je 0x40649d
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.Undelete_Create
push eax
call esi
mov dword [0x42fd24], eax
test eax, eax
je 0x40649d
push str.Undelete_Delete
push dword [0x42fd28]
call esi
mov dword [0x42fd20], eax
test eax, eax
je 0x40649d
push str.Undelete_SetVerbose
push dword [0x42fd28]
call esi
mov dword [0x42fd1c], eax
test eax, eax
je 0x40649d
push str.Undelete_SearchMultiple
push dword [0x42fd28]
call esi
mov dword [0x42fd18], eax
test eax, eax
je 0x40649d
push str.Undelete_IsSearching
push dword [0x42fd28]
call esi
mov dword [0x42fd14], eax
test eax, eax
je 0x40649d
push str.Undelete_GetScanStage
push dword [0x42fd28]
call esi
mov dword [0x42fd10], eax
test eax, eax
je 0x40649d
push str.Undelete_GetProgress
push dword [0x42fd28]
call esi
mov dword [0x42fd0c], eax
test eax, eax
je 0x40649d
push str.Undelete_ResetProgress
push dword [0x42fd28]
call esi
mov dword [0x42fd08], eax
test eax, eax
je 0x40649d
push str.Undelete_GetBytesProcessed
push dword [0x42fd28]
call esi
mov dword [0x42fd04], eax
test eax, eax
je 0x40649d
push str.Undelete_Cancel
push dword [0x42fd28]
call esi
mov dword [0x42fd00], eax
test eax, eax
je 0x40649d
push str.Undelete_TotalCancel
push dword [0x42fd28]
call esi
mov dword [0x42fcfc], eax
test eax, eax
je 0x40649d
push str.Undelete_GetFilesCount
push dword [0x42fd28]
call esi
mov dword [0x42fcf8], eax
test eax, eax
je 0x40649d
push str.Undelete_GetDeletedCount
push dword [0x42fd28]
call esi
mov dword [0x42fcf4], eax
test eax, eax
je 0x40649d
push str.Undelete_GetFileInfo
push dword [0x42fd28]
call esi
mov dword [0x42fcf0], eax
test eax, eax
je 0x40649d
push str.Undelete_GetFolderCount
push dword [0x42fd28]
call esi
mov dword [0x42fcec], eax
test eax, eax
je 0x40649d
push str.Undelete_GetFolderInfo
push dword [0x42fd28]
call esi
mov dword [0x42fce8], eax
test eax, eax
je 0x40649d
push str.Undelete_RecoverFile
push dword [0x42fd28]
call esi
mov dword [0x42fce4], eax
test eax, eax
je 0x40649d
push str.Undelete_WipeFolder
push dword [0x42fd28]
call esi
mov dword [0x42fce0], eax
test eax, eax
je 0x40649d
push str.Undelete_WipeFile
push dword [0x42fd28]
call esi
mov dword [0x42fcdc], eax
test eax, eax
je 0x40649d
push str.Undelete_GetWipeProgress
push dword [0x42fd28]
call esi
mov dword [0x42fcd8], eax
test eax, eax
je 0x40649d
push str.Undelete_WipeFreeSpace
push dword [0x42fd28]
call esi
mov dword [0x42fcd4], eax
test eax, eax
je 0x40649d
push str.Undelete_WipeMultiple
push dword [0x42fd28]
call esi
mov dword [0x42fcd0], eax
test eax, eax
je 0x40649d
push str.Undelete_SetWipeMethod
push dword [0x42fd28]
call esi
mov dword [0x42fccc], eax
test eax, eax
je 0x40649d
push str.Undelete_Done
push dword [0x42fd28]
call esi
mov dword [0x42fcc8], eax
test eax, eax
je 0x40649d
push str.Undelete_TooManyFiles
push dword [0x42fd28]
call esi
mov dword [0x42fcc4], eax
test eax, eax
je 0x40649d
push str.Undelete_IsCancelled
push dword [0x42fd28]
call esi
mov dword [0x42fcc0], eax
test eax, eax
je 0x40649d
push str.Undelete_GetFileState
push dword [0x42fd28]
call esi
mov dword [0x42fcbc], eax
test eax, eax
je 0x40649d
push str.Undelete_GetDriveInfo
push dword [0x42fd28]
call esi
mov dword [0x42fcb8], eax
test eax, eax
je 0x40649d
push str.Undelete_GetError
push dword [0x42fd28]
call esi
mov dword [0x42fcb4], eax
test eax, eax
je 0x40649d
push str.Undelete_GetErrorMessage
push dword [0x42fd28]
call esi
mov dword [0x42fcb0], eax
test eax, eax
je 0x40649d
push str.Undelete_IsGoodOS
push dword [0x42fd28]
call esi
mov dword [0x42fcac], eax
test eax, eax
je 0x40649d
push str.Undelete_PhysicalDrivePresent
push dword [0x42fd28]
call esi
mov dword [0x42fca8], eax
test eax, eax
je 0x40649d
push str.Undelete_DetectPhysicalDrivesPartitions
push dword [0x42fd28]
call esi
mov dword [0x42fca4], eax
test eax, eax
je 0x40649d
push str.Undelete_GetPartitionCount
push dword [0x42fd28]
call esi
mov dword [0x42fca0], eax
test eax, eax
je 0x40649d
push str.Undelete_GetPartition
push dword [0x42fd28]
call esi
mov dword [0x42fc9c], eax
test eax, eax
je 0x40649d
push str.Undelete_ScanForPartitions
push dword [0x42fd28]
call esi
mov dword [0x42fc98], eax
test eax, eax
je 0x40649d
push str.Undelete_GetGlobalPartitionIndex
push dword [0x42fd28]
call esi
mov dword [0x42fc94], eax
test eax, eax
je 0x40649d
push str.Undelete_GetPartitionDesc
push dword [0x42fd28]
call esi
mov dword [0x42fc90], eax
test eax, eax
je 0x40649d
push str.Undelete_CanMakeActive
push dword [0x42fd28]
call esi
mov dword [0x42fc8c], eax
test eax, eax
je 0x40649d
push str.Undelete_ShouldShow
push dword [0x42fd28]
call esi
mov dword [0x42fc88], eax
test eax, eax
je 0x40649d
push str.Undelete_MakeActive
push dword [0x42fd28]
call esi
mov dword [0x42fc84], eax
test eax, eax
je 0x40649d
push str.Undelete_GetPartitionTypeName
push dword [0x42fd28]
call esi
mov dword [0x42fc80], eax
test eax, eax
je 0x40649d
push str.Undelete_GetStatusName
push dword [0x42fd28]
call esi
mov dword [0x42fc7c], eax
test eax, eax
je 0x40649d
push str.Undelete_GetPartitionProgress
push dword [0x42fd28]
call esi
mov dword [0x42fc78], eax
test eax, eax
je 0x40649d
push str.Undelete_FixMBRBootCode
push dword [0x42fd28]
call esi
mov dword [0x42fc74], eax
test eax, eax
je 0x40649d
push str.Undelete_NeedFixMBR
push dword [0x42fd28]
call esi
mov dword [0x42fc70], eax
test eax, eax
je 0x40649d
push str.Undelete_NeedUnhide
push dword [0x42fd28]
call esi
mov dword [0x42fc6c], eax
test eax, eax
je 0x40649d
push str.Undelete_NeedFixMBRBootCode
push dword [0x42fd28]
call esi
mov dword [0x42fc68], eax
test eax, eax
je 0x40649d
push str.Undelete_NeedFixProtectiveMBR
push dword [0x42fd28]
call esi
mov dword [0x42fc64], eax
test eax, eax
je 0x40649d
push str.Undelete_FixMBR
push dword [0x42fd28]
call esi
mov dword [0x42fc60], eax
test eax, eax
je 0x40649d
push str.Undelete_CanUndoMBRFix
push dword [0x42fd28]
call esi
mov dword [0x42fc5c], eax
test eax, eax
je 0x40649d
push str.Undelete_CanUndoGPTFix
push dword [0x42fd28]
call esi
mov dword [0x42fc58], eax
test eax, eax
je 0x40649d
push str.Undelete_FixGPT
push dword [0x42fd28]
call esi
mov dword [0x42fc54], eax
test eax, eax
je 0x40649d
push str.Undelete_UndoGPTFix
push dword [0x42fd28]
call esi
mov dword [0x42fc50], eax
test eax, eax
je 0x40649d
push str.Undelete_IsDriveGPT
push dword [0x42fd28]
call esi
mov dword [0x42fc4c], eax
test eax, eax
je 0x40649d
push str.Undelete_IsDriveDynamic
push dword [0x42fd28]
call esi
mov dword [0x42fc48], eax
test eax, eax
je 0x40649d
push str.Undelete_NeedFixGPT
push dword [0x42fd28]
call esi
mov dword [0x42fc44], eax
test eax, eax
je 0x40649d
push str.Undelete_MBRPresent
push dword [0x42fd28]
call esi
mov dword [0x42fc40], eax
test eax, eax
je 0x40649d
push str.Undelete_UndoMBRFix
push dword [0x42fd28]
call esi
mov dword [0x42fc3c], eax
test eax, eax
je 0x40649d
push str.Undelete_ReadMBR
push dword [0x42fd28]
call esi
mov dword [0x42fc38], eax
test eax, eax
je 0x40649d
push str.Undelete_WriteMBR
push dword [0x42fd28]
call esi
mov dword [0x42fc34], eax
test eax, eax
je 0x40649d
push str.Undelete_MayBeRecoveredTo
push dword [0x42fd28]
call esi
mov dword [0x42fc30], eax
test eax, eax
je 0x40649d
mov edi, str.Undelete_GetLogicalDriveInfo
push edi
push dword [0x42fd28]
call esi
mov dword [0x42fc2c], eax
test eax, eax
je 0x40649d
push str.Undelete_FileSystemIndexToName
push dword [0x42fd28]
call esi
mov dword [0x42fc28], eax
test eax, eax
je 0x40649d
push str.Undelete_RestoreSession
push dword [0x42fd28]
call esi
mov dword [0x42fc24], eax
test eax, eax
je 0x40649d
mov ebx, str.Undelete_GetSessionInfo
push ebx
push dword [0x42fd28]
call esi
mov dword [0x42fc20], eax
test eax, eax
je 0x40649d
push edi
push dword [0x42fd28]
call esi
mov dword [0x42fc2c], eax
test eax, eax
je 0x40649d
push str.Undelete_GetPartitionCount
push dword [0x42fd28]
call esi
mov dword [0x42fca0], eax
test eax, eax
je 0x40649d
push str.Undelete_GetPartition
push dword [0x42fd28]
call esi
mov dword [0x42fc9c], eax
test eax, eax
je 0x40649d
push ebx
push dword [0x42fd28]
call esi
mov dword [0x42fc20], eax
test eax, eax
je 0x40649d
lea eax, [esp + 0x14]
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 + 0x327d8], 2
mov edi, dword [esp + 0x10]
lea esi, [edi + 0x110]
push eax
mov ecx, esi
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 + 0x14]
mov byte [esp + 0x327d8], 1
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 ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push esi
call dword [0x421658]
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push eax
mov byte [esp + 0x327e4], 3
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::GetAppProgramName_void_]
pop ecx
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x327e4], 1
call fcn.00406782
push eax
mov ecx, esi
mov byte [esp + 0x327dc], 4
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 + 0x14]
mov byte [esp + 0x327d8], 1
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 eax, [esp + 0xe4]
push eax
call fcn.00406d19
lea eax, [esp + 0xe4]
mov byte [esp + 0x327d8], 5
lea esi, [edi + 0x118]
mov dword [0x42fd30], eax
mov dword [edi + 0x20], eax
mov dword [esi], eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xe8]
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 + 0xe4]
mov byte [esp + 0x327d8], 1
call fcn.00406dad
or dword [esp + 0x327d8], 0xffffffff
lea eax, [esp + 0x1c]
push eax
call fcn.004064d5
xor eax, eax
mov ecx, dword [esp + 0x327d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x327b8]
xor ecx, esp
call fcn.0041d342
mov esp, ebp
pop ebp
ret