Function at 0x100404b0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x8a18
call fcn.100562c0
mov eax, dword [0x100f38c4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push edi
lea eax, [ebp - 0x204]
mov ebx, ecx
push str.CxHDAudioDeviceControl::InitialHIDLED___
push eax
mov dword [ebp - 0x8a10], ebx
call esi
lea ecx, [ebp - 0x204]
add esp, 8
push ecx
call fcn.10021dd0
mov ecx, eax
call fcn.100267a0
push 0x40
xor edi, edi
push edi
push ebx
call fcn.10056000
add esp, 0xc
lea edx, [ebp - 0x8a14]
push edx
push str.SOFTWAREConexantMicTrayHotkey
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebx + 0x40], edi
mov dword [ebp - 0x8a18], edi
mov dword [ebp - 0x8a14], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x100409f4
xor esi, esi
mov dword [ebp - 0x8a0c], esi
lea edi, [ebx + 0x48]
push esi
push str.HIDMake_d
lea eax, [ebp - 0xa04]
push 0x400
push eax
mov dword [ebp - 0x8a08], 0x400
call fcn.10057888
mov eax, dword [ebp - 0x8a14]
add esp, 0x10
lea ecx, [ebp - 0x8a08]
push ecx
push edi
push 0
push 0
lea edx, [ebp - 0xa04]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100405e6
mov eax, dword [ebp - 0x8a08]
xor esi, esi
mov dword [edi + 0x400], eax
test eax, eax
je 0x100405d7
lea ecx, [ecx]
movzx ecx, byte [edi + esi]
push ecx
push esi
lea edx, [ebp - 0x204]
push str.CxHDAudioDeviceControl::InitialHIDLED___HIDMake__d___d_n
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x204]
add esp, 0x10
push eax
call fcn.10021dd0
mov ecx, eax
call fcn.100267a0
inc esi
cmp esi, dword [edi + 0x400]
jb 0x100405a0
mov esi, dword [ebp - 0x8a0c]
mov dword [edi - 4], 1
jmp 0x100405ed
mov dword [edi - 4], 0
inc esi
add edi, 0x1020
mov dword [ebp - 0x8a0c], esi
cmp esi, 5
jl 0x10040543
xor eax, eax
mov dword [ebp - 0x8a0c], eax
lea edi, [ebx + 0x44c]
push eax
push str.HIDBreak_d
lea ecx, [ebp - 0xa04]
push 0x400
push ecx
mov dword [ebp - 0x8a08], 0x400
call fcn.10057888
xor esi, esi
add esp, 0x10
cmp dword [edi - 0x408], esi
je 0x100406aa
mov ecx, dword [ebp - 0x8a14]
lea edx, [ebp - 0x8a08]
push edx
push edi
push esi
push esi
lea eax, [ebp - 0xa04]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100406aa
mov eax, dword [ebp - 0x8a08]
mov dword [edi + 0x400], eax
test eax, eax
je 0x100406b0
movzx edx, byte [edi + esi]
push edx
push esi
lea eax, [ebp - 0x204]
push str.CxHDAudioDeviceControl::InitialHIDLED___HIDBreak__d___d_n
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x204]
add esp, 0x10
push ecx
call fcn.10021dd0
mov ecx, eax
call fcn.100267a0
inc esi
cmp esi, dword [edi + 0x400]
jb 0x10040671
jmp 0x100406b0
mov dword [edi - 0x408], esi
mov eax, dword [ebp - 0x8a0c]
inc eax
add edi, 0x1020
mov dword [ebp - 0x8a0c], eax
cmp eax, 5
jl 0x10040611
xor edi, edi
lea esi, [ebx + 0x44]
push edi
push str.HIDUsage_d
lea edx, [ebp - 0xa04]
push 0x400
push edx
call fcn.10057888
add esp, 0x10
cmp dword [esi], 0
je 0x1004074b
lea ecx, [ebp - 0x8a08]
push ecx
lea eax, [esi + 0x80c]
push eax
mov eax, dword [ebp - 0x8a14]
push 0
push 0
lea edx, [ebp - 0xa04]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1004074b
mov ecx, dword [esi + 0x80c]
push ecx
lea edx, [ebp - 0x204]
push str.CxHDAudioDeviceControl::InitialHIDLED___HIDUsage_0x_x_n
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x204]
add esp, 0xc
push eax
call fcn.10021dd0
mov ecx, eax
call fcn.100267a0
jmp 0x10040751
mov dword [esi], 0
inc edi
add esi, 0x1020
cmp edi, 5
jl 0x100406d1
xor esi, esi
mov dword [ebp - 0x8a0c], esi
lea edi, [ebx + 0xc58]
nop
push esi
push str.HIDLEDON_d
lea ecx, [ebp - 0xa04]
push 0x400
push ecx
mov dword [ebp - 0x8a08], 0x400
call fcn.10057888
add esp, 0x10
cmp dword [edi - 0xc14], 0
je 0x10040831
mov ecx, dword [ebp - 0x8a14]
lea edx, [ebp - 0x8a08]
push edx
lea ebx, [edi - 0x400]
push ebx
push 0
push 0
lea eax, [ebp - 0xa04]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1004082b
mov eax, dword [ebp - 0x8a08]
xor esi, esi
mov dword [edi], eax
test eax, eax
je 0x10040813
lea esp, [esp]
movzx edx, byte [esi + ebx]
push edx
push esi
lea eax, [ebp - 0x204]
push str.CxHDAudioDeviceControl::InitialHIDLED___HIDLEDON__d___d_n
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x204]
add esp, 0x10
push ecx
call fcn.10021dd0
mov ecx, eax
call fcn.100267a0
inc esi
cmp esi, dword [edi]
jb 0x100407e0
mov esi, dword [ebp - 0x8a0c]
mov ebx, dword [ebp - 0x8a10]
mov dword [edi - 0x404], 1
jmp 0x1004083b
mov ebx, dword [ebp - 0x8a10]
mov dword [edi - 0x404], 0
inc esi
add edi, 0x1020
mov dword [ebp - 0x8a0c], esi
cmp esi, 5
jl 0x10040770
xor eax, eax
mov dword [ebp - 0x8a0c], eax
lea edi, [ebx + 0x105c]
nop
push eax
push str.HIDLEDOFF_d
lea edx, [ebp - 0xa04]
push 0x400
push edx
mov dword [ebp - 0x8a08], 0x400
call fcn.10057888
add esp, 0x10
cmp dword [edi - 0x1018], 0
je 0x100409c3
cmp dword [edi - 0x808], 0
je 0x100409c3
mov edx, dword [ebp - 0x8a14]
lea eax, [ebp - 0x8a08]
push eax
lea ebx, [edi - 0x400]
push ebx
push 0
push 0
lea ecx, [ebp - 0xa04]
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100409bd
mov eax, dword [ebp - 0x8a08]
xor esi, esi
mov dword [edi], eax
test eax, eax
je 0x10040913
lea ebx, [ebx]
movzx eax, byte [ebx + esi]
push eax
push esi
lea ecx, [ebp - 0x204]
push str.CxHDAudioDeviceControl::InitialHIDLED___HIDLEDOFF__d___d_n
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [ebp - 0x204]
add esp, 0x10
push edx
call fcn.10021dd0
mov ecx, eax
call fcn.100267a0
inc esi
cmp esi, dword [edi]
jb 0x100408e0
mov ebx, dword [ebp - 0x8a10]
mov eax, dword [ebp - 0x8a0c]
inc eax
add edi, 0x1020
mov dword [ebp - 0x8a0c], eax
cmp eax, 5
jl 0x10040860
xor edi, edi
lea esi, [ebx + 0x1060]
lea ecx, [ecx]
push edi
push str.HIDLEDUsage_d
lea eax, [ebp - 0xa04]
push 0x400
push eax
call fcn.10057888
add esp, 0x10
cmp dword [esi - 0x101c], 0
je 0x100409d2
cmp dword [esi - 0x80c], 0
je 0x100409d2
mov eax, dword [ebp - 0x8a14]
lea ecx, [ebp - 0x8a08]
push ecx
push esi
push 0
push 0
lea edx, [ebp - 0xa04]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100409d2
mov ecx, dword [esi]
push ecx
lea edx, [ebp - 0x204]
push str.CxHDAudioDeviceControl::InitialHIDLED___HIDLEDUsage_0x_x_n
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x204]
add esp, 0xc
push eax
call fcn.10021dd0
mov ecx, eax
call fcn.100267a0
jmp 0x100409dc
mov ebx, dword [ebp - 0x8a10]
mov dword [edi - 0x808], 0
jmp 0x10040919
mov dword [esi - 0x80c], 0
inc edi
add esi, 0x1020
cmp edi, 5
jl 0x10040940
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
xor edi, edi
mov ecx, dword [ebp - 0x8a14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x8a18]
push edx
push str.SOFTWAREConexantMicTrayHotkeyPNPID
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x10040b18
push 0x7ffe
lea eax, [ebp - 0x8a04]
push edi
push eax
mov dword [ebp - 0x8a0c], 4
call fcn.10056000
add esp, 0xc
lea ecx, [ebp - 0x8a0c]
push ecx
lea edx, [ebp - 0x8a10]
push edx
mov edx, dword [ebx + 0x40]
push edi
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
lea eax, [ebp - 0x8a08]
push eax
mov eax, dword [ebp - 0x8a18]
lea ecx, [ebp - 0x8a04]
push ecx
push edx
push eax
mov dword [ebp - 0x8a08], 0x3fff
call edi
test eax, eax
jne 0x10040b18
mov eax, dword [ebp - 0x8a10]
movzx ecx, ax
push ecx
shr eax, 0x10
push eax
lea edx, [ebp - 0x204]
push str.CxHDAudioDeviceControl::InitialHIDLED___PNPID_is_HI__x__LO__x
push edx
call esi
lea eax, [ebp - 0x204]
add esp, 0x10
push eax
call fcn.10021dd0
mov ecx, eax
call fcn.100267a0
mov ecx, dword [ebx + 0x40]
mov edx, dword [ebp - 0x8a10]
push 0x7ffe
lea eax, [ebp - 0x8a04]
push 0
mov dword [ebx + ecx*4], edx
inc dword [ebx + 0x40]
push eax
call fcn.10056000
add esp, 0xc
lea ecx, [ebp - 0x8a0c]
push ecx
lea edx, [ebp - 0x8a10]
push edx
mov edx, dword [ebx + 0x40]
push 0
push 0
lea eax, [ebp - 0x8a08]
push eax
mov eax, dword [ebp - 0x8a18]
lea ecx, [ebp - 0x8a04]
push ecx
push edx
push eax
mov dword [ebp - 0x8a08], 0x3fff
call edi
test eax, eax
je 0x10040a82
mov ecx, dword [ebp - 0x8a18]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.10055898
mov esp, ebp
pop ebp
ret