Function at 0x4de590
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov ebx, dword [esp + 0x34]
push str.libusbK
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test eax, eax
je 0x4de61a
push str.using_libusbK_DLL_for_universal_access
push str.winusbx_init
push 4
push 0
call fcn.004d3fa0
add esp, 0x10
push str.LibK_GetVersion
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4de5ff
lea ecx, [esp + 0xc]
push ecx
call eax
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [esp + 0x18]
push str.libusbK_version:__d._d._d._d
push str.winusbx_init
push 4
push 0
call fcn.004d3fa0
add esp, 0x20
push str.LibK_GetProcAddress
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test eax, eax
je 0x4de915
mov dword [esp], esi
jmp 0x4de647
push str.libusbK_DLL_is_not_available__will_use_native_WinUSB
push str.winusbx_init
push 3
push ebx
call fcn.004d3fa0
add esp, 0x10
push str.WinUSB
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x4de933
mov dword [esp], eax
xor edi, edi
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 4], edi
nop
test edi, edi
je 0x4de790
lea eax, [ebp + 0x5c4fc4]
push 0x1b
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fc8]
push 7
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fcc]
push 0x1c
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fd0]
push 1
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fd4]
push 0xf
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fd8]
push 0x14
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fdc]
push 6
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fe0]
push 0x20
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fe4]
push 0x17
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4fe8]
push 9
push ebx
push eax
call edi
lea esi, [ebp + 0x5c4fec]
push 0xd
push ebx
push esi
call edi
lea eax, [ebp + 0x5c4ff0]
push 0x12
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4ff4]
push 0x11
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4ff8]
push 0x15
push ebx
push eax
call edi
lea eax, [ebp + 0x5c4ffc]
push 0x18
push ebx
push eax
call edi
lea eax, [ebp + 0x5c5000]
push 0x1a
push ebx
push eax
call edi
lea eax, [ebp + 0x5c5004]
push 0x13
push ebx
push eax
call edi
lea eax, [ebp + 0x5c5008]
push 0x16
push ebx
push eax
call edi
lea eax, [ebp + 0x5c500c]
push 8
push ebx
push eax
call edi
lea eax, [ebp + 0x5c5010]
push 0x19
push ebx
push eax
call edi
lea eax, [ebp + 0x5c5014]
push 0xc
push ebx
push eax
call edi
cmp dword [esi], 0
je 0x4de8d0
mov dword [ebp + 0x5c4fc0], 1
push dword [ebx*4 + 0x59fd58]
push str.initalized_sub_API__s
push str.winusbx_init
push 4
push 0
call fcn.004d3fa0
add esp, 0x14
jmp 0x4de8f9
push str.WinUsb_AbortPipe
mov edi, dword [esp + 4]
push edi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call esi
mov dword [ebp + 0x5c4fc4], eax
push str.WinUsb_ControlTransfer
push edi
call esi
mov dword [ebp + 0x5c4fc8], eax
push str.WinUsb_FlushPipe
push edi
call esi
mov dword [ebp + 0x5c4fcc], eax
push str.WinUsb_Free
push edi
call esi
mov dword [ebp + 0x5c4fd0], eax
push str.WinUsb_GetAssociatedInterface
push edi
call esi
mov dword [ebp + 0x5c4fd4], eax
push str.WinUsb_GetCurrentAlternateSetting
push edi
call esi
mov dword [ebp + 0x5c4fd8], eax
push str.WinUsb_GetDescriptor
push edi
call esi
mov dword [ebp + 0x5c4fdc], eax
push str.WinUsb_GetOverlappedResult
push edi
call esi
mov dword [ebp + 0x5c4fe0], eax
push str.WinUsb_GetPipePolicy
push edi
call esi
mov dword [ebp + 0x5c4fe4], eax
push str.WinUsb_GetPowerPolicy
push edi
call esi
mov dword [ebp + 0x5c4fe8], eax
push str.WinUsb_Initialize
push edi
call esi
imul ecx, ebx, 0x58
mov dword [ebp + 0x5c4fec], eax
lea ecx, [ecx + 0x5c4fec]
mov dword [esp + 8], ecx
push str.WinUsb_QueryDeviceInformation
push edi
call esi
mov dword [ebp + 0x5c4ff0], eax
push str.WinUsb_QueryInterfaceSettings
push edi
call esi
mov dword [ebp + 0x5c4ff4], eax
push str.WinUsb_QueryPipe
push edi
call esi
mov dword [ebp + 0x5c4ff8], eax
push str.WinUsb_ReadPipe
push edi
call esi
mov dword [ebp + 0x5c4ffc], eax
push str.WinUsb_ResetPipe
push edi
call esi
mov dword [ebp + 0x5c5000], eax
push str.WinUsb_SetCurrentAlternateSetting
push edi
call esi
mov dword [ebp + 0x5c5004], eax
push str.WinUsb_SetPipePolicy
push edi
call esi
mov dword [ebp + 0x5c5008], eax
push str.WinUsb_SetPowerPolicy
push edi
call esi
mov dword [ebp + 0x5c500c], eax
push str.WinUsb_WritePipe
push edi
mov edi, dword [esp + 0xc]
call esi
mov esi, dword [esp + 8]
mov dword [ebp + 0x5c5010], eax
cmp dword [esi], 0
jne 0x4de75d
push dword [ebx*4 + 0x59fd58]
push str.Failed_to_initalize_sub_API__s
push str.winusbx_init
push 2
push dword [esp + 0x44]
call fcn.004d3fa0
add esp, 0x14
mov dword [ebp + 0x5c4fc0], 0
add ebp, 0x58
inc ebx
cmp ebp, 0x108
jne 0x4de650
mov eax, dword [esp]
mov dword [0x5c50c8], eax
xor eax, eax
jmp 0x4de94d
push str.LibK_GetProcAddress___not_found_in_libusbK_DLL
push str.winusbx_init
push 1
push ebx
call fcn.004d3fa0
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4de948
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.004d3fa0
add esp, 0x10
mov eax, 0xfffffffb
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret