Function at 0x409f90
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x4cd724]
xor eax, ebp
mov dword [ebp - 8], eax
push 0x11c
push 0
lea eax, [ebp - 0x128]
push eax
call fcn.004677c0
add esp, 0xc
mov dword [ebp - 0x128], 0x11c
lea ecx, [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x40a008
push str.GetOSVersion____OSVERSIONINFOEX_failed
call fcn.00456e30
add esp, 4
mov dword [ebp - 0x128], 0x114
lea edx, [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x40a008
xor eax, eax
jmp 0x40a7d5
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [ebp - 0x124]
push ecx
push str.GetOSVersion____MajorVersion_d_MinorVersion_d
call fcn.00456e30
add esp, 0xc
mov edx, dword [ebp - 0x124]
mov dword [0x4cf830], edx
mov eax, dword [ebp - 0x120]
mov dword [0x4cf834], eax
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0
je 0x40a7c3
cmp dword [ebp - 0x134], 1
je 0x40a59f
cmp dword [ebp - 0x134], 2
je 0x40a06e
jmp 0x40a7d0
mov dword [0x4cf80c], 1
cmp dword [ebp - 0x124], 4
ja 0x40a137
mov dword [0x4cf810], 1
push 0x4ad214
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_NT4
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad234
call fcn.00456a00
add esp, 8
cmp dword [ebp - 0x124], 4
jne 0x40a0e1
push str.GetOSVersion____Workstation_4.0
call fcn.00456e30
add esp, 4
jmp 0x40a109
movzx edx, word [ebp - 0x10]
and edx, 0x200
je 0x40a0fc
push str.GetOSVersion____Home_Edition
call fcn.00456e30
add esp, 4
jmp 0x40a109
push str.GetOSVersion____Professional
call fcn.00456e30
add esp, 4
movzx eax, byte [ebp - 0xe]
cmp eax, 3
jne 0x40a137
movzx ecx, word [ebp - 0x10]
and ecx, 2
je 0x40a12a
push str.GetOSVersion____Server_4.0__Enterprise_Edition
call fcn.00456e30
add esp, 4
jmp 0x40a137
push str.GetOSVersion____Server_4.0
call fcn.00456e30
add esp, 4
cmp dword [ebp - 0x124], 5
jne 0x40a1d5
cmp dword [ebp - 0x120], 0
jne 0x40a1d5
mov dword [0x4cf814], 1
push 0x4ad308
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_2000
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad32c
call fcn.00456a00
add esp, 8
movzx edx, word [ebp - 0x10]
and edx, 0x80
je 0x40a1b0
push str.GetOSVersion____Datacenter_Server
call fcn.00456e30
add esp, 4
jmp 0x40a1d5
movzx eax, word [ebp - 0x10]
and eax, 2
je 0x40a1c8
push str.GetOSVersion____Advanced_Server
call fcn.00456e30
add esp, 4
jmp 0x40a1d5
push str.GetOSVersion____Server
call fcn.00456e30
add esp, 4
cmp dword [ebp - 0x124], 5
jne 0x40a22b
cmp dword [ebp - 0x120], 1
jne 0x40a22b
mov dword [0x4cf818], 1
push 0x4ad3b4
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_XP
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad3d4
call fcn.00456a00
add esp, 8
cmp dword [ebp - 0x124], 5
jne 0x40a2ed
cmp dword [ebp - 0x120], 2
jne 0x40a2ed
mov dword [0x4cf814], 1
mov dword [0x4cf81c], 1
push 0x4ad3fc
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_Server_2003
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad42c
call fcn.00456a00
add esp, 8
movzx ecx, word [ebp - 0x10]
and ecx, 0x80
je 0x40a2ae
push str.GetOSVersion____Datacenter_Edition
call fcn.00456e30
add esp, 4
jmp 0x40a2ed
movzx edx, word [ebp - 0x10]
and edx, 2
je 0x40a2c6
push str.GetOSVersion____Enterprise_Edition
call fcn.00456e30
add esp, 4
jmp 0x40a2ed
movzx eax, word [ebp - 0x10]
cmp eax, 0x400
jne 0x40a2e0
push str.GetOSVersion____Web_Edition
call fcn.00456e30
add esp, 4
jmp 0x40a2ed
push str.GetOSVersion____Standard_Edition
call fcn.00456e30
add esp, 4
cmp dword [ebp - 0x124], 6
jne 0x40a343
cmp dword [ebp - 0x120], 0
jne 0x40a343
mov dword [0x4cf820], 1
push 0x4ad4e0
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_Vista
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad504
call fcn.00456a00
add esp, 8
cmp dword [ebp - 0x124], 6
jne 0x40a399
cmp dword [ebp - 0x120], 1
jne 0x40a399
mov dword [0x4cf824], 1
push 0x4ad52c
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_Seven
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad550
call fcn.00456a00
add esp, 8
cmp dword [ebp - 0x124], 6
ja 0x40a3b4
cmp dword [ebp - 0x124], 6
jne 0x40a3f8
cmp dword [ebp - 0x120], 1
jbe 0x40a3f8
mov dword [0x4cf828], 1
push str.10B0
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_8
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad598
call fcn.00456a00
add esp, 8
cmp dword [ebp - 0x124], 4
jne 0x40a467
push str.Service_Pack_6
lea ecx, [ebp - 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40a467
lea edx, [ebp - 0x12c]
push edx
push 1
push 0
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionHotfixQ246009
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
jne 0x40a45a
mov eax, dword [ebp - 0x11c]
and eax, 0xffff
push eax
push str.GetOSVersion____Service_Pack_6a__Build__d_
call fcn.00456e30
add esp, 8
mov ecx, dword [ebp - 0x12c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
movzx edx, word [ebp - 0x14]
mov dword [0x4cf838], edx
mov eax, dword [0x4cf838]
push eax
push 0x4ad684
push 4
push 0x4cf914
call fcn.00467d96
add esp, 0x10
movzx ecx, word [ebp - 0x12]
mov dword [0x4cf83c], ecx
mov edx, dword [0x4cf83c]
push edx
push 0x4ad68c
push 4
push 0x4cf91c
call fcn.00467d96
add esp, 0x10
mov eax, dword [ebp - 0x11c]
and eax, 0xffff
push eax
mov ecx, dword [0x4cf83c]
push ecx
mov edx, dword [0x4cf838]
push edx
push str.GetOSVersion____Service_Pack_d._d__Build__d_
call fcn.00456a00
add esp, 0x10
call fcn.00409d20
mov dword [0x4cf82c], eax
cmp dword [0x4cf82c], 0
je 0x40a58d
push str.GetOSVersion____Windows_64_bits
call fcn.00456e30
add esp, 4
cmp dword [0x4cf81c], 0
je 0x40a54a
mov dword [0x4cf818], 1
push 0x4ad714
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_XP_64
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad738
call fcn.00456a00
add esp, 8
jmp 0x40a58b
push 0x4ad760
push 0x20
push 0x4cf928
call fcn.00467c81
add esp, 0xc
push 1
push 0x4ad768
push 0x4ad76c
push 5
push 0x4cf908
call fcn.0040e6b0
add esp, 0x14
push 0x4cf928
push 0x4ad770
call fcn.00456a00
add esp, 8
jmp 0x40a59a
push str.GetOSVersion____Windows_32_bits
call fcn.00456e30
add esp, 4
jmp 0x40a7d0
cmp dword [ebp - 0x124], 4
jne 0x40a6a9
cmp dword [ebp - 0x120], 0
jne 0x40a6a9
mov dword [0x4cf800], 1
push 0x4ad7b8
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_95
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad7d8
call fcn.00456a00
add esp, 8
movzx eax, word [ebp - 0x112]
cmp eax, 0x43
jne 0x40a63b
push 0x4ad800
push 4
push 0x4cf914
call fcn.0046a10d
add esp, 0xc
mov dword [0x4cf838], 2
push 0x4cf914
push 0x4ad804
call fcn.00456a00
add esp, 8
jmp 0x40a6a9
movzx ecx, word [ebp - 0x112]
cmp ecx, 0x42
jne 0x40a679
push 0x4ad83c
push 4
push 0x4cf914
call fcn.0046a10d
add esp, 0xc
mov dword [0x4cf838], 1
push 0x4cf914
push 0x4ad840
call fcn.00456a00
add esp, 8
jmp 0x40a6a9
push 0x4ad878
push 4
push 0x4cf914
call fcn.0046a10d
add esp, 0xc
mov dword [0x4cf838], 0
push 0x4cf914
push 0x4ad87c
call fcn.00456a00
add esp, 8
cmp dword [ebp - 0x124], 4
jne 0x40a76b
cmp dword [ebp - 0x120], 0xa
jne 0x40a76b
mov dword [0x4cf804], 1
push 0x4ad8b4
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_98
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push 0x4ad8d4
call fcn.00456a00
add esp, 8
movzx edx, word [ebp - 0x112]
cmp edx, 0x41
jne 0x40a740
push 0x4ad8fc
push 4
push 0x4cf914
call fcn.0046a10d
add esp, 0xc
mov dword [0x4cf838], 1
push str.GetOSVersion____Version_SE
call fcn.00456e30
add esp, 4
jmp 0x40a76b
push 0x4ad91c
push 4
push 0x4cf914
call fcn.0046a10d
add esp, 0xc
mov dword [0x4cf838], 0
push str.GetOSVersion____Version_FE
call fcn.00456e30
add esp, 4
cmp dword [ebp - 0x124], 4
jne 0x40a7c1
cmp dword [ebp - 0x120], 0x5a
jne 0x40a7c1
mov dword [0x4cf808], 1
push 0x4ad93c
push 5
push 0x4cf908
call fcn.0046a10d
add esp, 0xc
push str.Windows_Millennium
push 0x20
push 0x4cf928
call fcn.0046a10d
add esp, 0xc
push 0x4cf928
push str.GetOSVersion_____s
call fcn.00456a00
add esp, 8
jmp 0x40a7d0
push str.GetOSVersion____Microsoft_Win32s
call fcn.00456e30
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004677af
mov esp, ebp
pop ebp
ret