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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c58f8
mov eax, dword fs:[0]
push eax
sub esp, 0x25c
mov eax, dword [0x645154]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x230], ecx
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x1f4]
push 0x11c
xorps xmm0, xmm0
mov dword [ebp - 0x224], esi
push 0
push eax
movups xmmword [ebp - 0x268], xmm0
mov dword [ebp - 0x248], 0
movups xmmword [ebp - 0x258], xmm0
call fcn.0059a520
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 0x4291bc
cmp dword [ebp - 0x1f0], 6
jb 0x426f1a
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.00429260
add esp, 0xc
test al, al
je 0x426f1a
mov ecx, dword [ebp - 0x220]
mov eax, dword [ebp - 0x238]
cmp dword [ebp - 0x1f0], ecx
jne 0x426f02
cmp dword [ebp - 0x1ec], eax
je 0x426f1a
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x1f0], ecx
mov dword [ebp - 0x1e8], eax
push str.GetNativeSystemInfo
push 0x5dc348
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x426f40
lea ecx, [ebp - 0x268]
push ecx
call eax
jmp 0x426f4d
lea eax, [ebp - 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x1e4], 2
jne 0x4291bc
cmp dword [ebp - 0x1f0], 4
jbe 0x4291bc
mov edi, str.Microsoft
mov edx, 0x100
mov ecx, esi
sub edi, esi
lea eax, [edx + 0x7ffffefe]
test eax, eax
je 0x426f93
movzx eax, word [edi + ecx]
test ax, ax
je 0x426f93
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x426f75
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ax, word [ebp - 0x268]
cmp ax, 6
jne 0x42703d
push ecx
push 0x11660
lea ecx, [ebp - 0xd8]
call fcn.00415e40
push 1
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0
call fcn.00419a30
mov ecx, dword [ebp - 0x230]
push 0
push eax
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 1
push eax
call fcn.004384f0
lea ecx, [ebp - 0x22c]
call fcn.00419a60
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xffffffff
call fcn.00416070
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x116c0
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 2
call fcn.00415e40
mov byte [ebp - 4], 3
jmp 0x4270cb
cmp ax, 9
jne 0x4270fd
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11660
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 4
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 5
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x116c1
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 6
call fcn.00415e40
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
mov esi, dword [ebp - 0x224]
cmp dword [ebp - 0x1f0], 0xa
mov edi, 0x100
mov byte [ebp - 0x232], 0
mov byte [ebp - 0x231], 0
mov byte [ebp - 0x233], 0
jne 0x427205
mov edx, edi
mov eax, esi
cmp word [eax], 0
je 0x427136
add eax, 2
sub edx, 1
jne 0x427128
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x4271ad
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4271a0
add eax, 0x7ffffeff
mov edi, str.Windows_10
add eax, edx
sub edi, ecx
test eax, eax
je 0x42719b
movzx esi, word [edi + ecx]
test si, si
je 0x42719b
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427182
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1175c
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 8
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 9
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
cmp dword [ebp - 0x1f0], 6
jne case.0x42797a.5
cmp dword [ebp - 0x1ec], 0
jne 0x4273d3
cmp byte [ebp - 0xda], 1
mov edx, 0x100
mov eax, dword [ebp - 0x224]
mov ecx, eax
jne 0x427310
nop dword [eax]
cmp word [ecx], 0
je 0x42724e
add ecx, 2
sub edx, 1
jne 0x427240
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x427262
mov esi, edi
sub esi, edx
jmp 0x427264
xor esi, esi
test ecx, ecx
js 0x4272ab
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x42729e
lea eax, [esi + 0x7ffffeff]
mov edi, str.Windows_Vista
add eax, edx
sub edi, ecx
test eax, eax
je 0x427299
movzx esi, word [ecx + edi]
test si, si
je 0x427299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427280
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11653
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xa
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0xb
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
mov byte [ebp - 0x232], 1
jmp 0x4273d3
cmp word [ecx], 0
je 0x42731e
add ecx, 2
sub edx, 1
jne 0x427310
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x427332
mov esi, edi
sub esi, edx
jmp 0x427334
xor esi, esi
test ecx, ecx
js 0x42737b
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x42736e
lea eax, [esi + 0x7ffffeff]
mov edi, str.Windows_Server_2008
add eax, edx
sub edi, ecx
test eax, eax
je 0x427369
movzx esi, word [ecx + edi]
test si, si
je 0x427369
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427350
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11729
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xc
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0xd
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
cmp dword [ebp - 0x1ec], 1
jne 0x427593
cmp byte [ebp - 0xda], 1
mov edx, 0x100
mov eax, dword [ebp - 0x224]
mov ecx, eax
jne 0x4274d0
nop word [eax + eax]
cmp word [ecx], 0
je 0x42740e
add ecx, 2
sub edx, 1
jne 0x427400
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x427422
mov esi, edi
sub esi, edx
jmp 0x427424
xor esi, esi
test ecx, ecx
js 0x42746b
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x42745e
lea eax, [esi + 0x7ffffeff]
mov edi, str.Windows_7
add eax, edx
sub edi, ecx
test eax, eax
je 0x427459
movzx esi, word [ecx + edi]
test si, si
je 0x427459
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427440
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x116b6
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xe
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0xf
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
mov byte [ebp - 0x231], 1
jmp 0x427593
cmp word [ecx], 0
je 0x4274de
add ecx, 2
sub edx, 1
jne 0x4274d0
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x4274f2
mov esi, edi
sub esi, edx
jmp 0x4274f4
xor esi, esi
test ecx, ecx
js 0x42753b
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x42752e
lea eax, [esi + 0x7ffffeff]
mov edi, str.Windows_Server_2008_R2
add eax, edx
sub edi, ecx
test eax, eax
je 0x427529
movzx esi, word [ecx + edi]
test si, si
je 0x427529
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427510
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1172a
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x10
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0x11
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
cmp dword [ebp - 0x1ec], 2
jne 0x4277aa
cmp byte [ebp - 0xda], 1
mov edx, 0x100
mov eax, dword [ebp - 0x224]
mov ecx, eax
jne 0x4276e7
nop word [eax + eax]
cmp word [ecx], 0
je 0x4275ce
add ecx, 2
sub edx, 1
jne 0x4275c0
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x4275e2
mov esi, edi
sub esi, edx
jmp 0x4275e4
xor esi, esi
test ecx, ecx
js 0x42762b
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x42761e
lea eax, [esi + 0x7ffffeff]
mov edi, str.Windows_8
add eax, edx
sub edi, ecx
test eax, eax
je 0x427619
movzx esi, word [ecx + edi]
test si, si
je 0x427619
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427600
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1173c
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x12
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0x13
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11745
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x14
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0x15
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
mov byte [ebp - 0x233], 1
jmp 0x4277aa
cmp word [ecx], 0
je 0x4276f5
add ecx, 2
sub edx, 1
jne 0x4276e7
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x427709
mov esi, edi
sub esi, edx
jmp 0x42770b
xor esi, esi
test ecx, ecx
js 0x427752
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x427745
lea eax, [esi + 0x7ffffeff]
mov edi, str.Windows_Server_2012
add eax, edx
sub edi, ecx
test eax, eax
je 0x427740
movzx esi, word [ecx + edi]
test si, si
je 0x427740
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427727
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1173d
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x16
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0x17
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
cmp dword [ebp - 0x1ec], 3
jne 0x427933
cmp byte [ebp - 0xda], 1
mov edx, 0x100
mov eax, dword [ebp - 0x224]
mov ecx, eax
jne 0x427870
cmp word [ecx], 0
je 0x4277df
add ecx, 2
sub edx, 1
jne 0x4277d1
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x4277f3
mov esi, edi
sub esi, edx
jmp 0x4277f5
xor esi, esi
test ecx, ecx
js 0x42783c
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x42782f
lea eax, [esi + 0x7ffffeff]
mov edi, str.Windows_8.1
add eax, edx
sub edi, ecx
test eax, eax
je 0x42782a
movzx esi, word [ecx + edi]
test si, si
je 0x42782a
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427811
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1174e
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x18
call fcn.00415e40
mov byte [ebp - 4], 0x19
jmp 0x427907
cmp word [ecx], 0
je 0x42787e
add ecx, 2
sub edx, 1
jne 0x427870
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x427892
mov esi, edi
sub esi, edx
jmp 0x427894
xor esi, esi
test ecx, ecx
js 0x4278db
mov edx, edi
lea ecx, [eax + esi*2]
sub edx, esi
je 0x4278ce
lea eax, [esi + 0x7ffffeff]
mov edi, str.Windows_Server_2012_R2
add eax, edx
sub edi, ecx
test eax, eax
je 0x4278c9
movzx esi, word [ecx + edi]
test si, si
je 0x4278c9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4278b0
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1174f
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x1a
call fcn.00415e40
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
push str.GetProductInfo
push 0x5dc348
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x23c]
push ecx
push 0
push 0
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
call eax
mov eax, dword [ebp - 0x23c]
dec eax
cmp eax, 0x2f
ja case.0x42797a.5
movzx eax, byte [eax + 0x42922c]
jmp dword [eax*4 + 0x4291e0]
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
nop
cmp word [eax], 0
je 0x42799e
add eax, 2
sub edx, 1
jne 0x427990
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a21
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x427a14
add eax, 0x7ffffeff
mov edi, str.Professional_Edition
add eax, edx
sub edi, ecx
nop word [eax + eax]
test eax, eax
je 0x427a09
movzx esi, word [edi + ecx]
test si, si
je 0x427a09
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4279f0
mov esi, dword [ebp - 0x224]
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
cmp byte [ebp - 0x231], 0
je 0x427ae9
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11738
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x1c
call fcn.00415e40
mov byte [ebp - 4], 0x1d
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
mov esi, dword [ebp - 0x224]
cmp dword [ebp - 0x1f0], 5
jne 0x42911a
mov eax, dword [ebp - 0x1ec]
cmp eax, 2
jne 0x428fc8
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x42891c
mov ecx, 0x100
mov eax, esi
nop
cmp word [eax], 0
je 0x427ace
add eax, 2
sub ecx, 1
jne 0x427ac0
xor eax, eax
mov edx, 0x80070057
test ecx, ecx
cmovne edx, eax
je 0x42889d
mov eax, edi
sub eax, ecx
jmp 0x42889f
cmp byte [ebp - 0x233], 0
je 0x427a8c
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11746
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x1e
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0x1f
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
push 0
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11745
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x20
call fcn.00415e40
mov byte [ebp - 4], 0x21
jmp 0x427a5a
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x427b96
add eax, 2
sub edx, 1
jne 0x427b88
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427c13
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x427c06
add eax, 0x7ffffeff
mov edi, str.Ultimate_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x427bfb
movzx esi, word [edi + ecx]
test si, si
je 0x427bfb
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427be2
mov esi, dword [ebp - 0x224]
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
cmp byte [ebp - 0x232], 0
je 0x427c4d
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1166b
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x22
call fcn.00415e40
mov byte [ebp - 4], 0x23
jmp 0x427a5a
cmp byte [ebp - 0x231], 0
je 0x427a8c
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11735
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x24
call fcn.00415e40
mov byte [ebp - 4], 0x25
jmp 0x427a5a
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x427ca6
add eax, 2
sub edx, 1
jne 0x427c98
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427d23
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x427d16
add eax, 0x7ffffeff
mov edi, str.Home_Premium_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x427d0b
movzx esi, word [ecx + edi]
test si, si
je 0x427d0b
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427cf2
mov esi, dword [ebp - 0x224]
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
cmp byte [ebp - 0x232], 0
je 0x427d5d
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1166a
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x26
call fcn.00415e40
mov byte [ebp - 4], 0x27
jmp 0x427a5a
cmp byte [ebp - 0x231], 0
je 0x427a8c
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11739
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x28
call fcn.00415e40
mov byte [ebp - 4], 0x29
jmp 0x427a5a
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x427db6
add eax, 2
sub edx, 1
jne 0x427da8
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427e33
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x427e26
add eax, 0x7ffffeff
mov edi, str.Home_Basic_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x427e1b
movzx esi, word [edi + ecx]
test si, si
je 0x427e1b
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427e02
mov esi, dword [ebp - 0x224]
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
cmp byte [ebp - 0x232], 0
je 0x427e6d
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11669
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x2a
call fcn.00415e40
mov byte [ebp - 4], 0x2b
jmp 0x427a5a
cmp byte [ebp - 0x231], 0
je 0x427a8c
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1173a
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x2c
call fcn.00415e40
mov byte [ebp - 4], 0x2d
jmp 0x427a5a
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x427ec6
add eax, 2
sub edx, 1
jne 0x427eb8
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427f43
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x427f36
add eax, 0x7ffffeff
mov edi, str.Enterprise_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x427f2b
movzx esi, word [edi + ecx]
test si, si
je 0x427f2b
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x427f12
mov esi, dword [ebp - 0x224]
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
cmp byte [ebp - 0x232], 0
je 0x427f7d
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11668
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x2e
call fcn.00415e40
mov byte [ebp - 4], 0x2f
jmp 0x427a5a
cmp byte [ebp - 0x231], 0
je 0x427fb7
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11737
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x30
call fcn.00415e40
mov byte [ebp - 4], 0x31
jmp 0x427a5a
cmp byte [ebp - 0x233], 0
je 0x427a8c
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11747
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x32
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0x33
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
push 0
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11745
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x34
call fcn.00415e40
mov byte [ebp - 4], 0x35
jmp 0x427a5a
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42806e
add eax, 2
sub edx, 1
jne 0x428060
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x4280f1
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4280e4
add eax, 0x7ffffeff
mov edi, str.Business_Edition
add eax, edx
sub edi, ecx
nop word [eax + eax]
test eax, eax
je 0x4280d9
movzx esi, word [edi + ecx]
test si, si
je 0x4280d9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4280c0
mov esi, dword [ebp - 0x224]
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
cmp byte [ebp - 0x232], 0
je 0x427a8c
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11667
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x36
call fcn.00415e40
mov byte [ebp - 4], 0x37
jmp 0x427a5a
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42814e
add eax, 2
sub edx, 1
jne 0x428140
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x4281d1
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4281c4
add eax, 0x7ffffeff
mov edi, str.Starter_Edition
add eax, edx
sub edi, ecx
nop word [eax + eax]
test eax, eax
je 0x4281b9
movzx esi, word [edi + ecx]
test si, si
je 0x4281b9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4281a0
mov esi, dword [ebp - 0x224]
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
cmp byte [ebp - 0x231], 0
je 0x427a8c
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1173b
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x38
call fcn.00415e40
mov byte [ebp - 4], 0x39
jmp 0x427a5a
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x42822e
add eax, 2
sub edx, 1
jne 0x428220
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Cluster_Server_Edition
add eax, edx
sub edi, ecx
nop
test eax, eax
je 0x428299
movzx esi, word [edi + ecx]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428280
mov esi, dword [ebp - 0x224]
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
jmp 0x427a8c
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x4282d1
add eax, 2
sub edx, 1
jne 0x4282c3
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Datacenter_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [edi + ecx]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428321
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x428362
add eax, 2
sub edx, 1
jne 0x428354
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Datacenter_Edition__core_installation_
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [edi + ecx]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4283b6
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
nop dword [eax]
cmp word [eax], 0
je 0x4283fe
add eax, 2
sub edx, 1
jne 0x4283f0
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Enterprise_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [edi + ecx]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428452
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x428493
add eax, 2
sub edx, 1
jne 0x428485
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Enterprise_Edition__core_installation_
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [edi + ecx]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4284e7
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42852e
add eax, 2
sub edx, 1
jne 0x428520
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Enterprise_Edition_for_Itanium_based_Systems
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [ecx + edi]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428582
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x4285c3
add eax, 2
sub edx, 1
jne 0x4285b5
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Small_Business_Server
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [ecx + edi]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428617
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42865e
add eax, 2
sub edx, 1
jne 0x428650
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Small_Business_Server_Premium_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [ecx + edi]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4286b2
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x4286f3
add eax, 2
sub edx, 1
jne 0x4286e5
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Standard_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [edi + ecx]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428747
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
nop word [eax + eax]
cmp word [eax], 0
je 0x42878e
add eax, 2
sub edx, 1
jne 0x428780
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Standard_Edition__core_installation_
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [edi + ecx]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4287e2
jmp 0x428299
mov esi, dword [ebp - 0x224]
mov edx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x428823
add eax, 2
sub edx, 1
jne 0x428815
xor eax, eax
mov dword [ebp - 0x220], 0
test edx, edx
mov ecx, 0x80070057
cmovne ecx, eax
mov eax, edi
sub eax, edx
test edx, edx
mov edx, dword [ebp - 0x220]
cmovne edx, eax
mov dword [ebp - 0x220], edx
test ecx, ecx
js 0x427a8c
mov eax, dword [ebp - 0x220]
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4282a4
add eax, 0x7ffffeff
mov edi, str.Web_Server_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x428299
movzx esi, word [edi + ecx]
test si, si
je 0x428299
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428877
jmp 0x428299
xor eax, eax
test edx, edx
js 0x4288eb
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x4288de
add eax, 0x7ffffeff
mov edi, str.Windows_Server_2003_R2_
add eax, edx
sub edi, ecx
nop word [eax + eax]
test eax, eax
je 0x4288d9
movzx esi, word [edi + ecx]
test si, si
je 0x4288d9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4288c0
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1165f
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x3a
call fcn.00415e40
mov byte [ebp - 4], 0x3b
jmp 0x428bdc
mov eax, dword [ebp - 0xdc]
mov ecx, 0x2000
cmp ax, cx
jne 0x4289d2
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x428945
add eax, 2
sub ecx, 1
jne 0x428937
xor eax, eax
mov edx, 0x80070057
test ecx, ecx
cmovne edx, eax
je 0x428959
mov eax, edi
sub eax, ecx
jmp 0x42895b
xor eax, eax
test edx, edx
js 0x4289a1
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x428994
add eax, 0x7ffffeff
mov edi, str.Windows_Storage_Server_2003
add eax, edx
sub edi, ecx
test eax, eax
je 0x42898f
movzx esi, word [edi + ecx]
test si, si
je 0x42898f
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428976
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1165f
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x3c
call fcn.00415e40
mov byte [ebp - 4], 0x3d
jmp 0x428bdc
mov ecx, 0x8000
cmp ax, cx
jne 0x428a82
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x4289f5
add eax, 2
sub ecx, 1
jne 0x4289e7
xor eax, eax
mov edx, 0x80070057
test ecx, ecx
cmovne edx, eax
je 0x428a09
mov eax, edi
sub eax, ecx
jmp 0x428a0b
xor eax, eax
test edx, edx
js 0x428a51
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x428a44
add eax, 0x7ffffeff
mov edi, str.Windows_Home_Server
add eax, edx
sub edi, ecx
test eax, eax
je 0x428a3f
movzx esi, word [edi + ecx]
test si, si
je 0x428a3f
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428a26
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x11744
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x3e
call fcn.00415e40
mov byte [ebp - 4], 0x3f
jmp 0x428bdc
cmp byte [ebp - 0xda], 1
jne 0x428b3f
cmp word [ebp - 0x268], 9
jne 0x428b3f
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x428ab2
add eax, 2
sub ecx, 1
jne 0x428aa4
xor eax, eax
mov edx, 0x80070057
test ecx, ecx
cmovne edx, eax
je 0x428ac6
mov eax, edi
sub eax, ecx
jmp 0x428ac8
xor eax, eax
test edx, edx
js 0x428b0e
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x428b01
add eax, 0x7ffffeff
mov edi, str.Windows_XP_Professional_x64_Edition
add eax, edx
sub edi, ecx
test eax, eax
je 0x428afc
movzx esi, word [edi + ecx]
test si, si
je 0x428afc
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428ae3
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1166c
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x40
call fcn.00415e40
mov byte [ebp - 4], 0x41
jmp 0x428bdc
mov ecx, 0x100
mov eax, esi
cmp word [eax], 0
je 0x428b54
add eax, 2
sub ecx, 1
jne 0x428b46
xor eax, eax
mov edx, 0x80070057
test ecx, ecx
cmovne edx, eax
je 0x428b68
mov eax, edi
sub eax, ecx
jmp 0x428b6a
xor eax, eax
test edx, edx
js 0x428bb0
mov edx, edi
lea ecx, [esi + eax*2]
sub edx, eax
je 0x428ba3
add eax, 0x7ffffeff
mov edi, str.Windows_Server_2003_
add eax, edx
sub edi, ecx
test eax, eax
je 0x428b9e
movzx esi, word [edi + ecx]
test si, si
je 0x428b9e
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x428b85
mov edi, 0x100
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1165f
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x42
call fcn.00415e40
mov byte [ebp - 4], 0x43
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
cmp byte [ebp - 0xda], 1
je 0x428fb5
mov ax, word [ebp - 0x268]
cmp ax, 6
jne 0x428d49
mov eax, dword [ebp - 0xdc]
test al, al
jns 0x428cba
mov eax, dword [ebp - 0x224]
mov edx, 0x100
mov ecx, eax
cmp word [ecx], 0
je 0x428c4f
add ecx, 2
sub edx, 1
jne 0x428c41
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x428c63
mov esi, edi
sub esi, edx
jmp 0x428c65
xor esi, esi
test ecx, ecx
js 0x428fb5
lea ecx, [eax + esi*2]
sub edi, esi
je 0x428f6c
lea eax, [esi + 0x7ffffeff]
mov esi, str.Datacenter_Edition_for_Itanium_based_Systems
add eax, edi
sub esi, ecx
test eax, eax
je 0x428f6c
movzx edx, word [ecx + esi]
test dx, dx
je 0x428f6c
mov word [ecx], dx
dec eax
add ecx, 2
sub edi, 1
jne 0x428c87
test edi, edi
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
jmp 0x428fb5
test al, 2
je 0x428fb5
mov eax, dword [ebp - 0x224]
mov edx, 0x100
mov ecx, eax
nop
cmp word [ecx], 0
je 0x428cde
add ecx, 2
sub edx, 1
jne 0x428cd0
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x428cf2
mov esi, edi
sub esi, edx
jmp 0x428cf4
xor esi, esi
test ecx, ecx
js 0x428fb5
lea ecx, [eax + esi*2]
sub edi, esi
je 0x428f6c
lea eax, [esi + 0x7ffffeff]
mov esi, str.Enterprise_Edition_for_Itanium_based_Systems
add eax, edi
sub esi, ecx
test eax, eax
je 0x428f6c
movzx edx, word [ecx + esi]
test dx, dx
je 0x428f6c
mov word [ecx], dx
dec eax
add ecx, 2
sub edi, 1
jne 0x428d16
test edi, edi
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
jmp 0x428fb5
cmp ax, 9
mov eax, dword [ebp - 0xdc]
jne 0x428ef9
mov edx, 0x100
test al, al
jns 0x428de9
mov eax, dword [ebp - 0x224]
mov ecx, eax
nop
cmp word [ecx], 0
je 0x428d7e
add ecx, 2
sub edx, 1
jne 0x428d70
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x428d92
mov esi, edi
sub esi, edx
jmp 0x428d94
xor esi, esi
test ecx, ecx
js 0x428fb5
lea ecx, [eax + esi*2]
sub edi, esi
je 0x428f6c
lea eax, [esi + 0x7ffffeff]
mov esi, str.Datacenter_x64_Edition
add eax, edi
sub esi, ecx
test eax, eax
je 0x428f6c
movzx edx, word [ecx + esi]
test dx, dx
je 0x428f6c
mov word [ecx], dx
dec eax
add ecx, 2
sub edi, 1
jne 0x428db6
test edi, edi
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
jmp 0x428fb5
test al, 2
mov eax, dword [ebp - 0x224]
mov ecx, eax
je 0x428e80
nop dword [eax]
cmp word [ecx], 0
je 0x428e0e
add ecx, 2
sub edx, 1
jne 0x428e00
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x428e22
mov esi, edi
sub esi, edx
jmp 0x428e24
xor esi, esi
test ecx, ecx
js 0x428fb5
lea ecx, [eax + esi*2]
sub edi, esi
je 0x428f6c
lea eax, [esi + 0x7ffffeff]
mov esi, str.Enterprise_x64_Edition
add eax, edi
sub esi, ecx
test eax, eax
je 0x428f6c
movzx edx, word [ecx + esi]
test dx, dx
je 0x428f6c
mov word [ecx], dx
dec eax
add ecx, 2
sub edi, 1
jne 0x428e46
test edi, edi
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
jmp 0x428fb5
cmp word [ecx], 0
je 0x428e8e
add ecx, 2
sub edx, 1
jne 0x428e80
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x428ea2
mov esi, edi
sub esi, edx
jmp 0x428ea4
xor esi, esi
test ecx, ecx
js 0x428fb5
lea ecx, [eax + esi*2]
sub edi, esi
je 0x428f6c
lea eax, [esi + 0x7ffffeff]
mov esi, str.Standard_x64_Edition
add eax, edi
sub esi, ecx
test eax, eax
je 0x428f6c
movzx edx, word [ecx + esi]
test dx, dx
je 0x428f6c
mov word [ecx], dx
dec eax
add ecx, 2
sub edi, 1
jne 0x428ec6
test edi, edi
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
jmp 0x428fb5
test eax, 0x4000
je 0x428f7b
mov eax, dword [ebp - 0x224]
mov edx, 0x100
mov ecx, eax
cmp word [ecx], 0
je 0x428f1f
add ecx, 2
sub edx, 1
jne 0x428f11
xor esi, esi
mov ecx, 0x80070057
test edx, edx
cmovne ecx, esi
je 0x428f33
mov esi, edi
sub esi, edx
jmp 0x428f35
xor esi, esi
test ecx, ecx
js 0x428fb5
lea ecx, [eax + esi*2]
sub edi, esi
je 0x428f6c
lea eax, [esi + 0x7ffffeff]
mov esi, str.Compute_Cluster_Edition
add eax, edi
sub esi, ecx
test eax, eax
je 0x428f6c
movzx edx, word [ecx + esi]
test dx, dx
je 0x428f6c
mov word [ecx], dx
dec eax
add ecx, 2
sub edi, 1
jne 0x428f53
test edi, edi
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
jmp 0x428fb5
test al, al
jns 0x428f86
push str.Datacenter_Edition
jmp 0x428fa4
test al, 2
je 0x428f91
push str.Enterprise_Edition
jmp 0x428fa4
test eax, 0x400
je 0x428f9f
push str.Web_Edition
jmp 0x428fa4
push str.Standard_Edition
mov eax, dword [ebp - 0x224]
push 0x100
push eax
call fcn.0042a1b0
cmp dword [ebp - 0x1f0], 5
jne 0x42911a
mov eax, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x224]
cmp eax, 1
jne 0x429075
push str.Windows_XP
push 0x100
push edi
call fcn.0042a1b0
push 1
lea ecx, [ebp - 0x22c]
call fcn.00419a30
mov esi, eax
push 0
push 0x1166c
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x44
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0x45
call fcn.004384f0
lea ecx, [ebp - 0xd8]
call fcn.00416070
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0xffffffff
call fcn.00419a60
test dword [ebp - 0xdc], 0x200
je 0x429052
push str.Home_Edition
jmp 0x429057
push str.Professional
push 0x100
push edi
call fcn.0042a1b0
cmp dword [ebp - 0x1f0], 5
jne 0x42911a
mov eax, dword [ebp - 0x1ec]
test eax, eax
jne 0x42911a
push str.Windows_2000
push 0x100
push edi
call fcn.0042a1b0
push 1
lea ecx, [ebp - 0x244]
call fcn.00419a30
mov esi, eax
push 0
push 0x1165e
lea ecx, [ebp - 0x21c]
mov dword [ebp - 4], 0x46
call fcn.00415e40
mov ecx, dword [ebp - 0x230]
push 0
push esi
push eax
mov byte [ebp - 4], 0x47
call fcn.004384f0
lea ecx, [ebp - 0x21c]
call fcn.00416070
lea ecx, [ebp - 0x244]
call fcn.00419a60
cmp byte [ebp - 0xda], 1
jne 0x4290ee
push str.Professional
jmp 0x42910f
mov eax, dword [ebp - 0xdc]
test al, al
jns 0x4290ff
push str.Datacenter_Server
jmp 0x42910f
test al, 2
je 0x42910a
push str.Advanced_Server
jmp 0x42910f
push str.Server
push 0x100
push edi
call fcn.0042a1b0
lea ecx, [ebp - 0x1e0]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x429123
mov esi, dword [ebp - 0x224]
sub ecx, edx
sar ecx, 1
je 0x42915c
push 0x6194a8
push 0x100
push esi
call fcn.0042a1b0
lea eax, [ebp - 0x1e0]
push eax
push 0x100
push esi
call fcn.0042a1b0
push dword [ebp - 0x1e8]
lea eax, [ebp - 0xb0]
push str.__build__d_
push 0x50
push eax
call fcn.0042a240
add esp, 0x10
lea eax, [ebp - 0xb0]
push eax
push 0x100
push esi
call fcn.0042a1b0
cmp dword [ebp - 0x1f0], 6
jb 0x4291bc
mov ax, word [ebp - 0x268]
cmp ax, 9
jne 0x4291a7
push str.__64_bit
jmp 0x4291b1
test ax, ax
jne 0x4291bc
push str.__32_bit
push 0x100
push esi
call fcn.0042a1b0
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.00595c5d
mov esp, ebp
pop ebp
ret 4