Function at 0x409700
Capabilities:
Link many functions at runtime

Disassembly:
cmp dword [0x4473d8], 0
je 0x409711
mov eax, 1
ret 4
mov eax, dword [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
mov dword [0x4473d8], eax
jne 0x40972e
call dword [sym.imp.KERNEL32.dll_GetLastError]
ret 4
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
push str.TUSBAUDIO_GetApiVersion
push eax
call esi
test eax, eax
mov dword [0x44730c], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_CheckApiVersion
push ecx
call esi
test eax, eax
mov dword [0x447310], eax
je 0x409c87
call dword [0x44730c]
push 2
push 4
call dword [0x447310]
test eax, eax
jne 0x409784
pop edi
mov eax, 0xee000060
pop esi
ret 4
mov edx, dword [0x4473d8]
push 0x43a7d0
push edx
call esi
test eax, eax
mov dword [0x447314], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_UnregisterPnpNotification
push eax
call esi
test eax, eax
mov dword [0x447318], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_EnumerateDevices
push ecx
call esi
test eax, eax
mov dword [0x44731c], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_GetDeviceCount
push edx
call esi
test eax, eax
mov dword [0x447320], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_OpenDeviceByIndex
push eax
call esi
test eax, eax
mov dword [0x447324], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_CloseDevice
push ecx
call esi
test eax, eax
mov dword [0x447328], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_GetDeviceProperties
push edx
call esi
test eax, eax
mov dword [0x44732c], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_GetDeviceInstanceIdString
push eax
call esi
test eax, eax
mov dword [0x447330], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_RegisterDeviceNotification
push ecx
call esi
test eax, eax
mov dword [0x447334], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_ReadDeviceNotification
push edx
call esi
test eax, eax
mov dword [0x447338], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_GetSupportedSampleRates
push eax
call esi
test eax, eax
mov dword [0x44733c], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_GetCurrentSampleRate
push ecx
call esi
test eax, eax
mov dword [0x447340], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_SetSampleRate
push edx
call esi
test eax, eax
mov dword [0x447344], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_GetSupportedClockSources
push eax
call esi
test eax, eax
mov dword [0x447348], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_GetCurrentClockSource
push ecx
call esi
test eax, eax
mov dword [0x44734c], eax
je 0x409c87
mov edx, dword [0x4473d8]
push 0x43a9b4
push edx
call esi
test eax, eax
mov dword [0x447350], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_GetSupportedStreamFormats
push eax
call esi
test eax, eax
mov dword [0x447354], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_GetCurrentStreamFormat
push ecx
call esi
test eax, eax
mov dword [0x447358], eax
je 0x409c87
mov edx, dword [0x4473d8]
push 0x43aa1c
push edx
call esi
test eax, eax
mov dword [0x44735c], eax
je 0x409c87
mov eax, dword [0x4473d8]
push 0x43aa40
push eax
call esi
test eax, eax
mov dword [0x447360], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_GetUsbConfigDescriptor
push ecx
call esi
test eax, eax
mov dword [0x447364], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_GetUsbStringDescriptorString
push edx
call esi
test eax, eax
mov dword [0x447368], eax
je 0x409c87
mov eax, dword [0x4473d8]
push 0x43aaac
push eax
call esi
test eax, eax
mov dword [0x44736c], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_AudioControlRequestGet
push ecx
call esi
test eax, eax
mov dword [0x447370], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_ClassVendorRequestOut
push edx
call esi
test eax, eax
mov dword [0x447374], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_ClassVendorRequestIn
push eax
call esi
test eax, eax
mov dword [0x447378], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_GetDriverInfo
push ecx
call esi
test eax, eax
mov dword [0x44737c], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_GetUsbStreamingMode
push edx
call esi
test eax, eax
mov dword [0x447380], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_SetUsbStreamingMode
push eax
call esi
test eax, eax
mov dword [0x447384], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_GetASIOBufferSize
push ecx
call esi
test eax, eax
mov dword [0x447388], eax
je 0x409c87
mov edx, dword [0x4473d8]
push 0x43aba8
push edx
call esi
test eax, eax
mov dword [0x44738c], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_GetMinimumASIOBufferSize
push eax
call esi
test eax, eax
mov dword [0x447390], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_GetDeviceUsbMode
push ecx
call esi
test eax, eax
mov dword [0x447394], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_GetDeviceStreamingMode
push edx
call esi
test eax, eax
mov dword [0x447398], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_SetDeviceStreamingMode
push eax
call esi
test eax, eax
mov dword [0x44739c], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_LoadFirmwareImageFromBuffer
push ecx
call esi
test eax, eax
mov dword [0x4473a0], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_LoadFirmwareImageFromFile
push edx
call esi
test eax, eax
mov dword [0x4473a4], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_GetFirmwareImageSize
push eax
call esi
test eax, eax
mov dword [0x4473a8], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_UnloadFirmwareImage
push ecx
call esi
test eax, eax
mov dword [0x4473ac], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_GetFirmwareImage
push edx
call esi
test eax, eax
mov dword [0x4473b0], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_StartDfuDownload
push eax
call esi
test eax, eax
mov dword [0x4473b4], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_StartDfuUpload
push ecx
call esi
test eax, eax
mov dword [0x4473b8], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_StartDfuRevertToFactoryImage
push edx
call esi
test eax, eax
mov dword [0x4473bc], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_GetDfuStatus
push eax
call esi
test eax, eax
mov dword [0x4473c0], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_EndDfuProc
push ecx
call esi
test eax, eax
mov dword [0x4473c4], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_GetDspProperty
push edx
call esi
test eax, eax
mov dword [0x4473c8], eax
je 0x409c87
mov eax, dword [0x4473d8]
push str.TUSBAUDIO_SetDspProperty
push eax
call esi
test eax, eax
mov dword [0x4473cc], eax
je 0x409c87
mov ecx, dword [0x4473d8]
push str.TUSBAUDIO_StatusCodeStringW
push ecx
call esi
test eax, eax
mov dword [0x4473d0], eax
je 0x409c87
mov edx, dword [0x4473d8]
push str.TUSBAUDIO_StatusCodeStringA
push edx
call esi
test eax, eax
mov dword [0x4473d4], eax
jne 0x409ca0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0x447308
mov edi, eax
call fcn.00409cb0
mov eax, edi
pop edi
pop esi
ret 4
pop edi
xor eax, eax
pop esi
ret 4