Function at 0x5a5560
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, dword [ebp + 8]
mov dword [esp + 4], str.Cfgmgr32
mov dword [esp], esi
call sym._load_system_library
test eax, eax
mov dword [0x743e54], eax
je 0x5a583a
mov edi, eax
mov dword [esp + 4], str.CM_Get_Parent
mov dword [esp], eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e50], eax
je 0x5a58b0
mov edi, dword [0x743e54]
mov dword [esp + 4], str.CM_Get_Child
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e4c], eax
je 0x5a5870
mov dword [esp + 4], str.AdvAPI32
mov dword [esp], esi
call sym._load_system_library
test eax, eax
mov edi, eax
mov dword [0x743e48], eax
je 0x5a583a
mov dword [esp + 4], str.RegQueryValueExA
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e44], eax
je 0x5a5930
mov edi, dword [0x743e48]
mov dword [esp + 4], str.RegCloseKey
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e40], eax
je 0x5a58f0
mov dword [esp + 4], str.SetupAPI
mov dword [esp], esi
call sym._load_system_library
test eax, eax
mov edi, eax
mov dword [0x743e3c], eax
je 0x5a583a
mov dword [esp + 4], str.SetupDiGetClassDevsA
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e38], eax
je 0x5a5970
mov edi, dword [0x743e3c]
mov dword [esp + 4], str.SetupDiEnumDeviceInfo
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e34], eax
je 0x5a59f0
mov edi, dword [0x743e3c]
mov dword [esp + 4], str.SetupDiEnumDeviceInterfaces
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e30], eax
je 0x5a59b0
mov edi, dword [0x743e3c]
mov dword [esp + 4], str.SetupDiGetDeviceInstanceIdA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e2c], eax
je 0x5a5a70
mov edi, dword [0x743e3c]
mov dword [esp + 4], str.SetupDiGetDeviceInterfaceDetailA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e28], eax
je 0x5a5a30
mov edi, dword [0x743e3c]
mov dword [esp + 4], str.SetupDiGetDeviceRegistryPropertyA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e24], eax
je 0x5a5b30
mov edi, dword [0x743e3c]
mov dword [esp + 4], str.SetupDiDestroyDeviceInfoList
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e20], eax
je 0x5a5af0
mov edi, dword [0x743e3c]
mov dword [esp + 4], str.SetupDiOpenDevRegKey
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e1c], eax
je 0x5a5ab0
mov edi, dword [0x743e3c]
mov dword [esp + 4], str.SetupDiOpenDeviceInterfaceRegKey
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e18], eax
je 0x5a5800
xor eax, eax
mov ebx, 0x72e140
mov edi, str.HIDUSB
test eax, eax
je 0x5a57a0
mov dword [esp], esi
call eax
test al, al
je 0x5a57b7
lea esi, [esi]
add ebx, 0x4c
cmp edi, ebx
je 0x5a57e5
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x5a57a0
mov dword [esp], esi
call eax
test al, al
jne 0x5a57a0
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], str.error_initializing__s_backend
add ebx, 0x4c
mov dword [esp + 8], str.winusb_init
mov dword [esp + 4], 2
mov dword [esp], esi
mov dword [esp + 0x10], eax
call sym._usbi_log
cmp edi, ebx
jne 0x5a57a7
mov dword [esp], 0x743dcc
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
sub esp, 4
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], str.SetupDiOpenDeviceInterfaceRegKeyA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e18], eax
jne 0x5a5784
mov dword [esp + 4], str.SetupDiOpenDeviceInterfaceRegKeyW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e18], eax
jne 0x5a5784
mov dword [esp], esi
mov dword [esp + 0xc], str.could_not_resolve_DLL_functions
mov dword [esp + 8], str.winusb_init
mov dword [esp + 4], 1
call sym._usbi_log
lea esp, [ebp - 0xc]
mov eax, 0xffffff9d
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], str.CM_Get_ChildA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e4c], eax
jne 0x5a55d1
mov dword [esp + 4], str.CM_Get_ChildW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e4c], eax
jne 0x5a55d1
jmp 0x5a583a
mov dword [esp + 4], str.CM_Get_ParentA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e50], eax
jne 0x5a55ae
mov dword [esp + 4], str.CM_Get_ParentW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e50], eax
jne 0x5a55ae
jmp 0x5a583a
mov dword [esp + 4], str.RegCloseKeyA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e40], eax
jne 0x5a5630
mov dword [esp + 4], str.RegCloseKeyW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e40], eax
jne 0x5a5630
jmp 0x5a583a
mov dword [esp + 4], str.RegQueryValueExAA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e44], eax
jne 0x5a560d
mov dword [esp + 4], str.RegQueryValueExAW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e44], eax
jne 0x5a560d
jmp 0x5a583a
mov dword [esp + 4], str.SetupDiGetClassDevsAA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e38], eax
jne 0x5a566c
mov dword [esp + 4], str.SetupDiGetClassDevsAW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e38], eax
jne 0x5a566c
jmp 0x5a583a
mov dword [esp + 4], str.SetupDiEnumDeviceInterfacesA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e30], eax
jne 0x5a56b2
mov dword [esp + 4], str.SetupDiEnumDeviceInterfacesW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e30], eax
jne 0x5a56b2
jmp 0x5a583a
mov dword [esp + 4], str.SetupDiEnumDeviceInfoA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e34], eax
jne 0x5a568f
mov dword [esp + 4], str.SetupDiEnumDeviceInfoW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e34], eax
jne 0x5a568f
jmp 0x5a583a
mov dword [esp + 4], str.SetupDiGetDeviceInterfaceDetailAA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e28], eax
jne 0x5a56f8
mov dword [esp + 4], str.SetupDiGetDeviceInterfaceDetailAW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e28], eax
jne 0x5a56f8
jmp 0x5a583a
mov dword [esp + 4], str.SetupDiGetDeviceInstanceIdAA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e2c], eax
jne 0x5a56d5
mov dword [esp + 4], str.SetupDiGetDeviceInstanceIdAW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e2c], eax
jne 0x5a56d5
jmp 0x5a583a
mov dword [esp + 4], str.SetupDiOpenDevRegKeyA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e1c], eax
jne 0x5a5761
mov dword [esp + 4], str.SetupDiOpenDevRegKeyW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e1c], eax
jne 0x5a5761
jmp 0x5a583a
mov dword [esp + 4], str.SetupDiDestroyDeviceInfoListA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e20], eax
jne 0x5a573e
mov dword [esp + 4], str.SetupDiDestroyDeviceInfoListW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e20], eax
jne 0x5a573e
jmp 0x5a583a
mov dword [esp + 4], str.SetupDiGetDeviceRegistryPropertyAA
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e24], eax
jne 0x5a571b
mov dword [esp + 4], str.SetupDiGetDeviceRegistryPropertyAW
mov dword [esp], edi
call ebx
sub esp, 8
test eax, eax
mov dword [0x743e24], eax
jne 0x5a571b
jmp 0x5a583a