Function at 0x42df8b
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x2020]
mov eax, 0x2020
call fcn.00455690
push 0xffffffffffffffff
push 0x46e628
mov eax, dword fs:[0]
push eax
sub esp, 0xc
mov eax, dword [0x491d88]
xor eax, ebp
mov dword [ebp + 0x201c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x202c]
mov edi, dword [ebp + 0x2038]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x2030]
mov esi, ecx
mov dword [ebp - 0x10], eax
call fcn.00429eef
test eax, eax
je 0x42e054
call fcn.0042e33a
mov eax, dword [0x4a3a3c]
xor ebx, ebx
cmp eax, ebx
je 0x42e030
mov ecx, dword [esi + 4]
cmp ecx, ebx
jne 0x42e006
xor ecx, ecx
jmp 0x42e009
mov ecx, dword [ecx + 4]
push edi
push dword [ebp + 0x2034]
add esi, 8
push dword [ebp - 0x10]
push dword [ebp - 0x18]
push dword [ebp + 0x2028]
push esi
push ecx
call eax
cmp eax, ebx
je 0x42e030
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x42e04b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0x7a
jne 0x42e04d
cmp edi, ebx
je 0x42e04d
mov eax, dword [ebp + 0x2034]
cmp eax, dword [edi]
jb 0x42e04d
xor esi, esi
mov eax, esi
jmp 0x42e1e9
xor ebx, ebx
push ebx
lea ecx, [ebp]
mov dword [ebp + 0x18], 0xf
call fcn.00401800
lea eax, [ebp]
push eax
mov ecx, esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
call fcn.0042df19
test eax, eax
je 0x42e0a7
cmp edi, ebx
je 0x42e081
mov dword [edi], ebx
cmp dword [ebp - 0x10], ebx
je 0x42e098
push dword [ebp + 0x2034]
push ebx
push dword [ebp - 0x10]
call fcn.004530b0
add esp, 0xc
xor esi, esi
push ebx
push 1
lea ecx, [ebp]
call fcn.00402f50
jmp 0x42e04d
cmp dword [ebp + 0x18], 0x10
mov eax, dword [ebp + 4]
jae 0x42e0b3
lea eax, [ebp + 4]
push eax
push str.Enum_s
lea eax, [ebp + 0x1c]
push 0x2000
push eax
call fcn.004543d1
mov eax, dword [ebp + 0x2028]
add esp, 0x10
cmp eax, 0x12
ja case.0x42e0d9.3
jmp dword [eax*4 + 0x42e20f]
mov esi, str.Capabilities
jmp 0x42e14e
mov esi, str.Class
jmp 0x42e14e
mov esi, str.ClassGUID
jmp 0x42e14e
mov esi, str.CompatibleIDs
jmp 0x42e14e
mov esi, str.ConfigFlags
jmp 0x42e14e
mov esi, str.DeviceDesc
jmp 0x42e14e
mov esi, str.Driver
jmp 0x42e14e
mov esi, str.FriendlyName
jmp 0x42e14e
mov esi, str.HardwareID
jmp 0x42e14e
mov esi, str.LocationInformation
jmp 0x42e14e
mov esi, str.LowerFilters
jmp 0x42e14e
mov esi, 0x479800
jmp 0x42e14e
mov esi, str.PhysicalDeviceObjectName
jmp 0x42e14e
mov esi, str.Service
jmp 0x42e14e
mov esi, str.UiNumber
jmp 0x42e14e
mov esi, str.UpperFilters
push ebx
lea eax, [ebp - 0x14]
push eax
push 0x20019
push ebx
lea eax, [ebp + 0x1c]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0042afd2
add esp, 0x18
cmp eax, ebx
je 0x42e175
mov esi, eax
jmp 0x42e09a
lea eax, [ebp + 0x2034]
push eax
push dword [ebp - 0x10]
push dword [ebp - 0x18]
push ebx
push esi
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0x14]
mov esi, eax
call fcn.0042b427
cmp esi, 2
pop ecx
je 0x42e07b
cmp esi, ebx
mov eax, 0xea
je 0x42e1b2
cmp esi, eax
jne 0x42e09a
cmp edi, ebx
je 0x42e1be
mov ecx, dword [ebp + 0x2034]
mov dword [edi], ecx
cmp esi, eax
je 0x42e1cb
cmp dword [ebp - 0x10], ebx
jne 0x42e09a
push 0x7a
pop esi
jmp 0x42e09a
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
push 1
lea ecx, [ebp]
call fcn.00402f50
push 0xd
pop eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x201c]
xor ecx, ebp
call fcn.0045309e
add ebp, 0x2020
leave
ret 0x14