Function at 0x407080
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x494f38
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x4bb028]
xor eax, esp
mov dword [esp + 0x14c], eax
push ebx
push ebp
push esi
mov eax, dword [0x4bb028]
xor eax, esp
push eax
lea eax, [esp + 0x160]
mov dword fs:[0], eax
push edi
call fcn.00407290
mov ebx, 1
test eax, eax
je 0x4070cf
mov dword [edi + 0xb4], ebx
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x4070ec
mov esi, edi
call fcn.00408c30
mov dword [edi + 0xb4], 2
jmp 0x407251
lea ecx, [esp + 0x14]
mov ebp, 6
call dword [0x497e20]
push 0x498890
lea ecx, [esp + 0x24]
mov dword [esp + 0x16c], 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_wchar_t_const__]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
lea esi, [edi + 4]
push ecx
mov byte [esp + 0x170], bl
call fcn.0040a7c0
lea ecx, [esp + 0x20]
mov byte [esp + 0x168], 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_]
mov ebx, dword [esi + 0x18]
mov eax, dword [esi]
mov esi, dword [esp + 0x18]
test esi, esi
je 0x407151
cmp esi, eax
je 0x407157
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x1c], ebx
je 0x407180
test esi, esi
jne 0x4071d0
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x1c]
cmp edx, dword [esi + 0x18]
jne 0x407176
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x1c]
mov ebp, dword [eax + 0x140]
lea ecx, [esp + 0x3c]
push ecx
mov dword [esp + 0x40], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov esi, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
push ebp
test eax, eax
je 0x4071ff
cmp dword [esp + 0x44], 5
ja 0x4071d4
lea edx, [esp + 0x18]
push str.10040468390183001__windir___system32_ntbackup.exe._skinsIcons_backuppc.png._skinsIcons_backuppchover.png_d223
push edx
call esi
mov edx, dword [esp + 0x20]
add esp, 0xc
push edi
mov ecx, str.ADT_SS_BACKUPYC
call fcn.00407900
push ebp
push str.10040478490184001__windir___system32_restore_rstrui.exe._skinsIcons_systemrestore.png._skinsIcons_systemrestorehover.png_d323
lea eax, [esp + 0x1c]
push eax
jmp 0x407228
mov esi, dword [esi]
jmp 0x407167
lea ecx, [esp + 0x18]
push str.10040468390183001__windir___system32_sdclt.exe._skinsIcons_backuppc.png._skinsIcons_backuppchover.png_d223
push ecx
call esi
mov edx, dword [esp + 0x20]
add esp, 0xc
push edi
mov ecx, str.ADT_SS_BACKUPYC
call fcn.00407900
push ebp
push str.10040478490184001__windir___system32_restore_rstrui.exe._skinsIcons_systemrestore.png._skinsIcons_systemrestorehover.png_d323
lea edx, [esp + 0x1c]
push edx
jmp 0x407228
lea eax, [esp + 0x18]
push str.10040468390183001__windir___system32_sdclt.exe._skinsIcons_backuppc.png._skinsIcons_backuppchover.png_d223
push eax
call esi
mov edx, dword [esp + 0x20]
add esp, 0xc
push edi
mov ecx, str.ADT_SS_BACKUPYC
call fcn.00407900
push ebp
push str.10040478490184001__windir___system32_restore_rstrui.exe._skinsIcons_systemrestore.png._skinsIcons_systemrestorehover.png_d323
lea ecx, [esp + 0x1c]
push ecx
call esi
mov edx, dword [esp + 0x20]
add esp, 0xc
push edi
mov ecx, str.ADT_SS_SYSTEMR
call fcn.00407900
lea ecx, [esp + 0x14]
mov dword [esp + 0x168], 0xffffffff
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 edi
call fcn.00408fc0
xor eax, eax
cmp dword [edi + 0x20], eax
setne al
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x14c]
xor ecx, esp
call fcn.0048a3f6
add esp, 0x15c
ret