Function at 0x1002b5b
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x1070
call fcn.01006490
mov eax, dword [0x10081b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
and dword [ebp - 0x1070], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, 0x22c
push esi
mov dword [ebp - 0x1060], eax
lea eax, [ebp - 0xa30]
push 0
push eax
mov dword [ebp - 0x1068], ebx
mov dword [ebp - 0x1064], edi
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0xa30]
push eax
push edi
push ebx
mov dword [ebp - 0xa30], esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstallParamsW]
test eax, eax
je 0x1002f59
or dword [ebp - 0xa28], 0x4000800
lea eax, [ebp - 0xa30]
push eax
push edi
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceInstallParamsW]
test eax, eax
je 0x1002c19
push 1
push edi
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
test eax, eax
je 0x1002f59
push dword [ebp - 0x1060]
push 0
push 1
push edi
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoW]
neg eax
sbb eax, eax
neg eax
jmp 0x1002f5b
and dword [ebp - 0xa28], 0xfbfff7ff
push 0x20019
push 2
push 0
push 1
push edi
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x1002c43
push eax
jmp 0x1002f53
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x1058]
push eax
lea eax, [ebp - 0xa0c]
push eax
lea eax, [ebp - 0x105c]
push eax
push 0
push 0x1001360
push ebx
mov dword [ebp - 0x1058], 0x208
call esi
test eax, eax
jne 0x1002f52
cmp dword [ebp - 0x105c], 1
jne 0x1002f52
lea eax, [ebp - 0x1058]
push eax
lea eax, [ebp - 0x604]
push eax
lea eax, [ebp - 0x105c]
push eax
push 0
push 0x1001344
mov edi, 0x200
push ebx
mov dword [ebp - 0x1058], edi
call esi
test eax, eax
jne 0x1002f52
cmp dword [ebp - 0x105c], 1
jne 0x1002f52
lea eax, [ebp - 0x1058]
push eax
lea eax, [ebp - 0x804]
push eax
lea eax, [ebp - 0x105c]
push eax
push 0
push 0x100132c
push ebx
mov dword [ebp - 0x1058], edi
call esi
test eax, eax
jne 0x1002f52
cmp dword [ebp - 0x105c], 1
jne 0x1002f52
lea eax, [ebp - 0x1058]
push eax
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x105c]
push eax
push 0
push 0x1001314
push ebx
mov dword [ebp - 0x1058], edi
call esi
push ebx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
cmp esi, ebx
jne 0x1002f59
cmp dword [ebp - 0x105c], 1
jne 0x1002f59
mov esi, dword [ebp - 0x1068]
push ebx
push edi
mov edi, dword [ebp - 0x1064]
lea eax, [ebp - 0x204]
push eax
push ebx
push 0xb
push edi
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
je 0x1002f59
or dword [ebp - 0xa2c], 0x10000
or dword [ebp - 0xa28], 0x800
lea eax, [ebp - 0xa30]
push eax
push edi
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceInstallParamsW]
test eax, eax
je 0x1002f59
push 1
push edi
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
test eax, eax
je 0x1002f59
push dword [ebp - 0x1060]
mov dword [ebp - 0x106c], ebx
push ebx
push 1
push edi
mov edi, dword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoW]
push esi
call edi
test eax, eax
je 0x1002f2a
push 4
pop esi
mov ecx, dword [ebp - 0x1060]
lea eax, [ebp - 0x204]
add ecx, 0x20c
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x1002e04
cmp dx, bx
je 0x1002e00
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x1002e04
add ecx, esi
add eax, esi
cmp dx, bx
jne 0x1002de0
xor eax, eax
jmp 0x1002e09
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1002f00
mov eax, dword [ebp - 0x1060]
lea ecx, [ebp - 0x604]
add eax, 0x40c
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002e46
cmp dx, bx
je 0x1002e42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002e46
add eax, esi
add ecx, esi
cmp dx, bx
jne 0x1002e22
xor eax, eax
jmp 0x1002e4b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1002f00
push ebx
mov eax, 0x622
push eax
mov dword [ebp - 0x1054], eax
lea eax, [ebp - 0x1054]
push eax
push dword [ebp - 0x1060]
push dword [ebp - 0x1064]
push dword [ebp - 0x1068]
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDriverInfoDetailW]
test eax, eax
jne 0x1002e8e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1002f00
lea ecx, [ebp - 0x804]
lea eax, [ebp - 0x103c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002ebe
cmp dx, bx
je 0x1002eba
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002ebe
add eax, esi
add ecx, esi
cmp dx, bx
jne 0x1002e9a
xor eax, eax
jmp 0x1002ec3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1002f00
lea ecx, [ebp - 0x404]
lea eax, [ebp - 0xc34]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002ef7
cmp dx, bx
je 0x1002ef3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002ef7
add eax, esi
add ecx, esi
cmp dx, bx
jne 0x1002ed3
xor eax, eax
jmp 0x1002efc
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x1002f46
push dword [ebp - 0x1060]
inc dword [ebp - 0x106c]
push dword [ebp - 0x106c]
push 1
push dword [ebp - 0x1064]
push dword [ebp - 0x1068]
call edi
test eax, eax
jne 0x1002dce
push 1
push dword [ebp - 0x1064]
push dword [ebp - 0x1068]
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDriverInfoList]
mov eax, dword [ebp - 0x1070]
jmp 0x1002f5b
mov dword [ebp - 0x1070], 1
jmp 0x1002f3e
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0100647b
leave
ret 0xc