Function at 0x4030f0
Capabilities:
Check if file exists
Move file

Disassembly:
push 0xffffffffffffffff
push 0x40fb41
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x415028]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x415028]
xor eax, esp
push eax
lea eax, [esp + 0x15c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x16c]
lea ecx, [esp + 0x20]
call dword [0x4102cc]
lea ecx, [esp + 0x138]
mov dword [esp + 0x164], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
lea ecx, [esp + 0x11c]
mov byte [esp + 0x164], 1
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
lea ecx, [esp + 0x64]
mov byte [esp + 0x164], 2
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
lea ecx, [esp + 0x80]
mov byte [esp + 0x164], 3
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
cmp dword [ebp], 0
je 0x403756
cmp dword [ebp + 4], 0
jne 0x403756
lea ecx, [esp + 0x14]
call dword [0x4102cc]
push 0x14f
push str.CInitializeOperate::InstallInitCheck
lea eax, [esp + 0x1c]
mov byte [esp + 0x16c], 5
mov ebx, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
push str._s_at__d_line
push eax
call ebx
add esp, 0xc
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call dword [0x4102c0]
push ebp
call fcn.00404230
lea edi, [esp + 0x80]
mov edx, str._APPDATA_GlarySoftGlary_Utilities_5
call fcn.00409ff0
cmp dword [esp + 0x98], 8
mov eax, dword [esp + 0x84]
jae 0x403215
lea eax, [esp + 0x84]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call esi
test eax, eax
jne 0x403277
lea edi, [esp + 0x64]
mov edx, str._APPDATA_GlarySoftGlary_Utilities_3
call fcn.00409ff0
mov eax, dword [esp + 0x68]
mov edi, 8
cmp dword [esp + 0x7c], edi
jae 0x403243
lea eax, [esp + 0x68]
push eax
call esi
test eax, eax
je 0x403277
mov ecx, dword [esp + 0x84]
cmp dword [esp + 0x98], edi
jae 0x403261
lea ecx, [esp + 0x84]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], edi
jae 0x40326f
lea eax, [esp + 0x68]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
lea eax, [esp + 0x24]
push eax
call fcn.00406d10
push 0x19b
push str.CInitializeOperate::InstallInitCheck
lea ecx, [esp + 0x1c]
push str._s_at__d_line
push ecx
mov byte [esp + 0x174], 6
call ebx
add esp, 0xc
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call dword [0x4102c0]
push ebp
call fcn.00404230
mov edi, str.SoftwareGlarySoftGlary_Utilities_3
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
lea esi, [esp + 0x24]
call fcn.00406d90
test eax, eax
je 0x4033fd
lea eax, [esp + 0xdc]
push eax
call fcn.00406d10
mov ecx, 0x410cf8
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
lea esi, [esp + 0xdc]
mov byte [esp + 0x164], 7
call fcn.00406ec0
test eax, eax
je 0x4033be
lea ecx, [esp + 0x18]
call dword [0x4102cc]
mov ebx, str.Regcode
mov ecx, esi
mov byte [esp + 0x164], 8
call fcn.004071f0
mov esi, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
push eax
lea ecx, [esp + 0x1c]
push 0x410820
push ecx
call esi
mov edx, dword [esp + 0x24]
add esp, 0xc
cmp dword [edx - 0xc], 0
jne 0x40335f
lea ecx, [esp + 0x24]
call fcn.004071f0
push str.RegCode
lea edi, [esp + 0xe0]
call fcn.00407080
mov ebx, str.RegName
lea ecx, [esp + 0xdc]
call fcn.004071f0
push eax
lea eax, [esp + 0x1c]
push 0x410820
push eax
call esi
mov ecx, dword [esp + 0x24]
add esp, 0xc
cmp dword [ecx - 0xc], 0
jne 0x4033a0
lea ecx, [esp + 0x24]
call fcn.004071f0
push ebx
lea edi, [esp + 0xe0]
call fcn.00407080
lea esi, [esp + 0xdc]
call fcn.00406ce0
lea ecx, [esp + 0x18]
mov byte [esp + 0x164], 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 [esp + 0x44]
test eax, eax
je 0x4033d8
push eax
call dword [sym.imp.Config.dll_Ordinal_1_2]
add esp, 4
mov dword [esp + 0x44], 0
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void_]
lea edx, [esp + 0xdc]
push edx
mov byte [esp + 0x168], 6
call fcn.00406c50
mov ebx, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
push 0x1cc
push str.CInitializeOperate::InstallInitCheck
lea eax, [esp + 0x1c]
push str._s_at__d_line
push eax
call ebx
add esp, 0xc
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call dword [0x4102c0]
push ebp
call fcn.00404230
lea eax, [esp + 0x9c]
push eax
call fcn.00406d10
mov ecx, 0x410cf8
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
lea esi, [esp + 0x9c]
mov byte [esp + 0x164], 9
call fcn.00406ec0
test eax, eax
je 0x40350e
lea ecx, [esp + 0x18]
call dword [0x4102cc]
mov ebx, str.Regcode
mov ecx, esi
mov byte [esp + 0x164], 0xa
call fcn.004071f0
push eax
lea ecx, [esp + 0x1c]
push 0x410820
push ecx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0xc
push 0xffffffffffffffff
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call dword [0x4102c0]
call fcn.00405880
xor ebx, ebx
cmp eax, ebx
je 0x4034d1
push str.Regcode
mov eax, str.
mov edi, esi
call fcn.00407080
push str.RegName
mov eax, 0x4108b4
call fcn.00407080
mov eax, dword [esp + 0xbc]
cmp eax, ebx
je 0x4034ed
push eax
call dword [sym.imp.Config.dll_Ordinal_1_2]
add esp, 4
mov dword [esp + 0xbc], ebx
lea ecx, [esp + 0xc0]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void_]
lea ecx, [esp + 0x18]
mov byte [esp + 0x164], 9
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 0x403510
xor ebx, ebx
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x403526
push eax
call dword [sym.imp.Config.dll_Ordinal_1_2]
add esp, 4
mov dword [esp + 0x44], ebx
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void_]
push 0x1df
push str.CInitializeOperate::InstallInitCheck
lea eax, [esp + 0x1c]
push str._s_at__d_line
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0xc
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call dword [0x4102c0]
push ebp
call fcn.00404230
mov edi, 0x410cf8
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
lea esi, [esp + 0x24]
call fcn.00406d90
test eax, eax
je 0x4035d9
mov ecx, str.UpdateFile
mov edi, esi
call fcn.00406ff0
mov ecx, str.NewVersion
call fcn.00406ff0
mov ecx, str.NewVersionDate
call fcn.00406ff0
mov ecx, str.SkipVersion
call fcn.00406ff0
mov ecx, str.UpdateUrl
call fcn.00406ff0
mov ecx, 0x410cfc
call fcn.00406ff0
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x4035cf
push eax
call dword [sym.imp.Config.dll_Ordinal_1_2]
add esp, 4
mov dword [esp + 0x44], ebx
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void_]
mov ecx, 0x410cf8
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
lea esi, [esp + 0x24]
call fcn.00406ec0
test eax, eax
je 0x40365a
lea ebx, [esp + 0x1c]
mov ecx, str.AURunType
call fcn.00407100
test eax, eax
jne 0x403611
lea edx, [eax + 1]
mov ecx, str.AURunType
mov edi, esi
call fcn.00407030
lea ebx, [esp + 0x1c]
mov ecx, str.AUTimeSpan
lea esi, [esp + 0x24]
call fcn.00407100
test eax, eax
jne 0x403636
lea edx, [eax + 1]
mov ecx, str.AUTimeSpan
mov edi, esi
call fcn.00407030
mov eax, dword [esp + 0x44]
test eax, eax
je 0x403650
push eax
call dword [sym.imp.Config.dll_Ordinal_1_2]
add esp, 4
mov dword [esp + 0x44], 0
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void_]
mov esi, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
push 0x208
push str.CInitializeOperate::InstallInitCheck
lea eax, [esp + 0x1c]
push str._s_at__d_line
push eax
call esi
add esp, 0xc
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call dword [0x4102c0]
push ebp
call fcn.00404230
call fcn.004037e0
push 0x20b
push str.CInitializeOperate::InstallInitCheck
lea eax, [esp + 0x1c]
push str._s_at__d_line
push eax
call esi
add esp, 0xc
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call dword [0x4102c0]
push ebp
call fcn.00404230
cmp dword [ebp + 0x10], 0
je 0x4036e4
call fcn.00409ec0
test eax, eax
je 0x4036e4
push 1
call fcn.00404140
test eax, eax
je 0x4036e4
call fcn.00404490
push 0x212
push str.CInitializeOperate::InstallInitCheck
lea eax, [esp + 0x1c]
push str._s_at__d_line
push eax
call esi
add esp, 0xc
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call dword [0x4102c0]
push ebp
call fcn.00404230
call dword [sym.imp.StartupManager.dll_CheckDelayStartupSettings]
push ebp
mov ebx, 1
call fcn.00404320
lea eax, [esp + 0x9c]
push eax
mov byte [esp + 0x168], 6
call fcn.00406c50
lea ecx, [esp + 0x24]
push ecx
mov byte [esp + 0x168], 5
call fcn.00406c50
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 + 0x80]
mov byte [esp + 0x164], 3
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x64]
mov byte [esp + 0x164], 2
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x11c]
mov byte [esp + 0x164], 1
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x138]
mov byte [esp + 0x164], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
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]
mov ecx, dword [esp + 0x15c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.0040dd0c
add esp, 0x154
ret 4