Function at 0x483680
Capabilities:
Link many functions at runtime

Disassembly:
push edi
mov edi, ecx
cmp dword [edi], 0
je 0x48368f
mov eax, 1
pop edi
ret
push ebx
push 0x800
push 0
push str.ftd2xx.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov ebx, eax
test ebx, ebx
jne 0x4836bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x48372d
movzx eax, ax
pop ebx
or eax, 0x80070000
pop edi
ret
push esi
push str.FT_CreateDeviceInfoList
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4836f8
mov dword [edi + 4], 0
call esi
mov esi, eax
test esi, esi
jle 0x4836ee
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x483723
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4836fb
mov dword [edi + 4], eax
push str.FT_GetDeviceInfoDetail
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x483730
mov dword [edi + 8], eax
call esi
mov esi, eax
test esi, esi
jle 0x483721
movzx esi, si
or esi, 0x80070000
test esi, esi
jns 0x483733
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, esi
pop esi
pop ebx
pop edi
ret
mov dword [edi + 8], eax
push str.FT_OpenEx
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x483761
mov dword [edi + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x48375d
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x483723
jmp 0x483764
mov dword [edi + 0xc], eax
lea eax, [edi + 0x10]
mov edx, str.FT_Close
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
lea eax, [edi + 0x14]
mov edx, str.FT_ResetDevice
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
lea eax, [edi + 0x18]
mov edx, str.FT_ResetPort
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
lea eax, [edi + 0x18]
mov edx, str.FT_CyclePort
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
lea eax, [edi + 0x20]
mov edx, str.FT_Purge
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
lea eax, [edi + 0x24]
mov edx, str.FT_SetTimeouts
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
lea eax, [edi + 0x28]
mov edx, str.FT_SetBaudRate
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
push str.FT_SetBitMode
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x483859
mov dword [edi + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x483851
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x483723
jmp 0x48385c
mov dword [edi + 0x2c], eax
push str.FT_GetBitMode
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48388e
mov dword [edi + 0x30], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x483886
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x483723
jmp 0x483891
mov dword [edi + 0x30], eax
push str.FT_SetLatencyTimer
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4838c3
mov dword [edi + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x4838bb
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x483723
jmp 0x4838c6
mov dword [edi + 0x34], eax
push str.FT_GetQueueStatus
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4838f8
mov dword [edi + 0x38], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x4838f0
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x483723
jmp 0x4838fb
mov dword [edi + 0x38], eax
push str.FT_SetEventNotification
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48392d
mov dword [edi + 0x3c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x483925
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x483723
jmp 0x483930
mov dword [edi + 0x3c], eax
lea eax, [edi + 0x40]
mov edx, str.FT_SetUSBParameters
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
lea eax, [edi + 0x44]
mov edx, str.FT_Read
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
lea eax, [edi + 0x48]
mov edx, str.FT_Write
push eax
mov ecx, ebx
call fcn.00484680
mov esi, eax
add esp, 4
test esi, esi
js 0x483723
pop esi
mov dword [edi], ebx
xor eax, eax
pop ebx
pop edi
ret