Function at 0x431e50
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1654
call fcn.004b0ff0
mov eax, dword [0x4d044c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x800
xor esi, esi
mov dword [ebp - 0x1640], edx
lea eax, [ebp - 0x8d0]
mov dword [ebp - 0x164c], ecx
push esi
push eax
call fcn.004644e0
push 0x400
xor edi, edi
mov dword [ebp - 0x1648], esi
lea eax, [ebp - 0xcd0]
mov dword [ebp - 0x163c], esi
xorps xmm0, xmm0
mov dword [ebp - 0x162c], esi
push edi
push eax
movups xmmword [ebp - 0x14fc], xmm0
mov dword [ebp - 0x1630], 4
mov dword [ebp - 0x1644], esi
call fcn.004644e0
push str.GetHotPluggableNetworkAdapterGuids
push str.Entering__s
lea eax, [ebp - 0x8d0]
push 0x800
push eax
call fcn.00431b30
mov eax, dword [ebp - 0x1640]
add esp, 0x28
test eax, eax
je 0x43221f
push edi
push edi
mov dword [eax], esi
lea eax, [ebp - 0x1648]
push eax
push 1
lea eax, [ebp - 0x14fc]
push eax
push 0x4c781c
call dword [sym.imp.SETUPAPI.dll_SetupDiClassGuidsFromNameExA]
test eax, eax
je 0x43221f
push edi
push edi
push edi
push 2
push edi
push edi
lea eax, [ebp - 0x14fc]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsExA]
mov ebx, eax
mov dword [ebp - 0x1624], ebx
cmp ebx, 0xffffffff
jne 0x431f63
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetupDiGetClassDevsEx_Failed_with_error_code__d
lea eax, [ebp - 0x8d0]
push 0x800
push eax
call fcn.00431b30
add esp, 0x10
jmp 0x43221f
lea eax, [ebp - 0x1620]
mov dword [ebp - 0x1620], 0x11f
push eax
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInfoListDetailA]
test eax, eax
je 0x43220b
lea eax, [ebp - 0x14ec]
mov dword [ebp - 0x14ec], 0x1c
push eax
xor esi, esi
push esi
push ebx
mov dword [ebp - 0x1628], esi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x432206
nop dword [eax]
push 0xc8
lea eax, [ebp - 0xd0]
push 0
push eax
call fcn.004644e0
add esp, 0xc
lea eax, [ebp - 0xd0]
xor edi, edi
push dword [ebp - 0x160c]
push edi
push 0xc8
push eax
push dword [ebp - 0x14d8]
call dword [sym.imp.SETUPAPI.dll_CM_Get_Device_ID_ExA]
test eax, eax
je 0x432011
push eax
push str.CM_Get_Device_ID_Ex_Failed_with_error_code__d.Skipping_this_device
lea eax, [ebp - 0x8d0]
mov byte [ebp - 0xd0], 0
push 0x800
push eax
call fcn.00431b30
add esp, 0x10
jmp 0x4321e8
push 0x800
lea eax, [ebp - 0x14d0]
push 0
push eax
call fcn.004644e0
add esp, 0xc
mov dword [ebp - 0x1638], edi
lea eax, [ebp - 0x1634]
mov dword [ebp - 0x1634], edi
xor edi, edi
push eax
push edi
push edi
lea eax, [ebp - 0x1638]
push eax
push 1
lea eax, [ebp - 0x14ec]
push eax
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x43207f
push eax
push str.SetupDiGetDeviceRegistryProperty_Failed_with_error_code__d
lea eax, [ebp - 0x14d0]
push 0x800
push eax
call fcn.00431b30
add esp, 0x10
jmp 0x432446
mov ebx, dword [ebp - 0x1634]
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push dword [ebp - 0x1634]
mov esi, eax
push 0
push esi
call fcn.004644e0
add esp, 0xc
test esi, esi
je 0x43243a
lea eax, [ebp - 0x1634]
push eax
push ebx
mov ebx, dword [ebp - 0x1624]
lea eax, [ebp - 0x1638]
push esi
push eax
push 1
lea eax, [ebp - 0x14ec]
push eax
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
jne 0x4320ff
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetupDiGetDeviceRegistryProperty_Failed_with_error_code__d_n
lea eax, [ebp - 0x14d0]
push 0x800
push eax
call fcn.00431b30
add esp, 0x10
jmp 0x432428
mov eax, dword [ebp - 0x1638]
cmp eax, 7
je 0x432112
push eax
push str.Unexpected_datatype__d_n
jmp 0x4320e6
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x432117
sub ecx, edx
push 1
lea ebx, [ecx + 1]
push ebx
call fcn.0048e95f
mov edi, eax
add esp, 8
test edi, edi
je 0x432422
push esi
push ebx
push edi
call fcn.00490882
add esp, 0xc
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x400
lea eax, [ebp - 0xcd0]
mov dword [ebp - 0x163c], 0
push 0
push eax
mov dword [ebp - 0x162c], 0
mov dword [ebp - 0x1630], 4
mov dword [ebp - 0x1644], 0
call fcn.004644e0
mov esi, dword [ebp - 0x1624]
lea eax, [ebp - 0x1644]
add esp, 0xc
push eax
push 4
lea eax, [ebp - 0x163c]
push eax
lea eax, [ebp - 0x162c]
push eax
push 0xf
lea eax, [ebp - 0x14ec]
push eax
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
jne 0x432259
push edi
push str.Unable_to_retrieve_device_capabilities._Skipping_device__s_n
lea eax, [ebp - 0x8d0]
push 0x800
push eax
call fcn.00431b30
add esp, 0x10
mov ebx, esi
mov esi, dword [ebp - 0x1628]
lea eax, [ebp - 0x14ec]
inc esi
push eax
push esi
push ebx
mov dword [ebp - 0x1628], esi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x431fb0
mov esi, 1
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
test edi, edi
je 0x43221f
push edi
call fcn.0048b923
add esp, 4
mov edi, dword [ebp - 0x1640]
lea eax, [ebp - 0x8d0]
push dword [edi]
push esi
push str.GetHotPluggableNetworkAdapterGuids
push str.Exiting__s_return_value__d_Length__d
push 0x800
push eax
call fcn.00431b30
mov ecx, dword [ebp - 4]
add esp, 0x18
mov eax, esi
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004606ac
mov esp, ebp
pop ebp
ret
push 4
push str.USB_
push edi
call fcn.0048f15c
add esp, 0xc
test eax, eax
jne 0x4323fc
cmp dword [ebp - 0x162c], 4
je 0x432287
test byte [ebp - 0x163c], 0x84
je 0x4323fc
push edi
lea eax, [ebp - 0xd0]
push eax
push str._t_tDevice__s_with_hardware_id__s_gets_qualified_n
lea eax, [ebp - 0x8d0]
push 0x800
push eax
call fcn.00431b30
add esp, 0x14
lea eax, [ebp - 0x14ec]
push 0x20019
push 2
push 0
push 1
push eax
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
mov dword [ebp - 0x1650], eax
cmp eax, 0xffffffff
je 0x4321e0
lea ecx, [ebp - 0x1630]
mov dword [ebp - 0x162c], 1
push ecx
lea ecx, [ebp - 0xcd0]
mov dword [ebp - 0x1630], 0x400
push ecx
lea ecx, [ebp - 0x162c]
push ecx
push 0
push str.NetCfgInstanceId
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4323c4
mov ebx, dword [ebp - 0x1640]
mov esi, dword [ebp - 0x164c]
inc dword [ebx]
test esi, esi
je 0x4323e5
push 1
push dword [ebp - 0x1630]
call fcn.0048e95f
mov ecx, dword [ebx]
add esp, 8
mov dword [esi + ecx*4 - 4], eax
mov eax, dword [ebx]
mov ecx, dword [esi + eax*4 - 4]
test ecx, ecx
je 0x4323e5
mov edx, dword [ebp - 0x1630]
test edx, edx
je 0x4323e5
cmp edx, 0x7fffffff
ja 0x4323a6
lea ebx, [ebp - 0xcd0]
mov esi, SysReAllocString
sub ebx, ecx
nop dword [eax]
test esi, esi
je 0x432384
mov al, byte [ebx + ecx]
test al, al
je 0x432384
mov byte [ecx], al
dec esi
inc ecx
sub edx, 1
jne 0x432370
push dword [ebp - 0x1650]
test edx, edx
lea eax, [ecx - 1]
cmovne eax, ecx
mov byte [eax], 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x1624]
jmp 0x4321e2
test edx, edx
je 0x4323e5
push dword [ebp - 0x1650]
mov byte [ecx], 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x1624]
jmp 0x4321e2
push edi
lea eax, [ebp - 0xd0]
push eax
push str.Unable_to_retrieve_the_Network_Adapter_GUID_for_the_device__s_with_hwid__s.Skipping_the_device_n
lea eax, [ebp - 0x8d0]
push 0x800
push eax
call fcn.00431b30
add esp, 0x14
push dword [ebp - 0x1650]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x1624]
jmp 0x4321e2
push edi
lea eax, [ebp - 0xd0]
push eax
push str.Device__s_with_hwid__s_is_NOT_hotpluggable._Skipping_the_device_n
lea eax, [ebp - 0x8d0]
push 0x800
push eax
call fcn.00431b30
add esp, 0x14
jmp 0x4321e0
mov ebx, dword [ebp - 0x1624]
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x432440
mov ebx, dword [ebp - 0x1624]
mov esi, dword [ebp - 0x1628]
push edi
push dword [ebp - 0x14d8]
lea eax, [ebp - 0xd0]
push eax
push str.Unable_to_retrieve_hardware_id_for_the_device__s_with_device_instance__X__X._Skipping_device_n
lea eax, [ebp - 0x8d0]
push 0x800
push eax
call fcn.00431b30
add esp, 0x18
jmp 0x4321e8