Function at 0x40a5c0
Capabilities:
Check os version
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x738
mov eax, dword [0x418014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
lea eax, [ebp - 0x720]
mov dword [ebp - 0x728], 0
push eax
mov edi, ecx
mov dword [ebp - 0x724], 0
mov dword [ebp - 0x720], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x710], 2
mov ecx, str.Windows
mov esi, dword [ebp - 0x71c]
mov edx, dword [ebp - 0x718]
jne 0x40a63e
cmp esi, 4
ja 0x40a628
mov ecx, str.Windows_NT
jmp 0x40a662
cmp esi, 5
jne 0x40a662
test edx, edx
mov ecx, str.Windows_2000
mov eax, str.Windows_XP
cmovne ecx, eax
jmp 0x40a662
test edx, edx
jne 0x40a649
mov ecx, str.Windows_95
jmp 0x40a662
cmp edx, 0xa
jne 0x40a655
mov ecx, str.Windows_98
jmp 0x40a662
cmp edx, 0x5a
mov eax, str.Windows_Me
cmovne eax, ecx
mov ecx, eax
lea eax, [ebp - 0x70c]
push eax
push dword [ebp - 0x714]
lea eax, [edi + 0xe4]
push edx
push esi
push ecx
push str._s__d._02d._d__s
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__3]
add esp, 0x1c
lea ecx, [edi + 0xd0]
push 0x411d88
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
lea eax, [edi + 0xd4]
push str.V00.00.00
mov ecx, eax
mov dword [ebp - 0x72c], eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
lea eax, [edi + 0xd8]
push str.V00.00.00
mov ecx, eax
mov dword [ebp - 0x730], eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
lea eax, [edi + 0xdc]
push str.Copyright__C__PFSC
mov ecx, eax
mov dword [ebp - 0x734], eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
lea eax, [edi + 0xe0]
push str.PFSC
mov ecx, eax
mov dword [ebp - 0x738], eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
push 0x104
lea eax, [ebp - 0x60c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x40a90e
push 0
lea eax, [ebp - 0x60c]
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
test eax, eax
je 0x40a90e
lea edi, [eax + 0x100]
and edi, 0xffffff00
push edi
call dword [sym.imp.mfc140u.dll_operator]
mov esi, eax
add esp, 4
test esi, esi
je 0x40a90e
push esi
push edi
push 0
lea eax, [ebp - 0x60c]
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x40a90e
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
lea eax, [ebp - 0x404]
push ebx
push str.StringFileInfo041103a4_
push 0x200
push eax
call edi
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
lea eax, [ebp - 0x404]
push 0x418330
push 0x200
push eax
call ebx
add esp, 0x18
lea eax, [ebp - 0x728]
push eax
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x404]
push eax
push esi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x40a7e1
mov ecx, dword [ebp - 0x72c]
push 0x412ba8
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
push dword [ebp - 0x724]
mov ecx, dword [ebp - 0x72c]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator_1]
push str.StringFileInfo041103a4_
lea eax, [ebp - 0x404]
push 0x200
push eax
call edi
push 0x418310
lea eax, [ebp - 0x404]
push 0x200
push eax
call ebx
add esp, 0x18
lea eax, [ebp - 0x728]
push eax
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x404]
push eax
push esi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x40a84d
mov ecx, dword [ebp - 0x730]
push 0x412ba8
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
push dword [ebp - 0x724]
mov ecx, dword [ebp - 0x730]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator_1]
push str.StringFileInfo041103a4_
lea eax, [ebp - 0x404]
push 0x200
push eax
call edi
push 0x4182f0
lea eax, [ebp - 0x404]
push 0x200
push eax
call ebx
add esp, 0x18
lea eax, [ebp - 0x728]
push eax
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x404]
push eax
push esi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x40a8a8
push dword [ebp - 0x724]
mov ecx, dword [ebp - 0x734]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
push str.StringFileInfo041103a4_
lea eax, [ebp - 0x404]
push 0x200
push eax
call edi
push 0x4182d8
lea eax, [ebp - 0x404]
push 0x200
push eax
call ebx
add esp, 0x18
lea eax, [ebp - 0x728]
push eax
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x404]
push eax
push esi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
pop ebx
test eax, eax
je 0x40a904
push dword [ebp - 0x724]
mov ecx, dword [ebp - 0x738]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
push esi
call dword [sym.imp.mfc140u.dll_operator_1]
add esp, 4
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.0040c38d
mov esp, ebp
pop ebp
ret