Function at 0x435580
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebp
push esi
push edi
push str..TunnellerSyncItemStatesExchange.cpp
push 0xef
mov edi, ecx
mov ecx, dword [0x63dd80]
push str.CTunnellerSyncItemStatesExchange::_Signal
call fcn.0041ac10
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebp
mov esi, dword [0x63dd80]
push 3
push esi
mov dword [esp + 0x14], eax
call fcn.0041a290
add esp, 8
test eax, eax
je 0x435697
mov eax, dword [edi + 0xc]
cmp eax, 8
ja case.default.0x4355d7
jmp dword [eax*4 + 0x435780]
push edi
push str.Exchange___08X__state_is_Idle
jmp 0x435686
mov edx, dword [esi]
mov eax, dword [edx]
push edi
push str.Exchange___08X__state_is_WaitingToBeSent
push str.CTunnellerSyncItemStatesExchange::_Signal
push 3
push esi
call eax
jmp 0x435694
mov ecx, dword [esi]
mov edx, dword [ecx]
push edi
push str.Exchange___08X__state_is_WaitingForReply
push str.CTunnellerSyncItemStatesExchange::_Signal
push 3
push esi
call edx
jmp 0x435694
push edi
push str.Exchange___08X__state_is_WaitingForAddtnlReplies
jmp 0x435686
mov edx, dword [esi]
mov eax, dword [edx]
push edi
push str.Exchange___08X__state_is_ReadyForProcessing
push str.CTunnellerSyncItemStatesExchange::_Signal
push 3
push esi
call eax
jmp 0x435694
mov ecx, dword [esi]
mov edx, dword [ecx]
push edi
push str.Exchange___08X__state_is_TimedOut
push str.CTunnellerSyncItemStatesExchange::_Signal
push 3
push esi
call edx
jmp 0x435694
push edi
push str.Exchange___08X__state_is_ErrorSending
jmp 0x435686
mov edx, dword [esi]
mov eax, dword [edx]
push edi
push str.Exchange___08X__state_is_Cancelled
push str.CTunnellerSyncItemStatesExchange::_Signal
push 3
push esi
call eax
jmp 0x435694
mov ecx, dword [esi]
mov edx, dword [ecx]
push edi
push str.Exchange___08X__state_is_Completed
push str.CTunnellerSyncItemStatesExchange::_Signal
push 3
push esi
call edx
jmp 0x435694
push edi
push str.Exchange___08X__state_is_not_recognized
mov eax, dword [esi]
mov ecx, dword [eax]
push str.CTunnellerSyncItemStatesExchange::_Signal
push 3
push esi
call ecx
add esp, 0x14
mov eax, dword [edi + 0x44]
test eax, eax
je case.default.0x4356ca
push 0
push 0x63c4e8
push 0x63c4a8
push 0
push eax
call sub.MSVCR90.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je case.default.0x4356ca
mov eax, dword [edi + 0xc]
cmp eax, 8
ja case.default.0x4356ca
movzx edx, byte [eax + 0x4357ac]
jmp dword [edx*4 + 0x4357a4]
call fcn.0041dd30
test al, al
jne 0x4356f6
mov eax, esi
call fcn.0041dbf0
mov ecx, dword [edi + 0x44]
test ecx, ecx
je 0x4356f6
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
mov dword [edi + 0x44], 0
mov dword [edi + 0xc], 7
jmp case.default.0x4356ca
mov eax, esi
call fcn.0041dbf0
mov ecx, dword [edi + 0x44]
test ecx, ecx
je case.default.0x4356ca
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
mov dword [edi + 0x44], 0
mov ecx, edi
call fcn.0041cfe0
call ebp
mov edi, dword [esp + 0xc]
sub eax, edi
cmp eax, 0x1f4
jbe 0x435757
mov eax, dword [0x63dd80]
mov esi, dword [eax]
call ebp
mov ecx, dword [0x63dd80]
mov edx, dword [esi]
sub eax, edi
push eax
push str.Function_execution_took__d_ms
push str.CTunnellerSyncItemStatesExchange::_Signal
push 2
push ecx
call edx
add esp, 0x14
mov ecx, dword [0x63dd80]
push 0
push 0x5d1d25
push str..TunnellerSyncItemStatesExchange.cpp
push 0x141
push str.CTunnellerSyncItemStatesExchange::_Signal
call fcn.0041aca0
pop edi
pop esi
pop ebp
mov esp, ebp
pop ebp
ret