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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d8828
mov eax, dword fs:[0]
push eax
sub esp, 0x254
mov eax, dword [0x65afd4]
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 - 0x240], 0
push 0
push eax
movups xmmword [ebp - 0x260], xmm0
movups xmmword [ebp - 0x250], xmm0
call fcn.005ad460
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 0x42e11a
cmp dword [ebp - 0x1f0], 6
jb 0x42c76c
lea eax, [ebp - 0x220]
push eax
lea edx, [ebp - 0x230]
lea ecx, [ebp - 0x22c]
call fcn.0042a470
add esp, 4
test al, al
je 0x42c76c
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x230]
cmp dword [ebp - 0x1f0], ecx
jne 0x42c754
cmp dword [ebp - 0x1ec], eax
je 0x42c76c
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 0x42c792
lea ecx, [ebp - 0x260]
push ecx
call eax
jmp 0x42c79f
lea eax, [ebp - 0x260]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x1e4], 2
jne 0x42e11a
cmp dword [ebp - 0x1f0], 4
jbe 0x42e11a
mov edi, str.Microsoft
mov edx, 0x100
mov ecx, esi
sub edi, esi
nop word [eax + eax]
lea eax, [edx + 0x7ffffefe]
test eax, eax
je 0x42c7ee
movzx eax, word [ecx + edi]
test ax, ax
je 0x42c7ee
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x42c7d0
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ax, word [ebp - 0x260]
cmp ax, 6
jne 0x42c8a0
push ecx
push 0x11660
lea ecx, [ebp - 0xd8]
call fcn.0041b320
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.004475a0
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.004076c4
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.0041b320
mov byte [ebp - 4], 3
jmp 0x42c92a
cmp ax, 9
jne 0x42c955
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 5
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
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.0041b320
mov byte [ebp - 4], 7
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1f0], 0xa
mov byte [ebp - 0x226], 0
mov byte [ebp - 0x225], 0
mov byte [ebp - 0x227], 0
jne 0x42ca20
mov ecx, 0x100
mov eax, esi
nop
cmp word [eax], 0
je 0x42c98e
add eax, 2
sub ecx, 1
jne 0x42c980
test ecx, ecx
je 0x42c9c7
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_10
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 9
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1f0], 6
jne case.0x42d037.5
cmp dword [ebp - 0x1ec], 0
jne 0x42cb95
cmp byte [ebp - 0xda], 1
mov ecx, 0x100
mov eax, esi
jne 0x42caf5
nop
cmp word [eax], 0
je 0x42ca5e
add eax, 2
sub ecx, 1
jne 0x42ca50
test ecx, ecx
je 0x42ca97
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Vista
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xb
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov byte [ebp - 0x226], 1
jmp 0x42cb8e
cmp word [eax], 0
je 0x42cb03
add eax, 2
sub ecx, 1
jne 0x42caf5
test ecx, ecx
je 0x42cb3c
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Server_2008
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xd
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 1
jne 0x42cd00
cmp byte [ebp - 0xda], 1
mov ecx, 0x100
mov eax, esi
jne 0x42cc60
cmp word [eax], 0
je 0x42cbc4
add eax, 2
sub ecx, 1
jne 0x42cbb6
test ecx, ecx
je 0x42cbfd
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_7
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xf
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov byte [ebp - 0x225], 1
jmp 0x42ccf9
cmp word [eax], 0
je 0x42cc6e
add eax, 2
sub ecx, 1
jne 0x42cc60
test ecx, ecx
je 0x42cca7
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Server_2008_R2
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x11
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 2
jne 0x42ceb8
cmp byte [ebp - 0xda], 1
mov ecx, 0x100
mov eax, esi
jne 0x42ce18
cmp word [eax], 0
je 0x42cd2f
add eax, 2
sub ecx, 1
jne 0x42cd21
test ecx, ecx
je 0x42cd68
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_8
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x13
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x15
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov byte [ebp - 0x227], 1
jmp 0x42ceb1
cmp word [eax], 0
je 0x42ce26
add eax, 2
sub ecx, 1
jne 0x42ce18
test ecx, ecx
je 0x42ce5f
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Server_2012
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x17
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 3
jne 0x42cff0
cmp byte [ebp - 0xda], 1
mov ecx, 0x100
mov eax, esi
jne 0x42cf50
cmp word [eax], 0
je 0x42cee3
add eax, 2
sub ecx, 1
jne 0x42ced5
test ecx, ecx
je 0x42cf1c
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_8.1
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
mov byte [ebp - 4], 0x19
jmp 0x42cfc5
cmp word [eax], 0
je 0x42cf5e
add eax, 2
sub ecx, 1
jne 0x42cf50
test ecx, ecx
je 0x42cf97
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Server_2012_R2
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
mov byte [ebp - 4], 0x1b
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
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 - 0x234]
push ecx
push 0
push 0
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
call eax
mov eax, dword [ebp - 0x234]
dec eax
cmp eax, 0x2f
ja case.0x42d037.5
movzx eax, byte [eax + 0x42e188]
jmp dword [eax*4 + 0x42e13c]
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d053
add eax, 2
sub ecx, 1
jne 0x42d045
test ecx, ecx
je 0x42d08c
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Professional_Edition
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp byte [ebp - 0x225], 0
je 0x42d0c8
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.0041b320
mov byte [ebp - 4], 0x1d
jmp 0x42d155
cmp byte [ebp - 0x227], 0
je case.0x42d037.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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x1f
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
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.0041b320
mov byte [ebp - 4], 0x21
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
jmp case.0x42d037.5
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d19e
add eax, 2
sub ecx, 1
jne 0x42d190
test ecx, ecx
je 0x42d1d7
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Ultimate_Edition
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp byte [ebp - 0x226], 0
je 0x42d213
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.0041b320
mov byte [ebp - 4], 0x23
jmp 0x42d155
cmp byte [ebp - 0x225], 0
je case.0x42d037.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.0041b320
mov byte [ebp - 4], 0x25
jmp 0x42d155
mov ecx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42d26e
add eax, 2
sub ecx, 1
jne 0x42d260
test ecx, ecx
je 0x42d2a7
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Home_Premium_Edition
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp byte [ebp - 0x226], 0
je 0x42d2e3
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.0041b320
mov byte [ebp - 4], 0x27
jmp 0x42d155
cmp byte [ebp - 0x225], 0
je case.0x42d037.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.0041b320
mov byte [ebp - 4], 0x29
jmp 0x42d155
mov ecx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42d33e
add eax, 2
sub ecx, 1
jne 0x42d330
test ecx, ecx
je 0x42d377
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Home_Basic_Edition
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp byte [ebp - 0x226], 0
je 0x42d3b3
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.0041b320
mov byte [ebp - 4], 0x2b
jmp 0x42d155
cmp byte [ebp - 0x225], 0
je case.0x42d037.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.0041b320
mov byte [ebp - 4], 0x2d
jmp 0x42d155
mov ecx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42d40e
add eax, 2
sub ecx, 1
jne 0x42d400
test ecx, ecx
je 0x42d447
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Enterprise_Edition
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp byte [ebp - 0x226], 0
je 0x42d483
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.0041b320
mov byte [ebp - 4], 0x2f
jmp 0x42d155
cmp byte [ebp - 0x225], 0
je 0x42d4bf
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.0041b320
mov byte [ebp - 4], 0x31
jmp 0x42d155
cmp byte [ebp - 0x227], 0
je case.0x42d037.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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x33
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
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.0041b320
mov byte [ebp - 4], 0x35
jmp 0x42d155
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d566
add eax, 2
sub ecx, 1
jne 0x42d558
test ecx, ecx
je 0x42d59f
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Business_Edition
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp byte [ebp - 0x226], 0
je case.0x42d037.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.0041b320
mov byte [ebp - 4], 0x37
jmp 0x42d155
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d5f4
add eax, 2
sub ecx, 1
jne 0x42d5e6
test ecx, ecx
je 0x42d62d
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Starter_Edition
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp byte [ebp - 0x225], 0
je case.0x42d037.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.0041b320
mov byte [ebp - 4], 0x39
jmp 0x42d155
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d682
add eax, 2
sub ecx, 1
jne 0x42d674
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Cluster_Server_Edition
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d6ae
add eax, 2
sub ecx, 1
jne 0x42d6a0
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Datacenter_Edition
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d6de
add eax, 2
sub ecx, 1
jne 0x42d6d0
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Datacenter_Edition__core_installation_
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d70e
add eax, 2
sub ecx, 1
jne 0x42d700
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Enterprise_Edition
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d73e
add eax, 2
sub ecx, 1
jne 0x42d730
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Enterprise_Edition__core_installation_
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d76e
add eax, 2
sub ecx, 1
jne 0x42d760
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d79e
add eax, 2
sub ecx, 1
jne 0x42d790
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Small_Business_Server
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d7ce
add eax, 2
sub ecx, 1
jne 0x42d7c0
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Small_Business_Server_Premium_Edition
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d7fe
add eax, 2
sub ecx, 1
jne 0x42d7f0
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Standard_Edition
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d82e
add eax, 2
sub ecx, 1
jne 0x42d820
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Standard_Edition__core_installation_
jmp 0x42d861
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d853
add eax, 2
sub ecx, 1
jne 0x42d845
test ecx, ecx
je case.0x42d037.5
push SysReAllocString
push str.Web_Server_Edition
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push ecx
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp dword [ebp - 0x1f0], 5
jne 0x42e07a
mov eax, dword [ebp - 0x1ec]
cmp eax, 2
jne 0x42ddbb
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x42d93a
mov ecx, 0x100
mov eax, esi
nop
cmp word [eax], 0
je 0x42d8ce
add eax, 2
sub ecx, 1
jne 0x42d8c0
test ecx, ecx
je 0x42d907
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Server_2003_R2_
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
mov byte [ebp - 4], 0x3b
jmp 0x42db76
mov eax, dword [ebp - 0xdc]
mov ecx, 0x2000
cmp ax, cx
jne 0x42d9cf
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d963
add eax, 2
sub ecx, 1
jne 0x42d955
test ecx, ecx
je 0x42d99c
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Storage_Server_2003
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
mov byte [ebp - 4], 0x3d
jmp 0x42db76
mov ecx, 0x8000
cmp ax, cx
jne 0x42da5e
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d9f2
add eax, 2
sub ecx, 1
jne 0x42d9e4
test ecx, ecx
je 0x42da2b
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Home_Server
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
mov byte [ebp - 4], 0x3f
jmp 0x42db76
cmp byte [ebp - 0xda], 1
jne 0x42dafa
cmp word [ebp - 0x260], 9
jne 0x42dafa
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42da8e
add eax, 2
sub ecx, 1
jne 0x42da80
test ecx, ecx
je 0x42dac7
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_XP_Professional_x64_Edition
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
mov byte [ebp - 4], 0x41
jmp 0x42db76
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42db0f
add eax, 2
sub ecx, 1
jne 0x42db01
test ecx, ecx
je 0x42db48
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_Server_2003_
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
mov byte [ebp - 4], 0x43
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0xda], 1
je 0x42dda8
mov ax, word [ebp - 0x260]
cmp ax, 6
jne 0x42dc29
mov eax, dword [ebp - 0xdc]
test al, al
jns 0x42dbf5
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42dbde
add eax, 2
sub ecx, 1
jne 0x42dbd0
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Datacenter_Edition_for_Itanium_based_Systems
jmp 0x42dd7d
test al, 2
je 0x42dda8
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42dc12
add eax, 2
sub ecx, 1
jne 0x42dc04
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x42dd7d
cmp ax, 9
mov ecx, 0x100
mov eax, dword [ebp - 0xdc]
jne 0x42dcba
test al, al
jns 0x42dc69
mov eax, esi
cmp word [eax], 0
je 0x42dc52
add eax, 2
sub ecx, 1
jne 0x42dc44
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Datacenter_x64_Edition
jmp 0x42dd7d
test al, 2
mov eax, esi
je 0x42dc95
nop
cmp word [eax], 0
je 0x42dc7e
add eax, 2
sub ecx, 1
jne 0x42dc70
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Enterprise_x64_Edition
jmp 0x42dd7d
cmp word [eax], 0
je 0x42dca3
add eax, 2
sub ecx, 1
jne 0x42dc95
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Standard_x64_Edition
jmp 0x42dd7d
test eax, 0x4000
je 0x42dce8
mov eax, esi
cmp word [eax], 0
je 0x42dcd1
add eax, 2
sub ecx, 1
jne 0x42dcc3
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Compute_Cluster_Edition
jmp 0x42dd7d
test al, al
jns 0x42dd12
mov eax, esi
nop
cmp word [eax], 0
je 0x42dcfe
add eax, 2
sub ecx, 1
jne 0x42dcf0
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Datacenter_Edition
jmp 0x42dd7d
test al, 2
je 0x42dd3a
mov eax, esi
cmp word [eax], 0
je 0x42dd26
add eax, 2
sub ecx, 1
jne 0x42dd18
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Enterprise_Edition
jmp 0x42dd7d
test eax, 0x400
mov eax, esi
je 0x42dd61
cmp word [eax], 0
je 0x42dd51
add eax, 2
sub ecx, 1
jne 0x42dd43
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Web_Edition
jmp 0x42dd7d
cmp word [eax], 0
je 0x42dd6f
add eax, 2
sub ecx, 1
jne 0x42dd61
test ecx, ecx
je 0x42dda8
push SysReAllocString
push str.Standard_Edition
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push ecx
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp dword [ebp - 0x1f0], 5
jne 0x42e07a
mov eax, dword [ebp - 0x1ec]
cmp eax, 1
jne 0x42defb
mov ecx, 0x100
mov eax, esi
nop dword [eax + eax]
cmp word [eax], 0
je 0x42ddde
add eax, 2
sub ecx, 1
jne 0x42ddd0
test ecx, ecx
je 0x42de17
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_XP
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
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.0041b320
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x45
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.004076c4
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x100
test dword [ebp - 0xdc], 0x200
mov eax, esi
je 0x42dea1
cmp word [eax], 0
je 0x42de91
add eax, 2
sub ecx, 1
jne 0x42de83
test ecx, ecx
je 0x42dee8
push SysReAllocString
push str.Home_Edition
jmp 0x42debd
cmp word [eax], 0
je 0x42deaf
add eax, 2
sub ecx, 1
jne 0x42dea1
test ecx, ecx
je 0x42dee8
push SysReAllocString
push str.Professional
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push ecx
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
cmp dword [ebp - 0x1f0], 5
jne 0x42e07a
mov eax, dword [ebp - 0x1ec]
test eax, eax
jne 0x42e07a
mov ecx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42df1e
add eax, 2
sub ecx, 1
jne 0x42df10
test ecx, ecx
je 0x42df57
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
push str.Windows_2000
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x238], 1
push 0
push 0x1165e
lea ecx, [ebp - 0x21c]
mov dword [ebp - 4], 0x46
call fcn.0041b320
push 0
lea ecx, [ebp - 0x23c]
mov byte [ebp - 4], 0x47
push ecx
push eax
call fcn.004475a0
lea ecx, [ebp - 0x214]
mov dword [ebp - method.srl::GroupID.virtual_0], vtable.srl::GroupID.0
call fcn.004076c4
cmp byte [ebp - 0xda], 1
jne 0x42dfe2
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42dfce
add eax, 2
sub ecx, 1
jne 0x42dfc0
test ecx, ecx
je 0x42e07a
push SysReAllocString
push str.Professional
jmp 0x42e03c
mov eax, dword [ebp - 0xdc]
test al, al
jns 0x42e011
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42e001
add eax, 2
sub ecx, 1
jne 0x42dff3
test ecx, ecx
je 0x42e07a
push SysReAllocString
push str.Datacenter_Server
jmp 0x42e03c
test al, 2
je 0x42e069
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42e02e
add eax, 2
sub ecx, 1
jne 0x42e020
test ecx, ecx
je 0x42e07a
push SysReAllocString
push str.Advanced_Server
mov edx, ecx
lea eax, [ecx - 0x100]
neg edx
push ecx
sbb edx, edx
and edx, eax
mov eax, 0x100
sub eax, ecx
add edx, 0x100
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
call fcn.0042c640
jmp 0x42e07a
push str.Server
mov edx, 0x100
mov ecx, esi
call fcn.0042c540
lea ecx, [ebp - 0x1e0]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42e083
sub ecx, edx
sar ecx, 1
je 0x42e0b8
push 0x625fe4
mov edx, 0x100
mov ecx, esi
call fcn.0042c540
lea eax, [ebp - 0x1e0]
mov edx, 0x100
push eax
mov ecx, esi
call fcn.0042c540
push dword [ebp - 0x1e8]
lea eax, [ebp - 0xb0]
push str.__build__d_
push 0x50
push eax
call fcn.0042c5c0
add esp, 0x10
lea eax, [ebp - 0xb0]
mov edx, 0x100
mov ecx, esi
push eax
call fcn.0042c540
cmp dword [ebp - 0x1f0], 6
jb 0x42e11a
mov ax, word [ebp - 0x260]
cmp ax, 9
jne 0x42e104
push str.__64_bit
jmp 0x42e10e
test ax, ax
jne 0x42e11a
push str.__32_bit
mov edx, 0x100
mov ecx, esi
call fcn.0042c540
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.005a8a56
mov esp, ebp
pop ebp
ret 4