Function at 0x4570f0
Capabilities:
Check os version
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x260
mov eax, dword [0x639ac0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x224], eax
mov eax, dword [ebp + 0x10]
push 0x118
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.004ff750
mov edi, dword [ebp - 0x224]
add esp, 0xc
mov dword [ebp - 0x220], 0x11c
mov dword [ebp - 0x238], 0
mov eax, dword [edi + 0x10]
sub eax, 1
je 0x4584ed
sub eax, 1
je 0x457185
movups xmm0, xmmword [str.Unknown_or_new_O_S]
mov ecx, edi
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x5805d8]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [0x5805e8]
movq qword [ebx + 0x20], xmm0
jmp 0x457762
push 0x118
xorps xmm0, xmm0
mov dword [ebp - 0x240], 0
lea eax, [ebp - 0x21c]
push 0
push eax
movups xmmword [ebp - 0x260], xmm0
movups xmmword [ebp - 0x250], xmm0
call fcn.004ff750
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
push str.GetNativeSystemInfo
push str.kernel32.dll
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4571e9
lea ecx, [ebp - 0x260]
push ecx
call eax
call fcn.00455b90
test al, al
je 0x457220
mov ecx, edi
lea eax, [ecx + 0x14]
push eax
push dword [ecx + 0xc]
push dword [ecx + 8]
push dword [ecx + 4]
push dword [ecx + 0x10]
push str.OS1:__u__u._u._u__s
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x20
call fcn.00455b90
test al, al
je 0x45727c
movzx eax, byte [ebp - 0x105]
push eax
movzx eax, word [ebp - 0x10c]
push eax
movzx eax, byte [ebp - 0x106]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x214]
push dword [ebp - 0x218]
push dword [ebp - 0x21c]
push dword [ebp - 0x210]
push str.OS2:__u__u._u._u__s__u__u__u
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x2c
mov eax, dword [edi + 4]
cmp eax, 3
ja 0x4572aa
movups xmm0, xmmword [str.Windows_NT3]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57e9ec]
movq qword [ebx + 0x10], xmm0
mov ax, word [0x57e9f4]
mov word [ebx + 0x18], ax
jmp 0x45770d
cmp eax, 4
jne 0x4572d5
movups xmm0, xmmword [str.Windows_NT4]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57ea08]
movq qword [ebx + 0x10], xmm0
mov ax, word [0x57ea10]
mov word [ebx + 0x18], ax
jmp 0x45770d
cmp eax, 5
jne 0x4573fb
mov eax, dword [edi + 8]
test eax, eax
jne 0x457309
movups xmm0, xmmword [str.Windows_2000]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57ea24]
movq qword [ebx + 0x10], xmm0
mov eax, dword [0x57ea2c]
mov dword [ebx + 0x18], eax
jmp 0x45770d
cmp eax, 1
je 0x4573df
cmp eax, 2
jne 0x4573df
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x457354
movups xmm0, xmmword [str.Windows_Server_2003__R2_]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57ea58]
movups xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [0x57ea68]
movups xmmword [ebx + 0x20], xmm0
mov eax, dword [0x57ea78]
mov dword [ebx + 0x30], eax
jmp 0x45770d
cmp byte [ebp - 0x106], 1
jne 0x4573ae
cmp word [ebp - 0x260], 9
jne 0x4573ae
movups xmm0, xmmword [str.Windows_XP_Professional_x64_Edition]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57ea90]
movups xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [0x57eaa0]
movups xmmword [ebx + 0x20], xmm0
movups xmm0, xmmword [0x57eab0]
movups xmmword [ebx + 0x30], xmm0
movq xmm0, qword [0x57eac0]
movq qword [ebx + 0x40], xmm0
mov ax, word [0x57eac8]
mov word [ebx + 0x48], ax
jmp 0x45770d
movups xmm0, xmmword [str.Windows_Server_2003]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57eadc]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [0x57eaec]
movq qword [ebx + 0x20], xmm0
mov ax, word [0x57eaf4]
mov word [ebx + 0x28], ax
jmp 0x45770d
movups xmm0, xmmword [str.Windows_XP]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57ea40]
movq qword [ebx + 0x10], xmm0
jmp 0x45770d
cmp eax, 6
jne 0x4575c7
mov eax, dword [edi + 8]
test eax, eax
jne 0x457473
cmp byte [ebp - 0x106], 1
je 0x457445
movups xmm0, xmmword [str.Windows_Server_2008]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57eb08]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [0x57eb18]
movq qword [ebx + 0x20], xmm0
mov ax, word [0x57eb20]
mov word [ebx + 0x28], ax
jmp 0x45770d
movups xmm0, xmmword [str.Windows_Vista]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57eb34]
movq qword [ebx + 0x10], xmm0
mov eax, dword [0x57eb3c]
mov dword [ebx + 0x18], eax
mov ax, word [0x57eb40]
mov word [ebx + 0x1c], ax
jmp 0x45770d
cmp eax, 1
jne 0x4574c6
cmp byte [ebp - 0x106], al
je 0x4574a5
movups xmm0, xmmword [str.Windows_Server_2008_R2]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57eb54]
movups xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [0x57eb64]
movups xmmword [ebx + 0x20], xmm0
jmp 0x45770d
movups xmm0, xmmword [str.Windows_7]
movups xmmword [ebx], xmm0
mov eax, dword [0x57eb84]
mov dword [ebx + 0x10], eax
mov ax, word [0x57eb88]
mov word [ebx + 0x14], ax
jmp 0x45770d
cmp eax, 2
jne 0x457526
cmp byte [ebp - 0x106], 1
je 0x457505
movups xmm0, xmmword [str.Windows_Server_2012]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57eb9c]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [0x57ebac]
movq qword [ebx + 0x20], xmm0
mov ax, word [0x57ebb4]
mov word [ebx + 0x28], ax
jmp 0x45770d
movups xmm0, xmmword [str.Windows_8]
movups xmmword [ebx], xmm0
mov eax, dword [0x57ebc8]
mov dword [ebx + 0x10], eax
mov ax, word [0x57ebcc]
mov word [ebx + 0x14], ax
jmp 0x45770d
cmp eax, 3
jne 0x45757f
cmp byte [ebp - 0x106], 1
je 0x457559
movups xmm0, xmmword [str.Windows_Server_2012_R2]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57ebe0]
movups xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [0x57ebf0]
movups xmmword [ebx + 0x20], xmm0
jmp 0x45770d
movups xmm0, xmmword [str.Windows_8.1]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57ec10]
movq qword [ebx + 0x10], xmm0
mov ax, word [0x57ec18]
mov word [ebx + 0x18], ax
jmp 0x45770d
cmp eax, 4
jne 0x4576f9
cmp byte [ebp - 0x106], 1
je 0x4575ab
movups xmm0, xmmword [str.Windows_Server]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57ec2c]
movups xmmword [ebx + 0x10], xmm0
jmp 0x45770d
movups xmm0, xmmword [str.Windows_10]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57ec4c]
movq qword [ebx + 0x10], xmm0
jmp 0x45770d
cmp eax, 0xa
jne 0x45770d
cmp dword [edi + 8], 0
jne 0x4576f9
push str.Windows_name:_dwMajorVersion__10__dwMinorVersion__0
call fcn.00455a00
add esp, 4
cmp byte [ebp - 0x106], 1
je 0x4576a1
mov eax, dword [ebp - 0x224]
mov edi, dword [ebp - 0x224]
mov eax, dword [eax + 0xc]
cmp eax, 0x4f7c
jb 0x45763b
movups xmm0, xmmword [str.Windows_Server_2022]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57ece8]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [0x57ecf8]
movq qword [ebx + 0x20], xmm0
mov ax, word [0x57ed00]
mov word [ebx + 0x28], ax
jmp 0x45770d
cmp eax, 0x4563
jb 0x457673
movups xmm0, xmmword [str.Windows_Server_2019]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57ed14]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [0x57ed24]
movq qword [ebx + 0x20], xmm0
mov ax, word [0x57ed2c]
mov word [ebx + 0x28], ax
jmp 0x45770d
movups xmm0, xmmword [str.Windows_Server_2016]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [0x57ed40]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [0x57ed50]
movq qword [ebx + 0x20], xmm0
mov ax, word [0x57ed58]
mov word [ebx + 0x28], ax
jmp 0x45770d
cmp dword [ebp - 0x214], 0x55f0
jb 0x4576d3
movups xmm0, xmmword [str.Windows_11]
push str.Windows_name:_dwBuildNumber___22000__Win11_
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57ed6c]
movq qword [ebx + 0x10], xmm0
call fcn.00455a00
add esp, 4
jmp 0x45770d
movups xmm0, xmmword [str.Windows_10]
push str.Windows_name:_dwBuildNumber___22000__Win10_
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57ec4c]
movq qword [ebx + 0x10], xmm0
call fcn.00455a00
add esp, 4
jmp 0x45770d
movups xmm0, xmmword [str.Windows]
movups xmmword [ebx], xmm0
mov ax, word [0x57ec64]
mov word [ebx + 0x10], ax
test esi, esi
je case.0x457b61.15
cmp dword [edi + 4], 6
jae 0x457ac0
cmp byte [ebp - 0x106], 1
jne 0x45789d
cmp word [ebp - 0x260], 9
je case.0x457b61.15
cmp dword [ebp - 0x21c], 4
lea edi, [ebx - 2]
jne 0x457850
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457742
mov ecx, 8
mov esi, str.Workstation_4.0
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, dword [ebp - 0x224]
cmp dword [ecx + 4], 6
jne 0x458793
cmp dword [ecx + 8], 3
jne 0x458793
cmp byte [ebp - 0x106], 1
jne 0x458793
push 0x80
lea eax, [ebp - 0x104]
push 0
push eax
call fcn.004ff750
push 0x80
lea eax, [ebp - 0x84]
mov dword [ebp - 0x228], 0
push 0
push eax
mov dword [ebp - 0x22c], 0x40
call fcn.004ff750
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x228]
add esp, 0x18
mov dword [ebp - 0x230], 0
push eax
push 0x20019
push 0
push 0x57e830
push reloc.OLEAUT32.dll_SysReAllocString
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x45859e
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x230]
push eax
push 0
push str.CurrentVersion
push dword [ebp - 0x228]
call edi
test eax, eax
jne 0x458592
cmp dword [ebp - 0x230], 1
jne 0x458592
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x84]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x106], ax
test ax, ax
jne 0x457833
jmp 0x45859e
test dword [ebp - 0x108], 0x200
je 0x457880
nop dword [eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457860
mov ecx, 7
mov esi, str.Home_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457880
mov ecx, 7
mov esi, str.Professional
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
mov al, byte [ebp - 0x106]
cmp al, 3
je 0x4578af
cmp al, 2
jne case.0x457b61.15
cmp dword [ebp - 0x21c], 5
jne 0x457a50
mov eax, dword [ebp - 0x218]
cmp eax, 2
jne 0x4579cd
cmp word [ebp - 0x260], 9
lea edi, [ebx - 2]
mov eax, dword [ebp - 0x108]
jne 0x45793d
test al, al
jns 0x4578ff
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4578e2
mov ecx, 0xc
mov esi, str.Datacenter_x64_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
test al, 2
je 0x457920
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457903
mov ecx, 0xc
mov esi, str.Enterprise_x64_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457920
mov ecx, 0xb
mov esi, str.Standard_x64_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
test al, al
jns 0x45795e
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457941
mov ecx, 0xa
mov esi, str.Datacenter_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
test al, 2
je 0x45797f
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457962
mov ecx, 0xa
mov esi, str.Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
mov ecx, 0x400
cmp ax, cx
jne 0x4579b0
nop dword [eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457990
mov ecx, 6
mov esi, str.Web_Edition
jmp 0x457758
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4579b0
mov ecx, 9
mov esi, str.Standard_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
test eax, eax
jne 0x457a50
mov eax, dword [ebp - 0x108]
test al, al
jns 0x4579fb
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4579e0
mov ecx, 9
mov esi, str.Datacenter_Server
jmp 0x457758
test al, 2
je 0x457a1d
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457a02
mov ecx, 8
mov esi, str.Advanced_Server
jmp 0x457758
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x457a20
mov eax, dword [str.Server]
mov dword [ecx], eax
mov eax, dword [0x57eff8]
mov dword [ecx + 4], eax
mov eax, dword [0x57effc]
mov dword [ecx + 8], eax
mov eax, dword [0x57f000]
mov dword [ecx + 0xc], eax
jmp case.0x457b61.15
test byte [ebp - 0x108], 2
je 0x457a7d
lea edi, [ebx - 2]
nop dword [eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457a60
mov ecx, 0x10
mov esi, str.Server_4.0__Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x457a80
mov eax, dword [str.Server_4.0]
mov dword [ecx], eax
mov eax, dword [0x57f04c]
mov dword [ecx + 4], eax
mov eax, dword [0x57f050]
mov dword [ecx + 8], eax
mov eax, dword [0x57f054]
mov dword [ecx + 0xc], eax
mov eax, dword [0x57f058]
mov dword [ecx + 0x10], eax
mov eax, dword [0x57f05c]
mov dword [ecx + 0x14], eax
jmp case.0x457b61.15
push str.Kernel32.dll
xor edi, edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je case.0x457b61.15
push str.GetProductInfo
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x457b0e
lea ecx, [ebp - 0x238]
push ecx
movzx ecx, word [ebp - 0x10a]
push ecx
movzx ecx, word [ebp - 0x10c]
push ecx
push dword [ebp - 0x218]
push dword [ebp - 0x21c]
call eax
mov edi, eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je case.0x457b61.15
call fcn.00455b90
test al, al
je 0x457b48
push dword [ebp - 0x238]
push str.OS3:_dwReturnedProductType__d
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x10
mov eax, dword [ebp - 0x238]
dec eax
cmp eax, 0xa4
ja case.0x457b61.15
movzx eax, byte [eax + 0x458958]
jmp dword [eax*4 + 0x458830]
lea edi, [ebx - 2]
nop dword [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457b70
mov ecx, 9
mov esi, str.Business_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457b90
mov ecx, 0xa
mov esi, str.Business_N_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457bb0
mov ecx, 0xc
mov esi, str.Cluster_Server_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457bd0
mov ecx, 0x12
mov esi, str.Server_Hyper_Core_V_Edition_Edition
jmp 0x457758
lea ecx, [ebx - 2]
nop
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x457bf0
mov eax, dword [str.Home]
mov dword [ecx], eax
mov eax, dword [0x57f198]
mov dword [ecx + 4], eax
mov eax, dword [0x57f19c]
mov dword [ecx + 8], eax
jmp case.0x457b61.15
lea ecx, [ebx - 2]
nop dword [eax + eax]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x457c20
mov eax, dword [str.Home_N]
mov dword [ecx], eax
mov eax, dword [0x57f1a4]
mov dword [ecx + 4], eax
mov eax, dword [0x57f1a8]
mov dword [ecx + 8], eax
mov eax, dword [0x57f1ac]
mov dword [ecx + 0xc], eax
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457c53
mov ecx, 0x1b
mov esi, str.Server_Datacenter_Edition__full_installation__Edition
jmp 0x457758
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457c71
mov ecx, 0x1b
mov esi, str.Server_Datacenter_Edition__core_installation__Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457c90
mov ecx, 0x1f
mov esi, str.Server_Datacenter_without_Hyper_V__core_installation__Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457cb0
mov ecx, 0x1f
mov esi, str.Server_Datacenter_without_Hyper_V__full_installation__Edition
jmp 0x457758
lea ecx, [ebx - 2]
nop
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x457cd0
mov eax, dword [str.Education]
mov dword [ecx], eax
mov eax, dword [0x57f394]
mov dword [ecx + 4], eax
mov eax, dword [0x57f398]
mov dword [ecx + 8], eax
mov eax, dword [0x57f39c]
mov dword [ecx + 0xc], eax
mov eax, dword [0x57f3a0]
mov dword [ecx + 0x10], eax
mov ax, word [0x57f3a4]
mov word [ecx + 0x14], ax
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457d15
mov ecx, 6
mov esi, str.Education_N
jmp 0x457758
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457d33
mov ecx, 0xa
mov esi, str.Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457d53
mov ecx, 7
mov esi, str.Enterprise_E
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457d73
mov ecx, 0xb
mov esi, str.Enterprise_LTSB_LTSC
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457d93
mov ecx, 0xc
mov esi, str.Enterprise_LTSB_LTSC_N
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457db3
mov ecx, 0x1b
mov esi, str.Server_Enterprise_Edition__full_installation__Edition
jmp 0x457758
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457dd1
mov ecx, 0xb
mov esi, str.Enterprise_N_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457df1
mov ecx, 0x1b
mov esi, str.Server_Enterprise_Edition__core_installation__Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457e10
mov ecx, 0x1f
mov esi, str.Server_Enterprise_without_Hyper_V__core_installation__Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457e30
mov ecx, 0x1f
mov esi, str.Server_Enterprise_without_Hyper_V__full_installation__Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457e50
mov ecx, 0x1b
mov esi, str.Windows_Essential_Server_Solution_Management_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457e70
mov ecx, 0x1b
mov esi, str.Windows_Essential_Server_Solution_Additional_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457e90
mov ecx, 0x1d
mov esi, str.Windows_Essential_Server_Solution_Management_SVC_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457eb0
mov ecx, 0x1d
mov esi, str.Windows_Essential_Server_Solution_Additional_SVC_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457ed0
mov ecx, 0xa
mov esi, str.Home_Basic_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457ef0
mov ecx, 0xb
mov esi, str.Home_Basic_N_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457f10
mov ecx, 0xb
mov esi, str.Home_Premium_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457f30
mov ecx, 0xc
mov esi, str.Home_Premium_N_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457f50
mov ecx, 0x11
mov esi, str.Windows_Home_Server_2011_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457f70
mov ecx, 0xe
mov esi, str.Home_Server_Edition_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457f90
mov ecx, 0x11
mov esi, str.Microsoft_Hyper_V_Server_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x457fb0
mov eax, dword [str.IoT_Core]
mov dword [ecx], eax
mov eax, dword [0x57f998]
mov dword [ecx + 4], eax
mov eax, dword [0x57f99c]
mov dword [ecx + 8], eax
mov eax, dword [0x57f9a0]
mov dword [ecx + 0xc], eax
mov eax, dword [0x57f9a4]
mov dword [ecx + 0x10], eax
jmp case.0x457b61.15
lea edi, [ebx - 2]
nop dword [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x457ff0
mov ecx, 0x1e
mov esi, str.Windows_Essential_Business_Server_Management_Server_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458010
mov ecx, 0x1e
mov esi, str.Windows_Essential_Business_Server_Messaging_Server_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458030
mov ecx, 0x1d
mov esi, str.Windows_Essential_Business_Server_Security_Server_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458050
mov ecx, 7
mov esi, str.Pro_Education
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458070
mov ecx, 8
mov esi, str.Pro_Education_N
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458090
mov ecx, 0xb
mov esi, str.Pro_for_Workstations
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4580b0
mov ecx, 0xc
mov esi, str.Pro_for_Workstations_N
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4580d0
mov ecx, 0xb
mov esi, str.Professional_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4580f0
mov ecx, 0xc
mov esi, str.Professional_N_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458110
mov ecx, 0x10
mov esi, str.Professional_with_Media_Center
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458130
mov ecx, 0x10
mov esi, str.Server_For_SB_Solutions_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458150
mov ecx, 0x12
mov esi, str.Server_For_SB_Solutions_EM_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458170
mov ecx, 0x11
mov esi, str.Server_for_Small_Business_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458190
mov ecx, 0x2a
mov esi, str.Windows_Server_2008_without_Hyper_V_for_Windows_Essential_Server_Solutions_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4581b0
mov ecx, 0xd
mov esi, str.Server_Foundation_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4581d0
mov ecx, 0x1b
mov esi, str.Windows_Small_Business_Server_2011_Essentials_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4581f0
mov ecx, 0xb
mov esi, str.Small_Business_Server
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458210
mov ecx, 0x13
mov esi, str.Small_Business_Server_Premium_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458230
mov ecx, 0x1d
mov esi, str.Small_Business_Server_Premium__core_installation__Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458250
mov ecx, 0x11
mov esi, str.Windows_MultiPoint_Server_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458270
mov ecx, 0x16
mov esi, str.Server_Standard_Edition__full_installation_
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458290
mov ecx, 0x16
mov esi, str.Server_Standard_Edition__core_installation_
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4582b0
mov ecx, 0x14
mov esi, str.Server_Standard_without_Hyper_V_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4582d0
mov ecx, 0x1e
mov esi, str.Server_Standard_without_Hyper_V_Edition__core_installation_
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4582f0
mov ecx, 0x11
mov esi, str.Server_Solutions_Premium_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458310
mov ecx, 0x17
mov esi, str.Server_Solutions_Premium__core_installation_
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458330
mov ecx, 8
mov esi, str.Starter_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458350
mov ecx, 9
mov esi, str.Starter_N_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458370
mov ecx, 0x11
mov esi, str.Storage_Server_Enterprise_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458390
mov ecx, 0x1b
mov esi, str.Storage_Server_Enterprise_Edition__core_installation_
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4583b0
mov ecx, 0x10
mov esi, str.Storage_Server_Express_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4583d0
mov ecx, 0x1a
mov esi, str.Storage_Server_Express_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4583f0
mov ecx, 0x10
mov esi, str.Storage_Server_Standard_Edition
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458410
mov ecx, 0x1a
mov esi, str.Storage_Server_Standard_Edition__core_installation_
jmp 0x457758
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458430
mov ecx, 0x11
mov esi, str.Storage_Server_Workgroup_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458450
mov ecx, 0x1b
mov esi, str.Storage_Server_Workgroup_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458470
mov ecx, 9
mov esi, str.Ultimate_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458490
mov ecx, 0xa
mov esi, str.Ultimate_N_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4584b0
mov ecx, 0xa
mov esi, str.Web_Server_Edition
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4584d0
mov ecx, 0x10
mov esi, str.Web_Server__core_installation_
rep movsd dword es:[edi], dword [esi]
jmp case.0x457b61.15
mov eax, edi
mov ecx, edi
mov eax, dword [eax + 8]
test eax, eax
jne 0x458518
movups xmm0, xmmword [str.Windows_95]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57e8f0]
movq qword [ebx + 0x10], xmm0
jmp 0x457762
cmp eax, 0x59
ja 0x458576
cmp word [ecx + 0x14], 0x41
jne 0x45855a
movups xmm0, xmmword [str.Windows_98_SE]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57e908]
movq qword [ebx + 0x10], xmm0
mov eax, dword [0x57e910]
mov dword [ebx + 0x18], eax
mov ax, word [0x57e914]
mov word [ebx + 0x1c], ax
jmp 0x457762
movups xmm0, xmmword [str.Windows_98]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57e928]
movq qword [ebx + 0x10], xmm0
jmp 0x457762
movups xmm0, xmmword [str.Windows_ME]
movups xmmword [ebx], xmm0
movq xmm0, qword [0x57e940]
movq qword [ebx + 0x10], xmm0
jmp 0x457762
push dword [ebp - 0x228]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x104]
push 0x5805f0
push eax
call fcn.004fe706
add esp, 8
test eax, eax
je 0x458793
movups xmm0, xmmword [str.Windows_10_]
xor eax, eax
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x22c], eax
movups xmmword [ebx], xmm0
push 0x80
movq xmm0, qword [0x580608]
movq qword [ebx + 0x10], xmm0
mov ax, word [0x580610]
mov word [ebx + 0x18], ax
lea eax, [ebp - 0x84]
push 0
push eax
mov dword [ebp - 0x230], 0x40
call fcn.004ff750
add esp, 0xc
mov dword [ebp - 0x234], 0
xor eax, eax
mov word [ebp - 0x104], ax
lea eax, [ebp - 0x228]
push eax
push 0x20019
push 0
push 0x57e830
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x458740
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x234]
push eax
push 0
push 0x57e8ac
push dword [ebp - 0x228]
call edi
test eax, eax
jne 0x4586dc
cmp dword [ebp - 0x234], 1
jne 0x4586dc
lea edx, [ebp - 0x84]
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x458683
lea edi, [ebp - 0x104]
sub edx, esi
add edi, 0xfffffffe
nop dword [eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4586a0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x104]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4586c3
mov eax, dword [0x575640]
mov dword [edi], eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x230]
mov dword [ebp - 0x230], 0x40
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x234]
push eax
push 0
push str.CurrentBuild
push dword [ebp - 0x228]
call edi
test eax, eax
jne 0x458734
cmp dword [ebp - 0x234], 1
jne 0x458734
lea eax, [ebp - 0x84]
push eax
call fcn.0052c91d
add esp, 4
mov dword [ebp - 0x22c], eax
push dword [ebp - 0x228]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x104]
mov esi, edx
nop dword [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x458750
sub edx, esi
add ebx, 0xfffffffe
mov ax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x458760
mov eax, dword [ebp - 0x22c]
mov ecx, edx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test eax, eax
je 0x458793
mov ecx, dword [ebp - 0x224]
mov dword [ecx + 0xc], eax
mov ebx, dword [ebp - 0x23c]
xor eax, eax
push str.KERNEL32.DLL
mov word [ebx], ax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x45881d
push 0x575c64
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x458816
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x22c], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call edi
cmp dword [ebp - 0x22c], 0
je 0x458804
movups xmm0, xmmword [str._64_bit_]
movups xmmword [ebx], xmm0
mov eax, dword [0x580624]
jmp 0x458813
movups xmm0, xmmword [str._32_bit_]
movups xmmword [ebx], xmm0
mov eax, dword [0x580638]
mov dword [ebx + 0x10], eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f66cd
mov esp, ebp
pop ebp
ret