Function at 0x405940
Capabilities:
Check os version

Disassembly:
sub esp, 0x130
mov eax, dword [str.Windows]
mov ecx, dword [0x42bdb0]
mov dl, byte [0x42bdb4]
mov dword [esp], eax
mov eax, dword [str.64bit]
mov dword [esp + 4], ecx
mov cx, word [0x42bda8]
mov byte [esp + 8], dl
mov edx, dword [str.32bit]
mov dword [esp + 0xc], eax
mov ax, word [0x42bda0]
push esi
mov word [esp + 0x14], cx
mov dword [esp + 0x18], edx
mov word [esp + 0x1c], ax
call fcn.00405d00
cmp eax, 0x40
mov dword [0x432180], eax
jne 0x4059ae
lea esi, [esp + 0x10]
call fcn.00405d10
mov word [0x432f4c], ax
jmp 0x4059b2
lea esi, [esp + 0x18]
push edi
mov ecx, 0x25
xor eax, eax
lea edi, [esp + 0xa4]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xa4]
mov dword [esp + 0xa4], 0x94
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [0x431f10], ecx
test ecx, ecx
mov dword [0x431f0c], edx
mov dword [0x431f08], eax
pop edi
jne 0x405a54
cmp eax, 1
jne 0x405a2d
lea edx, [esp + 4]
push 0x42bd98
push edx
lea eax, [esp + 0x28]
push str._s_s
push eax
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp eax, 0xb
jne 0x405a3c
push str.3.11
jmp 0x405c39
push eax
push edx
lea eax, [esp + 0xc]
push 0
push eax
lea ecx, [esp + 0x30]
push str._sUnknown_1__PF_lu__lu._lu
push ecx
jmp 0x405c79
cmp ecx, 1
jne 0x405acb
cmp edx, 4
jne 0x405ab8
test eax, eax
jne 0x405a83
lea edx, [esp + 4]
push 0x42bd70
push edx
lea eax, [esp + 0x28]
push str._s_s
push eax
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp eax, 0xa
jne 0x405a92
push 0x42bd6c
jmp 0x405c39
cmp eax, 0x5a
jne 0x405ab8
lea eax, [esp + 4]
push 0x42bd68
push eax
lea ecx, [esp + 0x28]
push str._s_s
push ecx
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
push eax
push edx
lea edx, [esp + 0xc]
push 1
push edx
push str._sUnknown_2__PF_lu__lu._lu
jmp 0x405c74
cmp ecx, 2
jne 0x405c67
cmp edx, 3
jne 0x405ae9
lea ecx, [esp + 4]
push eax
push ecx
push str._sNT_3._lu
jmp 0x405c43
cmp edx, 4
jne 0x405b17
test eax, eax
jne 0x405c52
lea eax, [esp + 4]
push str.NT_4.0
push eax
lea ecx, [esp + 0x28]
push str._s_s
push ecx
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp edx, 5
jne 0x405b91
test eax, eax
jne 0x405b41
lea edx, [esp + 4]
push str.2000
push edx
lea eax, [esp + 0x28]
push str._s_s
push eax
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp eax, 1
jne 0x405b67
lea ecx, [esp + 4]
push 0x42bd2c
push ecx
lea edx, [esp + 0x28]
push str._s_s
push edx
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp eax, 2
jne 0x405c52
lea eax, [esp + 4]
push str.Server_2003_family
push eax
lea ecx, [esp + 0x28]
push str._s_s
push ecx
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp edx, 6
jne 0x405c2b
test eax, eax
jne 0x405bbf
lea edx, [esp + 4]
push str.Vista
push edx
lea eax, [esp + 0x28]
push str._s_s
push eax
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp eax, 1
jne 0x405be5
lea ecx, [esp + 4]
push str.7_or_2008_R2
push ecx
lea edx, [esp + 0x28]
push str._s_s
push edx
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp eax, 2
jne 0x405c08
lea eax, [esp + 4]
push 0x42bcfc
push eax
lea ecx, [esp + 0x28]
push str._s_s
push ecx
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp eax, 3
jne 0x405c52
lea edx, [esp + 4]
push 0x42bcf8
push edx
lea eax, [esp + 0x28]
push str._s_s
push eax
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
cmp edx, 0xa
jne 0x405c52
test eax, eax
jne 0x405c52
push 0x42bcf4
lea ecx, [esp + 8]
push ecx
push str._s_s
lea edx, [esp + 0x2c]
push edx
call fcn.0040b8ea
add esp, 0x10
jmp 0x405c81
push eax
push edx
lea eax, [esp + 0xc]
push 2
push eax
lea ecx, [esp + 0x30]
push str._sUnknown_3__PF_lu__lu._lu
push ecx
jmp 0x405c79
push eax
push edx
lea edx, [esp + 0xc]
push ecx
push edx
push str._sUnknown_4__PF_lu__lu._lu
lea eax, [esp + 0x34]
push eax
call fcn.0040b8ea
add esp, 0x18
push 0x42a328
lea ecx, [esp + 0x24]
push esi
push ecx
push str._s___s__CPU:__s
push 0x7f
push 0x431a84
call fcn.0040c594
add esp, 0x18
pop esi
add esp, 0x130
ret