Function at 0x429f29
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0xb4]
sub esp, 0x134
mov eax, dword [0x498b28]
xor eax, ebp
mov dword [ebp + 0xb0], eax
push ebx
push esi
push edi
mov dword [ebp - 0x74], ecx
push 6
xor eax, eax
xor ebx, ebx
cmp byte [ebp + 0xbc], bl
pop ecx
lea edi, [ebp - 0x68]
mov dword [ebp - 0x6c], 0x1c
rep stosd dword es:[edi], eax
mov esi, 0x4704ac
jne 0x429f6f
mov esi, 0x47050c
movzx eax, byte [ebp + 0xbc]
push eax
push str.CWaitWakeEnabledHidDevs::enumHIDs:_bKeyboards_d_n
call fcn.0041b266
pop ecx
pop ecx
push ebx
push ebx
push ebx
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
cmp eax, ebx
mov dword [ebp - 0x70], eax
jne 0x429fac
call dword [0x467358]
push eax
push str._CWaitWakeEnabledHidDevs::enumHIDs:_SetupDiGetClassDevs_failed._err_d_n
call fcn.0041b266
pop ecx
pop ecx
jmp 0x42a135
mov dword [ebp - 0x78], ebx
mov edi, 0x100
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x78]
push dword [ebp - 0x70]
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x42a10e
push ebx
push edi
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x70]
mov dword [ebp - 0x7c], edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdA]
test eax, eax
jne 0x429ffe
call dword [0x467358]
push eax
push str._CWaitWakeEnabledHidDevs::enumHIDs:_SetupDiGetDeviceInstanceId_failed._err_d_n
call fcn.0041b266
pop ecx
pop ecx
jmp 0x42a0fc
lea eax, [ebp - 0x50]
push edi
push eax
call fcn.0043d3e1
lea eax, [ebp - 0x50]
push str.HID00001124_0000_1000_8000_00805F9B34FB
push eax
call fcn.0043b820
add esp, 0x10
test eax, eax
jne 0x42a028
lea eax, [ebp - 0x50]
push eax
push str.CWaitWakeEnabledHidDevs::enumHIDs:_ignore_non_BT_HID__hs_n
jmp 0x429ff2
push 0x20019
push 1
push ebx
push 1
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x70]
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
mov esi, eax
cmp esi, 0xffffffff
jne 0x42a054
call dword [0x467358]
push eax
push str._CWaitWakeEnabledHidDevs::enumHIDs:_SetupDiOpenDevRegKey_failed._err_d_n
jmp 0x429ff2
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x80]
push eax
push ebx
push ebx
push str.WaitWakeEnabled
push esi
mov dword [ebp - 0x7c], 4
call dword [0x467050]
cmp eax, ebx
je 0x42a089
push eax
push str.CWaitWakeEnabledHidDevs::enumHIDs:_no_value_WaitWakeEnabled._RegQueryValueEx_returned__d_n
call fcn.0041b266
pop ecx
pop ecx
mov dword [ebp - 0x80], 1
push esi
call dword [0x467004]
cmp dword [ebp - 0x80], ebx
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x50]
push eax
jne 0x42a0cd
call fcn.00429e6e
test al, al
lea eax, [ebp - 0x50]
push eax
jne 0x42a0b3
push str.CWaitWakeEnabledHidDevs::enumHIDs:_do_not_remember_non_WaitWakeEnabled__hs_n
jmp 0x429ff2
push str.CWaitWakeEnabledHidDevs::enumHIDs:_remove_non_WaitWakeEnabled__hs_n
call fcn.0041b266
pop ecx
pop ecx
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x50]
push eax
call fcn.00429ea7
jmp 0x42a0fc
call fcn.00429e6e
test al, al
lea eax, [ebp - 0x50]
push eax
je 0x42a0e4
push str.CWaitWakeEnabledHidDevs::enumHIDs:_remembered_already_WaitWakeEnabled__hs_n
jmp 0x429ff2
push str.CWaitWakeEnabledHidDevs::enumHIDs:_remember_WaitWakeEnabled__hs_n
call fcn.0041b266
pop ecx
pop ecx
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x50]
push eax
call fcn.00429df8
inc dword [ebp - 0x78]
cmp dword [ebp - 0x78], 0x3e8
jb 0x429fb4
jmp 0x42a12c
mov esi, dword [0x467358]
call esi
cmp eax, 0x103
je 0x42a12c
call esi
push eax
push str._CWaitWakeEnabledHidDevs::enumHIDs:_SetupDiEnumDeviceInfo_failed._err_d_n
call fcn.0041b266
pop ecx
pop ecx
push dword [ebp - 0x70]
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
push str.CWaitWakeEnabledHidDevs::enumHIDs:_exits_n
call fcn.0041b266
pop ecx
mov ecx, dword [ebp + 0xb0]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004369c2
add ebp, 0xb4
leave
ret 4