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

Disassembly:
push 0x5ec
mov eax, 0x4b0631
call fcn.0049560c
mov ebx, ecx
mov dword [ebp - 0x5f8], ebx
call fcn.00425f07
push eax
lea ecx, [ebx + 0x11c]
call fcn.0040d0a6
and dword [ebp - 4], 0
lea eax, [ebp - 0x5c8]
push 0x118
push 0
push eax
call fcn.00491060
add esp, 0xc
mov dword [ebp - 0x5cc], 0x11c
lea eax, [ebp - 0x5cc]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4111ae
and dword [ebp - 0x5f4], 0
lea esi, [ebp - 0x5cc]
push 0x47
pop ecx
push 8
mov edi, ebx
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea edi, [ebp - 0x5f0]
pop ecx
push str.GetNativeSystemInfo
rep stosd dword es:[edi], eax
push str.kernel32.dll
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call edi
test eax, eax
je 0x410d73
lea ecx, [ebp - 0x5f4]
push ecx
call eax
jmp 0x410d80
lea eax, [ebp - 0x5f4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x5bc], 2
jne 0x4111ae
cmp dword [ebp - 0x5c8], 4
jbe 0x4111ae
push str.Microsoft
push 0x200
lea eax, [ebp - 0x410]
push eax
call fcn.00446e7c
push 6
pop eax
cmp dword [ebp - 0x5c8], eax
jne case.0x410e64.5
cmp dword [ebp - 0x5c4], 0
jne 0x410dee
cmp byte [ebp - 0x4b2], 1
lea eax, [ebp - 0x410]
jne 0x410dde
push str.Windows_Vista
jmp 0x410de3
push str.Windows_Server_2008
push 0x200
push eax
call fcn.00446e0d
cmp dword [ebp - 0x5c4], 1
jne 0x410e1d
cmp byte [ebp - 0x4b2], 1
lea eax, [ebp - 0x410]
jne 0x410e0d
push str.Windows_7
jmp 0x410e12
push str.Windows_Server_2008_R2
push 0x200
push eax
call fcn.00446e0d
push str.GetProductInfo
push str.kernel32.dll
call esi
push eax
call edi
lea ecx, [ebp - 0x5d0]
push ecx
push 0
push 0
push dword [ebp - 0x5c4]
push dword [ebp - 0x5c8]
call eax
mov eax, dword [ebp - 0x5d0]
cmp eax, 0x19
ja 0x410ef0
je 0x410ee9
dec eax
cmp eax, 0x11
ja case.0x410e64.5
jmp dword [eax*4 + 0x4111b7]
push str.Ultimate_Edition
mov esi, 0x200
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
jmp 0x410f09
push str.Home_Premium_Edition
jmp 0x410e70
push str.Home_Basic_Edition
jmp 0x410e70
push str.Enterprise_Edition
jmp 0x410e70
push str.Business_Edition
jmp 0x410e70
push str.Starter_Edition
jmp 0x410e70
push str.Cluster_Server_Edition
jmp 0x410e70
push str.Datacenter_Edition
jmp 0x410e70
push str.Datacenter_Edition__core_installation_
jmp 0x410e70
push str.Enterprise_Edition__core_installation_
jmp 0x410e70
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x410e70
push str.Small_Business_Server
jmp 0x410e70
push str.Standard_Edition
jmp 0x410e70
push str.Standard_Edition__core_installation_
jmp 0x410e70
push str.Web_Server_Edition
jmp 0x410e70
push str.Small_Business_Server_Premium_Edition
jmp 0x410e70
mov esi, 0x200
cmp eax, 0x30
jne 0x410f09
push str.Professional
jmp 0x410e75
mov esi, 0x200
cmp dword [ebp - 0x5c8], 5
push 9
pop edi
jne 0x4110fe
mov eax, dword [ebp - 0x5c4]
cmp eax, 2
jne 0x41105f
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x410f3b
push str.Windows_Server_2003_R2_
jmp 0x410f7f
test dword [ebp - 0x4b4], 0x2000
je 0x410f4e
push str.Windows_Storage_Server_2003
jmp 0x410f7f
test dword [ebp - 0x4b4], 0x8000
je 0x410f61
push str.Windows_Home_Server
jmp 0x410f7f
cmp byte [ebp - 0x4b2], 1
jne 0x410f7a
cmp word [ebp - 0x5f4], di
jne 0x410f7a
push str.Windows_XP_Professional_x64_Edition
jmp 0x410f7f
push str.Windows_Server_2003_
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
cmp byte [ebp - 0x4b2], 1
je 0x41104c
push 6
pop eax
cmp word [ebp - 0x5f4], ax
jne 0x410fcc
test byte [ebp - 0x4b4], 0x80
je 0x410fb8
push str.Datacenter_Edition_for_Itanium_based_Systems
jmp 0x41103f
test byte [ebp - 0x4b4], 2
je 0x41104c
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x41103f
cmp word [ebp - 0x5f4], di
jne 0x411002
test byte [ebp - 0x4b4], 0x80
je 0x410fe5
push str.Datacenter_x64_Edition
jmp 0x41103f
test byte [ebp - 0x4b4], 2
lea eax, [ebp - 0x410]
je 0x410ffb
push str.Enterprise_x64_Edition
jmp 0x411045
push str.Standard_x64_Edition
jmp 0x411045
mov eax, dword [ebp - 0x4b4]
test eax, 0x4000
je 0x411016
push str.Compute_Cluster_Edition
jmp 0x41103f
test al, al
jns 0x411021
push str.Datacenter_Edition
jmp 0x41103f
test al, 2
je 0x41102c
push str.Enterprise_Edition
jmp 0x41103f
test eax, 0x400
je 0x41103a
push str.Web_Edition
jmp 0x41103f
push str.Standard_Edition
lea eax, [ebp - 0x410]
push esi
push eax
call fcn.00446e0d
cmp dword [ebp - 0x5c8], 5
jne 0x4110fe
mov eax, dword [ebp - 0x5c4]
cmp eax, 1
jne 0x4110a6
push str.Windows_XP
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
lea eax, [ebp - 0x410]
test dword [ebp - 0x4b4], esi
je 0x41108b
push str.Home_Edition
jmp 0x411090
push str.Professional
push esi
push eax
call fcn.00446e0d
cmp dword [ebp - 0x5c8], 5
jne 0x4110fe
mov eax, dword [ebp - 0x5c4]
test eax, eax
jne 0x4110fe
push str.Windows_2000
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
cmp byte [ebp - 0x4b2], 1
jne 0x4110cc
push str.Professional
jmp 0x4110f1
test byte [ebp - 0x4b4], 0x80
je 0x4110dc
push str.Datacenter_Server
jmp 0x4110f1
test byte [ebp - 0x4b4], 2
je 0x4110ec
push str.Advanced_Server
jmp 0x4110f1
push str.Server
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
lea eax, [ebp - 0x5b8]
push eax
call fcn.00491c27
pop ecx
test eax, eax
je 0x411135
push 0x4bae44
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
lea eax, [ebp - 0x5b8]
push eax
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
push dword [ebp - 0x5c0]
lea eax, [ebp - 0x4b0]
push 0x4bae48
push 0x50
push eax
call fcn.00446eb0
add esp, 0x10
lea eax, [ebp - 0x4b0]
push eax
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
push 6
pop eax
cmp dword [ebp - 0x5c8], eax
jb 0x41119c
cmp word [ebp - 0x5f4], di
jne 0x411180
push str.__64_bit
jmp 0x41118f
cmp word [ebp - 0x5f4], 0
jne 0x41119c
push str.__32_bit
push esi
lea eax, [ebp - 0x410]
push eax
call fcn.00446e0d
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebx + 0x11c]
call fcn.00445d59
mov eax, ebx
call fcn.004955bb
ret