Function at 0x10051350
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x180
mov eax, dword [0x10086ba0]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x74]
call fcn.100017d0
lea ecx, [ebp - 0x80]
push ecx
push 0x10078ec0
push reloc.RtlIhvOid.dll_Ordinal_2
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x100519ad
mov dword [ebp - 0x90], 0
jmp 0x100513ad
mov edx, dword [ebp - 0x90]
add edx, 1
mov dword [ebp - 0x90], edx
push 0x64
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x90]
push ecx
mov edx, dword [ebp - 0x80]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jne 0x100513d8
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
jmp 0x100513e3
cmp dword [ebp - 0x78], 0x103
jne 0x100513e3
jmp 0x100513e5
jmp 0x1005139e
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x15c], ecx
jmp 0x100513ff
mov edx, dword [ebp - 0x15c]
sub edx, 1
mov dword [ebp - 0x15c], edx
cmp dword [ebp - 0x15c], 0
jbe 0x100519a3
push 0x64
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x15c]
push ecx
mov edx, dword [ebp - 0x80]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jne 0x1005199e
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x70]
push ecx
mov edx, dword [ebp - 0x80]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x1005199e
push 0x64
push 0
lea eax, [ebp - 0x158]
push eax
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 0x64
mov dword [ebp - 0x88], 1
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x158]
push edx
lea eax, [ebp - 0x88]
push eax
push 0
push 0x10078f10
mov ecx, dword [ebp - 0x7c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x10051994
lea edx, [ebp - 0x158]
push edx
lea ecx, [ebp - 0x160]
call fcn.10001ba0
lea ecx, [ebp - 0x160]
call fcn.10001d00
lea ecx, [ebp - 0x74]
call fcn.10001d00
push 0
lea ecx, [ebp - 0x74]
call fcn.10001ae0
push eax
lea ecx, [ebp - 0x160]
call fcn.10001c30
cmp eax, 0xffffffff
je 0x10051989
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp + 0xc]
call fcn.100017b0
push 0xc8
push 0
lea ecx, [ebp - 0x158]
push ecx
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 0xc8
mov dword [ebp - 0x88], 1
lea edx, [ebp - 0x84]
push edx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x88]
push ecx
push 0
push 0x10078f24
mov edx, dword [ebp - 0x7c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0x158]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 4
call fcn.10001c10
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0x170], 0x10078f30
mov dword [ebp - 0x164], 0
lea edx, [ebp - 0x164]
push edx
mov eax, dword [ebp - 0x170]
push eax
mov ecx, dword [ebp - 0x16c]
push ecx
call fcn.10016c38
add esp, 0xc
mov dword [ebp - 0x168], eax
mov edx, dword [ebp - 0x168]
push edx
mov ecx, dword [ebp + 0xc]
add ecx, 8
call fcn.100017b0
lea eax, [ebp - 0x164]
push eax
mov ecx, dword [ebp - 0x170]
push ecx
push 0
call fcn.10016c38
add esp, 0xc
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0
je 0x10051633
push 0x10078f34
mov edx, dword [ebp + 0xc]
add edx, 8
push edx
lea eax, [ebp - 0x174]
push eax
call fcn.10001f80
add esp, 0xc
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 8
call fcn.10002750
lea ecx, [ebp - 0x174]
call fcn.10001850
mov ecx, dword [ebp - 0x168]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 8
push edx
lea eax, [ebp - 0x178]
push eax
call fcn.10001f80
add esp, 0xc
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 8
call fcn.10002750
lea ecx, [ebp - 0x178]
call fcn.10001850
lea ecx, [ebp - 0x164]
push ecx
mov edx, dword [ebp - 0x170]
push edx
push 0
call fcn.10016c38
add esp, 0xc
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0
je 0x100516c0
push 0x10078f38
mov eax, dword [ebp + 0xc]
add eax, 8
push eax
lea ecx, [ebp - 0x17c]
push ecx
call fcn.10001f80
add esp, 0xc
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 8
call fcn.10002750
lea ecx, [ebp - 0x17c]
call fcn.10001850
mov edx, dword [ebp - 0x168]
push edx
mov eax, dword [ebp + 0xc]
add eax, 8
push eax
lea ecx, [ebp - 0x180]
push ecx
call fcn.10001f80
add esp, 0xc
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 8
call fcn.10002750
lea ecx, [ebp - 0x180]
call fcn.10001850
push 0x64
push 0
lea edx, [ebp - 0x158]
push edx
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 0x64
mov dword [ebp - 0x88], 1
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x88]
push edx
push 0
push 0x10078f3c
mov eax, dword [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x158]
push ecx
mov ecx, dword [ebp + 0xc]
add ecx, 0xc
call fcn.10001c10
push 0x64
push 0
lea edx, [ebp - 0x158]
push edx
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 0x64
mov dword [ebp - 0x88], 1
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x88]
push edx
push 0
push str.MatchingDeviceId
mov eax, dword [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x158]
push ecx
mov ecx, dword [ebp + 0xc]
add ecx, 0x10
call fcn.10001c10
push 0x64
push 0
lea edx, [ebp - 0x158]
push edx
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 0x64
mov dword [ebp - 0x88], 1
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x88]
push edx
push 0
push str.InfPath
mov eax, dword [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x158]
push ecx
mov ecx, dword [ebp + 0xc]
add ecx, 0x1c
call fcn.10001c10
push 0x64
push 0
lea edx, [ebp - 0x158]
push edx
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 0x64
mov dword [ebp - 0x88], 1
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x88]
push edx
push 0
push 0x10078f68
mov eax, dword [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x158]
push ecx
mov ecx, dword [ebp + 0xc]
add ecx, 0x20
call fcn.10001c10
push 0x64
push 0
lea edx, [ebp - 0x158]
push edx
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 0x64
mov dword [ebp - 0x88], 1
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x88]
push edx
push 0
push str.ProviderName
mov eax, dword [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x158]
push ecx
mov ecx, dword [ebp + 0xc]
add ecx, 0x24
call fcn.10001c10
push 0x64
push 0
lea edx, [ebp - 0x158]
push edx
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 8
mov dword [ebp - 0x88], 3
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x88]
push edx
push 0
push str.DriverDateData
mov eax, dword [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push 8
lea ecx, [ebp - 0x158]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 0x14
push edx
call fcn.10013640
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x10078f94
mov ecx, dword [ebp - 0x7c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x10051989
push 0x64
push 0
lea edx, [ebp - 0x158]
push edx
call fcn.100139b0
add esp, 0xc
mov dword [ebp - 0x84], 0x64
mov dword [ebp - 0x88], 1
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x88]
push edx
push 0
push str.Service
mov eax, dword [ebp - 0x8c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x158]
push ecx
mov ecx, dword [ebp + 0xc]
add ecx, 0x28
call fcn.10001c10
mov edx, dword [ebp - 0x8c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x160]
call fcn.10001850
mov eax, dword [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x100513f0
mov ecx, dword [ebp - 0x80]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x74]
call fcn.10001850
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1001362b
mov esp, ebp
pop ebp
ret