Function at 0x1002b52
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x1070
call fcn.010062f0
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 0x1002efa
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 0x1002be4
push eax
jmp 0x1002ef4
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 0x1002ef3
cmp dword [ebp - 0x105c], 1
jne 0x1002ef3
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 0x1002ef3
cmp dword [ebp - 0x105c], 1
jne 0x1002ef3
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 0x1002ef3
cmp dword [ebp - 0x105c], 1
jne 0x1002ef3
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 0x1002efa
cmp dword [ebp - 0x105c], 1
jne 0x1002efa
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 0x1002efa
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 0x1002efa
push 1
push edi
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
test eax, eax
je 0x1002efa
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 0x1002ecb
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 0x1002da5
cmp dx, bx
je 0x1002da1
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x1002da5
add ecx, esi
add eax, esi
cmp dx, bx
jne 0x1002d81
xor eax, eax
jmp 0x1002daa
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1002ea1
mov eax, dword [ebp - 0x1060]
lea ecx, [ebp - 0x604]
add eax, 0x40c
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002de7
cmp dx, bx
je 0x1002de3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002de7
add eax, esi
add ecx, esi
cmp dx, bx
jne 0x1002dc3
xor eax, eax
jmp 0x1002dec
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1002ea1
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 0x1002e2f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1002ea1
lea ecx, [ebp - 0x804]
lea eax, [ebp - 0x103c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002e5f
cmp dx, bx
je 0x1002e5b
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002e5f
add eax, esi
add ecx, esi
cmp dx, bx
jne 0x1002e3b
xor eax, eax
jmp 0x1002e64
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1002ea1
lea ecx, [ebp - 0x404]
lea eax, [ebp - 0xc34]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002e98
cmp dx, bx
je 0x1002e94
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002e98
add eax, esi
add ecx, esi
cmp dx, bx
jne 0x1002e74
xor eax, eax
jmp 0x1002e9d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x1002ee7
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 0x1002d6f
push 1
push dword [ebp - 0x1064]
push dword [ebp - 0x1068]
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDriverInfoList]
mov eax, dword [ebp - 0x1070]
jmp 0x1002efc
mov dword [ebp - 0x1070], 1
jmp 0x1002edf
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.010062d1
leave
ret 0xc