Function at 0x4164f0
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x429553
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x174
lea eax, [esp + 0xe0]
push eax
mov dword [esp + 0xe4], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x41658d
push 0x14
push str.hpOSVersion__:_ERROR
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0xf
mov dword [esp + 0x1c], eax
mov byte [esp + 0xc], al
call fcn.00401890
lea ecx, [esp]
push ecx
mov dword [esp + 0x180], 0
call fcn.004122d0
mov eax, dword [esp + 0x1c]
add esp, 4
cmp eax, 0x10
jb 0x416575
mov edx, dword [esp + 4]
push edx
call fcn.0041aebd
add esp, 4
or eax, 0xffffffff
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
add esp, 0x180
ret
mov eax, dword [esp + 0xf0]
sub eax, 0
je 0x416814
dec eax
je 0x4166c0
dec eax
jne 0x4166dd
mov eax, dword [esp + 0xe4]
cmp eax, 4
ja 0x416609
push str.hpOSVersion__:_WINNT
lea ecx, [esp + 0x90]
call fcn.00401a90
lea eax, [esp + 0x8c]
push eax
mov dword [esp + 0x180], 5
call fcn.004122d0
add esp, 4
lea ecx, [esp + 0x8c]
call fcn.004013f0
mov eax, 5
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
add esp, 0x180
ret
cmp eax, 5
jne 0x4166dd
mov eax, dword [esp + 0xe8]
sub eax, 0
je 0x416677
dec eax
jne 0x4166dd
push str.hpOSVersion__:_WINXP
lea ecx, [esp + 0xc8]
call fcn.00401a90
lea ecx, [esp + 0xc4]
push ecx
mov dword [esp + 0x180], 7
call fcn.004122d0
add esp, 4
lea ecx, [esp + 0xc4]
call fcn.004013f0
mov eax, 7
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
add esp, 0x180
ret
push str.hpOSVersion__:_WIN2K
lea ecx, [esp + 0x3c]
call fcn.00401a90
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x180], 6
call fcn.004122d0
add esp, 4
lea ecx, [esp + 0x38]
call fcn.004013f0
mov eax, 6
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
add esp, 0x180
ret
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x4167c2
cmp eax, 0xa
je 0x416779
cmp eax, 0x5a
je 0x416730
push str.hpOSVersion__:_UNKNOWN
lea ecx, [esp + 0x20]
call fcn.00401a90
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x180], 8
call fcn.004122d0
mov eax, dword [esp + 0x38]
add esp, 4
cmp eax, 0x10
jb 0x416719
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0041aebd
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
add esp, 0x180
ret
push str.hpOSVersion__:_WINME
lea ecx, [esp + 0x58]
call fcn.00401a90
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x180], 4
call fcn.004122d0
add esp, 4
lea ecx, [esp + 0x54]
call fcn.004013f0
mov eax, 4
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
add esp, 0x180
ret
push str.hpOSVersion__:_WIN98
lea ecx, [esp + 0x74]
call fcn.00401a90
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x180], 3
call fcn.004122d0
add esp, 4
lea ecx, [esp + 0x70]
call fcn.004013f0
mov eax, 3
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
add esp, 0x180
ret
push str.hpOSVersion__:_WIN95
lea ecx, [esp + 0xac]
call fcn.00401a90
lea ecx, [esp + 0xa8]
push ecx
mov dword [esp + 0x180], 2
call fcn.004122d0
add esp, 4
lea ecx, [esp + 0xa8]
call fcn.004013f0
mov eax, 2
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
add esp, 0x180
ret
push str.hpOSVersion__:_WIN32
lea ecx, [esp + 4]
call fcn.00401a90
lea edx, [esp]
push edx
mov dword [esp + 0x180], 1
call fcn.004122d0
mov eax, dword [esp + 0x1c]
add esp, 4
cmp eax, 0x10
jb 0x41684f
mov eax, dword [esp + 4]
push eax
call fcn.0041aebd
add esp, 4
mov ecx, dword [esp + 0x174]
mov eax, 1
mov dword fs:[0], ecx
add esp, 0x180
ret