Function at 0x40a960
Capabilities:
Check os version

Disassembly:
sub esp, 0xa4
mov eax, dword [0x43b3c0]
xor eax, esp
mov dword [esp + 0xa0], eax
push 0x9c
lea eax, [esp + 8]
push 0
push eax
call fcn.0041a300
mov eax, 0x43d780
add esp, 0xc
mov dword [esp + 4], 0x9c
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a998
sub eax, edx
jne 0x40ac0a
lea ecx, [esp + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x40a9eb
mov edx, dword [str.WindowsSystem]
mov eax, dword [0x4376a0]
mov ecx, dword [0x4376a4]
mov dword [0x43d780], edx
mov dx, word [0x4376a8]
mov dword [0x43d784], eax
mov dword [0x43d788], ecx
mov word [0x43d78c], dx
jmp 0x40ac0a
cmp dword [esp + 0x14], 2
jne 0x40abdc
mov eax, dword [esp + 8]
cmp eax, 4
jbe 0x40abdc
cmp eax, 6
jne 0x40ab36
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x40aa84
cmp byte [esp + 0x9e], 1
jne 0x40aa43
mov eax, dword [str.WindowsVista]
mov ecx, dword [0x4376b0]
mov edx, dword [0x4376b4]
mov dword [0x43d780], eax
mov al, byte [0x4376b8]
mov byte [0x43d78c], al
jmp 0x40abfe
mov ecx, dword [str.WindowsServer2008]
mov edx, dword [0x4376c0]
mov eax, dword [0x4376c4]
mov dword [0x43d780], ecx
mov ecx, dword [0x4376c8]
mov dword [0x43d784], edx
mov dx, word [0x4376cc]
mov dword [0x43d788], eax
mov dword [0x43d78c], ecx
mov word [0x43d790], dx
jmp 0x40ac0a
cmp eax, 1
jne 0x40aaf0
cmp byte [esp + 0x9e], al
jne 0x40aab3
mov eax, dword [str.Windows7]
mov dl, byte [0x4376d8]
mov ecx, dword [0x4376d4]
mov dword [0x43d780], eax
mov byte [0x43d788], dl
jmp 0x40ac04
mov eax, dword [str.WindowsServer2008R2]
mov ecx, dword [0x4376e0]
mov edx, dword [0x4376e4]
mov dword [0x43d780], eax
mov eax, dword [0x4376e8]
mov dword [0x43d784], ecx
mov ecx, dword [0x4376ec]
mov dword [0x43d788], edx
mov dword [0x43d78c], eax
mov dword [0x43d790], ecx
jmp 0x40ac0a
cmp eax, 2
jne 0x40ac0a
mov edx, dword [str.Windows8_Server2012]
mov eax, dword [0x4376f4]
mov ecx, dword [0x4376f8]
mov dword [0x43d780], edx
mov edx, dword [0x4376fc]
mov dword [0x43d784], eax
mov eax, dword [0x437700]
mov dword [0x43d788], ecx
mov dword [0x43d78c], edx
mov dword [0x43d790], eax
jmp 0x40ac0a
cmp eax, 5
jne 0x40ac0a
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x40ab6e
mov ecx, dword [str.Windows2000]
mov edx, dword [0x437708]
mov eax, dword [0x43770c]
mov dword [0x43d780], ecx
mov dword [0x43d784], edx
mov dword [0x43d788], eax
jmp 0x40ac0a
cmp eax, 1
jne 0x40ab99
mov ecx, dword [str.WindowsXP]
mov edx, dword [0x437714]
mov ax, word [0x437718]
mov dword [0x43d780], ecx
mov dword [0x43d784], edx
mov word [0x43d788], ax
jmp 0x40ac0a
cmp eax, 2
jne 0x40ac0a
mov ecx, dword [str.WindowsServer2003]
mov edx, dword [0x437720]
mov eax, dword [0x437724]
mov dword [0x43d780], ecx
mov ecx, dword [0x437728]
mov dword [0x43d784], edx
mov dx, word [0x43772c]
mov dword [0x43d788], eax
mov dword [0x43d78c], ecx
mov word [0x43d790], dx
jmp 0x40ac0a
mov eax, dword [str.WindowsSystem]
mov ecx, dword [0x4376a0]
mov edx, dword [0x4376a4]
mov dword [0x43d780], eax
mov ax, word [0x4376a8]
mov word [0x43d78c], ax
mov dword [0x43d788], edx
mov dword [0x43d784], ecx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
mov eax, 0x43d780
call fcn.004174dc
add esp, 0xa4
ret