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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ff508
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x6baac0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp + 0xc]
xorps xmm0, xmm0
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x44]
push eax
mov dword [ebp - 0x4c], esi
mov dword [eax + 0x380], 0
movq qword [ebp - 0x44], xmm0
mov dword [ebp - 0x3c], 0
call fcn.00420a90
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 4], 0
call fcn.004efd30
cmp byte [edi + 0x24], 0
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
mov dword [ebp - 0x5c], eax
mov byte [edi + 0x2f], 0
mov word [edi + 0x2c], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x54], 0xffffffff
je 0x53598e
lea ecx, [edi + 0x38]
call fcn.00401c90
test eax, eax
je 0x53598e
mov eax, dword [esi]
mov ecx, esi
push str.m_dbReturnPayload_is_non_empty.
call dword [eax + 0x18]
lea ecx, [edi + 0x38]
call fcn.004132b0
cmp dword [edi + 4], 0
jne 0x5359a4
call sub.KERNEL32.dll_GetTickCount
mov dword [edi + 4], eax
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x2c]
movq qword [ebp - 0x1c], xmm0
movups xmmword [ebp - 0x2c], xmm0
call fcn.004118f0
push 0x10108
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.00414430
lea ecx, [ebp - 0x2c]
mov dword [edi + 0x34], 0
call fcn.004132b0
cmp dword [edi + 0x10], 5
jne 0x535a07
cmp dword [0x6bf904], 0xa
jge 0x535a00
mov eax, dword [esi]
mov ecx, esi
push str.sshRp.m_totalTimeoutMs_wf_is_too_small__1_
call dword [eax + 0x14]
inc dword [0x6bf904]
mov dword [edi + 0x10], 0x7530
cmp dword [edi + 0x14], 0xffffffff
je 0x535a48
cmp dword [edi + 0x10], 0
je 0x535a48
cmp dword [edi + 4], 0
jne 0x535a21
call sub.KERNEL32.dll_GetTickCount
mov dword [edi + 4], eax
cmp dword [edi + 0x10], 0x3e8
jae 0x535a31
mov dword [edi + 0x10], 0x7530
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [edi + 4]
cmp eax, ecx
jbe 0x535a48
sub eax, ecx
cmp eax, dword [edi + 0x10]
ja 0x535d50
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x50]
push esi
push dword [ebp - 0x54]
test eax, eax
jne 0x535a5c
push 5
push 1
jmp 0x535a5f
push eax
push 0
lea eax, [ebp - 0x2c]
push eax
call fcn.00532c20
test al, al
je 0x535e5c
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x535a87
push esi
mov ecx, eax
call fcn.00480f60
test al, al
jne 0x535d63
lea ecx, [ebp - 0x2c]
call fcn.00401c90
test eax, eax
je 0x5359d0
inc dword [edi + 0x58]
lea ecx, [ebp - 0x2c]
call fcn.00401c90
test eax, eax
jne 0x535ab2
mov eax, 0xf423f
xor dl, dl
mov dword [ebp - 0x58], eax
jmp 0x535af8
lea ecx, [ebp - 0x2c]
call fcn.00414910
movzx eax, byte [eax]
mov dword [ebp - 0x58], eax
cmp eax, 0x5e
je 0x535af6
cmp eax, 0x5d
je 0x535af6
cmp eax, 0x5f
je 0x535af6
cmp eax, 0x5b
je 0x535af6
cmp eax, 0x5c
je 0x535af6
cmp eax, 0x61
je 0x535af6
cmp eax, 0x60
je 0x535af6
cmp eax, 0x62
je 0x535af6
cmp eax, 0x63
je 0x535af6
cmp eax, 0x64
je 0x535af6
xor dl, dl
jmp 0x535af8
mov dl, 1
mov ecx, dword [ebp - 0x50]
mov byte [ebp - 0x45], dl
cmp byte [ecx + 0xc4], 0
je 0x535b27
test dl, dl
jne 0x535b27
push 0x605368
push eax
call fcn.0052ea70
mov ecx, dword [ebp - 0x50]
add esp, 4
push eax
push str.TRAN_
call fcn.00536320
cmp byte [esi + 0xad], 0
je 0x535b52
cmp byte [esi + 0xaf], 0
je 0x535b52
push dword [ebp - 0x58]
mov esi, dword [esi]
call fcn.0052ea70
mov ecx, dword [ebp - 0x4c]
add esp, 4
push eax
push str.mType
call dword [esi + 0x2c]
mov esi, dword [ebp - 0x58]
cmp esi, 0x14
jne 0x535b93
mov esi, dword [ebp - 0x4c]
mov ecx, esi
push str.Received_KEXINIT_from_server...
mov eax, dword [esi]
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x2c]
push esi
push dword [ebp - 0x54]
push edi
push eax
call fcn.00533990
test al, al
jne 0x5359d0
mov eax, dword [esi]
mov ecx, esi
push str.rekeyStart_failed.
call dword [eax + 0x14]
jmp 0x535e77
cmp esi, 0x1f
jne 0x535bd4
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x385], 0
je 0x535d24
mov esi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x2c]
push esi
push dword [ebp - 0x54]
push edi
push ecx
mov ecx, eax
call fcn.005333b0
test al, al
jne 0x5359d0
mov eax, dword [esi]
mov ecx, esi
push str.rekeyKexDhGexGroup_failed.
call dword [eax + 0x14]
jmp 0x535e77
cmp esi, 0x21
je 0x535d21
cmp esi, 0x15
jne 0x535c57
mov esi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x38]
push str.rekeyNewKeys
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push esi
movq qword [ebp - 0x38], xmm0
call fcn.00430cc0
mov ecx, dword [ebp - 0x50]
push 0x605368
push str.SSH_Key_Exchange_Success.
push str.TRAN
mov byte [ebp - 4], 2
call fcn.00536320
mov eax, dword [esi]
mov ecx, esi
push str.SSH_Key_Exchange_Success.
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x50]
push esi
call fcn.0052d940
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 1
call fcn.00430db0
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x384], 0
jne 0x5359d0
mov byte [ebp - 0x45], 1
jmp 0x535e7b
push dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x2c]
push dword [ebp - 0x54]
push edi
push eax
push esi
call fcn.00535f10
test al, al
je 0x535c87
mov ecx, dword [ebp - 0x54]
call fcn.004efcb0
test al, al
jne 0x535e77
mov esi, dword [ebp - 0x4c]
jmp 0x5359d0
cmp esi, 1
je 0x535dd6
cmp byte [ebp - 0x45], 0
lea eax, [ebp - 0x2c]
push eax
je 0x535dc2
call fcn.0052f580
mov ecx, dword [ebp - 0x4c]
add esp, 4
mov dword [edi + 0x54], eax
mov dword [ebp - 0x58], eax
cmp byte [ecx + 0xad], 0
je 0x535ccf
cmp byte [edi + 0x24], 0
je 0x535ccf
push eax
push str.channelNum
call fcn.00431470
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x58]
cmp dword [edi + 0x28], 0
jne 0x535d86
cmp byte [edi + 0x24], 0
je 0x535ce9
mov eax, dword [ecx]
push str.Handling_channel_specific_message_without_m_pHandler.
call dword [eax + 0x18]
push dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x2c]
push dword [ebp - 0x54]
push edi
push eax
push dword [ebp - 0x58]
push esi
call fcn.005314d0
test al, al
je 0x535d74
mov eax, dword [edi + 0x14]
cmp eax, 0xffffffff
je 0x535dcd
cmp eax, dword [ebp - 0x58]
je 0x535dcd
mov esi, dword [ebp - 0x4c]
jmp 0x5359d0
mov eax, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x2c]
push esi
push dword [ebp - 0x54]
push edi
push ecx
mov ecx, eax
call fcn.00533530
test al, al
jne 0x5359d0
mov eax, dword [esi]
mov ecx, esi
push str.rekeyKexDhReply_failed.
call dword [eax + 0x14]
jmp 0x535e77
mov esi, dword [ebp - 0x54]
mov ecx, esi
call fcn.004efd30
mov byte [esi + 0x10], 1
jmp 0x535e77
mov eax, dword [esi]
mov ecx, esi
push str.Aborted_by_app.
call dword [eax + 0x14]
jmp 0x535e77
mov ecx, dword [ebp - 0x4c]
push str.Failed_to_process_channel_message.
mov eax, dword [ecx]
call dword [eax + 0x14]
jmp 0x535e77
push ecx
push dword [ebp - 0x54]
lea ecx, [ebp - 0x2c]
mov dword [edi + 0x34], esi
push edi
push ecx
mov ecx, dword [ebp - 0x50]
push eax
push esi
call fcn.005314d0
mov byte [ebp - 0x45], al
test al, al
jne 0x535e7b
cmp byte [edi + 0x24], al
je 0x535e7b
mov ecx, dword [ebp - 0x4c]
push str.returning_failed_status...
mov eax, dword [ecx]
call dword [eax + 0x14]
jmp 0x535e7b
lea ecx, [edi + 0x38]
mov dword [edi + 0x34], esi
call fcn.00415ef0
mov byte [ebp - 0x45], 1
jmp 0x535e7b
mov esi, dword [ebp - 0x4c]
mov ecx, esi
mov byte [edi + 0x2f], 1
push str.Received_DISCONNECT_message
mov eax, dword [esi]
call dword [eax + 0x18]
mov edi, dword [ebp - 0x50]
push esi
lea eax, [edi + 0x22330]
push eax
lea eax, [edi + 0x2232c]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0052fae0
add esp, 0x10
test al, al
je 0x535e3b
lea eax, [edi + 0x22330]
mov ecx, esi
push eax
push str.DisconnectReason
call fcn.004317e0
push 0x605368
lea ecx, [edi + 0x22330]
call fcn.00414900
push eax
push str.TRAN_Reason:
mov ecx, edi
call fcn.00536320
mov eax, dword [ebp - 0x5c]
lea ecx, [edi + 0x3a4]
push 0
push esi
push eax
push dword [edi + 0x5a4]
call fcn.005278a0
mov eax, dword [ebp - 0x54]
mov byte [eax + 0x13], 1
jmp 0x535e77
mov edi, dword [ebp - 0x54]
mov ecx, edi
call fcn.004efd00
test al, al
jne 0x535e77
push esi
push str.sshReadMessage
mov ecx, edi
call fcn.004efde0
mov byte [ebp - 0x45], 0
lea ecx, [ebp - 0x2c]
call fcn.00411b10
lea ecx, [ebp - 0x44]
call fcn.00420b50
mov al, byte [ebp - 0x45]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005ebe04
mov esp, ebp
pop ebp
ret 0xc