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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e64d8
mov eax, dword fs:[0]
push eax
sub esp, 0x258
mov eax, dword [0x672014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x1f4]
push 0x11c
xorps xmm0, xmm0
mov dword [ebp - 0x22c], esi
push 0
push eax
movups xmmword [ebp - 0x264], xmm0
mov dword [ebp - 0x244], 0
movups xmmword [ebp - 0x254], xmm0
call fcn.005ba0f0
add esp, 0xc
mov dword [ebp - 0x1f4], 0x11c
lea eax, [ebp - 0x1f4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x434217
cmp dword [ebp - 0x1f0], 6
jb 0x4330a2
lea eax, [ebp - 0x220]
push eax
lea edx, [ebp - 0x234]
lea ecx, [ebp - 0x230]
call fcn.00430dc0
add esp, 4
test al, al
je 0x4330a2
mov ecx, dword [ebp - 0x230]
mov eax, dword [ebp - 0x234]
cmp dword [ebp - 0x1f0], ecx
jne 0x43308a
cmp dword [ebp - 0x1ec], eax
je 0x4330a2
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x1f0], ecx
mov dword [ebp - 0x1e8], eax
push str.GetNativeSystemInfo
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4330c8
lea ecx, [ebp - 0x264]
push ecx
call eax
jmp 0x4330d5
lea eax, [ebp - 0x264]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x1e4], 2
jne 0x434217
cmp dword [ebp - 0x1f0], 4
jbe 0x434217
mov edi, str.Microsoft
mov edx, 0x100
mov ecx, esi
sub edi, esi
nop dword [eax]
lea eax, [edx + 0x7ffffefe]
test eax, eax
je 0x43311e
movzx eax, word [ecx + edi]
test ax, ax
je 0x43311e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x433100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ax, word [ebp - 0x264]
cmp ax, 6
jne 0x4331d0
push ecx
push 0x11660
lea ecx, [ebp - 0xd8]
call fcn.0041eb10
mov dword [ebp - 4], 0
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
lea eax, [ebp - 0x224]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - method.srl::Value.virtual_0], vtable.srl::Value.0
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x116c0
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 2
call fcn.0041eb10
mov byte [ebp - 4], 3
jmp 0x43325a
cmp ax, 9
jne 0x433285
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11660
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 4
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 5
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x116c1
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 6
call fcn.0041eb10
mov byte [ebp - 4], 7
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1f0], 0xa
mov edi, 0x80070057
mov byte [ebp - 0x226], 0
mov byte [ebp - 0x225], 0
mov byte [ebp - 0x227], 0
jne 0x433381
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x4332c1
add eax, 2
sub edx, 1
jne 0x4332b3
xor eax, eax
mov ecx, edi
test edx, edx
cmovne ecx, eax
mov eax, 0x100
sub eax, edx
xor edi, edi
test edx, edx
cmovne edi, eax
test ecx, ecx
js 0x433323
mov edx, 0x100
lea ecx, [esi + edi*2]
sub edx, edi
je 0x433316
lea eax, [edi + 0x7ffffeff]
mov esi, str.Windows_10
add eax, edx
sub esi, ecx
test eax, eax
je 0x433310
movzx edi, word [ecx + esi]
test di, di
je 0x433310
mov word [ecx], di
dec eax
add ecx, 2
sub edx, 1
jne 0x4332f7
mov esi, dword [ebp - 0x22c]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1175c
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 8
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 9
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
mov edi, 0x80070057
cmp dword [ebp - 0x1f0], 6
jne case.0x433794.5
cmp dword [ebp - 0x1ec], 0
jne 0x433473
cmp byte [ebp - 0xda], 1
mov edx, 0x100
mov ecx, esi
jne 0x433410
push str.Windows_Vista
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11653
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xa
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xb
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov byte [ebp - 0x226], 1
jmp 0x43346c
push str.Windows_Server_2008
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11729
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xc
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xd
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 1
jne 0x433558
cmp byte [ebp - 0xda], 1
mov edx, 0x100
mov ecx, esi
jne 0x4334f5
push str.Windows_7
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x116b6
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xe
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xf
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov byte [ebp - 0x225], 1
jmp 0x433551
push str.Windows_Server_2008_R2
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1172a
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x10
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x11
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 2
jne 0x433693
cmp byte [ebp - 0xda], 1
mov edx, 0x100
mov ecx, esi
jne 0x433630
push str.Windows_8
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1173c
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x12
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x13
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11745
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x14
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x15
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov byte [ebp - 0x227], 1
jmp 0x43368c
push str.Windows_Server_2012
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1173d
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x16
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x17
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 3
jne 0x43374d
cmp byte [ebp - 0xda], 1
mov edx, 0x100
mov ecx, esi
jne 0x4336ea
push str.Windows_8.1
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1174e
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x18
call fcn.0041eb10
mov byte [ebp - 4], 0x19
jmp 0x433722
push str.Windows_Server_2012_R2
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1174f
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x1a
call fcn.0041eb10
mov byte [ebp - 4], 0x1b
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
push str.GetProductInfo
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x238]
push ecx
push 0
push 0
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
call eax
mov eax, dword [ebp - 0x238]
dec eax
cmp eax, 0x2f
ja case.0x433794.5
movzx eax, byte [eax + 0x434288]
jmp dword [eax*4 + 0x43423c]
push str.Professional_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp byte [ebp - 0x225], 0
je 0x4337e8
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11738
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x1c
call fcn.0041eb10
mov byte [ebp - 4], 0x1d
jmp 0x433875
cmp byte [ebp - 0x227], 0
je case.0x433794.5
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11746
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x1e
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x1f
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 0
push 0
push 0x11745
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x20
call fcn.0041eb10
mov byte [ebp - 4], 0x21
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
jmp case.0x433794.5
push str.Ultimate_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp byte [ebp - 0x226], 0
je 0x4338ef
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1166b
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x22
call fcn.0041eb10
mov byte [ebp - 4], 0x23
jmp 0x433875
cmp byte [ebp - 0x225], 0
je case.0x433794.5
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11735
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x24
call fcn.0041eb10
mov byte [ebp - 4], 0x25
jmp 0x433875
push str.Home_Premium_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp byte [ebp - 0x226], 0
je 0x43397c
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1166a
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x26
call fcn.0041eb10
mov byte [ebp - 4], 0x27
jmp 0x433875
cmp byte [ebp - 0x225], 0
je case.0x433794.5
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11739
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x28
call fcn.0041eb10
mov byte [ebp - 4], 0x29
jmp 0x433875
push str.Home_Basic_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp byte [ebp - 0x226], 0
je 0x433a09
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11669
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x2a
call fcn.0041eb10
mov byte [ebp - 4], 0x2b
jmp 0x433875
cmp byte [ebp - 0x225], 0
je case.0x433794.5
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1173a
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x2c
call fcn.0041eb10
mov byte [ebp - 4], 0x2d
jmp 0x433875
push str.Enterprise_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp byte [ebp - 0x226], 0
je 0x433a96
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11668
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x2e
call fcn.0041eb10
mov byte [ebp - 4], 0x2f
jmp 0x433875
cmp byte [ebp - 0x225], 0
je 0x433ad2
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11737
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x30
call fcn.0041eb10
mov byte [ebp - 4], 0x31
jmp 0x433875
cmp byte [ebp - 0x227], 0
je case.0x433794.5
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11747
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x32
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x33
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 0
push 0
push 0x11745
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x34
call fcn.0041eb10
mov byte [ebp - 4], 0x35
jmp 0x433875
push str.Business_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp byte [ebp - 0x226], 0
je case.0x433794.5
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11667
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x36
call fcn.0041eb10
mov byte [ebp - 4], 0x37
jmp 0x433875
push str.Starter_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp byte [ebp - 0x225], 0
je case.0x433794.5
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1173b
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x38
call fcn.0041eb10
mov byte [ebp - 4], 0x39
jmp 0x433875
push str.Cluster_Server_Edition
jmp 0x433c51
push str.Datacenter_Edition
jmp 0x433c51
push str.Datacenter_Edition__core_installation_
jmp 0x433c51
push str.Enterprise_Edition
jmp 0x433c51
push str.Enterprise_Edition__core_installation_
jmp 0x433c51
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x433c51
push str.Small_Business_Server
jmp 0x433c51
push str.Small_Business_Server_Premium_Edition
jmp 0x433c51
push str.Standard_Edition
jmp 0x433c51
push str.Standard_Edition__core_installation_
jmp 0x433c51
push str.Web_Server_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp dword [ebp - 0x1f0], 5
jne 0x434037
mov eax, dword [ebp - 0x1ec]
cmp eax, 2
jne 0x433ee5
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x433cc9
push str.Windows_Server_2003_R2_
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1165f
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x3a
call fcn.0041eb10
mov byte [ebp - 4], 0x3b
jmp 0x433dfe
mov eax, dword [ebp - 0xdc]
mov ecx, 0x2000
cmp ax, cx
jne 0x433d1d
push str.Windows_Storage_Server_2003
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1165f
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x3c
call fcn.0041eb10
mov byte [ebp - 4], 0x3d
jmp 0x433dfe
mov ecx, 0x8000
cmp ax, cx
jne 0x433d6b
push str.Windows_Home_Server
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x11744
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x3e
call fcn.0041eb10
mov byte [ebp - 4], 0x3f
jmp 0x433dfe
cmp byte [ebp - 0xda], 1
jne 0x433dbf
cmp word [ebp - 0x264], 9
jne 0x433dbf
push str.Windows_XP_Professional_x64_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1166c
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x40
call fcn.0041eb10
mov byte [ebp - 4], 0x41
jmp 0x433dfe
push str.Windows_Server_2003_
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1165f
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x42
call fcn.0041eb10
mov byte [ebp - 4], 0x43
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0xda], 1
je 0x433ed2
mov ax, word [ebp - 0x264]
cmp ax, 6
jne 0x433e5f
mov eax, dword [ebp - 0xdc]
test al, al
jns 0x433e54
push str.Datacenter_Edition_for_Itanium_based_Systems
jmp 0x433ec6
test al, 2
je 0x433ed2
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x433ec6
cmp ax, 9
mov eax, dword [ebp - 0xdc]
jne 0x433e8f
test al, al
jns 0x433e76
push str.Datacenter_x64_Edition
jmp 0x433ec6
mov edx, 0x100
mov ecx, esi
test al, 2
je 0x433e88
push str.Enterprise_x64_Edition
jmp 0x433ecd
push str.Standard_x64_Edition
jmp 0x433ecd
test eax, 0x4000
je 0x433e9d
push str.Compute_Cluster_Edition
jmp 0x433ec6
test al, al
jns 0x433ea8
push str.Datacenter_Edition
jmp 0x433ec6
test al, 2
je 0x433eb3
push str.Enterprise_Edition
jmp 0x433ec6
test eax, 0x400
je 0x433ec1
push str.Web_Edition
jmp 0x433ec6
push str.Standard_Edition
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
cmp dword [ebp - 0x1f0], 5
jne 0x434037
mov eax, dword [ebp - 0x1ec]
cmp eax, 1
jne 0x433f8f
push str.Windows_XP
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x220], 1
push 0
push 0x1166c
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x44
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x45
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407420
mov dword [ebp - 4], 0xffffffff
mov edx, 0x100
test dword [ebp - 0xdc], 0x200
mov ecx, esi
je 0x433f72
push str.Home_Edition
jmp 0x433f77
push str.Professional
call fcn.00432e40
cmp dword [ebp - 0x1f0], 5
jne 0x434037
mov eax, dword [ebp - 0x1ec]
test eax, eax
jne 0x434037
push str.Windows_2000
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x23c], 1
push 0
push 0x1165e
lea ecx, [ebp - 0x21c]
mov dword [ebp - 4], 0x46
call fcn.0041eb10
push 0
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x47
push ecx
push eax
call fcn.0044a260
lea ecx, [ebp - 0x214]
mov dword [ebp - method.srl::GroupID.virtual_0], vtable.srl::GroupID.0
call fcn.00407420
cmp byte [ebp - 0xda], 1
jne 0x43400a
push str.Professional
jmp 0x43402b
mov eax, dword [ebp - 0xdc]
test al, al
jns 0x43401b
push str.Datacenter_Server
jmp 0x43402b
test al, 2
je 0x434026
push str.Advanced_Server
jmp 0x43402b
push str.Server
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
lea ecx, [ebp - 0x1e0]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x434040
sub ecx, edx
sar ecx, 1
je 0x43414c
mov edx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x43406e
add eax, 2
sub edx, 1
jne 0x434060
xor eax, eax
mov ecx, edi
test edx, edx
cmovne ecx, eax
mov eax, 0x100
sub eax, edx
xor edi, edi
test edx, edx
cmovne edi, eax
test ecx, ecx
js 0x4340d0
mov edx, 0x100
lea ecx, [esi + edi*2]
sub edx, edi
je 0x4340c3
lea eax, [edi + 0x7ffffeff]
mov esi, 0x633a8c
add eax, edx
sub esi, ecx
test eax, eax
je 0x4340bd
movzx edi, word [esi + ecx]
test di, di
je 0x4340bd
mov word [ecx], di
dec eax
add ecx, 2
sub edx, 1
jne 0x4340a4
mov esi, dword [ebp - 0x22c]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x4340e5
add eax, 2
sub edx, 1
jne 0x4340d7
xor eax, eax
mov ecx, 0x80070057
test edx, edx
cmovne ecx, eax
mov eax, 0x100
sub eax, edx
xor edi, edi
test edx, edx
cmovne edi, eax
test ecx, ecx
js 0x43414c
mov edx, 0x100
lea ecx, [esi + edi*2]
sub edx, edi
je 0x43413f
lea eax, [edi + 0x7ffffeff]
lea esi, [ebp - 0x1e0]
add eax, edx
sub esi, ecx
nop
test eax, eax
je 0x434139
movzx edi, word [esi + ecx]
test di, di
je 0x434139
mov word [ecx], di
dec eax
add ecx, 2
sub edx, 1
jne 0x434120
mov esi, dword [ebp - 0x22c]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push dword [ebp - 0x1e8]
lea eax, [ebp - 0xb0]
push str.__build__d_
push 0x50
push eax
call fcn.00432e80
add esp, 0x10
mov ecx, 0x100
mov eax, esi
nop
cmp word [eax], 0
je 0x43417e
add eax, 2
sub ecx, 1
jne 0x434170
xor eax, eax
mov edx, 0x80070057
test ecx, ecx
cmovne edx, eax
mov eax, 0x100
sub eax, ecx
xor edi, edi
test ecx, ecx
cmovne edi, eax
test edx, edx
js 0x4341e4
mov edx, 0x100
lea ecx, [esi + edi*2]
sub edx, edi
je 0x4341d7
lea eax, [edi + 0x7ffffeff]
lea esi, [ebp - 0xb0]
add eax, edx
sub esi, ecx
test eax, eax
je 0x4341d1
movzx edi, word [esi + ecx]
test di, di
je 0x4341d1
mov word [ecx], di
dec eax
add ecx, 2
sub edx, 1
jne 0x4341b8
mov esi, dword [ebp - 0x22c]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
cmp dword [ebp - 0x1f0], 6
jb 0x434217
mov ax, word [ebp - 0x264]
cmp ax, 9
jne 0x434201
push str.__64_bit
jmp 0x43420b
test ax, ax
jne 0x434217
push str.__32_bit
mov edx, 0x100
mov ecx, esi
call fcn.00432e40
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b5208
mov esp, ebp
pop ebp
ret 4