Function at 0x408da0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
mov eax, dword [0x41b004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
push edi
lea edx, [ebp - 0x19c]
push edx
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x19c], 0x94
call esi
mov eax, dword [ebp - 0x18c]
sub eax, 0
mov edi, dword [ebp - 0x198]
mov ebx, dword [ebp - 0x194]
je 0x40a007
dec eax
je 0x409e0c
dec eax
jne case.0x409075.16
mov eax, edi
cmp eax, 4
jg 0x408e8b
mov eax, dword [str.WindowsNT]
mov edi, dword [ebp - 0x23c]
mov dword [edi], eax
mov ecx, dword [0x4190ac]
mov dword [edi + 4], ecx
mov dx, word [0x4190b0]
mov ecx, dword [ebp - 0x198]
mov word [edi + 8], dx
mov al, byte [0x4190b2]
push ecx
lea edx, [ebp - 0x108]
push 0x4190b4
push edx
mov byte [edi + 0xa], al
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x108]
add esp, 0xc
mov ecx, eax
jmp 0x408e60
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x408e60
sub eax, ecx
mov esi, ecx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x408e70
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
cmp eax, 5
jl 0x409ddc
lea eax, [ebp - 0x238]
push eax
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x238], 0x9c
call esi
sub edi, 5
je 0x409bb4
dec edi
jne case.0x409075.16
mov eax, dword [ebp - 0x230]
mov esi, dword [ebp - 0x23c]
cmp eax, 2
jne 0x408f39
cmp byte [ebp - 0x19e], 1
jne 0x408f04
mov ecx, dword [str.Windows_8]
mov dword [esi], ecx
mov edx, dword [0x419134]
mov dword [esi + 4], edx
mov ax, word [0x419138]
mov word [esi + 8], ax
mov cl, byte [0x41913a]
mov byte [esi + 0xa], cl
jmp 0x40900e
mov edx, dword [str.Windows_Server_2012]
mov dword [esi], edx
mov eax, dword [0x419140]
mov dword [esi + 4], eax
mov ecx, dword [0x419144]
mov dword [esi + 8], ecx
mov edx, dword [0x419148]
mov dword [esi + 0xc], edx
mov eax, dword [0x41914c]
mov dword [esi + 0x10], eax
mov cl, byte [0x419150]
jmp 0x40900b
cmp eax, 1
jne 0x408fa4
cmp byte [ebp - 0x19e], al
jne 0x408f6f
mov edx, dword [str.Windows_7]
mov dword [esi], edx
mov eax, dword [0x419158]
mov dword [esi + 4], eax
mov cx, word [0x41915c]
mov word [esi + 8], cx
mov dl, byte [0x41915e]
mov byte [esi + 0xa], dl
jmp 0x40900e
mov eax, dword [str.Windows_Server_2008_R2]
mov dword [esi], eax
mov ecx, dword [0x419164]
mov dword [esi + 4], ecx
mov edx, dword [0x419168]
mov dword [esi + 8], edx
mov eax, dword [0x41916c]
mov dword [esi + 0xc], eax
mov ecx, dword [0x419170]
mov dword [esi + 0x10], ecx
mov edx, dword [0x419174]
mov dword [esi + 0x14], edx
jmp 0x40900e
cmp byte [ebp - 0x19e], 1
jne 0x408fdb
mov eax, dword [str.Windows_Vista]
mov dword [esi], eax
mov ecx, dword [0x41917c]
mov dword [esi + 4], ecx
mov edx, dword [0x419180]
mov dword [esi + 8], edx
mov ax, word [0x419184]
mov word [esi + 0xc], ax
mov cl, byte [0x419186]
mov byte [esi + 0xe], cl
jmp 0x40900e
mov edx, dword [str.Windows_Server_2008]
mov dword [esi], edx
mov eax, dword [0x41918c]
mov dword [esi + 4], eax
mov ecx, dword [0x419190]
mov dword [esi + 8], ecx
mov edx, dword [0x419194]
mov dword [esi + 0xc], edx
mov eax, dword [0x419198]
mov dword [esi + 0x10], eax
mov cl, byte [0x41919c]
mov byte [esi + 0x14], cl
call fcn.00408d20
test eax, eax
je 0x409039
lea eax, [esi - 1]
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409020
mov edx, dword [str.x64]
mov dword [eax], edx
mov cl, byte [0x4191a4]
mov byte [eax + 4], cl
movzx eax, word [ebp - 0x1a2]
movzx ecx, word [ebp - 0x1a4]
lea edx, [ebp - 0x240]
push edx
mov edx, dword [ebp - 0x230]
push eax
mov eax, dword [ebp - 0x234]
push ecx
push edx
push eax
call fcn.00408d60
mov eax, dword [ebp - 0x240]
add esp, 0x14
cmp eax, 0x47
ja case.0x409075.16
jmp dword [eax*4 + 0x40a11c]
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409083
mov ecx, dword [str.Starter_Edition]
mov dword [eax], ecx
mov edx, dword [0x4191ac]
mov dword [eax + 4], edx
mov ecx, dword [0x4191b0]
mov dword [eax + 8], ecx
mov edx, dword [0x4191b4]
mov dword [eax + 0xc], edx
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4090c0
mov ecx, dword [str.Home_Basic_Edition]
mov dword [eax], ecx
mov edx, dword [0x4191bc]
mov dword [eax + 4], edx
mov ecx, dword [0x4191c0]
mov dword [eax + 8], ecx
mov edx, dword [0x4191c4]
mov dword [eax + 0xc], edx
mov cx, word [0x4191c8]
mov word [eax + 0x10], cx
mov dl, byte [0x4191ca]
mov byte [eax + 0x12], dl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
jmp 0x409110
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409110
mov ecx, dword [str.Home_Premium_Edition]
mov dword [eax], ecx
mov edx, dword [0x4191d0]
mov dword [eax + 4], edx
mov ecx, dword [0x4191d4]
mov dword [eax + 8], ecx
mov edx, dword [0x4191d8]
mov dword [eax + 0xc], edx
mov ecx, dword [0x4191dc]
mov dword [eax + 0x10], ecx
mov dl, byte [0x4191e0]
mov byte [eax + 0x14], dl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409160
mov ecx, dword [str.Enterprise_Edition]
mov dword [eax], ecx
mov edx, dword [0x4191e8]
mov dword [eax + 4], edx
mov ecx, dword [0x4191ec]
mov dword [eax + 8], ecx
mov edx, dword [0x4191f0]
mov dword [eax + 0xc], edx
mov cx, word [0x4191f4]
mov word [eax + 0x10], cx
mov dl, byte [0x4191f6]
mov byte [eax + 0x12], dl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
jmp 0x4091b0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4091b0
mov ecx, dword [str.Ultimate_Edition]
mov dword [eax], ecx
mov edx, dword [0x4191fc]
mov dword [eax + 4], edx
mov ecx, dword [0x419200]
mov dword [eax + 8], ecx
mov edx, dword [0x419204]
mov dword [eax + 0xc], edx
mov cl, byte [0x419208]
mov byte [eax + 0x10], cl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4091f0
mov edx, dword [str.Business_Edition]
mov dword [eax], edx
mov ecx, dword [0x419210]
mov dword [eax + 4], ecx
mov edx, dword [0x419214]
mov dword [eax + 8], edx
mov ecx, dword [0x419218]
mov dword [eax + 0xc], ecx
mov dl, byte [0x41921c]
mov byte [eax + 0x10], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409230
mov ecx, 5
mov esi, str.Cluster_Server_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409253
mov ecx, 0xb
mov esi, str.Server_Datacenter_Edition__full_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409275
mov ecx, 0xb
mov esi, str.Server_Datacenter_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409297
mov ecx, 0xb
mov esi, str.Server_Enterprise_Edition__full_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4092c0
mov ecx, 0xb
mov esi, str.Server_Enterprise_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4092e2
mov ecx, 0xd
mov esi, str.Server_Enterprise_Edition_for_Itanium_based_Systems
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409302
mov ecx, dword [str.Home_Server_Edition]
mov dword [eax], ecx
mov edx, dword [0x419330]
mov dword [eax + 4], edx
mov ecx, dword [0x419334]
mov dword [eax + 8], ecx
mov edx, dword [0x419338]
mov dword [eax + 0xc], edx
mov ecx, dword [0x41933c]
mov dword [eax + 0x10], ecx
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409342
mov ecx, 8
mov esi, str.Server_for_Small_Business_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409364
mov edx, dword [str.Small_Business_Server]
mov dword [eax], edx
mov ecx, dword [0x419368]
mov dword [eax + 4], ecx
mov edx, dword [0x41936c]
mov dword [eax + 8], edx
mov ecx, dword [0x419370]
mov dword [eax + 0xc], ecx
mov edx, dword [0x419374]
mov dword [eax + 0x10], edx
mov cx, word [0x419378]
mov word [eax + 0x14], cx
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4093b0
mov ecx, 9
mov esi, str.Small_Business_Server_Premium_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4093d2
mov ecx, 0xb
mov esi, str.Server_Standard_Edition__full_installation_
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4093f2
mov ecx, 0xb
mov esi, str.Server_Standard_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409412
mov ecx, 8
mov esi, str.Storage_Server_Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409434
mov ecx, 7
mov esi, str.Storage_Server_Express_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409457
mov ecx, 8
mov esi, str.Storage_Server_Standard_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409477
mov ecx, 8
mov esi, str.Storage_Server_Workgroup_Edition
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409498
mov edx, dword [str.An_unknown_product]
mov dword [eax], edx
mov ecx, dword [0x419488]
mov dword [eax + 4], ecx
mov edx, dword [0x41948c]
mov dword [eax + 8], edx
mov ecx, dword [0x419490]
mov dword [eax + 0xc], ecx
mov dx, word [0x419494]
mov word [eax + 0x10], dx
mov cl, byte [0x419496]
mov byte [eax + 0x12], cl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4094e3
mov edx, dword [str.Web_Server_Edition]
mov dword [eax], edx
mov ecx, dword [0x41949c]
mov dword [eax + 4], ecx
mov edx, dword [0x4194a0]
mov dword [eax + 8], edx
mov ecx, dword [0x4194a4]
mov dword [eax + 0xc], ecx
mov dx, word [0x4194a8]
mov word [eax + 0x10], dx
mov cl, byte [0x4194aa]
mov byte [eax + 0x12], cl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409530
mov edx, dword [str.Starter_Edition]
mov dword [eax], edx
mov ecx, dword [0x4191ac]
mov dword [eax + 4], ecx
mov edx, dword [0x4191b0]
mov dword [eax + 8], edx
mov ecx, dword [0x4191b4]
mov dword [eax + 0xc], ecx
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409567
mov edx, dword [str.Home_Premium_Edition]
mov dword [eax], edx
mov ecx, dword [0x4191d0]
mov dword [eax + 4], ecx
mov edx, dword [0x4191d4]
mov dword [eax + 8], edx
mov ecx, dword [0x4191d8]
mov dword [eax + 0xc], ecx
mov edx, dword [0x4191dc]
mov dword [eax + 0x10], edx
mov cl, byte [0x4191e0]
mov byte [eax + 0x14], cl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4095b0
mov edx, dword [str.Enterprise_Edition]
mov dword [eax], edx
mov ecx, dword [0x4191e8]
mov dword [eax + 4], ecx
mov edx, dword [0x4191ec]
mov dword [eax + 8], edx
mov ecx, dword [0x4191f0]
mov dword [eax + 0xc], ecx
mov dx, word [0x4191f4]
mov word [eax + 0x10], dx
mov cl, byte [0x4191f6]
mov byte [eax + 0x12], cl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
jmp 0x409600
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409600
mov edx, dword [str.Ultimate_Edition]
mov dword [eax], edx
mov ecx, dword [0x4191fc]
mov dword [eax + 4], ecx
mov edx, dword [0x419200]
mov dword [eax + 8], edx
mov ecx, dword [0x419204]
mov dword [eax + 0xc], ecx
mov dl, byte [0x419208]
mov byte [eax + 0x10], dl
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409640
mov ecx, dword [str.Professional_Edition]
mov dword [eax], ecx
mov edx, dword [0x4194b0]
mov dword [eax + 4], edx
mov ecx, dword [0x4194b4]
mov dword [eax + 8], ecx
mov edx, dword [0x4194b8]
mov dword [eax + 0xc], edx
mov ecx, dword [0x4194bc]
mov dword [eax + 0x10], ecx
mov dl, byte [0x4194c0]
mov byte [eax + 0x14], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409690
mov ecx, 9
mov esi, str.Web_Server_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4096b3
mov ecx, 0xd
mov esi, str.Windows_Essential_Business_Server_Management_Server
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4096d3
mov ecx, 0xc
mov esi, str.Windows_Essential_Business_Server_Security_Server
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4096f5
mov ecx, 0xc
mov esi, str.Windows_Essential_Business_Server_Messaging_Server
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409718
mov ecx, dword [str.Server_Foundation]
mov dword [eax], ecx
mov edx, dword [0x41958c]
mov dword [eax + 4], edx
mov ecx, dword [0x419590]
mov dword [eax + 8], ecx
mov edx, dword [0x419594]
mov dword [eax + 0xc], edx
mov cx, word [0x419598]
mov word [eax + 0x10], cx
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409760
mov ecx, 7
mov esi, str.Home_Premium_Server_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409780
mov ecx, 0x10
mov esi, str.Server_2008_without_Hyper_V_for_Windows_Essential_Server_Solutions
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4097a3
mov ecx, 0xa
mov esi, str.Server_Standard_Edition_without_Hyper_V
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4097c3
mov ecx, 0xa
mov esi, str.Server_Datacenter_Edition_without_Hyper_V
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4097e5
mov ecx, 0xa
mov esi, str.Server_Enterprise_Edition_without_Hyper_V
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409807
mov ecx, 0xf
mov esi, str.Server_Datacenter_Edition_without_Hyper_V__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409830
mov ecx, 0xf
mov esi, str.Server_Standard_Edition_without_Hyper_V__core_installation_
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409850
mov ecx, 0xf
mov esi, str.Server_Enterprise_Edition_without_Hyper_V__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409872
mov ecx, 6
mov esi, str.Microsoft_Hyper_V_Server
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409893
mov ecx, 0xc
mov esi, str.Storage_Server_Express_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4098b6
mov ecx, 0xd
mov esi, str.Storage_Server_Standard_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4098d6
mov ecx, 0xd
mov esi, str.Storage_Server_Workgroup_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4098f7
mov ecx, 0xd
mov esi, str.Storage_Server_Enterprise_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409920
mov dl, byte [0x417d2b]
mov byte [edi], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409940
mov al, byte [0x417d2b]
mov byte [edi], al
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
jmp 0x409960
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409960
mov cl, byte [0x417d2b]
mov byte [edi], cl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409980
mov dl, byte [0x417d2b]
mov byte [edi], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4099a0
mov al, byte [0x417d2b]
mov byte [edi], al
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
jmp 0x4099c0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4099c0
mov cl, byte [0x417d2b]
mov byte [edi], cl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4099e0
mov dl, byte [0x417d2b]
mov byte [edi], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409a00
mov al, byte [0x417d2b]
mov byte [edi], al
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
jmp 0x409a20
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409a20
mov cl, byte [0x417d2b]
mov byte [edi], cl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409a40
mov dl, byte [0x417d2b]
mov byte [edi], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409a60
mov al, byte [0x417d2b]
mov byte [edi], al
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
jmp 0x409a80
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409a80
mov cl, byte [0x417d2b]
mov byte [edi], cl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409aa0
mov dl, byte [0x417d2b]
mov byte [edi], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409ac0
mov ecx, 9
mov esi, str.Cluster_Server_Edition_without_Hyper_V
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409ae3
mov al, byte [0x417d2b]
mov byte [edi], al
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409b00
mov cl, byte [0x417d2b]
mov byte [edi], cl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409b20
mov dl, byte [0x417d2b]
mov byte [edi], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409b40
mov al, byte [0x417d2b]
mov byte [edi], al
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
jmp 0x409b60
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409b60
mov cl, byte [0x417d2b]
mov byte [edi], cl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409b80
mov dl, byte [0x417d2b]
mov byte [edi], dl
jmp case.0x409075.16
mov edi, dword [ebp - 0x23c]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409ba0
mov al, byte [0x417d2b]
mov byte [edi], al
jmp case.0x409075.16
cmp ebx, 1
jne 0x409d0a
mov al, byte [ebp - 0x19e]
cmp al, bl
jne 0x409c60
mov ecx, dword [str.WindowsXP]
mov eax, dword [ebp - 0x23c]
mov dword [eax], ecx
mov edx, dword [0x4190bc]
mov dword [eax + 4], edx
mov cx, word [0x4190c0]
mov word [eax + 8], cx
mov dl, byte [0x4190c2]
mov byte [eax + 0xa], dl
dec eax
test dword [ebp - 0x1a0], 0x200
je 0x409c30
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409c03
mov ecx, dword [str.HomeEdition]
mov dword [eax], ecx
mov edx, dword [0x4190c8]
mov dword [eax + 4], edx
mov ecx, dword [0x4190cc]
mov dword [eax + 8], ecx
jmp case.0x409075.16
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409c30
mov edx, dword [str.Professional]
mov dword [eax], edx
mov ecx, dword [0x4190d4]
mov dword [eax + 4], ecx
mov edx, dword [0x4190d8]
mov dword [eax + 8], edx
mov cl, byte [0x4190dc]
mov byte [eax + 0xc], cl
jmp case.0x409075.16
cmp al, 3
jne case.0x409075.16
mov edx, dword [str.Windows2002_.NET]
mov eax, dword [ebp - 0x23c]
mov dword [eax], edx
mov ecx, dword [0x4190e4]
mov dword [eax + 4], ecx
mov edx, dword [0x4190e8]
mov dword [eax + 8], edx
mov ecx, dword [0x4190ec]
mov dword [eax + 0xc], ecx
mov dx, word [0x4190f0]
mov word [eax + 0x10], dx
dec eax
test byte [ebp - 0x1a0], 2
je 0x409ce1
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409ca6
mov ecx, dword [str.Enterprise_Server]
mov dword [eax], ecx
mov edx, dword [0x4190f8]
mov dword [eax + 4], edx
mov ecx, dword [0x4190fc]
mov dword [eax + 8], ecx
mov edx, dword [0x419100]
mov dword [eax + 0xc], edx
mov cx, word [0x419104]
mov word [eax + 0x10], cx
jmp case.0x409075.16
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409ce1
mov edx, dword [str.Server]
mov dword [eax], edx
mov cx, word [0x41910c]
mov word [eax + 4], cx
mov dl, byte [0x41910e]
mov byte [eax + 6], dl
jmp case.0x409075.16
mov ecx, dword [str.Windows2000]
mov eax, dword [ebp - 0x23c]
mov dword [eax], ecx
mov edx, dword [0x419114]
mov dword [eax + 4], edx
mov ecx, dword [0x419118]
mov dword [eax + 8], ecx
mov cl, byte [ebp - 0x19e]
mov dl, byte [0x41911c]
mov byte [eax + 0xc], dl
cmp cl, 1
jne 0x409d70
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409d40
mov ecx, dword [str.Professional]
mov dword [eax], ecx
mov edx, dword [0x4190d4]
mov dword [eax + 4], edx
mov ecx, dword [0x4190d8]
mov dword [eax + 8], ecx
mov dl, byte [0x4190dc]
mov byte [eax + 0xc], dl
jmp case.0x409075.16
cmp cl, 3
jne case.0x409075.16
dec eax
test byte [ebp - 0x1a0], 2
je 0x409db3
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409d83
mov ecx, dword [str.Advanced_Server]
mov dword [eax], ecx
mov edx, dword [0x419124]
mov dword [eax + 4], edx
mov ecx, dword [0x419128]
mov dword [eax + 8], ecx
mov edx, dword [0x41912c]
mov dword [eax + 0xc], edx
jmp case.0x409075.16
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409db3
mov ecx, dword [str.Server]
mov dword [eax], ecx
mov dx, word [0x41910c]
mov word [eax + 4], dx
mov cl, byte [0x41910e]
mov byte [eax + 6], cl
jmp case.0x409075.16
mov edx, dword [0x419854]
mov eax, dword [ebp - 0x23c]
mov dword [eax], edx
mov ecx, dword [0x419858]
mov dword [eax + 4], ecx
mov dx, word [0x41985c]
mov word [eax + 8], dx
mov cl, byte [0x41985e]
mov byte [eax + 0xa], cl
jmp case.0x409075.16
test ebx, ebx
je 0x409edb
cmp ebx, 0xa
je 0x409e66
mov eax, dword [ebp - 0x23c]
cmp ebx, 0x5a
je 0x409e45
mov edx, dword [str.Windows9x]
mov dword [eax], edx
mov ecx, dword [0x4190a0]
mov dword [eax + 4], ecx
mov dx, word [0x4190a4]
mov word [eax + 8], dx
jmp case.0x409075.16
mov ecx, dword [str.WindowsMe]
mov dword [eax], ecx
mov edx, dword [0x419094]
mov dword [eax + 4], edx
mov cx, word [0x419098]
mov word [eax + 8], cx
jmp case.0x409075.16
lea edx, [ebp - 0x188]
mov ecx, 0x41904c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x409e91
test al, al
je 0x409e8d
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x409e91
add ecx, 2
add edx, 2
test al, al
jne 0x409e71
xor eax, eax
jmp 0x409e96
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409eb4
mov edi, dword [ebp - 0x23c]
mov ecx, 5
mov esi, str.Windows98SecondEdision
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x409075.16
mov edx, dword [str.Windows98]
mov eax, dword [ebp - 0x23c]
mov dword [eax], edx
mov ecx, dword [0x419088]
mov dword [eax + 4], ecx
mov dx, word [0x41908c]
mov word [eax + 8], dx
jmp case.0x409075.16
mov ecx, dword [str.Windows95]
mov eax, dword [ebp - 0x23c]
mov dword [eax], ecx
mov edx, dword [0x419044]
mov dword [eax + 4], edx
mov cx, word [0x419048]
mov word [eax + 8], cx
lea ecx, [ebp - 0x188]
mov eax, 0x41904c
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409f28
test dl, dl
je 0x409f24
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409f28
add eax, 2
add ecx, 2
test dl, dl
jne 0x409f08
xor eax, eax
jmp 0x409f2d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409f4d
mov edi, dword [ebp - 0x23c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x409f38
mov edx, dword [0x419050]
mov dword [edi], edx
jmp case.0x409075.16
lea ecx, [ebp - 0x188]
mov eax, 0x419054
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409f78
test dl, dl
je 0x409f74
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409f78
add eax, 2
add ecx, 2
test dl, dl
jne 0x409f58
xor eax, eax
jmp 0x409f7d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409fa6
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409f88
mov ecx, dword [str.OSR2]
mov dword [eax], ecx
mov dl, byte [0x41905c]
mov byte [eax + 4], dl
jmp case.0x409075.16
lea ecx, [ebp - 0x188]
mov eax, 0x419060
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409fd1
test dl, dl
je 0x409fcd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409fd1
add eax, 2
add ecx, 2
test dl, dl
jne 0x409fb1
xor eax, eax
jmp 0x409fd6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x409075.16
mov eax, dword [ebp - 0x23c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409fe1
mov ecx, dword [str.OSR2.5]
mov dword [eax], ecx
mov dx, word [0x419068]
mov word [eax + 4], dx
mov cl, byte [0x41906a]
mov byte [eax + 6], cl
jmp case.0x409075.16
mov edx, dword [str.Windows_3.1]
mov eax, dword [ebp - 0x23c]
mov dword [eax], edx
mov ecx, dword [0x419864]
mov dword [eax + 4], ecx
mov edx, dword [0x419868]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x23c]
dec eax
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40a030
mov cx, word [0x41986c]
mov word [eax], cx
mov dl, byte [0x41986e]
mov ecx, dword [ebp - 0x194]
mov byte [eax + 2], dl
movzx eax, word [ebp - 0x190]
mov edx, dword [ebp - 0x198]
push eax
push ecx
push edx
lea eax, [ebp - 0x108]
push str.__d._02d._d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x108]
add esp, 0x14
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a080
mov ebx, dword [ebp - 0x23c]
sub eax, ecx
mov esi, ecx
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a094
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x188]
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a0b2
sub eax, ecx
mov esi, ecx
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a0c0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
lea eax, [ebx - 1]
pop ebx
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40a0e0
mov cx, word [0x419880]
mov word [eax], cx
mov dl, byte [0x419882]
mov byte [eax + 2], dl
mov eax, dword [ebp - 0x244]
test eax, eax
je 0x40a10d
mov ecx, dword [ebp - 0x198]
mov dword [eax], ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040aabb
mov esp, ebp
pop ebp
ret