Function at 0x1400ed880
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
sub rsp, 0x20
lea rax, vtable.NGWinApi::CWinUsbApi.0
mov rbx, rcx
mov qword [rcx], rax
xor eax, eax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], rax
mov qword [rcx + 0x38], rax
mov qword [rcx + 0x40], rax
mov qword [rcx + 0x48], rax
mov qword [rcx + 0x50], rax
mov qword [rcx + 0x58], rax
mov qword [rcx + 0x60], rax
mov qword [rcx + 0x68], rax
mov qword [rcx + 0x70], rax
mov qword [rcx + 0x78], rax
mov qword [rcx + 0x80], rax
mov qword [rcx + 0x88], rax
mov qword [rcx + 0x90], rax
mov qword [rcx + 0x98], rax
mov qword [rcx + 0xa0], rax
mov qword [rcx + 0xa8], rax
mov qword [rcx + 0xb0], rax
mov qword [rcx + 0xb8], rax
lea rcx, str.winusb.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rbx + 8], rax
test rax, rax
je 0x1400edb04
lea rdx, str.WinUsb_Initialize
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsbFree
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_GetAssociatedInterface
mov qword [rbx + 0x18], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_GetDescriptor
mov qword [rbx + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_QueryInterfaceSettings
mov qword [rbx + 0x28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_QueryDeviceInformation
mov qword [rbx + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_SetCurrentAlternateSetting
mov qword [rbx + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_GetCurrentAlternateSetting
mov qword [rbx + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_QueryPipe
mov qword [rbx + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_SetPipePolicy
mov qword [rbx + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_GetPipePolicy
mov qword [rbx + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_ReadPipe
mov qword [rbx + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_WritePipe
mov qword [rbx + 0x68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_ControlTransfer
mov qword [rbx + 0x70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_ResetPipe
mov qword [rbx + 0x78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_AbortPipe
mov qword [rbx + 0x80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_FlushPipe
mov qword [rbx + 0x88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_SetPowerPolicy
mov qword [rbx + 0x90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_GetPowerPolicy
mov qword [rbx + 0x98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_GetOverlappedResult
mov qword [rbx + 0xa0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xa8], rax
lea rdx, str.WinUsb_ParseConfigurationDescriptor
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.WinUsb_ParseDescriptors
mov qword [rbx + 0xb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0xb8], rax
mov rax, rbx
add rsp, 0x20
pop rbx
ret