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

Disassembly:
push ebp
lea ebp, [esp - 0x2e8]
sub esp, 0x368
mov eax, dword [0x4d4430]
xor eax, ebp
mov dword [ebp + 0x2e4], eax
mov eax, dword [ebp + 0x2f0]
push esi
push edi
push 0x7f
mov dword [ebp - 0x5c], eax
xor edi, edi
lea eax, [ebp + 0x165]
push edi
push eax
mov byte [ebp + 0x164], 0
call fcn.0040c970
push 0xff
lea eax, [ebp + 0x1e5]
push edi
push eax
mov byte [ebp + 0x1e4], 0
call fcn.0040c970
push 0x24
lea eax, [ebp - 0x80]
push edi
push eax
call fcn.0040c970
mov esi, 0x9c
push esi
lea eax, [ebp + 0xc8]
push edi
push eax
call fcn.0040c970
add esp, 0x30
lea eax, [ebp + 0xc8]
push eax
mov dword [ebp + 0xc8], esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x47b686
mov eax, 0xcb040003
jmp 0x47bb13
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push str.GetNativeSystemInfo
push str.kernel32.dll
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call esi
cmp eax, edi
je 0x47b6ae
lea ecx, [ebp - 0x80]
push ecx
call eax
jmp 0x47b6b8
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x118
lea eax, [ebp - 0x50]
push edi
push eax
call fcn.0040c970
add esp, 0xc
push str.RtlGetVersion
push str.ntdll.dll
mov dword [ebp - 0x54], 0x11c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call esi
cmp eax, edi
je 0x47b730
lea ecx, [ebp - 0x54]
push ecx
call eax
test eax, eax
jne 0x47b730
cmp dword [ebp - 0x50], 0xa
ja 0x47b6fa
jb 0x47b730
lea eax, [ebp + 0x1e4]
push str.Microsoft
push eax
call fcn.0040d8f0
cmp byte [ebp + 0x162], 1
pop ecx
pop ecx
lea eax, [ebp + 0x1e4]
jne 0x47b726
push str._Windows_10
jmp 0x47ba5a
push str._Windows_Server_2016_Technical_Preview
jmp 0x47ba5a
cmp dword [ebp + 0xd8], 2
jne 0x47bb0d
cmp dword [ebp + 0xcc], 4
jbe 0x47bb0d
lea eax, [ebp + 0x1e4]
push str.Microsoft
push eax
call fcn.0040d8f0
cmp dword [ebp + 0xcc], 6
pop ecx
pop ecx
jne 0x47b877
cmp dword [ebp + 0xd0], edi
jne 0x47b795
cmp byte [ebp + 0x162], 1
lea eax, [ebp + 0x1e4]
jne 0x47b788
push str._Windows_Vista
jmp 0x47b78d
push str._Windows_Server_2008
push eax
call fcn.0040d900
pop ecx
pop ecx
cmp dword [ebp + 0xd0], 1
jne 0x47b7c1
cmp byte [ebp + 0x162], 1
lea eax, [ebp + 0x1e4]
jne 0x47b7b4
push str._Windows_7
jmp 0x47b7b9
push str._Windows_Server_2008_R2
push eax
call fcn.0040d900
pop ecx
pop ecx
cmp dword [ebp + 0xd0], 2
mov edi, str._Windows_Server2012_R2
jne 0x47b7ee
cmp byte [ebp + 0x162], 1
lea eax, [ebp + 0x1e4]
jne 0x47b7e5
push str._Windows_8
jmp 0x47b7e6
push edi
push eax
call fcn.0040d900
pop ecx
pop ecx
cmp dword [ebp + 0xd0], 3
jne 0x47b816
cmp byte [ebp + 0x162], 1
lea eax, [ebp + 0x1e4]
jne 0x47b80d
push str._Windows_8.1
jmp 0x47b80e
push edi
push eax
call fcn.0040d900
pop ecx
pop ecx
push str.GetProductInfo
push str.kernel32.dll
call ebx
push eax
call esi
xor esi, esi
cmp eax, esi
je 0x47b843
lea ecx, [ebp - 0x58]
push ecx
push esi
push esi
push dword [ebp + 0xd0]
push dword [ebp + 0xcc]
call eax
test eax, eax
jne 0x47b84d
mov eax, 0xcb040003
jmp 0x47bb12
mov eax, dword [esi + 0x4c1988]
cmp eax, dword [ebp - 0x58]
jne 0x47b86c
push dword [esi + 0x4c198c]
lea eax, [ebp + 0x1e4]
push eax
call fcn.0040d900
pop ecx
pop ecx
add esi, 8
cmp esi, 0x90
jb 0x47b84d
cmp dword [ebp + 0xcc], 5
jne 0x47ba62
cmp dword [ebp + 0xd0], 2
jne 0x47b9bb
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x47b8a4
push str._Windows_Server_2003_R2
jmp 0x47b8e6
test dword [ebp + 0x160], 0x2000
je 0x47b8b7
push str._Windows_Storage_Server_2003
jmp 0x47b8e6
test dword [ebp + 0x160], 0x8000
je 0x47b8ca
push str._Windows_Home_Server
jmp 0x47b8e6
cmp byte [ebp + 0x162], 1
jne 0x47b8e1
cmp word [ebp - 0x80], 9
jne 0x47b8e1
push str._Windows_XP_Professional_x64_Edition
jmp 0x47b8e6
push str._Windows_Server_2003
lea eax, [ebp + 0x1e4]
push eax
call fcn.0040d900
cmp byte [ebp + 0x162], 1
pop ecx
pop ecx
je 0x47b9ae
cmp word [ebp - 0x80], 6
jne 0x47b92f
test byte [ebp + 0x160], 0x80
je 0x47b91b
push str._Datacenter_Edition_for_Itanium_based_Systems
jmp 0x47b9a0
test byte [ebp + 0x160], 2
je 0x47b9ae
push str._Enterprise_Edition_for_Itanium_based_Systems
jmp 0x47b9a0
cmp word [ebp - 0x80], 9
jne 0x47b963
test byte [ebp + 0x160], 0x80
je 0x47b946
push str._Datacenter_x64_Edition
jmp 0x47b9a0
test byte [ebp + 0x160], 2
lea eax, [ebp + 0x1e4]
je 0x47b95c
push str._Enterprise_x64_Edition
jmp 0x47b9a6
push str._Standard_x64_Edition
jmp 0x47b9a6
mov eax, dword [ebp + 0x160]
test eax, 0x4000
je 0x47b977
push str._Compute_Cluster_Edition
jmp 0x47b9a0
test al, al
jns 0x47b982
push str._Datacenter_Edition
jmp 0x47b9a0
test al, 2
je 0x47b98d
push str._Enterprise_Edition
jmp 0x47b9a0
test eax, 0x400
je 0x47b99b
push str._Web_Edition
jmp 0x47b9a0
push str._Standard_Edition
lea eax, [ebp + 0x1e4]
push eax
call fcn.0040d900
pop ecx
pop ecx
cmp dword [ebp + 0xcc], 5
jne 0x47ba62
cmp dword [ebp + 0xd0], 1
mov esi, str._Professional
jne 0x47ba07
lea eax, [ebp + 0x1e4]
push str.Windows_XP
push eax
call fcn.0040d900
test dword [ebp + 0x160], 0x200
pop ecx
pop ecx
lea eax, [ebp + 0x1e4]
je 0x47b9f5
push str._Home_Edition
jmp 0x47b9f6
push esi
push eax
call fcn.0040d900
cmp dword [ebp + 0xcc], 5
pop ecx
pop ecx
jne 0x47ba62
cmp dword [ebp + 0xd0], 0
jne 0x47ba62
lea eax, [ebp + 0x1e4]
push str.Windows_2000
push eax
call fcn.0040d900
cmp byte [ebp + 0x162], 1
pop ecx
pop ecx
jne 0x47ba2f
push esi
jmp 0x47ba54
test byte [ebp + 0x160], 0x80
je 0x47ba3f
push str._Datacenter_Server
jmp 0x47ba54
test byte [ebp + 0x160], 2
je 0x47ba4f
push str._Advanced_Server
jmp 0x47ba54
push str._Server
lea eax, [ebp + 0x1e4]
push eax
call fcn.0040d900
pop ecx
pop ecx
lea eax, [ebp + 0xdc]
push eax
call fcn.0040b990
pop ecx
test eax, eax
je 0x47ba9a
lea eax, [ebp + 0x1e4]
push 0x4b50a8
push eax
call fcn.0040d900
lea eax, [ebp + 0xdc]
push eax
lea eax, [ebp + 0x1e4]
push eax
call fcn.0040d900
add esp, 0x10
push dword [ebp + 0xd4]
lea eax, [ebp + 0x164]
push str._build__d_
push eax
call fcn.0040c779
lea eax, [ebp + 0x164]
push eax
lea eax, [ebp + 0x1e4]
push eax
call fcn.0040d900
add esp, 0x14
cmp dword [ebp + 0xcc], 6
jb 0x47baf8
cmp word [ebp - 0x80], 9
jne 0x47bade
push str._x64
jmp 0x47baea
cmp word [ebp - 0x80], 0
jne 0x47baf8
push str._x86
lea eax, [ebp + 0x1e4]
push eax
call fcn.0040d900
pop ecx
pop ecx
lea eax, [ebp + 0x1e4]
push eax
push dword [ebp - 0x5c]
call fcn.0040d8f0
pop ecx
pop ecx
xor eax, eax
jmp 0x47bb12
mov eax, 0xcb040004
pop ebx
mov ecx, dword [ebp + 0x2e4]
pop edi
xor ecx, ebp
pop esi
call fcn.0040c660
add ebp, 0x2e8
leave
ret