Function at 0x40c1f0
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c0a91
mov eax, dword fs:[0]
push eax
sub esp, 0x1fc
mov eax, dword [0x4f6414]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x204], esi
lea eax, [ebp - 0x200]
mov dword [ebp - 0x208], 0
push eax
mov dword [ebp - 0x200], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je case.default.0x40c36f
lea eax, [ebp - 0xe4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x1fc]
add eax, 0xfffffffc
cmp eax, 6
ja case.default.0x40c36f
jmp dword [eax*4 + 0x40c51c]
mov eax, dword [ebp - 0x1f8]
test eax, eax
je 0x40c2ad
cmp eax, 0xa
je 0x40c29c
cmp eax, 0x5a
jne case.default.0x40c36f
push str.Windows_Me
mov ecx, esi
call fcn.00404fd0
jmp 0x40c4fd
push str.Windows_98
mov ecx, esi
call fcn.00404fd0
jmp 0x40c4fd
mov eax, dword [ebp - 0x1f0]
cmp eax, 2
jne 0x40c2c9
push str.Windows_NT_4.0
mov ecx, esi
call fcn.00404fd0
jmp 0x40c4fd
cmp eax, 1
jne case.default.0x40c36f
push str.Windows_95
mov ecx, esi
call fcn.00404fd0
jmp 0x40c4fd
mov eax, dword [ebp - 0x1f8]
sub eax, 0
je 0x40c34f
sub eax, 1
je 0x40c33e
sub eax, 1
jne case.default.0x40c36f
mov al, byte [ebp - 0xe6]
cmp al, 1
jne 0x40c325
cmp word [ebp - 0xe4], 9
jne case.default.0x40c36f
push str.Windows_XP_Professional_x64_Edition
mov ecx, esi
call fcn.00404fd0
jmp 0x40c4fd
cmp al, 3
jne case.default.0x40c36f
push str.Windows_Server_2003
mov ecx, esi
call fcn.00404fd0
jmp 0x40c4fd
push str.Windows_XP
mov ecx, esi
call fcn.00404fd0
jmp 0x40c4fd
push str.Windows_2000
mov ecx, esi
call fcn.00404fd0
jmp 0x40c4fd
mov eax, dword [ebp - 0x1f8]
cmp eax, 3
ja case.default.0x40c36f
jmp dword [eax*4 + 0x40c538]
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x40c390
push str.Windows_Vista
call fcn.00404fd0
jmp 0x40c4fd
push str.Windows_Server_2008
call fcn.00404fd0
jmp 0x40c4fd
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x40c3b9
push str.Windows_7
call fcn.00404fd0
jmp 0x40c4fd
push str.Windows_Server_2008_R2
call fcn.00404fd0
jmp 0x40c4fd
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x40c3e2
push str.Windows_8
call fcn.00404fd0
jmp 0x40c4fd
push str.Windows_Server_2012
call fcn.00404fd0
jmp 0x40c4fd
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x40c40b
push str.Windows_8.1
call fcn.00404fd0
jmp 0x40c4fd
push str.Windows_Server_2012_R2
call fcn.00404fd0
jmp 0x40c4fd
cmp dword [ebp - 0x1f8], 0
jne case.default.0x40c36f
cmp byte [ebp - 0xe6], 1
mov ecx, esi
jne 0x40c43d
push str.Windows_10
call fcn.00404fd0
jmp 0x40c4fd
push str.Windows_Server_2016_Techical_Preview
call fcn.00404fd0
jmp 0x40c4fd
push 0xb0
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00465ca0
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.00407a20
mov edx, str.Windows_NT
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xb0]
call fcn.00408fa0
push dword [ebp - 0x1fc]
lea ecx, [ebp - 0xb0]
call fcn.0040caf0
mov edx, 0x4e885c
mov ecx, eax
call fcn.00408fa0
push dword [ebp - 0x1f8]
lea ecx, [ebp - 0xb0]
call fcn.0040caf0
mov edx, 0x4e885c
mov ecx, eax
call fcn.00408fa0
push dword [ebp - 0x1f4]
lea ecx, [ebp - 0xb0]
call fcn.0040caf0
push esi
lea ecx, [ebp - 0xc0]
call fcn.00407910
lea ecx, [ebp - 0x58]
call fcn.00407930
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 1
push eax
mov dword [ebp - 0x58], vtable.std::ios_base.0
call fcn.00418c4d
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004640c2
mov esp, ebp
pop ebp
ret