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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b2838
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push esi
push edi
mov eax, dword [0x676664]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
xor ebx, ebx
mov dword [ecx + 0x7fc], ebx
push ecx
lea ecx, [ebp - 0x24]
call fcn.00441120
mov esi, dword [ebp + 0xc]
mov ecx, esi
mov dword [ebp - 4], ebx
call fcn.004aef00
mov eax, dword [esi + 4]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x14], eax
mov byte [edi + 0x2f], bl
mov word [edi + 0x2c], bx
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x5c], 0xffffffff
cmp byte [edi + 0x24], bl
je 0x556025
lea ecx, [edi + 0x40]
call fcn.00410b60
test eax, eax
je 0x556025
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.m_dbReturnPayload_is_non_empty.
mov ecx, esi
call eax
lea ecx, [edi + 0x40]
mov dword [ebp - 0x18], ecx
call fcn.00410b40
cmp dword [edi + 4], ebx
jne 0x55603d
call sub.KERNEL32.dll_GetTickCount
mov dword [edi + 4], eax
lea ecx, [ebp - 0x4c]
call fcn.00410e50
push 0x10108
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.004156b0
lea ecx, [ebp - 0x4c]
mov dword [edi + 0x3c], 0
call fcn.00410b40
cmp dword [edi + 0x10], 5
jne 0x55608f
cmp dword [0x6797f0], 0xa
jge 0x556088
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.sshRp.m_totalTimeoutMs_wf_is_too_small__1_
mov ecx, esi
call eax
inc dword [0x6797f0]
mov dword [edi + 0x10], 0x7530
or ebx, 0xffffffff
cmp dword [edi + 0x14], ebx
je 0x5560d2
cmp dword [edi + 0x10], 0
je 0x5560d2
cmp dword [edi + 4], 0
jne 0x5560ab
call sub.KERNEL32.dll_GetTickCount
mov dword [edi + 4], eax
cmp dword [edi + 0x10], 0x3e8
jae 0x5560bb
mov dword [edi + 0x10], 0x7530
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [edi + 4]
cmp eax, ecx
jbe 0x5560d2
sub eax, ecx
cmp eax, dword [edi + 0x10]
ja 0x5563ed
mov eax, dword [edi + 0xc]
mov ebx, dword [ebp + 0xc]
push esi
push ebx
test eax, eax
jne 0x5560e8
push 5
push 1
lea ecx, [ebp - 0x4c]
push ecx
jmp 0x5560ef
push eax
push 0
lea edx, [ebp - 0x4c]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.005519e0
test al, al
je 0x55640c
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x556114
push esi
call fcn.004635c0
test al, al
jne 0x556426
lea ecx, [ebp - 0x4c]
call fcn.00410b60
test eax, eax
je 0x556056
inc dword [edi + 0x60]
lea ecx, [ebp - 0x4c]
call fcn.00410b60
test eax, eax
jne 0x55613d
mov ebx, 0xf423f
mov byte [ebp + 0xb], al
jmp 0x556184
lea ecx, [ebp - 0x4c]
call fcn.00410b80
movzx ebx, byte [eax]
cmp ebx, 0x5e
je 0x556180
cmp ebx, 0x5d
je 0x556180
cmp ebx, 0x5f
je 0x556180
cmp ebx, 0x5b
je 0x556180
cmp ebx, 0x5c
je 0x556180
cmp ebx, 0x61
je 0x556180
cmp ebx, 0x60
je 0x556180
cmp ebx, 0x62
je 0x556180
cmp ebx, 0x63
je 0x556180
cmp ebx, 0x64
je 0x556180
mov byte [ebp + 0xb], 0
jmp 0x556184
mov byte [ebp + 0xb], 1
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + 0xc4], 0
je 0x5561b5
cmp byte [ebp + 0xb], 0
jne 0x5561b5
push 0x5bacc4
push ebx
call fcn.0054fd50
mov ecx, dword [ebp - 0x10]
add esp, 4
push eax
push str.TRAN_
call fcn.0054e350
mov ecx, dword [ebp - 0x10]
cmp byte [esi + 0x125], 0
je 0x5561ea
cmp byte [esi + 0x129], 0
je 0x5561ea
mov eax, dword [esi]
add eax, 0x2c
push ebx
mov dword [ebp + 0x10], eax
call fcn.0054fd50
add esp, 4
push eax
mov eax, dword [ebp + 0x10]
mov edx, dword [eax]
push str.mType
mov ecx, esi
call edx
mov ecx, dword [ebp - 0x10]
cmp ebx, 0x14
jne 0x55622a
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push str.Received_KEXINIT_from_server...
mov ecx, esi
call edx
mov eax, dword [ebp + 0xc]
push esi
push eax
push edi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.005546e0
test al, al
jne 0x556056
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.rekeyStart_failed.
mov ecx, esi
call edx
jmp 0x5563bc
cmp ebx, 0x1f
jne 0x556266
cmp byte [ecx + 0x801], 0
je 0x556397
mov edx, dword [ebp + 0xc]
push esi
push edx
push edi
lea eax, [ebp - 0x4c]
push eax
call fcn.00554560
test al, al
jne 0x556056
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.rekeyKexDhGexGroup_failed.
mov ecx, esi
call edx
jmp 0x5563bc
cmp ebx, 0x21
je 0x556397
cmp ebx, 0x15
jne 0x5562d3
push str.rekeyNewKeys
push esi
lea ecx, [ebp - 0x30]
call fcn.0044ec60
mov ebx, dword [ebp - 0x10]
push 0x5bacc4
push str.SSH_Key_Exchange_Success.
push str.TRAN
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.0054e350
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.SSH_Key_Exchange_Success.
mov ecx, esi
call eax
push esi
mov ecx, ebx
call fcn.0054ee30
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.0044ecf0
cmp byte [ebx + 0x800], 0
jne 0x556056
jmp 0x55652b
mov edx, dword [ebp + 0xc]
push esi
push edx
push edi
lea eax, [ebp - 0x4c]
push eax
push ebx
call fcn.00553ee0
test al, al
je 0x5562fc
mov ecx, dword [ebp + 0xc]
call fcn.004aeea0
test al, al
je 0x556056
jmp 0x5563bc
cmp ebx, 1
je 0x556436
cmp byte [ebp + 0xb], 0
lea ecx, [ebp - 0x4c]
push ecx
je 0x556520
call fcn.00550190
add esp, 4
mov dword [edi + 0x5c], eax
cmp byte [esi + 0x125], 0
mov dword [ebp + 8], eax
je 0x556340
cmp byte [edi + 0x24], 0
jne 0x556340
push eax
push str.channelNum
mov ecx, esi
call fcn.0044e8c0
mov eax, dword [ebp + 8]
cmp dword [edi + 0x28], 0
jne 0x5564b5
cmp byte [edi + 0x24], 0
je 0x556361
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Handling_channel_specific_message_without_m_pHandler.
mov ecx, esi
call eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push esi
push ecx
mov ecx, dword [ebp - 0x10]
push edi
lea edx, [ebp - 0x4c]
push edx
push eax
push ebx
call fcn.005551c0
test al, al
je 0x556516
mov eax, dword [edi + 0x14]
cmp eax, 0xffffffff
je 0x55652b
cmp eax, dword [ebp + 8]
jne 0x556056
jmp 0x55652b
mov eax, dword [ebp + 0xc]
push esi
push eax
push edi
lea edx, [ebp - 0x4c]
push edx
call fcn.005540f0
test al, al
jne 0x556056
push str.rekeyKexDhReply_failed.
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0
call fcn.00411620
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00441150
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.004aef00
lea ecx, [ebp - 0x4c]
mov byte [esi + 0x14], 1
mov byte [ebp - 4], 0
call fcn.00411620
mov dword [ebp - 4], ebx
jmp 0x5563cf
mov ecx, ebx
call fcn.004aeed0
test al, al
jne 0x5563bc
push esi
push str.sshReadMessage
mov ecx, ebx
call fcn.004aef60
jmp 0x5563bc
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Aborted_by_app.
mov ecx, esi
call edx
jmp 0x5563bc
mov byte [edi + 0x2f], 1
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push str.Received_DISCONNECT_message
mov ecx, esi
call edx
mov ebx, dword [ebp - 0x10]
push esi
lea edi, [ebx + 0x2880]
push edi
lea eax, [ebx + 0x287c]
push eax
lea ecx, [ebp - 0x4c]
push ecx
call fcn.00550830
add esp, 0x10
test al, al
je 0x556490
push edi
push str.DisconnectReason
mov ecx, esi
call fcn.0044e520
push 0x5bacc4
mov ecx, edi
call fcn.00410b70
push eax
push str.TRAN_Reason:
mov ecx, ebx
call fcn.0054e350
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0xa20]
push 0
push esi
push edx
push eax
lea ecx, [ebx + 0x820]
call fcn.0052caa0
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x17], 1
jmp 0x5563bc
mov edx, dword [ebp + 0xc]
push esi
push edx
push edi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, dword [ebp - 0x10]
push eax
push ebx
mov dword [edi + 0x3c], ebx
call fcn.005551c0
mov bl, al
test bl, bl
jne 0x5564e5
cmp byte [edi + 0x24], al
je 0x5564e5
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.returning_failed_status...
mov ecx, esi
call eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0
call fcn.00411620
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.00441150
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push str.Failed_to_process_channel_message.
jmp 0x5563b3
mov ecx, dword [ebp - 0x18]
mov dword [edi + 0x3c], ebx
call fcn.00411920
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0
call fcn.00411620
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.00441150
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc