Function at 0x46f4d0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50c7cb
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xa28
mov eax, dword [0x573080]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xa2c], 0x537130
mov dword [ebp - 0xa28], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0xa28]
push eax
push 0x20119
push 0
push str.SYSTEMCurrentControlSetControlProductOptions
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
js 0x46f802
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0xa30]
push eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0xa30], 0x208
push eax
push 0
push 0
push str.ProductType
push dword [ebp - 0xa28]
call esi
test eax, eax
jne 0x46f5d3
mov edx, str.WinNT
lea ecx, [ebp - 0x220]
call fcn.0047f2a0
test eax, eax
jne 0x46f5a8
mov eax, 1
mov word [0x579a40], ax
xor al, al
jmp 0x46f5ce
mov edx, str.ServerNT
lea ecx, [ebp - 0x220]
call fcn.0047f2a0
test eax, eax
mov eax, 3
je 0x46f5c6
mov eax, 2
mov word [0x579a40], ax
mov al, 1
mov byte [0x579a44], al
lea eax, [ebp - 0xa34]
mov dword [ebp - 0xa34], 0x800
push eax
lea eax, [ebp - 0xa20]
push eax
push 0
push 0
push str.ProductSuite
push dword [ebp - 0xa28]
call esi
test eax, eax
jne 0x46f802
lea ecx, [ebp - 0xa20]
xor edi, edi
mov eax, ecx
mov dword [ebp - 0xa24], ecx
cmp word [ebp - 0xa20], di
je 0x46f62a
nop dword [eax]
lea eax, [eax + 2]
inc edi
cmp word [eax], 0
jne 0x46f620
test edi, edi
je 0x46f802
mov si, word [0x579a42]
nop dword [eax]
mov edx, str.Small_Business
call fcn.0047f2a0
test eax, eax
jne 0x46f657
or si, 1
jmp 0x46f7c9
mov ecx, dword [ebp - 0xa24]
mov edx, str.Enterprise
call fcn.0047f2a0
test eax, eax
jne 0x46f674
or si, 2
jmp 0x46f7c9
mov ecx, dword [ebp - 0xa24]
mov edx, str.BackOffice
call fcn.0047f2a0
test eax, eax
jne 0x46f691
or si, 4
jmp 0x46f7c9
mov ecx, dword [ebp - 0xa24]
mov edx, str.CommunicationServer
call fcn.0047f2a0
test eax, eax
jne 0x46f6ae
or si, 8
jmp 0x46f7c9
mov ecx, dword [ebp - 0xa24]
mov edx, str.Terminal_Server
call fcn.0047f2a0
test eax, eax
jne 0x46f6cb
or si, 0x10
jmp 0x46f7c9
mov ecx, dword [ebp - 0xa24]
mov edx, str.Small_Business_Restricted_
call fcn.0047f2a0
test eax, eax
jne 0x46f6e8
or si, 0x20
jmp 0x46f7c9
mov ecx, dword [ebp - 0xa24]
mov edx, str.EmbeddedNT
call fcn.0047f2a0
test eax, eax
jne 0x46f705
or si, 0x40
jmp 0x46f7c9
mov ecx, dword [ebp - 0xa24]
mov edx, str.DataCenter
call fcn.0047f2a0
test eax, eax
jne 0x46f723
mov eax, 0x80
jmp 0x46f7c6
mov ecx, dword [ebp - 0xa24]
mov edx, str.Personal
call fcn.0047f2a0
test eax, eax
jne 0x46f741
mov eax, 0x200
jmp 0x46f7c6
mov ecx, dword [ebp - 0xa24]
mov edx, str.Blade
call fcn.0047f2a0
test eax, eax
jne 0x46f75c
mov eax, 0x400
jmp 0x46f7c6
mov ecx, dword [ebp - 0xa24]
mov edx, str.Embedded_Restricted_
call fcn.0047f2a0
test eax, eax
jne 0x46f777
mov eax, 0x800
jmp 0x46f7c6
mov ecx, dword [ebp - 0xa24]
mov edx, str.Security_Appliance
call fcn.0047f2a0
test eax, eax
jne 0x46f792
mov eax, 0x1000
jmp 0x46f7c6
mov ecx, dword [ebp - 0xa24]
mov edx, str.Storage_Server
call fcn.0047f2a0
test eax, eax
jne 0x46f7ad
mov eax, 0x2000
jmp 0x46f7c6
mov ecx, dword [ebp - 0xa24]
mov edx, str.Compute_Server
call fcn.0047f2a0
test eax, eax
jne 0x46f7d0
mov eax, 0x4000
or si, ax
mov word [0x579a42], si
mov ecx, dword [ebp - 0xa24]
lea ecx, [ecx + edi*2]
xor edi, edi
add ecx, 2
mov dword [ebp - 0xa24], ecx
mov eax, ecx
cmp word [ecx], di
je 0x46f7fa
nop dword [eax + eax]
lea eax, [eax + 2]
inc edi
cmp word [eax], 0
jne 0x46f7f0
test edi, edi
jne 0x46f640
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa28]
mov dword [ebp - 0xa2c], 0x537130
test eax, eax
je 0x46f82e
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0xa28], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d5b75
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret