Function at 0x10007740
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0xa0c]
sub esp, 0xa0c
push 0xffffffffffffffff
push 0x10037c6d
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x10059024]
xor eax, ebp
mov dword [ebp + 0xa08], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c], 0x100493e4
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
call dword [eax + 4]
lea eax, [ebp - 0x18]
push eax
push 0x20119
push 0
push str.SYSTEMCurrentControlSetControlProductOptions
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
js 0x10007c2e
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x800]
mov dword [ebp - 0x20], 0x208
push eax
push 0
push 0
push str.ProductType
push dword [ebp - 0x18]
call esi
test eax, eax
jne 0x1000786c
mov eax, 0xfffffffe
nop dword [eax]
lea eax, [eax + 2]
movzx ecx, word [eax + str.WinNT]
movzx edx, word [ebp + eax + 0x800]
cmp dx, cx
jb 0x10007822
ja 0x10007822
test dx, dx
je 0x10007813
test cx, cx
jne 0x100077f0
mov eax, 1
mov word [0x1005aa88], ax
xor al, al
jmp 0x10007867
mov eax, 0xfffffffe
nop word [eax + eax]
lea eax, [eax + 2]
movzx ecx, word [eax + str.ServerNT]
movzx edx, word [ebp + eax + 0x800]
cmp dx, cx
jb 0x1000785a
ja 0x1000785a
test dx, dx
je 0x10007853
test cx, cx
jne 0x10007830
mov eax, 3
jmp 0x1000785f
mov eax, 2
mov word [0x1005aa88], ax
mov al, 1
mov byte [0x1005aa8c], al
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0x800
push eax
lea eax, [ebp]
push eax
push 0
push 0
push str.ProductSuite
push dword [ebp - 0x18]
call esi
test eax, eax
jne 0x10007c2e
xor ecx, ecx
lea edi, [ebp]
mov eax, edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], ecx
cmp word [ebp], cx
je 0x100078b1
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x100078a4
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x10007c2e
mov bx, word [0x1005aa8a]
mov eax, str.Small_Business
sub eax, 2
mov dword [ebp - 0x28], eax
nop dword [eax + eax]
mov esi, edi
mov edx, eax
sub esi, str.Small_Business
nop word [eax + eax]
movzx eax, word [esi + edx + 2]
lea edx, [edx + 2]
movzx ecx, word [edx]
cmp ax, cx
jb 0x1000790c
ja 0x1000790c
test ax, ax
je 0x100078fc
test cx, cx
jne 0x100078e0
or bx, 1
mov word [0x1005aa8a], bx
jmp 0x10007bfe
mov edx, str.Enterprise
mov esi, edi
sub edx, 2
sub esi, str.Enterprise
nop dword [eax]
movzx eax, word [esi + edx + 2]
lea edx, [edx + 2]
movzx ecx, word [edx]
cmp ax, cx
jb 0x1000794c
ja 0x1000794c
test ax, ax
je 0x1000793c
test cx, cx
jne 0x10007920
or bx, 2
mov word [0x1005aa8a], bx
jmp 0x10007bfe
mov edx, str.BackOffice
mov esi, edi
sub edx, 2
sub esi, str.BackOffice
nop dword [eax]
movzx eax, word [esi + edx + 2]
lea edx, [edx + 2]
movzx ecx, word [edx]
cmp ax, cx
jb 0x1000798c
ja 0x1000798c
test ax, ax
je 0x1000797c
test cx, cx
jne 0x10007960
or bx, 4
mov word [0x1005aa8a], bx
jmp 0x10007bfe
mov edx, str.CommunicationServer
mov esi, edi
sub edx, 2
sub esi, str.CommunicationServer
nop dword [eax]
movzx eax, word [esi + edx + 2]
lea edx, [edx + 2]
movzx ecx, word [edx]
cmp ax, cx
jb 0x100079cc
ja 0x100079cc
test ax, ax
je 0x100079bc
test cx, cx
jne 0x100079a0
or bx, 8
mov word [0x1005aa8a], bx
jmp 0x10007bfe
mov edx, str.Terminal_Server
mov esi, edi
sub edx, 2
sub esi, str.Terminal_Server
nop dword [eax]
movzx eax, word [esi + edx + 2]
lea edx, [edx + 2]
movzx ecx, word [edx]
cmp ax, cx
jb 0x10007a0c
ja 0x10007a0c
test ax, ax
je 0x100079fc
test cx, cx
jne 0x100079e0
or bx, 0x10
mov word [0x1005aa8a], bx
jmp 0x10007bfe
mov edx, str.Small_Business_Restricted_
mov esi, edi
sub edx, 2
sub esi, str.Small_Business_Restricted_
nop dword [eax]
movzx eax, word [esi + edx + 2]
lea edx, [edx + 2]
movzx ecx, word [edx]
cmp ax, cx
jb 0x10007a4c
ja 0x10007a4c
test ax, ax
je 0x10007a3c
test cx, cx
jne 0x10007a20
or bx, 0x20
mov word [0x1005aa8a], bx
jmp 0x10007bfe
mov edx, str.EmbeddedNT
mov esi, edi
sub edx, 2
sub esi, str.EmbeddedNT
nop dword [eax]
movzx eax, word [esi + edx + 2]
lea edx, [edx + 2]
movzx ecx, word [edx]
cmp ax, cx
jb 0x10007a8c
ja 0x10007a8c
test ax, ax
je 0x10007a7c
test cx, cx
jne 0x10007a60
or bx, 0x40
mov word [0x1005aa8a], bx
jmp 0x10007bfe
mov edx, str.DataCenter
mov esi, edi
sub edx, 2
sub esi, str.DataCenter
nop dword [eax]
movzx eax, word [esi + edx + 2]
lea edx, [edx + 2]
movzx ecx, word [edx]
cmp ax, cx
jb 0x10007ad0
ja 0x10007ad0
test ax, ax
je 0x10007abc
test cx, cx
jne 0x10007aa0
mov eax, 0x80
or bx, ax
mov word [0x1005aa8a], bx
jmp 0x10007bfe
add edi, 0xfffffffe
mov esi, str.Personal
sub esi, dword [ebp - 0x10]
mov edx, edi
nop dword [eax]
movzx ecx, word [esi + edx + 2]
lea edx, [edx + 2]
movzx eax, word [edx]
cmp ax, cx
jb 0x10007b06
ja 0x10007b06
test ax, ax
je 0x10007afc
test cx, cx
jne 0x10007ae0
mov eax, 0x200
jmp 0x10007bf1
mov esi, str.Blade
mov edx, edi
sub esi, dword [ebp - 0x10]
movzx ecx, word [esi + edx + 2]
lea edx, [edx + 2]
movzx eax, word [edx]
cmp ax, cx
jb 0x10007b36
ja 0x10007b36
test ax, ax
je 0x10007b2c
test cx, cx
jne 0x10007b10
mov eax, 0x400
jmp 0x10007bf1
mov esi, str.Embedded_Restricted_
mov edx, edi
sub esi, dword [ebp - 0x10]
movzx ecx, word [esi + edx + 2]
lea edx, [edx + 2]
movzx eax, word [edx]
cmp ax, cx
jb 0x10007b66
ja 0x10007b66
test ax, ax
je 0x10007b5c
test cx, cx
jne 0x10007b40
mov eax, 0x800
jmp 0x10007bf1
mov esi, str.Security_Appliance
mov edx, edi
sub esi, dword [ebp - 0x10]
movzx ecx, word [esi + edx + 2]
lea edx, [edx + 2]
movzx eax, word [edx]
cmp ax, cx
jb 0x10007b93
ja 0x10007b93
test ax, ax
je 0x10007b8c
test cx, cx
jne 0x10007b70
mov eax, 0x1000
jmp 0x10007bf1
mov esi, str.Storage_Server
mov edx, edi
sub esi, dword [ebp - 0x10]
nop dword [eax]
movzx ecx, word [esi + edx + 2]
lea edx, [edx + 2]
movzx eax, word [edx]
cmp ax, cx
jb 0x10007bc3
ja 0x10007bc3
test ax, ax
je 0x10007bbc
test cx, cx
jne 0x10007ba0
mov eax, 0x2000
jmp 0x10007bf1
mov edx, str.Compute_Server
sub edx, dword [ebp - 0x10]
nop dword [eax + eax]
movzx ecx, word [edx + edi + 2]
lea edi, [edi + 2]
movzx eax, word [edi]
cmp ax, cx
jb 0x10007bfb
ja 0x10007bfb
test ax, ax
je 0x10007bec
test cx, cx
jne 0x10007bd0
mov eax, 0x4000
or bx, ax
mov word [0x1005aa8a], bx
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
lea edi, [edi + eax*2]
add edi, 2
mov dword [ebp - 0x10], edi
mov eax, edi
cmp word [edi], cx
je 0x10007c23
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x10007c16
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x28]
test ecx, ecx
jne 0x100078d0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], 0x100493e4
test eax, eax
je 0x10007c51
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xa08]
xor ecx, ebp
call fcn.10024a34
lea esp, [ebp + 0xa0c]
pop ebp
ret