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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
mov eax, dword [0x4f06b4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
push 0x24
lea eax, [ebp - 0x150]
push 0
push eax
call fcn.004a63e0
add esp, 0xc
mov edi, 0x11c
push edi
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.004a63e0
add esp, 0xc
lea eax, [ebp - 0x128]
push eax
mov dword [ebp - 0x128], edi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x48adcb
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.GetNativeSystemInfo
push str.kernel32.dll
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
test eax, eax
je 0x48a801
lea ecx, [ebp - 0x150]
push ecx
call eax
jmp 0x48a80e
lea eax, [ebp - 0x150]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x118], 2
jne 0x48adcb
cmp dword [ebp - 0x124], 4
jbe 0x48adcb
test esi, esi
je 0x48a831
lea eax, [esi + 0x10]
jmp 0x48a833
xor eax, eax
push str.Microsoft
push eax
call fcn.00408b2f
cmp dword [ebp - 0x124], 6
pop ecx
pop ecx
jne case.0x48a8ff.5
xor eax, eax
cmp dword [ebp - 0x120], eax
jne 0x48a87f
cmp byte [ebp - 0xe], 1
jne 0x48a86b
cmp esi, eax
je 0x48a864
lea eax, [esi + 0x10]
push 0x4df8dc
jmp 0x48a877
cmp esi, eax
je 0x48a872
lea eax, [esi + 0x10]
push str.Windows_Server_2008
push eax
call fcn.0047c1c1
pop ecx
pop ecx
cmp dword [ebp - 0x120], 1
jne 0x48a8b8
cmp byte [ebp - 0xe], 1
jne 0x48a8a0
test esi, esi
je 0x48a897
lea eax, [esi + 0x10]
jmp 0x48a899
xor eax, eax
push 0x4df904
jmp 0x48a8b0
test esi, esi
je 0x48a8a9
lea eax, [esi + 0x10]
jmp 0x48a8ab
xor eax, eax
push str.Windows_Server_2008_R2
push eax
call fcn.0047c1c1
pop ecx
pop ecx
push str.GetProductInfo
push str.kernel32.dll
call edi
push eax
call ebx
lea ecx, [ebp - 0x12c]
push ecx
push 0
push 0
push dword [ebp - 0x120]
push dword [ebp - 0x124]
call eax
mov eax, dword [ebp - 0x12c]
cmp eax, 0x19
ja 0x48aa44
je 0x48aa32
dec eax
cmp eax, 0x11
ja case.0x48a8ff.5
jmp dword [eax*4 + 0x48addd]
test esi, esi
je 0x48a90f
lea eax, [esi + 0x10]
jmp 0x48a911
xor eax, eax
push str.Ultimate_Edition
jmp 0x48aa59
test esi, esi
je 0x48a924
lea eax, [esi + 0x10]
jmp 0x48a926
xor eax, eax
push str.Home_Premium_Edition
jmp 0x48aa59
test esi, esi
je 0x48a939
lea eax, [esi + 0x10]
jmp 0x48a93b
xor eax, eax
push str.Home_Basic_Edition
jmp 0x48aa59
test esi, esi
je 0x48a94e
lea eax, [esi + 0x10]
jmp 0x48a950
xor eax, eax
push str.Enterprise_Edition
jmp 0x48aa59
test esi, esi
je 0x48a963
lea eax, [esi + 0x10]
jmp 0x48a965
xor eax, eax
push str.Business_Edition
jmp 0x48aa59
test esi, esi
je 0x48a978
lea eax, [esi + 0x10]
jmp 0x48a97a
xor eax, eax
push str.Starter_Edition
jmp 0x48aa59
test esi, esi
je 0x48a98d
lea eax, [esi + 0x10]
jmp 0x48a98f
xor eax, eax
push str.Cluster_Server_Edition
jmp 0x48aa59
test esi, esi
je 0x48a9a2
lea eax, [esi + 0x10]
jmp 0x48a9a4
xor eax, eax
push str.Datacenter_Edition
jmp 0x48aa59
test esi, esi
je 0x48a9b7
lea eax, [esi + 0x10]
jmp 0x48a9b9
xor eax, eax
push str.Datacenter_Edition__core_installation_
jmp 0x48aa59
test esi, esi
je 0x48a9cc
lea eax, [esi + 0x10]
jmp 0x48a9ce
xor eax, eax
push str.Enterprise_Edition__core_installation_
jmp 0x48aa59
test esi, esi
je 0x48a9e1
lea eax, [esi + 0x10]
jmp 0x48a9e3
xor eax, eax
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x48aa59
test esi, esi
je 0x48a9f3
lea eax, [esi + 0x10]
jmp 0x48a9f5
xor eax, eax
push str.Small_Business_Server
jmp 0x48aa59
test esi, esi
je 0x48aa05
lea eax, [esi + 0x10]
jmp 0x48aa07
xor eax, eax
push str.Standard_Edition
jmp 0x48aa59
test esi, esi
je 0x48aa17
lea eax, [esi + 0x10]
jmp 0x48aa19
xor eax, eax
push str.Standard_Edition__core_installation_
jmp 0x48aa59
test esi, esi
je 0x48aa29
lea eax, [esi + 0x10]
jmp 0x48aa2b
xor eax, eax
push str.Web_Server_Edition
jmp 0x48aa59
test esi, esi
je 0x48aa3b
lea eax, [esi + 0x10]
jmp 0x48aa3d
xor eax, eax
push str.Small_Business_Server_Premium_Edition
jmp 0x48aa59
cmp eax, 0x30
jne case.0x48a8ff.5
test esi, esi
je 0x48aa52
lea eax, [esi + 0x10]
jmp 0x48aa54
xor eax, eax
push str.Professional
push eax
call fcn.0047c1c1
pop ecx
pop ecx
cmp dword [ebp - 0x124], 5
jne 0x48ad11
cmp dword [ebp - 0x120], 2
jne 0x48ac2f
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x48aa99
test esi, esi
je 0x48aa90
lea eax, [esi + 0x10]
jmp 0x48aa92
xor eax, eax
push str.Windows_Server_2003_R2_
jmp 0x48ab01
test dword [ebp - 0x10], 0x2000
je 0x48aab4
test esi, esi
je 0x48aaab
lea eax, [esi + 0x10]
jmp 0x48aaad
xor eax, eax
push str.Windows_Storage_Server_2003
jmp 0x48ab01
test dword [ebp - 0x10], 0x8000
je 0x48aacf
test esi, esi
je 0x48aac6
lea eax, [esi + 0x10]
jmp 0x48aac8
xor eax, eax
push str.Windows_Home_Server
jmp 0x48ab01
cmp byte [ebp - 0xe], 1
jne 0x48aaf1
cmp word [ebp - 0x150], 9
jne 0x48aaf1
test esi, esi
je 0x48aae8
lea eax, [esi + 0x10]
jmp 0x48aaea
xor eax, eax
push str.Windows_XP_Professional_x64_Edition
jmp 0x48ab01
test esi, esi
je 0x48aafa
lea eax, [esi + 0x10]
jmp 0x48aafc
xor eax, eax
push str.Windows_Server_2003_
push eax
call fcn.0047c1c1
cmp byte [ebp - 0xe], 1
pop ecx
pop ecx
je 0x48ac22
cmp word [ebp - 0x150], 6
jne 0x48ab57
test byte [ebp - 0x10], 0x80
je 0x48ab38
test esi, esi
je 0x48ab2c
lea eax, [esi + 0x10]
jmp 0x48ab2e
xor eax, eax
push str.Datacenter_Edition_for_Itanium_based_Systems
jmp 0x48ac1a
test byte [ebp - 0x10], 2
je 0x48ac22
test esi, esi
je 0x48ab4b
lea eax, [esi + 0x10]
jmp 0x48ab4d
xor eax, eax
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x48ac1a
cmp word [ebp - 0x150], 9
jne 0x48aba9
test byte [ebp - 0x10], 0x80
je 0x48ab7c
test esi, esi
je 0x48ab70
lea eax, [esi + 0x10]
jmp 0x48ab72
xor eax, eax
push str.Datacenter_x64_Edition
jmp 0x48ac1a
test byte [ebp - 0x10], 2
je 0x48ab97
test esi, esi
je 0x48ab8b
lea eax, [esi + 0x10]
jmp 0x48ab8d
xor eax, eax
push str.Enterprise_x64_Edition
jmp 0x48ac1a
test esi, esi
je 0x48aba0
lea eax, [esi + 0x10]
jmp 0x48aba2
xor eax, eax
push str.Standard_x64_Edition
jmp 0x48ac1a
mov eax, dword [ebp - 0x10]
test eax, 0x4000
je 0x48abc5
test esi, esi
je 0x48abbc
lea eax, [esi + 0x10]
jmp 0x48abbe
xor eax, eax
push str.Compute_Cluster_Edition
jmp 0x48ac1a
test al, al
jns 0x48abdb
test esi, esi
je 0x48abd2
lea eax, [esi + 0x10]
jmp 0x48abd4
xor eax, eax
push str.Datacenter_Edition
jmp 0x48ac1a
test al, 2
je 0x48abf1
test esi, esi
je 0x48abe8
lea eax, [esi + 0x10]
jmp 0x48abea
xor eax, eax
push str.Enterprise_Edition
jmp 0x48ac1a
test eax, 0x400
je 0x48ac0a
test esi, esi
je 0x48ac01
lea eax, [esi + 0x10]
jmp 0x48ac03
xor eax, eax
push str.Web_Edition
jmp 0x48ac1a
test esi, esi
je 0x48ac13
lea eax, [esi + 0x10]
jmp 0x48ac15
xor eax, eax
push str.Standard_Edition
push eax
call fcn.0047c1c1
pop ecx
pop ecx
cmp dword [ebp - 0x124], 5
jne 0x48ad11
cmp dword [ebp - 0x120], 1
jne 0x48ac90
test esi, esi
je 0x48ac41
lea eax, [esi + 0x10]
jmp 0x48ac43
xor eax, eax
push 0x4dfc20
push eax
call fcn.0047c1c1
test dword [ebp - 0x10], 0x200
pop ecx
pop ecx
je 0x48ac6b
test esi, esi
je 0x48ac62
lea eax, [esi + 0x10]
jmp 0x48ac64
xor eax, eax
push str.Home_Edition
jmp 0x48ac7b
test esi, esi
je 0x48ac74
lea eax, [esi + 0x10]
jmp 0x48ac76
xor eax, eax
push str.Professional
push eax
call fcn.0047c1c1
cmp dword [ebp - 0x124], 5
pop ecx
pop ecx
jne 0x48ad11
cmp dword [ebp - 0x120], 0
jne 0x48ad11
test esi, esi
je 0x48aca2
lea eax, [esi + 0x10]
jmp 0x48aca4
xor eax, eax
push 0x4dfc3c
push eax
call fcn.0047c1c1
cmp byte [ebp - 0xe], 1
pop ecx
pop ecx
jne 0x48acc9
test esi, esi
je 0x48acc0
lea eax, [esi + 0x10]
jmp 0x48acc2
xor eax, eax
push str.Professional
jmp 0x48ad09
test byte [ebp - 0x10], 0x80
je 0x48ace1
test esi, esi
je 0x48acd8
lea eax, [esi + 0x10]
jmp 0x48acda
xor eax, eax
push str.Datacenter_Server
jmp 0x48ad09
test byte [ebp - 0x10], 2
je 0x48acf9
test esi, esi
je 0x48acf0
lea eax, [esi + 0x10]
jmp 0x48acf2
xor eax, eax
push str.Advanced_Server
jmp 0x48ad09
test esi, esi
je 0x48ad02
lea eax, [esi + 0x10]
jmp 0x48ad04
xor eax, eax
push str.Server
push eax
call fcn.0047c1c1
pop ecx
pop ecx
lea eax, [ebp - 0x114]
push eax
call fcn.004a5eb4
pop ecx
test eax, eax
je 0x48ad4b
test esi, esi
je 0x48ad2b
lea eax, [esi + 0x10]
jmp 0x48ad2d
xor eax, eax
lea ecx, [ebp - 0x114]
push ecx
push ecx
push 0x4dbcb8
push eax
call fcn.0047c1c1
add esp, 0xc
push eax
call fcn.00408b2f
pop ecx
pop ecx
test esi, esi
je 0x48ad54
lea eax, [esi + 0x10]
jmp 0x48ad56
xor eax, eax
push 0x4cd734
push ecx
push dword [ebp - 0x11c]
push ecx
push str.__build
push eax
call fcn.00408b2f
add esp, 0xc
push eax
call fcn.0047f808
pop ecx
push eax
call fcn.00408b2f
cmp dword [ebp - 0x124], 6
pop ecx
pop ecx
jb 0x48adc7
cmp word [ebp - 0x150], 9
jne 0x48ada5
test esi, esi
je 0x48ad9c
lea eax, [esi + 0x10]
jmp 0x48ad9e
xor eax, eax
push str.__64_bit
jmp 0x48adbf
cmp word [ebp - 0x150], 0
jne 0x48adc7
test esi, esi
je 0x48adb8
lea eax, [esi + 0x10]
jmp 0x48adba
xor eax, eax
push str.__32_bit
push eax
call fcn.0047c1c1
pop ecx
pop ecx
mov al, 1
jmp 0x48adcd
xor al, al
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.004a545d
leave
ret