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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x427250]
xor eax, ebp
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x12c], ecx
push 0x24
push 0
lea eax, [ebp - 0x34]
push eax
call fcn.0040d600
add esp, 0xc
push 0x9c
push 0
lea ecx, [ebp - 0xd8]
push ecx
call fcn.0040d600
add esp, 0xc
mov dword [ebp - 0xd8], 0x9c
lea edx, [ebp - 0xd8]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x401209
mov eax, 1
jmp 0x4018bd
push str.GetNativeSystemInfo
push 0x422308
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x401232
lea eax, [ebp - 0x34]
push eax
call dword [ebp - 0x10]
jmp 0x40123c
lea ecx, [ebp - 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0xc8], 2
jne 0x4018bb
cmp dword [ebp - 0xd4], 4
jbe 0x4018bb
cmp dword [ebp - 0xd4], 6
jne case.0x40133c.4
cmp dword [ebp - 0xd0], 0
jne 0x40129d
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x40128a
push str.Windows_Vista
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp 0x40129d
push str.Windows_Server_2008
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
cmp dword [ebp - 0xd0], 1
jne 0x4012d7
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x4012c4
push str.Windows_7
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp 0x4012d7
push str.Windows_Server_2008_R2
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
push str.GetProductInfo
push 0x422374
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 4]
push edx
push 0
push 0
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xd4]
push ecx
call dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0x130]
sub eax, 1
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0x2f
ja case.0x40133c.4
mov ecx, dword [ebp - 0x130]
movzx edx, byte [ecx + 0x40191c]
jmp dword [edx*4 + 0x4018d0]
push str.Ultimate_Edition
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp case.0x40133c.4
push 0x422398
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp case.0x40133c.4
push str.Home_Premium_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp case.0x40133c.4
push str.Home_Basic_Edition
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp case.0x40133c.4
push 0x4223d4
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp case.0x40133c.4
push str.Business_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp case.0x40133c.4
push str.Starter_Edition
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp case.0x40133c.4
push str.Cluster_Server_Edition
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp case.0x40133c.4
push 0x422424
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp case.0x40133c.4
push str.Datacenter_Edition__core_installation_
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp case.0x40133c.4
push 0x422460
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp case.0x40133c.4
push str.Enterprise_Edition__core_installation_
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp case.0x40133c.4
push 0x42249c
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp case.0x40133c.4
push str.Small_Business_Server
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp case.0x40133c.4
push str.Small_Business_Server_Premium_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp case.0x40133c.4
push 0x42250c
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp case.0x40133c.4
push str.Standard_Edition__core_installation_
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp case.0x40133c.4
push str.Web_Server_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
cmp dword [ebp - 0xd4], 5
jne 0x4016dc
cmp dword [ebp - 0xd0], 2
jne 0x4016dc
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x401517
push str.Windows_Server_2003_R2_
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp 0x401592
movzx ecx, word [ebp - 0x40]
and ecx, 0x2000
je 0x401538
push str.Windows_Storage_Server_2003
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp 0x401592
movzx eax, word [ebp - 0x40]
and eax, 0x8000
je 0x401558
push str.Windows_Home_Server
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp 0x401592
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x40157f
movzx eax, word [ebp - 0x34]
cmp eax, 9
jne 0x40157f
push str.Windows_XP_Professional_x64_Edition
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp 0x401592
push str.Windows_Server_2003_
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
movzx eax, byte [ebp - 0x3e]
cmp eax, 1
je 0x4016dc
movzx ecx, word [ebp - 0x34]
cmp ecx, 6
jne 0x4015ea
movzx edx, word [ebp - 0x40]
and edx, 0x80
je 0x4015c9
push str.Datacenter_Edition_for_Itanium_based_Systems
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp 0x4015e5
movzx ecx, word [ebp - 0x40]
and ecx, 2
je 0x4015e5
push str.Enterprise_Edition_for_Itanium_based_Systems
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp 0x4016dc
movzx eax, word [ebp - 0x34]
cmp eax, 9
jne 0x40164a
movzx ecx, word [ebp - 0x40]
and ecx, 0x80
je 0x401614
push str.Datacenter_x64_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp 0x401645
movzx eax, word [ebp - 0x40]
and eax, 2
je 0x401632
push str.Enterprise_x64_Edition
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp 0x401645
push str.Standard_x64_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp 0x4016dc
movzx eax, word [ebp - 0x40]
and eax, 0x4000
je 0x40166a
push str.Compute_Cluster_Edition
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp 0x4016dc
movzx edx, word [ebp - 0x40]
and edx, 0x80
je 0x40168b
push str.Datacenter_Edition
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp 0x4016dc
movzx ecx, word [ebp - 0x40]
and ecx, 2
je 0x4016a9
push str.Enterprise_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp 0x4016dc
movzx eax, word [ebp - 0x40]
and eax, 0x400
je 0x4016c9
push str.Web_Edition
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp 0x4016dc
push str.Standard_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
cmp dword [ebp - 0xd4], 5
jne 0x401735
cmp dword [ebp - 0xd0], 1
jne 0x401735
push str.Windows_XP
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
movzx ecx, word [ebp - 0x40]
and ecx, 0x200
je 0x401722
push str.Home_Edition
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp 0x401735
push 0x422708
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
cmp dword [ebp - 0xd4], 5
jne 0x4017d2
cmp dword [ebp - 0xd0], 0
jne 0x4017d2
push str.Windows_2000
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x401780
push str.Professional
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp 0x4017d2
movzx ecx, word [ebp - 0x40]
and ecx, 0x80
je 0x4017a1
push str.Datacenter_Server
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
jmp 0x4017d2
movzx eax, word [ebp - 0x40]
and eax, 2
je 0x4017bf
push str.Advanced_Server
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
jmp 0x4017d2
push str.Server
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
lea eax, [ebp - 0xc4]
push eax
call fcn.0040d750
add esp, 4
test eax, eax
jbe 0x401824
push 0x422764
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
lea edx, [ebp - 0xc4]
push edx
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
movzx ecx, word [ebp - 0x42]
push ecx
movzx edx, word [ebp - 0x44]
push edx
push str._n_Service_Pack___d_._d__n
call fcn.0040d689
add esp, 0xc
mov byte [ebp - 0x128], 0
push 0x4f
push 0
lea eax, [ebp - 0x127]
push eax
call fcn.0040d600
add esp, 0xc
mov ecx, dword [ebp - 0xcc]
push ecx
push str.__build__d_
push 0x50
lea edx, [ebp - 0x128]
push edx
call fcn.00401bb0
add esp, 0x10
lea eax, [ebp - 0x128]
push eax
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401b60
cmp dword [ebp - 0xd4], 6
jb 0x4018b2
movzx edx, word [ebp - 0x34]
cmp edx, 9
jne 0x401897
push str.__64_bit
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00401b60
jmp 0x4018b2
movzx ecx, word [ebp - 0x34]
test ecx, ecx
jne 0x4018b2
push str.__32_bit
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00401b60
mov eax, 1
jmp 0x4018bd
xor eax, eax
mov ecx, dword [ebp - 0x38]
xor ecx, ebp
call fcn.0040d67a
mov esp, ebp
pop ebp
ret 4