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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x1e4
mov eax, dword [0x49cff4]
xor eax, ebp
mov dword [ebp + 0x74], eax
push esi
push edi
push 0x24
xor edi, edi
lea eax, [ebp - 0x16c]
push edi
push eax
call fcn.0044d3d0
mov esi, 0x11c
push esi
lea eax, [ebp - 0x148]
push edi
push eax
call fcn.0044d3d0
add esp, 0x18
lea eax, [ebp - 0x148]
push eax
mov dword [ebp - 0x148], esi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x40c7b9
xor eax, eax
inc eax
jmp 0x40ca58
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x138], 2
jne 0x40ca4a
cmp dword [ebp - 0x144], 4
jbe 0x40ca4a
mov edx, ebx
call fcn.0040c3a9
cmp dword [ebp - 0x144], 6
jne 0x40c834
cmp dword [ebp - 0x140], 1
jne 0x40c80f
cmp byte [ebp - 0x2e], 1
mov edi, ebx
jne 0x40c808
push str.Windows_7_
jmp 0x40c82f
push str.Windows_Server_2008_R2_
jmp 0x40c82f
cmp dword [ebp - 0x140], edi
jne 0x40c9c4
cmp byte [ebp - 0x2e], 1
mov edi, ebx
jne 0x40c82a
push str.Windows_Vista_
jmp 0x40c82f
push str.Windows_Server_2008_
call fcn.0040c3be
cmp dword [ebp - 0x144], 5
jne 0x40c9c4
cmp dword [ebp - 0x140], 2
jne 0x40c949
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x40c861
push str.Windows_Server_2003_R2_
jmp 0x40c89d
test dword [ebp - 0x30], 0x2000
je 0x40c871
push str.Windows_Storage_Server_2003
jmp 0x40c89d
test dword [ebp - 0x30], 0x8000
je 0x40c881
push str.Windows_Home_Server
jmp 0x40c89d
cmp byte [ebp - 0x2e], 1
jne 0x40c898
cmp word [ebp - 0x16c], 9
jne 0x40c898
push str.Windows_XP_Professional_x64_Edition
jmp 0x40c89d
push str.Windows_Server_2003_
mov edi, ebx
call fcn.0040c3be
cmp byte [ebp - 0x2e], 1
je 0x40c940
cmp word [ebp - 0x16c], 6
jne 0x40c8d2
test byte [ebp - 0x30], 0x80
je 0x40c8c5
push str.Datacenter_Edition_for_Itanium_based_Systems
jmp 0x40c939
test byte [ebp - 0x30], 2
je 0x40c940
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x40c939
cmp word [ebp - 0x16c], 9
jne 0x40c8ff
test byte [ebp - 0x30], 0x80
je 0x40c8e9
push str.Datacenter_x64_Edition
jmp 0x40c939
test byte [ebp - 0x30], 2
mov edi, ebx
je 0x40c8f8
push str.Enterprise_x64_Edition
jmp 0x40c93b
push str.Standard_x64_Edition
jmp 0x40c93b
mov eax, dword [ebp - 0x30]
test eax, 0x4000
je 0x40c910
push str.Compute_Cluster_Edition
jmp 0x40c939
test al, al
jns 0x40c91b
push str.Datacenter_Edition
jmp 0x40c939
test al, 2
je 0x40c926
push str.Enterprise_Edition
jmp 0x40c939
test eax, 0x400
je 0x40c934
push str.Web_Edition
jmp 0x40c939
push str.Standard_Edition
mov edi, ebx
call fcn.0040c3be
cmp dword [ebp - 0x144], 5
jne 0x40c9c4
cmp dword [ebp - 0x140], 1
mov esi, str.Professional
jne 0x40c982
push str.Windows_XP
mov edi, ebx
call fcn.0040c3be
test dword [ebp - 0x30], 0x200
je 0x40c973
push str.Home_Edition
jmp 0x40c974
push esi
call fcn.0040c3be
cmp dword [ebp - 0x144], 5
jne 0x40c9c4
cmp dword [ebp - 0x140], 0
jne 0x40c9c4
push str.Windows_2000
mov edi, ebx
call fcn.0040c3be
cmp byte [ebp - 0x2e], 1
jne 0x40c9a0
push esi
jmp 0x40c9bf
test byte [ebp - 0x30], 0x80
je 0x40c9ad
push str.Datacenter_Server
jmp 0x40c9bf
test byte [ebp - 0x30], 2
je 0x40c9ba
push str.Advanced_Server
jmp 0x40c9bf
push str.Server
call fcn.0040c3be
lea eax, [ebp - 0x134]
push eax
call fcn.0044d1f0
pop ecx
test eax, eax
jbe 0x40c9ed
push 0x48ae74
mov edi, ebx
call fcn.0040c3be
lea eax, [ebp - 0x134]
push eax
call fcn.0040c3be
push dword [ebp - 0x13c]
lea edi, [ebp - 0x2c]
push str.__build__d_
push 0x50
call fcn.0040c3f2
mov eax, edi
add esp, 0xc
push eax
mov edi, ebx
call fcn.0040c3be
cmp dword [ebp - 0x144], 6
jb 0x40c7b1
cmp word [ebp - 0x16c], 9
jne 0x40ca2d
push str.__64_bit
jmp 0x40ca40
cmp word [ebp - 0x16c], 0
jne 0x40c7b1
push str.__32_bit
call fcn.0040c3be
jmp 0x40c7b1
push str.Unsupported_version_of_Windows._n
mov edi, ebx
call fcn.0040c3be
xor eax, eax
mov ecx, dword [ebp + 0x74]
pop edi
xor ecx, ebp
pop esi
call fcn.0044ce01
add ebp, 0x78
leave
ret