Function at 0x40a85d
Capabilities:
Create thread
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x420a59
mov eax, dword fs:[0]
push eax
sub esp, 0x264
mov eax, dword [0x42f028]
xor eax, esp
mov dword [esp + 0x25c], eax
push ebx
push esi
mov eax, dword [0x42f028]
xor eax, esp
push eax
lea eax, [esp + 0x270]
mov dword fs:[0], eax
lea ecx, [edi + 0x293bc]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Empty]
mov eax, dword [0x42fe90]
mov esi, dword [eax + 0x11c0]
lea eax, [esi + 0x18c]
xor ebx, ebx
cmp eax, ebx
jne 0x40a8c5
mov dword [esp + 0x14], ebx
jmp 0x40a8cc
mov eax, dword [eax + 0x20]
mov dword [esp + 0x14], eax
call fcn.0041516c
mov esi, dword [sym.imp.SolvusoftWMhelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSystweakApp::LoadStringW_wchar_t_const___wchar_t_const__]
cmp byte [0x42fe95], bl
je 0x40a93b
push 0x4219d8
push str.IDS_RESTORATION_COMPLETE
lea eax, [esp + 0x34]
push eax
mov ecx, 0x42fd78
call esi
mov dword [esp + 0x278], ebx
push eax
mov eax, dword [0x42fe90]
mov ecx, dword [eax + 0x11c4]
add ecx, 0x454
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
or dword [esp + 0x278], 0xffffffff
lea ecx, [esp + 0x2c]
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, dword [0x42fe90]
mov eax, dword [eax + 0x11c4]
mov dword [eax + 0x18c], 0x2c8200
mov eax, dword [0x42fe90]
mov ecx, dword [eax + 0x11c0]
add ecx, 0x4f8
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], ebx
cmp byte [0x42fe95], bl
je 0x40a96b
mov eax, dword [eax + 0x11c4]
add eax, 0x478
mov dword [esp + 0x18], eax
push 0x4219d8
push str.IDS_RECOVERING_DATA
lea eax, [esp + 0x40]
push eax
mov ecx, 0x42fd78
call esi
mov dword [esp + 0x278], 1
mov eax, dword [0x42fe90]
push dword [esp + 0x38]
mov ecx, dword [eax + 0x11c0]
call sub.mfc90u.dll_CWnd::SetWindowTextW
or dword [edi + 0x21398], 0xffffffff
lea ecx, [esp + 0x34]
mov dword [edi + 0x213a8], ebx
mov dword [edi + 0x213ac], ebx
mov dword [edi + 0x213b0], ebx
mov dword [edi + 0x213b4], ebx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push edi
lea ebx, [esp + 0x38]
mov byte [esp + 0x27c], 2
call fcn.0040b9ca
mov dword [0x42fe9c], eax
lea eax, [esp + 0x58]
push eax
xor ebx, ebx
push ebx
push edi
push 0x40768b
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
push ebx
mov dword [esp + 0x14], eax
push eax
jmp 0x40abcc
call fcn.00407643
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x5c]
push eax
mov eax, dword [0x42fe90]
push dword [eax + 0x11d0]
call dword [0x42fd04]
pop ecx
pop ecx
test eax, eax
je 0x40abc7
cmp dword [edi + 0x2139c], ebx
jbe 0x40abc7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x213a0]
mov eax, dword [edi + 0x2139c]
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
cmp byte [0x42fe95], dl
je 0x40aa6d
mov edx, dword [esp + 0x18]
mov dword [edx], eax
xor eax, eax
mov dword [edx + 4], eax
push ebx
push 0x3e8
xor eax, eax
push eax
push ecx
call fcn.0041dcc0
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
push dword [esp + 0x20]
shrd ecx, ebx, 1
push dword [esp + 0x20]
shr ebx, 1
add eax, ecx
adc edx, ebx
push edx
push eax
call fcn.0041dc50
push dword [esp + 0x1c]
xor ebx, ebx
push ebx
push 0x406
push dword [esp + 0x20]
mov dword [esp + 0x34], eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
cmp eax, dword [esp + 0x20]
jb 0x40ab0f
ja 0x40aacb
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x1c]
jbe 0x40ab0f
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], eax
and dword [esp + 0x40], 0x80000000
and eax, 0x7fffffff
mov dword [esp + 0x50], eax
fild qword [esp + 0x4c]
mov dword [esp + 0x3c], ebx
fild qword [esp + 0x3c]
fchs
faddp st(1)
fmul qword [0x4276f8]
call fcn.0041dbd6
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
push ebx
push dword [esp + 0x48]
push 0x402
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [edi + 0x213a0]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [0x42fe90]
mov ecx, dword [eax + 0x11c0]
call fcn.00414c0f
mov eax, dword [0x42fe90]
mov ecx, dword [eax + 0x11c0]
push dword [edi + 0x293bc]
add ecx, 0x3e4
call sub.mfc90u.dll_CWnd::SetWindowTextW
push 0x4219d8
push str.IDS_RESTORING_PROGRSS
lea eax, [esp + 0x38]
push eax
mov ecx, 0x42fd78
call esi
mov eax, dword [eax]
push 0xa
pop ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
xor edx, edx
div ecx
push dword [edi + 0x2139c]
push dword [edi + 0x213a0]
push edx
push eax
push dword [esp + 0x38]
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea ecx, [esp + 0x30]
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 + 0x64]
push eax
mov eax, dword [0x42fe90]
mov ecx, dword [eax + 0x11c0]
add ecx, 0x440
call sub.mfc90u.dll_CWnd::SetWindowTextW
push ebx
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x40aa01
cmp dword [edi + 0x2139c], ebx
jne 0x40ac38
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11c0]
call fcn.00415191
push 0x4219d8
push str.IDS_NO_FILES_SEL
lea eax, [esp + 0x18]
push eax
mov ecx, 0x42fd78
call esi
push 1
push ebx
mov byte [esp + 0x280], 3
push dword [0x42fe90]
push 0x10
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, 0x14
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 0x40afc5
mov eax, dword [edi + 0x293bc]
cmp dword [eax - 0xc], ebx
je 0x40afc5
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11c0]
call fcn.00415191
cmp byte [0x42fe95], 0
je 0x40ac75
mov eax, dword [0x42fe90]
mov ecx, dword [eax + 0x11c4]
call fcn.004160b0
jmp 0x40afaf
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_class]
mov byte [esp + 0x278], 4
movzx eax, word [0x42fe8c]
push eax
lea ecx, [esp + 0x1c]
call dword [0x4215fc]
mov eax, dword [0x42fe90]
mov ecx, dword [eax + 0x1128]
push ebx
push ebx
push 1
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.SolvusoftWMhelper.dll_public:_void___thiscall_CDlgLeftDlgBase::EnableLeftButtons_bool__bool__bool__bool__bool__bool__bool_]
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push 0x4219d8
push str.IDS_UDEL_REC
lea eax, [esp + 0x18]
push eax
mov ecx, 0x42fd78
mov byte [esp + 0x284], 5
call esi
mov byte [esp + 0x278], 6
push dword [edi + 0x213a0]
mov eax, dword [eax]
mov ebx, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
push eax
lea eax, [esp + 0x2c]
push eax
call ebx
add esp, 0xc
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_class]
mov byte [esp + 0x278], 7
push dword [edi + 0x213a0]
lea eax, [esp + 0x18]
push 0x42310c
push eax
call ebx
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11b4]
mov eax, dword [eax + 0x450]
add esp, 0xc
call fcn.0040c03c
cmp eax, 1
je 0x40ada5
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11b4]
mov eax, dword [eax + 0x440]
call fcn.0040c03c
cmp eax, 1
je 0x40ada5
push 0x4219d8
push str.IDS_NUM_FILE_ONDRIVE
lea eax, [esp + 0x18]
push eax
mov ecx, 0x42fd78
call esi
mov byte [esp + 0x278], 9
push dword [esp + 0x14]
mov eax, dword [eax]
push dword [esp + 0x1c]
mov esi, 0x290
push eax
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11b4]
add eax, esi
push eax
call ebx
add esp, 0x10
jmp 0x40ade2
push 0x4219d8
push str.IDS_NUMBER_OF_FILES_RECOVERED
lea eax, [esp + 0x18]
push eax
mov ecx, 0x42fd78
call esi
mov byte [esp + 0x278], 8
mov eax, dword [eax]
push dword [esp + 0x14]
mov esi, 0x290
push eax
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11b4]
add eax, esi
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + 0x278], 7
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, dword [0x42fe90]
mov ecx, dword [eax + 0x11b4]
add ecx, 0x294
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Empty]
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11b4]
push ecx
add eax, 0x294
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call dword [0x421658]
mov byte [esp + 0x27c], 0xa
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11b4]
push ecx
add eax, esi
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call dword [0x421658]
mov esi, dword [0x42fe90]
add esi, 0x11d8
mov byte [esp + 0x280], 7
call fcn.0040b568
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push 0x4219d8
push str.IDS_DESC_TRIAL_FINISH
lea eax, [esp + 0x18]
mov byte [esp + 0x280], 0xb
mov esi, dword [sym.imp.SolvusoftWMhelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSystweakApp::LoadStringW_wchar_t_const___wchar_t_const__]
push eax
mov ecx, 0x42fd78
call esi
mov byte [esp + 0x278], 0xc
mov eax, dword [eax]
push 0x421b98
push eax
lea eax, [esp + 0x30]
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + 0x278], 0xb
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 0
push 0x4071cc
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call dword [0x421658]
push ecx
mov eax, esp
mov byte [esp + 0x288], 0xd
mov dword [esp + 0x40], esp
mov ebx, 0x4219d8
push ebx
push str.IDS_EVAL_STRING
push eax
mov ecx, 0x42fd78
call esi
push ecx
mov byte [esp + 0x28c], 0xe
lea eax, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call dword [0x421658]
mov byte [esp + 0x28c], 0xf
push ecx
mov eax, esp
mov dword [esp + 0x34], esp
push ebx
push str.IDS_UNDEL_SUMMARY_TRIAL_FINISH
push eax
mov ecx, 0x42fd78
call esi
mov eax, dword [0x42fd30]
mov eax, dword [eax + 0x1128]
mov byte [esp + 0x290], 0xb
mov ecx, dword [eax + 0xe00]
call dword [sym.imp.SolvusoftWMhelper.dll_public:_void___thiscall_CDlgTrialFinish::fillValues_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____int____cdecl___class_CDlgLeftSideChild____bool_]
cmp dword [0x42fe9c], 5
jl 0x40af7f
cmp dword [edi + 0x213a0], 0
jbe 0x40af7f
mov eax, dword [0x42fe90]
mov eax, dword [eax + 0x11c0]
push 0
push 0x40
push 0x9ad
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SetTimer]
lea ecx, [esp + 0x28]
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 + 0x24]
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]
mov byte [esp + 0x278], 2
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, dword [0x42fe90]
mov ecx, dword [eax + 0x11c0]
push 0x4b3
call dword [sym.imp.SolvusoftWMhelper.dll_public:_void___thiscall_CDlgLeftSideChild::ChangeTheRightSideStep_enum_DLG_BTN_STEPS_]
lea ecx, [esp + 0x34]
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 + 0x38]
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 ecx, dword [esp + 0x270]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x25c]
xor ecx, esp
call fcn.0041d342
mov esp, ebp
pop ebp
ret