Function at 0x421668
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, 0x430c44
call fcn.004083b8
mov eax, 0x2014
call fcn.00408ea0
push ebx
push esi
push edi
mov esi, ecx
call sym.HPZwis01.exe_unsigned_int___cdecl_IsNT_void_
test eax, eax
je 0x4216ff
call fcn.004211d0
mov edi, dword [ebp + 0x18]
xor ebx, ebx
test eax, eax
je 0x4216c5
mov eax, dword [0x456e40]
cmp eax, ebx
je 0x4216c5
mov ecx, dword [esi + 4]
cmp ecx, ebx
jne 0x4216ac
xor ecx, ecx
jmp 0x4216af
mov ecx, dword [ecx + 4]
push edi
add esi, 8
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push esi
push ecx
call eax
jmp 0x4216c7
xor eax, eax
cmp eax, ebx
je 0x4216d4
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x4216f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0x7a
jne 0x42188e
cmp edi, ebx
je 0x42188e
mov eax, dword [ebp + 0x14]
cmp eax, dword [edi]
jb 0x42188e
xor esi, esi
jmp 0x42188e
mov al, byte [ebp + 0x17]
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x20], al
call fcn.00403360
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], ebx
call fcn.0042194f
test eax, eax
je 0x421749
mov eax, dword [ebp + 0x18]
cmp eax, ebx
je 0x42172e
mov dword [eax], ebx
cmp dword [ebp + 0x10], ebx
je 0x421742
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0x10]
call fcn.00408630
add esp, 0xc
xor esi, esi
jmp 0x421880
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
jne 0x421755
mov eax, 0x43257c
push eax
lea eax, [ebp - 0x2020]
push str.Enum_s
push eax
call fcn.00407725
mov eax, dword [ebp + 8]
add esp, 0xc
cmp eax, 0x12
ja case.0x421776.3
jmp dword [eax*4 + 0x4218a1]
mov esi, str.Capabilities
jmp 0x4217eb
mov esi, str.Class
jmp 0x4217eb
mov esi, str.ClassGUID
jmp 0x4217eb
mov esi, str.CompatibleIDs
jmp 0x4217eb
mov esi, str.ConfigFlags
jmp 0x4217eb
mov esi, str.DeviceDesc
jmp 0x4217eb
mov esi, str.Driver
jmp 0x4217eb
mov esi, str.FriendlyName
jmp 0x4217eb
mov esi, str.HardwareID
jmp 0x4217eb
mov esi, str.LocationInformation
jmp 0x4217eb
mov esi, str.LowerFilters
jmp 0x4217eb
mov esi, 0x443f14
jmp 0x4217eb
mov esi, str.PhysicalDeviceObjectName
jmp 0x4217eb
mov esi, str.Service
jmp 0x4217eb
mov esi, str.UiNumber
jmp 0x4217eb
mov esi, str.UpperFilters
lea eax, [ebp - 0x10]
push eax
push 0x20019
lea eax, [ebp - 0x2020]
push ebx
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
je 0x42180f
mov esi, eax
jmp 0x421880
mov edi, dword [ebp + 0x10]
lea eax, [ebp + 0x14]
push eax
push edi
push dword [ebp + 0xc]
push ebx
push esi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0x10]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, 2
jne 0x421850
mov eax, dword [ebp + 0x18]
cmp eax, ebx
je 0x42183e
mov dword [eax], ebx
cmp edi, ebx
je 0x421742
push dword [ebp + 0x14]
push ebx
push edi
jmp 0x42173a
cmp esi, ebx
mov eax, 0xea
je 0x42185d
cmp esi, eax
jne 0x421880
mov ecx, dword [ebp + 0x18]
cmp ecx, ebx
je 0x421869
mov edx, dword [ebp + 0x14]
mov dword [ecx], edx
cmp esi, eax
je 0x421871
cmp edi, ebx
jne 0x421880
push 0x7a
pop esi
jmp 0x421880
push 0xd
pop esi
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x20]
call fcn.00403360
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x14