Function at 0x425010
Capabilities:
Link many functions at runtime

Disassembly:
push ecx
mov eax, dword [esi + 0x5c]
push ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.TCSRegister
push eax
call edi
xor ebx, ebx
cmp eax, ebx
mov dword [esi + 4], eax
jne 0x425054
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSRegister
mov edx, dword [esi + 0x64]
push 0x8400a006
push edx
mov dword [esi + 0x5c], ebx
call fcn.00423c30
add esp, 0xc
pop edi
pop ebx
pop ecx
ret
mov eax, dword [esi + 0x5c]
push str.TCSUnregister
push eax
call edi
cmp eax, ebx
mov dword [esi + 8], eax
jne 0x425077
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSUnregister
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSSend
push eax
call edi
cmp eax, ebx
mov dword [esi + 0xc], eax
jne 0x42509a
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSSend
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSCancelSend
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x10], eax
jne 0x4250c0
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSCancelSend
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSReceive
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x14], eax
jne 0x4250e6
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSReceive
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSClearBuffer
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x18], eax
jne 0x42510c
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSClearBuffer
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSCancelReceive
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x1c], eax
jne 0x425132
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSCancelReceive
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSDefineFilter
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x20], eax
jne 0x425158
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSDefineFilter
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSEnableUserFilter
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x24], eax
jne 0x42517e
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSEnableUserFilter
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSClearFilter
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x28], eax
jne 0x4251a4
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSClearFilter
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSSubscribeEvents
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x2c], eax
jne 0x4251ca
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSSubscribeEvents
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSUnSubscribeEvents
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x30], eax
jne 0x4251f0
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSUnSubscribeEvents
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSSetOnSentCallBack
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x34], eax
jne 0x425216
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSSetOnSentCallBack
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSReleaseCallBack
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x38], eax
jne 0x42523c
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSReleaseCallBack
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSGetObjectID
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x3c], eax
jne 0x425262
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSGetObjectID
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSEnableObjectIDFilter
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x40], eax
jne 0x425288
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSEnableObjectIDFilter
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSReleaseObjectID
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x44], eax
jne 0x4252ae
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSReleaseObjectID
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSGetUTID
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x48], eax
jne 0x4252d4
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSGetUTID
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSSetOnReceivedCallBack
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x4c], eax
jne 0x4252fa
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSSetOnReceivedCallBack
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSGetRxMessageCount
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x50], eax
jne 0x425320
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSGetRxMessageCount
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSEnableTimeStamp
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x54], eax
jne 0x425346
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSEnableTimeStamp
jmp 0x42503c
mov eax, dword [esi + 0x5c]
push str.TCSSetReservationKey
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x58], eax
jne 0x42536c
mov ecx, dword [esi + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.TCSSetReservationKey
jmp 0x42503c
pop edi
mov eax, 0x4000000
pop ebx
pop ecx
ret