Function at 0x443ad0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3ac
push esi
push edi
xor edi, edi
push 8
push edi
push edi
push 0x48e904
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x10], edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov esi, eax
cmp esi, 0xffffffff
je 0x443b29
lea eax, [ebp - 0x2e4]
push eax
push esi
mov dword [ebp - 0x2e4], 0x11f
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInfoListDetailA]
test eax, eax
jne 0x443b31
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x34]
push ecx
push edi
push esi
mov dword [ebp - 0x34], 0x1c
mov dword [ebp - 0x18], edi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x443cc3
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push ebx
mov ebx, 4
jmp 0x443b60
lea edx, [ebp - 4]
push edx
push 0xc8
lea eax, [ebp - 0x3ac]
push eax
lea ecx, [ebp - 8]
push ecx
push 1
lea edx, [ebp - 0x34]
push edx
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
jne 0x443b9e
test dword [0x49a0e8], 0x10000
je 0x443b9e
push str.PowerXpressSetDesktopPreference:_fail_to_get_SPDRP_HARDWAREID
call fcn.0040acd0
add esp, 4
lea eax, [ebp - 4]
push eax
push 0xc8
lea ecx, [ebp - 0x1c4]
push ecx
lea edx, [ebp - 8]
push edx
push 9
lea eax, [ebp - 0x34]
push eax
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
jne 0x443bdc
test dword [0x49a0e8], 0x10000
je 0x443bdc
push str.PowerXpressSetDesktopPreference:_fail_to_get_SPDRP_DRIVER
call fcn.0040acd0
add esp, 4
lea ecx, [ebp - 0x1c4]
push ecx
push str.SYSTEMCurrentControlSetControlClass
lea edx, [ebp - 0xfc]
push str._s_s
push edx
call fcn.00460f01
mov eax, dword [0x49a0e8]
add esp, 0x10
test eax, 0x10000
je 0x443c1c
lea eax, [ebp - 0xfc]
push eax
push str.PowerXpressSetDesktopPreference:_registry:_s_n
call fcn.0040acd0
add esp, 8
lea ecx, [ebp - 0xc]
push ecx
push 0x2001f
push 0
lea edx, [ebp - 0xfc]
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x443c9d
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 8]
push edx
push 0
push str.PXACAutoSwitch
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], 1
call edi
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x443c96
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [ebp - 0xc]
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 8]
push eax
push 0
push str.PXPreference
push ecx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], 0
call edi
test eax, eax
je 0x443cc2
jmp 0x443c9d
mov dword [ebp - 0x10], 0xffffffff
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x34]
inc eax
push ecx
push eax
push esi
mov dword [ebp - 0x18], eax
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x443b60
pop ebx
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov eax, dword [ebp - 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret