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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d8f28
mov eax, dword fs:[0]
push eax
sub esp, 0x254
mov eax, dword [0x65bfd4]
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.005adaa0
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 0x42e39a
cmp dword [ebp - 0x1f0], 6
jb 0x42c9ec
lea eax, [ebp - 0x220]
push eax
lea edx, [ebp - 0x230]
lea ecx, [ebp - 0x22c]
call fcn.0042a6e0
add esp, 4
test al, al
je 0x42c9ec
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x230]
cmp dword [ebp - 0x1f0], ecx
jne 0x42c9d4
cmp dword [ebp - 0x1ec], eax
je 0x42c9ec
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 0x42ca12
lea ecx, [ebp - 0x260]
push ecx
call eax
jmp 0x42ca1f
lea eax, [ebp - 0x260]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x1e4], 2
jne 0x42e39a
cmp dword [ebp - 0x1f0], 4
jbe 0x42e39a
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 0x42ca6e
movzx eax, word [ecx + edi]
test ax, ax
je 0x42ca6e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x42ca50
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 0x42cb20
push ecx
push 0x11660
lea ecx, [ebp - 0xd8]
call fcn.0041b290
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.00447420
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.00407500
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.0041b290
mov byte [ebp - 4], 3
jmp 0x42cbaa
cmp ax, 9
jne 0x42cbd5
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 5
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
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.0041b290
mov byte [ebp - 4], 7
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
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 0x42cca0
mov ecx, 0x100
mov eax, esi
nop
cmp word [eax], 0
je 0x42cc0e
add eax, 2
sub ecx, 1
jne 0x42cc00
test ecx, ecx
je 0x42cc47
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 9
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1f0], 6
jne case.0x42d2b7.5
cmp dword [ebp - 0x1ec], 0
jne 0x42ce15
cmp byte [ebp - 0xda], 1
mov ecx, 0x100
mov eax, esi
jne 0x42cd75
nop
cmp word [eax], 0
je 0x42ccde
add eax, 2
sub ecx, 1
jne 0x42ccd0
test ecx, ecx
je 0x42cd17
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xb
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov byte [ebp - 0x226], 1
jmp 0x42ce0e
cmp word [eax], 0
je 0x42cd83
add eax, 2
sub ecx, 1
jne 0x42cd75
test ecx, ecx
je 0x42cdbc
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xd
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 1
jne 0x42cf80
cmp byte [ebp - 0xda], 1
mov ecx, 0x100
mov eax, esi
jne 0x42cee0
cmp word [eax], 0
je 0x42ce44
add eax, 2
sub ecx, 1
jne 0x42ce36
test ecx, ecx
je 0x42ce7d
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0xf
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov byte [ebp - 0x225], 1
jmp 0x42cf79
cmp word [eax], 0
je 0x42ceee
add eax, 2
sub ecx, 1
jne 0x42cee0
test ecx, ecx
je 0x42cf27
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x11
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 2
jne 0x42d138
cmp byte [ebp - 0xda], 1
mov ecx, 0x100
mov eax, esi
jne 0x42d098
cmp word [eax], 0
je 0x42cfaf
add eax, 2
sub ecx, 1
jne 0x42cfa1
test ecx, ecx
je 0x42cfe8
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x13
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x15
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov byte [ebp - 0x227], 1
jmp 0x42d131
cmp word [eax], 0
je 0x42d0a6
add eax, 2
sub ecx, 1
jne 0x42d098
test ecx, ecx
je 0x42d0df
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x17
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1ec], 3
jne 0x42d270
cmp byte [ebp - 0xda], 1
mov ecx, 0x100
mov eax, esi
jne 0x42d1d0
cmp word [eax], 0
je 0x42d163
add eax, 2
sub ecx, 1
jne 0x42d155
test ecx, ecx
je 0x42d19c
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.0042c8c0
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.0041b290
mov byte [ebp - 4], 0x19
jmp 0x42d245
cmp word [eax], 0
je 0x42d1de
add eax, 2
sub ecx, 1
jne 0x42d1d0
test ecx, ecx
je 0x42d217
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.0042c8c0
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.0041b290
mov byte [ebp - 4], 0x1b
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
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.0x42d2b7.5
movzx eax, byte [eax + 0x42e408]
jmp dword [eax*4 + 0x42e3bc]
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d2d3
add eax, 2
sub ecx, 1
jne 0x42d2c5
test ecx, ecx
je 0x42d30c
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.0042c8c0
cmp byte [ebp - 0x225], 0
je 0x42d348
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.0041b290
mov byte [ebp - 4], 0x1d
jmp 0x42d3d5
cmp byte [ebp - 0x227], 0
je case.0x42d2b7.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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x1f
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
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.0041b290
mov byte [ebp - 4], 0x21
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov dword [ebp - 4], 0xffffffff
jmp case.0x42d2b7.5
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d41e
add eax, 2
sub ecx, 1
jne 0x42d410
test ecx, ecx
je 0x42d457
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.0042c8c0
cmp byte [ebp - 0x226], 0
je 0x42d493
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.0041b290
mov byte [ebp - 4], 0x23
jmp 0x42d3d5
cmp byte [ebp - 0x225], 0
je case.0x42d2b7.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.0041b290
mov byte [ebp - 4], 0x25
jmp 0x42d3d5
mov ecx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42d4ee
add eax, 2
sub ecx, 1
jne 0x42d4e0
test ecx, ecx
je 0x42d527
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.0042c8c0
cmp byte [ebp - 0x226], 0
je 0x42d563
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.0041b290
mov byte [ebp - 4], 0x27
jmp 0x42d3d5
cmp byte [ebp - 0x225], 0
je case.0x42d2b7.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.0041b290
mov byte [ebp - 4], 0x29
jmp 0x42d3d5
mov ecx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42d5be
add eax, 2
sub ecx, 1
jne 0x42d5b0
test ecx, ecx
je 0x42d5f7
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.0042c8c0
cmp byte [ebp - 0x226], 0
je 0x42d633
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.0041b290
mov byte [ebp - 4], 0x2b
jmp 0x42d3d5
cmp byte [ebp - 0x225], 0
je case.0x42d2b7.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.0041b290
mov byte [ebp - 4], 0x2d
jmp 0x42d3d5
mov ecx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42d68e
add eax, 2
sub ecx, 1
jne 0x42d680
test ecx, ecx
je 0x42d6c7
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.0042c8c0
cmp byte [ebp - 0x226], 0
je 0x42d703
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.0041b290
mov byte [ebp - 4], 0x2f
jmp 0x42d3d5
cmp byte [ebp - 0x225], 0
je 0x42d73f
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.0041b290
mov byte [ebp - 4], 0x31
jmp 0x42d3d5
cmp byte [ebp - 0x227], 0
je case.0x42d2b7.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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x33
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
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.0041b290
mov byte [ebp - 4], 0x35
jmp 0x42d3d5
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d7e6
add eax, 2
sub ecx, 1
jne 0x42d7d8
test ecx, ecx
je 0x42d81f
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.0042c8c0
cmp byte [ebp - 0x226], 0
je case.0x42d2b7.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.0041b290
mov byte [ebp - 4], 0x37
jmp 0x42d3d5
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d874
add eax, 2
sub ecx, 1
jne 0x42d866
test ecx, ecx
je 0x42d8ad
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.0042c8c0
cmp byte [ebp - 0x225], 0
je case.0x42d2b7.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.0041b290
mov byte [ebp - 4], 0x39
jmp 0x42d3d5
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d902
add eax, 2
sub ecx, 1
jne 0x42d8f4
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Cluster_Server_Edition
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42d92e
add eax, 2
sub ecx, 1
jne 0x42d920
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Datacenter_Edition
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d95e
add eax, 2
sub ecx, 1
jne 0x42d950
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Datacenter_Edition__core_installation_
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d98e
add eax, 2
sub ecx, 1
jne 0x42d980
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Enterprise_Edition
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d9be
add eax, 2
sub ecx, 1
jne 0x42d9b0
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Enterprise_Edition__core_installation_
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42d9ee
add eax, 2
sub ecx, 1
jne 0x42d9e0
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42da1e
add eax, 2
sub ecx, 1
jne 0x42da10
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Small_Business_Server
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42da4e
add eax, 2
sub ecx, 1
jne 0x42da40
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Small_Business_Server_Premium_Edition
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42da7e
add eax, 2
sub ecx, 1
jne 0x42da70
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Standard_Edition
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42daae
add eax, 2
sub ecx, 1
jne 0x42daa0
test ecx, ecx
je case.0x42d2b7.5
push SysReAllocString
push str.Standard_Edition__core_installation_
jmp 0x42dae1
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42dad3
add eax, 2
sub ecx, 1
jne 0x42dac5
test ecx, ecx
je case.0x42d2b7.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.0042c8c0
cmp dword [ebp - 0x1f0], 5
jne 0x42e2fa
mov eax, dword [ebp - 0x1ec]
cmp eax, 2
jne 0x42e03b
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x42dbba
mov ecx, 0x100
mov eax, esi
nop
cmp word [eax], 0
je 0x42db4e
add eax, 2
sub ecx, 1
jne 0x42db40
test ecx, ecx
je 0x42db87
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.0042c8c0
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.0041b290
mov byte [ebp - 4], 0x3b
jmp 0x42ddf6
mov eax, dword [ebp - 0xdc]
mov ecx, 0x2000
cmp ax, cx
jne 0x42dc4f
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42dbe3
add eax, 2
sub ecx, 1
jne 0x42dbd5
test ecx, ecx
je 0x42dc1c
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.0042c8c0
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.0041b290
mov byte [ebp - 4], 0x3d
jmp 0x42ddf6
mov ecx, 0x8000
cmp ax, cx
jne 0x42dcde
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42dc72
add eax, 2
sub ecx, 1
jne 0x42dc64
test ecx, ecx
je 0x42dcab
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.0042c8c0
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.0041b290
mov byte [ebp - 4], 0x3f
jmp 0x42ddf6
cmp byte [ebp - 0xda], 1
jne 0x42dd7a
cmp word [ebp - 0x260], 9
jne 0x42dd7a
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42dd0e
add eax, 2
sub ecx, 1
jne 0x42dd00
test ecx, ecx
je 0x42dd47
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.0042c8c0
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.0041b290
mov byte [ebp - 4], 0x41
jmp 0x42ddf6
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42dd8f
add eax, 2
sub ecx, 1
jne 0x42dd81
test ecx, ecx
je 0x42ddc8
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.0042c8c0
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.0041b290
mov byte [ebp - 4], 0x43
push 0
lea ecx, [ebp - 0x224]
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0xda], 1
je 0x42e028
mov ax, word [ebp - 0x260]
cmp ax, 6
jne 0x42dea9
mov eax, dword [ebp - 0xdc]
test al, al
jns 0x42de75
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42de5e
add eax, 2
sub ecx, 1
jne 0x42de50
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Datacenter_Edition_for_Itanium_based_Systems
jmp 0x42dffd
test al, 2
je 0x42e028
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42de92
add eax, 2
sub ecx, 1
jne 0x42de84
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x42dffd
cmp ax, 9
mov ecx, 0x100
mov eax, dword [ebp - 0xdc]
jne 0x42df3a
test al, al
jns 0x42dee9
mov eax, esi
cmp word [eax], 0
je 0x42ded2
add eax, 2
sub ecx, 1
jne 0x42dec4
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Datacenter_x64_Edition
jmp 0x42dffd
test al, 2
mov eax, esi
je 0x42df15
nop
cmp word [eax], 0
je 0x42defe
add eax, 2
sub ecx, 1
jne 0x42def0
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Enterprise_x64_Edition
jmp 0x42dffd
cmp word [eax], 0
je 0x42df23
add eax, 2
sub ecx, 1
jne 0x42df15
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Standard_x64_Edition
jmp 0x42dffd
test eax, 0x4000
je 0x42df68
mov eax, esi
cmp word [eax], 0
je 0x42df51
add eax, 2
sub ecx, 1
jne 0x42df43
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Compute_Cluster_Edition
jmp 0x42dffd
test al, al
jns 0x42df92
mov eax, esi
nop
cmp word [eax], 0
je 0x42df7e
add eax, 2
sub ecx, 1
jne 0x42df70
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Datacenter_Edition
jmp 0x42dffd
test al, 2
je 0x42dfba
mov eax, esi
cmp word [eax], 0
je 0x42dfa6
add eax, 2
sub ecx, 1
jne 0x42df98
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Enterprise_Edition
jmp 0x42dffd
test eax, 0x400
mov eax, esi
je 0x42dfe1
cmp word [eax], 0
je 0x42dfd1
add eax, 2
sub ecx, 1
jne 0x42dfc3
test ecx, ecx
je 0x42e028
push SysReAllocString
push str.Web_Edition
jmp 0x42dffd
cmp word [eax], 0
je 0x42dfef
add eax, 2
sub ecx, 1
jne 0x42dfe1
test ecx, ecx
je 0x42e028
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.0042c8c0
cmp dword [ebp - 0x1f0], 5
jne 0x42e2fa
mov eax, dword [ebp - 0x1ec]
cmp eax, 1
jne 0x42e17b
mov ecx, 0x100
mov eax, esi
nop dword [eax + eax]
cmp word [eax], 0
je 0x42e05e
add eax, 2
sub ecx, 1
jne 0x42e050
test ecx, ecx
je 0x42e097
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x45
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], vtable.srl::GroupID.0
call fcn.00407500
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x100
test dword [ebp - 0xdc], 0x200
mov eax, esi
je 0x42e121
cmp word [eax], 0
je 0x42e111
add eax, 2
sub ecx, 1
jne 0x42e103
test ecx, ecx
je 0x42e168
push SysReAllocString
push str.Home_Edition
jmp 0x42e13d
cmp word [eax], 0
je 0x42e12f
add eax, 2
sub ecx, 1
jne 0x42e121
test ecx, ecx
je 0x42e168
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.0042c8c0
cmp dword [ebp - 0x1f0], 5
jne 0x42e2fa
mov eax, dword [ebp - 0x1ec]
test eax, eax
jne 0x42e2fa
mov ecx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42e19e
add eax, 2
sub ecx, 1
jne 0x42e190
test ecx, ecx
je 0x42e1d7
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.0042c8c0
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.0041b290
push 0
lea ecx, [ebp - 0x23c]
mov byte [ebp - 4], 0x47
push ecx
push eax
call fcn.00447420
lea ecx, [ebp - 0x214]
mov dword [ebp - method.srl::GroupID.virtual_0], vtable.srl::GroupID.0
call fcn.00407500
cmp byte [ebp - 0xda], 1
jne 0x42e262
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42e24e
add eax, 2
sub ecx, 1
jne 0x42e240
test ecx, ecx
je 0x42e2fa
push SysReAllocString
push str.Professional
jmp 0x42e2bc
mov eax, dword [ebp - 0xdc]
test al, al
jns 0x42e291
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x42e281
add eax, 2
sub ecx, 1
jne 0x42e273
test ecx, ecx
je 0x42e2fa
push SysReAllocString
push str.Datacenter_Server
jmp 0x42e2bc
test al, 2
je 0x42e2e9
mov ecx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42e2ae
add eax, 2
sub ecx, 1
jne 0x42e2a0
test ecx, ecx
je 0x42e2fa
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.0042c8c0
jmp 0x42e2fa
push str.Server
mov edx, 0x100
mov ecx, esi
call fcn.0042c7c0
lea ecx, [ebp - 0x1e0]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42e303
sub ecx, edx
sar ecx, 1
je 0x42e338
push 0x626000
mov edx, 0x100
mov ecx, esi
call fcn.0042c7c0
lea eax, [ebp - 0x1e0]
mov edx, 0x100
push eax
mov ecx, esi
call fcn.0042c7c0
push dword [ebp - 0x1e8]
lea eax, [ebp - 0xb0]
push str.__build__d_
push 0x50
push eax
call fcn.0042c840
add esp, 0x10
lea eax, [ebp - 0xb0]
mov edx, 0x100
mov ecx, esi
push eax
call fcn.0042c7c0
cmp dword [ebp - 0x1f0], 6
jb 0x42e39a
mov ax, word [ebp - 0x260]
cmp ax, 9
jne 0x42e384
push str.__64_bit
jmp 0x42e38e
test ax, ax
jne 0x42e39a
push str.__32_bit
mov edx, 0x100
mov ecx, esi
call fcn.0042c7c0
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.005a909b
mov esp, ebp
pop ebp
ret 4