Function at 0x4d7910
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov ebx, dword [esp + 0x30]
push str.libusbK
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x4d799a
mov esi, eax
push str.using_libusbK_DLL_for_universal_access
push str.winusbx_init
push 4
push 0
call fcn.004cd4b0
add esp, 0x10
push str.LibK_GetVersion
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4d797f
lea ecx, [esp + 8]
push ecx
call eax
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x14]
push str.libusbK_version:__d._d._d._d
push str.winusbx_init
push 4
push 0
call fcn.004cd4b0
add esp, 0x20
push str.LibK_GetProcAddress
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4d7c92
mov edi, eax
mov dword [esp], esi
jmp 0x4d79c7
push str.libusbK_DLL_is_not_available__will_use_native_WinUSB
push str.winusbx_init
push 3
push ebx
call fcn.004cd4b0
add esp, 0x10
push str.WinUSB
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x4d7cb0
mov dword [esp], eax
xor edi, edi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 4], edi
nop word cs:[eax + eax]
nop
test edi, edi
je 0x4d7b20
lea eax, [ebp + 0x5d9e94]
push 0x1b
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9e98]
push 7
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9e9c]
push 0x1c
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ea0]
push 1
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ea4]
push 0xf
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ea8]
push 0x14
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9eac]
push 6
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9eb0]
push 0x20
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9eb4]
push 0x17
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9eb8]
push 9
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ebc]
push 0xd
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ec0]
push 0x12
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ec4]
push 0x11
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ec8]
push 0x15
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ecc]
push 0x18
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ed0]
push 0x1a
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ed4]
push 0x13
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ed8]
push 0x16
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9edc]
push 8
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ee0]
push 0x19
push ebx
push eax
call edi
lea eax, [ebp + 0x5d9ee4]
push 0xc
push ebx
push eax
call edi
cmp dword [ebp + 0x5d9ebc], 0
je 0x4d7c4d
mov dword [ebp + 0x5d9e90], 1
push dword [ebx*4 + 0x5b1d24]
push str.initalized_sub_API__s
push str.winusbx_init
push 4
push 0
call fcn.004cd4b0
add esp, 0x14
jmp 0x4d7c76
push str.WinUsb_AbortPipe
mov edi, dword [esp + 4]
push edi
call esi
mov dword [ebp + 0x5d9e94], eax
push str.WinUsb_ControlTransfer
push edi
call esi
mov dword [ebp + 0x5d9e98], eax
push str.WinUsb_FlushPipe
push edi
call esi
mov dword [ebp + 0x5d9e9c], eax
push str.WinUsb_Free
push edi
call esi
mov dword [ebp + 0x5d9ea0], eax
push str.WinUsb_GetAssociatedInterface
push edi
call esi
mov dword [ebp + 0x5d9ea4], eax
push str.WinUsb_GetCurrentAlternateSetting
push edi
call esi
mov dword [ebp + 0x5d9ea8], eax
push str.WinUsb_GetDescriptor
push edi
call esi
mov dword [ebp + 0x5d9eac], eax
push str.WinUsb_GetOverlappedResult
push edi
call esi
mov dword [ebp + 0x5d9eb0], eax
push str.WinUsb_GetPipePolicy
push edi
call esi
mov dword [ebp + 0x5d9eb4], eax
push str.WinUsb_GetPowerPolicy
push edi
call esi
mov dword [ebp + 0x5d9eb8], eax
push str.WinUsb_Initialize
push edi
call esi
mov dword [ebp + 0x5d9ebc], eax
push str.WinUsb_QueryDeviceInformation
push edi
call esi
mov dword [ebp + 0x5d9ec0], eax
push str.WinUsb_QueryInterfaceSettings
push edi
call esi
mov dword [ebp + 0x5d9ec4], eax
push str.WinUsb_QueryPipe
push edi
call esi
mov dword [ebp + 0x5d9ec8], eax
push str.WinUsb_ReadPipe
push edi
call esi
mov dword [ebp + 0x5d9ecc], eax
push str.WinUsb_ResetPipe
push edi
call esi
mov dword [ebp + 0x5d9ed0], eax
push str.WinUsb_SetCurrentAlternateSetting
push edi
call esi
mov dword [ebp + 0x5d9ed4], eax
push str.WinUsb_SetPipePolicy
push edi
call esi
mov dword [ebp + 0x5d9ed8], eax
push str.WinUsb_SetPowerPolicy
push edi
call esi
mov dword [ebp + 0x5d9edc], eax
push str.WinUsb_WritePipe
push edi
mov edi, dword [esp + 0xc]
call esi
mov dword [ebp + 0x5d9ee0], eax
cmp dword [ebp + 0x5d9ebc], 0
jne 0x4d7af1
push dword [ebx*4 + 0x5b1d24]
push str.Failed_to_initalize_sub_API__s
push str.winusbx_init
push 2
push dword [esp + 0x40]
call fcn.004cd4b0
add esp, 0x14
mov dword [ebp + 0x5d9e90], 0
add ebp, 0x58
inc ebx
cmp ebp, 0x108
jne 0x4d79e0
mov eax, dword [esp]
mov dword [0x5d9f98], eax
xor eax, eax
jmp 0x4d7cca
push str.LibK_GetProcAddress___not_found_in_libusbK_DLL
push str.winusbx_init
push 1
push ebx
call fcn.004cd4b0
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4d7cc5
push str.WinUSB_DLL_is_not_available_either__you_will_not_be_able_to_access_devices_outside_of_enumeration
push str.winusbx_init
push 2
push ebx
call fcn.004cd4b0
add esp, 0x10
mov eax, 0xfffffffb
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret