Function at 0x4167c0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1a58
call fcn.004a5ad0
mov eax, dword [0x5053a4]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1a50]
mov dword [ebp - 0x1a58], ecx
push eax
push 0x20019
push 0
push str.SYSTEMControlSet001ControlClass4D36E972_E325_11CE_BFC1_08002BE10318
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x1a54], 0xffffffff
mov dword [ebp - 0x1a20], 0x104
mov dword [ebp - 0x1a10], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x41682e
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a4bf6
mov esp, ebp
pop ebp
ret
push ebx
push esi
push edi
lea eax, [ebp - 0x1a48]
push eax
lea eax, [ebp - 0x1a2c]
push eax
lea eax, [ebp - 0x1a30]
push eax
lea eax, [ebp - 0x1a34]
push eax
lea eax, [ebp - 0x1a38]
push eax
lea eax, [ebp - 0x1a3c]
push eax
lea eax, [ebp - 0x1a40]
push eax
lea eax, [ebp - 0x1a10]
push eax
push 0
lea eax, [ebp - 0x1a20]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x1a50]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov eax, dword [ebp - 0x1a10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x416a6b
xor esi, esi
test eax, eax
je 0x416a75
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
nop dword [eax]
lea eax, [ebp - 0x1a48]
mov dword [ebp - 0x1a24], 0x400
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x1a24]
push eax
lea eax, [ebp - 0x120c]
push eax
push esi
push dword [ebp - 0x1a50]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x416a08
lea eax, [ebp - 0x120c]
mov dword [ebp - 0x1a18], 0x400
push eax
push str.SYSTEMCurrentControlSetControlClass4D36E972_E325_11CE_BFC1_08002BE10318
lea eax, [ebp - 0x1a0c]
push str._s_s
push eax
call fcn.00407fe0
add esp, 0x10
lea eax, [ebp - 0x1a4c]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x1a0c]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x416969
lea eax, [ebp - 0x1a18]
push eax
lea eax, [ebp - 0xa0c]
push eax
lea eax, [ebp - 0x1a28]
push eax
push 0
push str.DriverDesc
push dword [ebp - 0x1a4c]
call ebx
test eax, eax
je 0x41697d
cmp eax, 2
je 0x416a08
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a4bf6
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x1a58]
lea eax, [ebp - 0xa0c]
push eax
call fcn.004b1081
add esp, 8
test eax, eax
jne 0x416a00
lea eax, [ebp - 0x1a1c]
mov dword [ebp - 0x1a1c], 4
push eax
lea eax, [ebp - 0x1a14]
push eax
push 0
push 0
push str.Characteristics
push dword [ebp - 0x1a4c]
call ebx
test eax, eax
jne 0x416a00
test byte [ebp - 0x1a14], 4
je 0x416a00
lea eax, [ebp - 0x1a18]
push eax
lea eax, [ebp - 0xa0c]
push eax
lea eax, [ebp - 0x1a28]
push eax
push 0
push str.WirelessMode
push dword [ebp - 0x1a4c]
call ebx
test eax, eax
je 0x416a57
cmp eax, 0xea
je 0x416a57
cmp eax, 2
je 0x416a17
push dword [ebp - 0x1a4c]
call edi
inc esi
cmp esi, dword [ebp - 0x1a10]
jb 0x4168b0
jmp 0x416a75
lea eax, [ebp - 0x1a1c]
push eax
lea eax, [ebp - 0x1a14]
push eax
push 0
push 0
push str.MediaType
push dword [ebp - 0x1a4c]
call ebx
test eax, eax
jne 0x416a43
cmp dword [ebp - 0x1a14], 0x10
je 0x416a57
push dword [ebp - 0x1a4c]
call edi
mov dword [ebp - 0x1a54], 1
jmp 0x416a75
push dword [ebp - 0x1a4c]
call edi
mov dword [ebp - 0x1a54], 0
jmp 0x416a75
mov dword [ebp - 0x1a54], 0xffffffff
push dword [ebp - 0x1a50]
call edi
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1a54]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004a4bf6
mov esp, ebp
pop ebp
ret