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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1dc
mov eax, dword [0x43d180]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0x11c
mov dword [ebp - 0x188], eax
mov esi, ecx
lea eax, [ebp - 0x184]
push 0
push eax
call fcn.00417930
add esp, 0xc
mov dword [ebp - 0x184], 0x11c
lea eax, [ebp - 0x184]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov ebx, dword [ebp - 0x180]
cmp ebx, 4
ja 0x40f06a
mov edi, str.Microsoft_Windows_NT
mov edx, 0x104
mov ecx, esi
sub edi, esi
jmp 0x40f040
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f05e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f05e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f040
jmp 0x40f062
test edx, edx
jne 0x40f065
sub ecx, 2
xor eax, eax
mov word [ecx], ax
cmp ebx, 5
jne 0x40f139
mov eax, dword [ebp - 0x17c]
test eax, eax
jne 0x40f0b9
mov edi, str.Microsoft_Windows_2000
mov edx, 0x104
mov ecx, esi
sub edi, esi
jmp 0x40f090
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f090
jmp 0x40f292
cmp eax, 1
jne 0x40f0f9
mov edi, str.Microsoft_Windows_XP
mov edx, 0x104
mov ecx, esi
sub edi, esi
lea esp, [esp]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f0d0
jmp 0x40f292
cmp eax, 2
jne 0x40f29a
mov edi, str.Windows_Server_2003
mov edx, 0x104
mov ecx, esi
sub edi, esi
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f110
jmp 0x40f292
cmp ebx, 6
jne 0x40f29a
mov eax, dword [ebp - 0x17c]
test eax, eax
jne 0x40f1b9
cmp byte [ebp - 0x6a], 1
mov edx, 0x104
mov ecx, esi
jne 0x40f189
mov edi, str.Windows_Vista
sub edi, esi
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f160
jmp 0x40f292
mov edi, str.Windows_Server_2008
sub edi, esi
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f190
jmp 0x40f292
cmp eax, 1
jne 0x40f223
mov edx, 0x104
mov ecx, esi
cmp byte [ebp - 0x6a], al
jne 0x40f1fa
mov edi, str.Windows_7
sub edi, esi
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f1d1
jmp 0x40f292
mov edi, str.Windows_Server_2008_R2
sub edi, esi
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f201
jmp 0x40f292
cmp eax, 2
jne 0x40f254
mov edi, str.Windows_8
mov edx, 0x104
mov ecx, esi
sub edi, esi
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f236
jmp 0x40f292
cmp eax, 3
jne 0x40f29a
mov edi, str.Windows_8.1
mov edx, 0x104
mov ecx, esi
sub edi, esi
jmp 0x40f270
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40f28e
movzx eax, word [edi + ecx]
test ax, ax
je 0x40f28e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40f270
jmp 0x40f292
test edx, edx
jne 0x40f295
sub ecx, 2
xor eax, eax
mov word [ecx], ax
lea eax, [ebp - 0x1dc]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
movzx eax, word [ebp - 0x1dc]
test eax, eax
je 0x40f2ca
cmp eax, 6
je 0x40f2c3
cmp eax, 9
jne 0x40f2da
push str._64_
jmp 0x40f2cf
push str._I64_
jmp 0x40f2cf
push str._32_
push 0x104
push esi
call fcn.00401200
mov edi, dword [ebp - 0x180]
cmp edi, 6
jae 0x40f343
cmp byte [ebp - 0x6a], 1
jne 0x40f308
test dword [ebp - 0x6c], 0x200
je 0x40f2fe
push str.Home
jmp 0x40f6a0
push 0x42ed80
jmp 0x40f6a0
mov eax, dword [ebp - 0x6c]
test al, al
jns 0x40f319
push str.DataCenter_Server
jmp 0x40f6a0
test al, 2
je 0x40f327
push str.Advanced_Server
jmp 0x40f6a0
movzx eax, ax
push eax
push str.Server_Suite_Mask:__X
lea eax, [ebp - 0x68]
push 0x32
push eax
call fcn.00401280
add esp, 0x10
jmp 0x40f69c
movzx eax, word [ebp - 0x70]
movzx ebx, word [ebp - 0x6e]
push str.GetProductInfo
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x17c]
push str.kernel32
mov dword [ebp - 0x190], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40f38f
lea ecx, [ebp - 0x18c]
push ecx
push ebx
push dword [ebp - 0x194]
push dword [ebp - 0x190]
push edi
call eax
mov eax, dword [ebp - 0x18c]
cmp eax, 0x21
ja 0x40f501
je 0x40f4f7
lea ecx, [eax - 1]
cmp ecx, 0x1f
ja case.default.0x40f5e0
jmp dword [ecx*4 + 0x40f784]
push str.Ultimate
jmp 0x40f68e
push str.Home_Basic
jmp 0x40f68e
push str.Home_premium
jmp 0x40f68e
push str.Enterprise
jmp 0x40f68e
push str.Home_Basic_N
jmp 0x40f68e
push str.Business
jmp 0x40f68e
push str.Standard_Server
jmp 0x40f68e
push str.Datacenter_Server
jmp 0x40f68e
push str.Smallbusiness_Server
jmp 0x40f68e
push str.Enterprise_Server
jmp 0x40f68e
push str.Starter
jmp 0x40f68e
push str.Datacenter_Server_Core
jmp 0x40f68e
push str.Standard_Server_Core
jmp 0x40f68e
push str.Enterprise_Server_Core
jmp 0x40f68e
push str.Enterprise_Server_IA64
jmp 0x40f68e
push str.Business_N
jmp 0x40f68e
push str.Web_Server
jmp 0x40f68e
push str.Cluster_Server
jmp 0x40f68e
push str.Home_Server
jmp 0x40f68e
push str.Storage_Express_Server
jmp 0x40f68e
push str.Storage_Standard_Server
jmp 0x40f68e
push str.Storage_Workgroup_Server
jmp 0x40f68e
push str.Storage_Enterprise_Server
jmp 0x40f68e
push str.Server_For_Smallbusiness
jmp 0x40f68e
push str.Smallbusiness_Server_Premium
jmp 0x40f68e
push str.Home_Premium_N
jmp 0x40f68e
push str.Enterprise_N
jmp 0x40f68e
push str.Ultimate_N
jmp 0x40f68e
push str.Web_Server__core_installation_
jmp 0x40f68e
push str.Windows_Essential_Business_Server_Management_Server
jmp 0x40f68e
push str.Windows_Essential_Business_Server_Security_Server
jmp 0x40f68e
push str.Windows_Essential_Business_Server_Messaging_Server
jmp 0x40f68e
push str.Server_Foundation
jmp 0x40f68e
cmp eax, 0x32
ja 0x40f5cd
je 0x40f5c3
lea ecx, [eax - 0x22]
cmp ecx, 0xf
ja case.default.0x40f5e0
jmp dword [ecx*4 + 0x40f804]
push str.Windows_Home_Server_2011
jmp 0x40f68e
push str.Windows_Server_2008_without_Hyper_V_for_Windows_Essential_Server_Solutions
jmp 0x40f68e
push str.Server_Standard_without_Hyper_V
jmp 0x40f68e
push str.Server_Datacenter_without_Hyper_V__full_installation_
jmp 0x40f68e
push str.Server_Enterprise_without_Hyper_V__full_installation_
jmp 0x40f68e
push str.Server_Datacenter_without_Hyper_V__core_installation_
jmp 0x40f68e
push str.Server_Standard_without_Hyper_V__core_installation_
jmp 0x40f68e
push str.Server_Enterprise_without_Hyper_V__core_installation_
jmp 0x40f68e
push str.Microsoft_Hyper_V_Server
jmp 0x40f68e
push str.Storage_Server_Express__core_installation_
jmp 0x40f68e
push str.Storage_Server_Standard__core_installation_
jmp 0x40f68e
push str.Storage_Server_Workgroup__core_installation_
jmp 0x40f68e
push str.Storage_Server_Enterprise__core_installation_
jmp 0x40f68e
push str.Starter_N
jmp 0x40f68e
push str.Professional
jmp 0x40f68e
push str.Professional_N
jmp 0x40f68e
push str.Windows_Small_Business_Server_2011_Essentials
jmp 0x40f68e
cmp eax, 0x3b
ja 0x40f624
je 0x40f61d
lea ecx, [eax - 0x33]
cmp ecx, 6
ja case.default.0x40f5e0
jmp dword [ecx*4 + 0x40f844]
push str.Server_For_SB_Solutions
jmp 0x40f68e
push str.Server_Solutions_Premium
jmp 0x40f68e
push str.Server_Solutions_Premium__core_installation_
jmp 0x40f68e
push str.Server_For_SB_Solutions_EM
jmp 0x40f68e
push str.Windows_MultiPoint_Server
jmp 0x40f68e
push str.Windows_MultiPoint_Server__core_installation_
jmp 0x40f68e
push str.Windows_Essential_Server_Solution_Management
jmp 0x40f68e
cmp eax, 0x3f
ja 0x40f654
je 0x40f64d
mov ecx, eax
sub ecx, 0x3c
je 0x40f646
dec ecx
je 0x40f63f
dec ecx
jne case.default.0x40f5e0
push str.Windows_Essential_Server_Solution_Additional_SVC
jmp 0x40f68e
push str.Windows_Essential_Server_Solution_Management_SVC
jmp 0x40f68e
push str.Windows_Essential_Server_Solution_Additional
jmp 0x40f68e
push str.Small_Business_Server_Premium__core_installation_
jmp 0x40f68e
cmp eax, 0x40
je 0x40f689
cmp eax, 0x41
je 0x40f682
cmp eax, 0xabcdabcd
je 0x40f67b
push eax
push str.Prod:_X
lea eax, [ebp - 0x68]
push 0x32
push eax
call fcn.00401280
add esp, 0x10
jmp 0x40f69c
push str.unlicensed
jmp 0x40f68e
push str.PRODUCT_EMBEDDED
jmp 0x40f68e
push str.Server_Hyper_Core_V
lea eax, [ebp - 0x68]
push 0x32
push eax
call fcn.00401280
add esp, 0xc
lea eax, [ebp - 0x68]
push eax
push 0x104
push esi
call fcn.00401200
mov ecx, dword [ebp - 0x180]
movzx eax, word [ebp - 0x178]
push eax
cmp ecx, 4
ja 0x40f6e0
push dword [ebp - 0x17c]
lea eax, [esi + 0x208]
push ecx
push str._d._d__s__Build__d_
push 0x104
push eax
call fcn.00401280
add esp, 0x18
jmp 0x40f700
lea eax, [ebp - 0x170]
push eax
push str._s__Build__d_
lea eax, [esi + 0x208]
push 0x104
push eax
call fcn.00401280
add esp, 0x14
mov eax, dword [ebp - 0x180]
mov ecx, esi
mov dword [esi + 0x410], eax
mov eax, dword [ebp - 0x17c]
mov dword [esi + 0x414], eax
mov eax, dword [ebp - 0x178]
mov dword [esi + 0x418], eax
call fcn.0040eea0
lea eax, [ebp - 0x1b8]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx eax, word [ebp - 0x1b8]
mov ecx, esi
mov dword [esi + 0x42c], eax
mov eax, dword [ebp - 0x1a4]
mov dword [esi + 0x424], eax
mov eax, dword [ebp - 0x1a8]
mov dword [esi + 0x428], eax
call fcn.0040fae0
mov eax, dword [ebp - 0x188]
test eax, eax
je 0x40f770
mov dword [eax], esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00416230
mov esp, ebp
pop ebp
ret 4