Function at 0x4a6340
Capabilities:
Check os version
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x258
mov eax, dword [0x5552b0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
lea eax, [ebp - 0x250]
push eax
mov esi, ecx
mov ebx, edx
mov dword [ebp - 0x250], 0x94
call edi
push 0x11c
lea ecx, [ebp - 0x1bc]
push 0
push ecx
call fcn.004e8ba0
add esp, 0xc
lea edx, [ebp - 0x1bc]
push edx
mov dword [ebp - 0x1bc], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x1b8], 6
jne 0x4a6a90
mov eax, 1
cmp dword [ebp - 0x1b4], eax
jne 0x4a6a90
cmp byte [ebp - 0xa2], al
jne 0x4a6a90
mov eax, str.Windows_7
mov edx, esi
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a63d3
push 0x9c
lea eax, [ebp - 0x13c]
push 0
push eax
call fcn.004e8ba0
add esp, 0xc
lea ecx, [ebp - 0x13c]
push ecx
mov dword [ebp - 0x13c], 0x9c
call edi
lea eax, [ebp - 0x128]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a6414
sub eax, edx
je 0x4a643e
movzx edx, word [ebp - 0xa6]
movzx eax, word [ebp - 0xa8]
push edx
push eax
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x254], eax
test eax, eax
je case.0x4a78fe.29
push str.GetProductInfo
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
xor edi, edi
test ebx, ebx
je 0x4a64c2
push 0x9c
lea edx, [ebp - 0xa0]
push edi
push edx
call fcn.004e8ba0
add esp, 0xc
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, eax
test edi, edi
je 0x4a64c2
movzx edx, word [ebp - 0xa]
movzx eax, word [ebp - 0xc]
lea ecx, [ebp - 0x258]
push ecx
mov ecx, dword [ebp - 0x98]
push edx
mov edx, dword [ebp - 0x9c]
push eax
push ecx
push edx
call ebx
mov edi, eax
mov eax, dword [ebp - 0x254]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je case.0x4a78fe.29
mov eax, dword [ebp - 0x258]
cmp eax, 0x30
ja case.0x4a78fe.29
movzx ecx, byte [eax + 0x4a8adc]
jmp dword [ecx*4 + 0x4a8a60]
mov eax, str.Windows_7_Business_Edition
sub esi, eax
jmp 0x4a6500
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6500
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Business_Edition
sub esi, eax
jmp 0x4a6530
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6530
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Cluster_Server_Edition
sub esi, eax
jmp 0x4a6560
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6560
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Server_Datacenter_Edition__full_installation_
sub esi, eax
jmp 0x4a6590
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6590
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Server_Datacenter_Edition__core_installation_
sub esi, eax
jmp 0x4a65c0
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a65c0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Enterprise_Edition
sub esi, eax
jmp 0x4a65f0
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a65f0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Enterprise_Edition
sub esi, eax
jmp 0x4a6620
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6620
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Server_Enterprise_Edition__full_installation_
sub esi, eax
jmp 0x4a6650
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6650
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Server_Enterprise_Edition__core_installation_
sub esi, eax
jmp 0x4a6680
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6680
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Server_Enterprise_Edition_for_Itanium_based_Systems
sub esi, eax
jmp 0x4a66b0
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a66b0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Home_Basic_Edition
sub esi, eax
jmp 0x4a66e0
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a66e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Home_Basic_Edition
sub esi, eax
jmp 0x4a6710
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6710
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Home_Premium_Edition
sub esi, eax
jmp 0x4a6740
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6740
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Home_Premium_Edition
sub esi, eax
jmp 0x4a6770
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6770
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Home_Server_Edition
sub esi, eax
jmp 0x4a67a0
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a67a0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Server_for_Small_Business_Edition
sub esi, eax
jmp 0x4a67d0
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a67d0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Small_Business_Server
sub esi, eax
jmp 0x4a6800
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6800
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Small_Business_Server_Premium_Edition
sub esi, eax
jmp 0x4a6830
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6830
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Server_Standard_Edition__full_installation_
sub esi, eax
jmp 0x4a6860
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6860
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Server_Standard_Edition__core_installation_
sub esi, eax
jmp 0x4a6890
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a6890
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Starter_Edition
sub esi, eax
jmp 0x4a68c0
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a68c0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Storage_Server_Enterprise_Edition
sub esi, eax
jmp 0x4a68f0
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a68f0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Storage_Server_Express_Edition
sub esi, eax
jmp 0x4a6920
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a6920
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Storage_Server_Standard_Edition
sub esi, eax
jmp 0x4a6950
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a6950
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Storage_Server_Workgroup_Edition
sub esi, eax
jmp 0x4a6980
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a6980
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_An_unknown_product
sub esi, eax
jmp 0x4a69b0
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a69b0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Ultimate_Edition
sub esi, eax
jmp 0x4a69e0
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a69e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Ultimate_Edition
sub esi, eax
jmp 0x4a6a10
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a6a10
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Web_Server_Edition
sub esi, eax
jmp 0x4a6a40
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a6a40
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_7_Professional
sub esi, eax
jmp 0x4a6a70
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a6a70
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
call fcn.004bbd80
test eax, eax
je 0x4a71a6
mov eax, str.Windows_8
mov edx, esi
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a6aa6
push 0x9c
lea edx, [ebp - 0x13c]
push 0
push edx
call fcn.004e8ba0
add esp, 0xc
lea eax, [ebp - 0x13c]
push eax
mov dword [ebp - 0x13c], 0x9c
call edi
lea eax, [ebp - 0x128]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a6ae7
sub eax, edx
je 0x4a6b11
movzx ecx, word [ebp - 0xa6]
movzx edx, word [ebp - 0xa8]
push ecx
push edx
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x254], eax
test eax, eax
je case.0x4a78fe.29
push str.GetProductInfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
xor edi, edi
test ebx, ebx
je 0x4a6b93
push 0x9c
lea ecx, [ebp - 0xa0]
push edi
push ecx
call fcn.004e8ba0
add esp, 0xc
lea edx, [ebp - 0xa0]
push edx
mov dword [ebp - 0xa0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, eax
test edi, edi
je 0x4a6b93
movzx ecx, word [ebp - 0xa]
movzx edx, word [ebp - 0xc]
lea eax, [ebp - 0x258]
push eax
mov eax, dword [ebp - 0x98]
push ecx
mov ecx, dword [ebp - 0x9c]
push edx
push eax
push ecx
call ebx
mov edi, eax
mov edx, dword [ebp - 0x254]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je case.0x4a78fe.29
mov eax, dword [ebp - 0x258]
cmp eax, 0x65
ja case.0x4a78fe.29
movzx eax, byte [eax + 0x4a8b90]
jmp dword [eax*4 + 0x4a8b10]
add esi, 0xfffffffe
jmp 0x4a6bd0
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6bd0
mov edi, esi
mov ecx, 9
mov esi, str._Business_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6c00
mov edi, esi
mov ecx, 9
mov esi, str._Business_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6c30
mov edi, esi
mov ecx, 0xc
mov esi, str._Cluster_Server_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6c60
mov edi, esi
mov esi, str._Server_Datacenter_Edition__full_installation_
mov ecx, 0x17
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6c90
mov edi, esi
mov ecx, 0x17
mov esi, str._Server_Datacenter_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6cc0
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6cf0
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6d20
mov edi, esi
mov ecx, 0x17
mov esi, str._Server_Enterprise_Edition__full_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6d50
mov edi, esi
mov ecx, 0x17
mov esi, str._Server_Enterprise_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6d80
mov edi, esi
mov ecx, 0x1a
mov esi, str._Server_Enterprise_Edition_for_Itanium_based_Systems
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6db0
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Basic_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6de0
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Basic_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6e10
mov edi, esi
mov ecx, 0xb
mov esi, str._Home_Premium_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6e40
mov edi, esi
mov ecx, 0xb
mov esi, str._Home_Premium_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6e70
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Server_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6ea0
mov edi, esi
mov ecx, 0x11
mov esi, str._Server_for_Small_Business_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6ed0
mov edi, esi
mov ecx, 0xb
mov esi, str._Small_Business_Server
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6f00
mov edi, esi
mov ecx, 0x13
mov esi, str._Small_Business_Server_Premium_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6f30
mov edi, esi
mov ecx, 0x16
mov esi, str._Server_Standard_Edition__full_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6f60
mov edi, esi
mov ecx, 0x16
mov esi, str._Server_Standard_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6f90
mov edi, esi
mov ecx, 8
mov esi, str._Starter_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6fc0
mov edi, esi
mov ecx, 0x11
mov esi, str._Storage_Server_Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6ff0
mov edi, esi
mov ecx, 0x10
mov esi, str._Storage_Server_Express_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7020
mov edi, esi
mov ecx, 0x10
mov esi, str._Storage_Server_Standard_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7050
mov edi, esi
mov ecx, 0x11
mov esi, str._Storage_Server_Workgroup_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7080
mov edi, esi
mov ecx, 0xa
mov esi, str._An_unknown_product
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a70b0
mov edi, esi
mov ecx, 9
mov esi, str._Ultimate_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a70e0
mov edi, esi
mov ecx, 9
mov esi, str._Ultimate_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7110
mov edi, esi
mov ecx, 0xa
mov esi, str._Web_Server_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7140
mov edi, esi
mov ecx, 7
mov esi, str._Professional
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7170
mov ecx, dword [str._Home]
mov dword [esi], ecx
mov edx, dword [0x524848]
mov dword [esi + 4], edx
mov eax, dword [0x52484c]
pop edi
mov dword [esi + 8], eax
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
call fcn.004bbdf0
test eax, eax
je 0x4a77c6
mov eax, str.Windows_8.1
mov edx, esi
sub edx, eax
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a71c0
push 0x9c
lea ecx, [ebp - 0x13c]
push 0
push ecx
call fcn.004e8ba0
add esp, 0xc
lea edx, [ebp - 0x13c]
push edx
mov dword [ebp - 0x13c], 0x9c
call edi
lea eax, [ebp - 0x128]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7201
sub eax, edx
je 0x4a722b
movzx eax, word [ebp - 0xa6]
movzx ecx, word [ebp - 0xa8]
push eax
push ecx
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x254], eax
test eax, eax
je case.0x4a78fe.29
push str.GetProductInfo
mov edx, eax
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
xor edi, edi
test ebx, ebx
je 0x4a72af
push 0x9c
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004e8ba0
add esp, 0xc
lea ecx, [ebp - 0xa0]
push ecx
mov dword [ebp - 0xa0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, eax
test edi, edi
je 0x4a72af
movzx eax, word [ebp - 0xa]
movzx ecx, word [ebp - 0xc]
lea edx, [ebp - 0x258]
push edx
mov edx, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x9c]
push ecx
push edx
push eax
call ebx
mov edi, eax
mov ecx, dword [ebp - 0x254]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je case.0x4a78fe.29
mov eax, dword [ebp - 0x258]
cmp eax, 0x65
ja case.0x4a78fe.29
movzx edx, byte [eax + 0x4a8c78]
jmp dword [edx*4 + 0x4a8bf8]
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a72e4
mov edi, esi
mov ecx, 9
mov esi, str._Business_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7312
mov edi, esi
mov ecx, 9
mov esi, str._Business_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7340
mov edi, esi
mov ecx, 0xc
mov esi, str._Cluster_Server_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7370
jmp 0x4a6c6c
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7384
mov edi, esi
mov esi, str._Server_Datacenter_Edition__core_installation_
jmp 0x4a6c73
add esi, 0xfffffffe
nop
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a73a0
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a73d0
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7400
mov edi, esi
mov esi, str._Server_Enterprise_Edition__full_installation_
jmp 0x4a6c73
add esi, 0xfffffffe
jmp 0x4a7420
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7420
mov edi, esi
mov esi, str._Server_Enterprise_Edition__core_installation_
jmp 0x4a6c73
add esi, 0xfffffffe
jmp 0x4a7440
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7440
mov edi, esi
mov ecx, 0x1a
mov esi, str._Server_Enterprise_Edition_for_Itanium_based_Systems
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7460
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Basic_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7490
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Basic_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a74c0
mov edi, esi
mov ecx, 0xb
mov esi, str._Home_Premium_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a74f0
mov edi, esi
mov ecx, 0xb
mov esi, str._Home_Premium_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7520
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Server_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7540
mov edi, esi
mov ecx, 0x11
mov esi, str._Server_for_Small_Business_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7560
mov edi, esi
mov ecx, 0xb
mov esi, str._Small_Business_Server
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7580
mov edi, esi
mov ecx, 0x13
mov esi, str._Small_Business_Server_Premium_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a75a0
mov edi, esi
mov ecx, 0x16
mov esi, str._Server_Standard_Edition__full_installation_
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a75c0
mov edi, esi
mov ecx, 0x16
mov esi, str._Server_Standard_Edition__core_installation_
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a75e0
mov edi, esi
mov ecx, 8
mov esi, str._Starter_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7600
mov edi, esi
mov ecx, 0x11
mov esi, str._Storage_Server_Enterprise_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7620
mov edi, esi
mov ecx, 0x10
mov esi, str._Storage_Server_Express_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7650
mov edi, esi
mov ecx, 0x10
mov esi, str._Storage_Server_Standard_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7670
mov edi, esi
mov ecx, 0x11
mov esi, str._Storage_Server_Workgroup_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a76a0
mov edi, esi
mov ecx, 0xa
mov esi, str._An_unknown_product
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a76d0
mov edi, esi
mov ecx, 9
mov esi, str._Ultimate_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7700
mov edi, esi
mov ecx, 9
mov esi, str._Ultimate_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7730
mov edi, esi
mov ecx, 0xa
mov esi, str._Web_Server_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7760
mov edi, esi
mov ecx, 7
mov esi, str._Professional
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7790
mov eax, dword [str._Home]
mov dword [esi], eax
mov ecx, dword [0x524848]
mov dword [esi + 4], ecx
mov edx, dword [0x52484c]
pop edi
mov dword [esi + 8], edx
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
call fcn.004bbf40
test eax, eax
je 0x4a7df6
mov eax, str.Windows_10
mov edx, esi
sub edx, eax
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a77e0
push 0x9c
lea eax, [ebp - 0x13c]
push 0
push eax
call fcn.004e8ba0
add esp, 0xc
lea ecx, [ebp - 0x13c]
push ecx
mov dword [ebp - 0x13c], 0x9c
call edi
lea eax, [ebp - 0x128]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7821
sub eax, edx
je 0x4a784b
movzx edx, word [ebp - 0xa6]
movzx eax, word [ebp - 0xa8]
push edx
push eax
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x254], eax
test eax, eax
je case.0x4a78fe.29
push str.GetProductInfo
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
xor edi, edi
test ebx, ebx
je 0x4a78d3
push 0x9c
lea edx, [ebp - 0xa0]
push edi
push edx
call fcn.004e8ba0
add esp, 0xc
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, eax
test edi, edi
je 0x4a78d3
movzx edx, word [ebp - 0xa]
movzx eax, word [ebp - 0xc]
lea ecx, [ebp - 0x258]
push ecx
mov ecx, dword [ebp - 0x98]
push edx
mov edx, dword [ebp - 0x9c]
push eax
push ecx
push edx
call ebx
mov edi, eax
mov eax, dword [ebp - 0x254]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je case.0x4a78fe.29
mov eax, dword [ebp - 0x258]
cmp eax, 0x65
ja case.0x4a78fe.29
movzx ecx, byte [eax + 0x4a8d60]
jmp dword [ecx*4 + 0x4a8ce0]
add esi, 0xfffffffe
jmp 0x4a7910
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7910
mov edi, esi
mov ecx, 9
mov esi, str._Business_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7940
mov edi, esi
mov ecx, 9
mov esi, str._Business_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7970
mov edi, esi
mov ecx, 0xc
mov esi, str._Cluster_Server_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a79a0
jmp 0x4a6c6c
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a79b4
mov edi, esi
mov esi, str._Server_Datacenter_Edition__core_installation_
jmp 0x4a6c73
add esi, 0xfffffffe
nop
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a79d0
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7a00
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7a30
mov edi, esi
mov esi, str._Server_Enterprise_Edition__full_installation_
jmp 0x4a6c73
add esi, 0xfffffffe
jmp 0x4a7a50
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7a50
mov edi, esi
mov esi, str._Server_Enterprise_Edition__core_installation_
jmp 0x4a6c73
add esi, 0xfffffffe
jmp 0x4a7a70
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7a70
mov edi, esi
mov ecx, 0x1a
mov esi, str._Server_Enterprise_Edition_for_Itanium_based_Systems
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7a90
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Basic_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7ac0
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Basic_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7af0
mov edi, esi
mov ecx, 0xb
mov esi, str._Home_Premium_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7b20
mov edi, esi
mov ecx, 0xb
mov esi, str._Home_Premium_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7b50
mov edi, esi
mov ecx, 0xa
mov esi, str._Home_Server_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7b70
mov edi, esi
mov ecx, 0x11
mov esi, str._Server_for_Small_Business_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7b90
mov edi, esi
mov ecx, 0xb
mov esi, str._Small_Business_Server
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7bb0
mov edi, esi
mov ecx, 0x13
mov esi, str._Small_Business_Server_Premium_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7bd0
mov edi, esi
mov ecx, 0x16
mov esi, str._Server_Standard_Edition__full_installation_
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7bf0
mov edi, esi
mov ecx, 0x16
mov esi, str._Server_Standard_Edition__core_installation_
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7c10
mov edi, esi
mov ecx, 8
mov esi, str._Starter_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7c30
mov edi, esi
mov ecx, 0x11
mov esi, str._Storage_Server_Enterprise_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7c50
mov edi, esi
mov ecx, 0x10
mov esi, str._Storage_Server_Express_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7c80
mov edi, esi
mov ecx, 0x10
mov esi, str._Storage_Server_Standard_Edition
jmp 0x4a6c78
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7ca0
mov edi, esi
mov ecx, 0x11
mov esi, str._Storage_Server_Workgroup_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7cd0
mov edi, esi
mov ecx, 0xa
mov esi, str._An_unknown_product
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7d00
mov edi, esi
mov ecx, 9
mov esi, str._Ultimate_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7d30
mov edi, esi
mov ecx, 9
mov esi, str._Ultimate_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7d60
mov edi, esi
mov ecx, 0xa
mov esi, str._Web_Server_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7d90
mov edi, esi
mov ecx, 7
mov esi, str._Professional
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov edi, edi
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7dc0
mov edx, dword [str._Home]
mov dword [esi], edx
mov eax, dword [0x524848]
mov dword [esi + 4], eax
mov ecx, dword [0x52484c]
pop edi
mov dword [esi + 8], ecx
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
call fcn.004bbca0
test eax, eax
je 0x4a7f2b
mov eax, str.Windows_Server_2008
mov edx, esi
sub edx, eax
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a7e10
push 0x9c
lea edx, [ebp - 0xa0]
push 0
push edx
call fcn.004e8ba0
add esp, 0xc
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa0], 0x9c
call edi
lea eax, [ebp - 0x8c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7e51
sub eax, edx
je 0x4a7e79
movzx ecx, word [ebp - 0xa]
movzx edx, word [ebp - 0xc]
push ecx
push edx
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov al, byte [ebp - 6]
cmp al, 3
je 0x4a7e88
cmp al, 2
jne case.0x4a78fe.29
mov al, byte [ebp - 8]
add esi, 0xfffffffe
test al, al
jns 0x4a7ec1
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7e96
mov edi, esi
mov ecx, 0xa
mov esi, str._Datacenter_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
test al, 2
je 0x4a7f00
lea esp, [esp]
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7ed0
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7f00
mov edi, esi
mov ecx, 9
mov esi, str._Standard_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
call fcn.004bbd10
test eax, eax
je 0x4a805b
mov eax, str.Windows_Server_2008_R2
mov edx, esi
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a7f41
push 0x9c
lea eax, [ebp - 0xa0]
push 0
push eax
call fcn.004e8ba0
add esp, 0xc
lea ecx, [ebp - 0xa0]
push ecx
mov dword [ebp - 0xa0], 0x9c
call edi
lea eax, [ebp - 0x8c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7f82
sub eax, edx
je 0x4a7faa
movzx edx, word [ebp - 0xa]
movzx eax, word [ebp - 0xc]
push edx
push eax
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov al, byte [ebp - 6]
cmp al, 3
je 0x4a7fb9
cmp al, 2
jne case.0x4a78fe.29
mov al, byte [ebp - 8]
add esi, 0xfffffffe
test al, al
jns 0x4a7ffb
jmp 0x4a7fd0
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7fd0
mov edi, esi
mov ecx, 0xa
mov esi, str._Datacenter_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
test al, 2
je 0x4a8030
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8003
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8030
mov edi, esi
mov ecx, 9
mov esi, str._Standard_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
call fcn.004bbed0
test eax, eax
je 0x4a818b
mov eax, str.Windows_Server_2012_R2
mov edx, esi
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8071
push 0x9c
lea ecx, [ebp - 0xa0]
push 0
push ecx
call fcn.004e8ba0
add esp, 0xc
lea edx, [ebp - 0xa0]
push edx
mov dword [ebp - 0xa0], 0x9c
call edi
lea eax, [ebp - 0x8c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a80b2
sub eax, edx
je 0x4a80da
movzx eax, word [ebp - 0xa]
movzx ecx, word [ebp - 0xc]
push eax
push ecx
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov al, byte [ebp - 6]
cmp al, 3
je 0x4a80e9
cmp al, 2
jne case.0x4a78fe.29
mov al, byte [ebp - 8]
add esi, 0xfffffffe
test al, al
jns 0x4a812b
jmp 0x4a8100
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8100
mov edi, esi
mov ecx, 0xa
mov esi, str._Datacenter_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
test al, 2
je 0x4a8160
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8133
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8160
mov edi, esi
mov ecx, 9
mov esi, str._Standard_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
call fcn.004bbe60
test eax, eax
je 0x4a82bb
mov eax, str.Windows_Server_2012
mov edx, esi
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a81a1
push 0x9c
lea edx, [ebp - 0xa0]
push 0
push edx
call fcn.004e8ba0
add esp, 0xc
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa0], 0x9c
call edi
lea eax, [ebp - 0x8c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a81e2
sub eax, edx
je 0x4a820a
movzx ecx, word [ebp - 0xa]
movzx edx, word [ebp - 0xc]
push ecx
push edx
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov al, byte [ebp - 6]
cmp al, 3
je 0x4a821d
cmp al, 2
jne case.0x4a78fe.29
mov al, byte [ebp - 8]
add esi, 0xfffffffe
test al, al
jns 0x4a825b
jmp 0x4a8230
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8230
mov edi, esi
mov ecx, 0xa
mov esi, str._Datacenter_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
test al, 2
je 0x4a8290
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8263
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8290
mov edi, esi
mov ecx, 9
mov esi, str._Standard_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
call fcn.004bbfb0
test eax, eax
je 0x4a848b
mov eax, str.Windows_Server_2016
mov edx, esi
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a82d1
push 0x9c
lea eax, [ebp - 0x13c]
push 0
push eax
call fcn.004e8ba0
add esp, 0xc
lea ecx, [ebp - 0x13c]
push ecx
mov dword [ebp - 0x13c], 0x9c
call edi
lea eax, [ebp - 0x128]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a8312
sub eax, edx
je 0x4a8340
movzx edx, word [ebp - 0xa6]
movzx eax, word [ebp - 0xa8]
push edx
push eax
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x254], eax
test eax, eax
je case.0x4a78fe.29
push str.GetProductInfo
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
xor edi, edi
test ebx, ebx
je 0x4a83cc
push 0x9c
lea edx, [ebp - 0xa0]
push edi
push edx
call fcn.004e8ba0
add esp, 0xc
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, eax
test edi, edi
je 0x4a83cc
movzx edx, word [ebp - 0xa]
movzx eax, word [ebp - 0xc]
lea ecx, [ebp - 0x258]
push ecx
mov ecx, dword [ebp - 0x98]
push edx
mov edx, dword [ebp - 0x9c]
push eax
push ecx
push edx
call ebx
mov edi, eax
mov eax, dword [ebp - 0x254]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je case.0x4a78fe.29
mov eax, dword [ebp - 0x258]
add eax, 0xfffffffc
cmp eax, 0x17
ja case.0x4a83fa.5
movzx ecx, byte [eax + 0x4a8dd4]
jmp dword [ecx*4 + 0x4a8dc8]
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8404
mov edi, esi
mov ecx, 0xa
mov esi, str._Datacenter_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8432
mov edi, esi
mov ecx, 0xa
mov esi, str._Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
add esi, 0xfffffffe
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a8460
mov edi, esi
mov ecx, 9
mov esi, str._Standard_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x248], 0
jne 0x4a8a00
mov eax, str.Windows_Vista
mov edx, esi
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a84a1
push 0x9c
lea edx, [ebp - 0xa0]
push 0
push edx
call fcn.004e8ba0
add esp, 0xc
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa0], 0x9c
call edi
lea eax, [ebp - 0x8c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a84e2
sub eax, edx
je 0x4a850a
movzx ecx, word [ebp - 0xa]
movzx edx, word [ebp - 0xc]
push ecx
push edx
push str.__SP_d._d_
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push str.kernel32.dll
xor edi, edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je case.0x4a78fe.29
push str.GetProductInfo
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x258], eax
test eax, eax
je 0x4a859e
push 0x9c
lea eax, [ebp - 0x13c]
push edi
push eax
call fcn.004e8ba0
add esp, 0xc
lea ecx, [ebp - 0x13c]
push ecx
mov dword [ebp - 0x13c], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, eax
test edi, edi
je 0x4a859e
movzx eax, word [ebp - 0xa6]
movzx ecx, word [ebp - 0xa8]
lea edx, [ebp - 0x254]
push edx
mov edx, dword [ebp - 0x134]
push eax
mov eax, dword [ebp - 0x138]
push ecx
push edx
push eax
call dword [ebp - 0x258]
mov edi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je case.default.0x4a85bc
mov eax, dword [ebp - 0x254]
cmp eax, 0x1c
ja case.default.0x4a85bc
jmp dword [eax*4 + 0x4a8dec]
mov eax, str.Windows_Vista_Business_Edition
mov edx, esi
sub edx, eax
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a85d0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Business_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a85f0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Cluster_Server_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8610
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Server_Datacenter_Edition__full_installation_
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8630
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Server_Datacenter_Edition__core_installation_
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8650
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Enterprise_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8670
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Enterprise_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8690
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Server_Enterprise_Edition__full_installation_
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a86b0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Server_Enterprise_Edition__core_installation_
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a86d0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Server_Enterprise_Edition_for_Itanium_based_Systems
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a86f0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Home_Basic_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8710
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Home_Basic_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8730
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Home_Premium_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8750
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Home_Premium_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8770
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Home_Server_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4a8790
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Server_for_Small_Business_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a87b0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Small_Business_Server
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a87d0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Small_Business_Server_Premium_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a87f0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Server_Standard_Edition__full_installation_
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8810
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Server_Standard_Edition__core_installation_
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8830
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Starter_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8850
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Storage_Server_Enterprise_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8870
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Storage_Server_Express_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8890
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Storage_Server_Standard_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a88b0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Storage_Server_Workgroup_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a88d0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_An_unknown_product
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a88f0
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Ultimate_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8910
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Ultimate_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8930
jmp case.default.0x4a85bc
mov eax, str.Windows_Vista_Web_Server_Edition
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4a8950
mov al, byte [ebp - 6]
cmp al, 3
je 0x4a8972
cmp al, 2
jne case.0x4a78fe.29
mov al, byte [ebp - 8]
test al, al
jns 0x4a89a4
mov eax, str.Windows_Vista_Datacenter_Server
sub esi, eax
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a8984
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
test al, 2
je 0x4a89d3
mov eax, str.Windows_Server_2008_Enterprise
sub esi, eax
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a89b3
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows_Server_2008
sub esi, eax
lea ebx, [ebx]
movzx ecx, word [eax]
mov word [eax + esi], cx
add eax, 2
test cx, cx
jne 0x4a89e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e4746
mov esp, ebp
pop ebp
ret
mov eax, str.Windows
sub esi, eax
jmp 0x4a8a10
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4a8a10
lea eax, [ebp - 0x23c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a8a28
sub eax, edx
je case.0x4a78fe.29
lea ecx, [ebp - 0x23c]
push ecx
push 0x5252a8
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e4746
mov esp, ebp
pop ebp
ret