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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6402da
mov eax, dword fs:[0]
push eax
sub esp, 0x1e4
push ebx
push esi
push edi
mov eax, dword [0x703eb0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x34]
xor esi, esi
mov ecx, ebx
mov byte [ebp - 0xd], 0
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x40], esi
mov dword [eax], esi
call fcn.005a7800
mov ecx, dword [ebp + 0x20]
call fcn.00540000
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x18]
mov byte [ecx], 0
mov ecx, dword [ebp + 0x1c]
mov byte [edx], 0
mov byte [eax], 0
mov byte [ecx], 0
mov byte [ebp - 0xe], 0
call sub.KERNEL32.dll_GetTickCount
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x4c], eax
call fcn.005400f0
mov dword [ebp - 4], esi
mov esi, dword [ebp + 0x30]
lea ecx, [ebp - 0x34]
call fcn.00540000
cmp dword [ebp + 0x10], 0
je 0x5a15dc
call sub.KERNEL32.dll_GetTickCount
cmp eax, dword [ebp - 0x4c]
jbe 0x5a15dc
sub eax, dword [ebp - 0x4c]
cmp eax, dword [ebp + 0x10]
ja 0x5a2786
mov edx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0xc]
push edx
push esi
push eax
push ecx
lea edx, [ebp - 0x34]
push edx
mov ecx, edi
call fcn.0059fef0
test al, al
je 0x5a27b5
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
je 0x5a1610
call fcn.0056d4d0
test al, al
jne 0x5a27ac
lea ecx, [ebp - 0x34]
call fcn.0061c880
test eax, eax
je 0x5a2803
lea ecx, [ebp - 0x34]
call fcn.0061c880
test eax, eax
jne 0x5a1633
mov ebx, 0xf423f
jmp 0x5a163e
lea ecx, [ebp - 0x34]
call fcn.00595640
movzx ebx, byte [eax]
push 0x679a04
push ebx
mov dword [ebp - 0x44], ebx
call fcn.0059f830
add esp, 4
push eax
push str.TRAN_
mov ecx, edi
call fcn.0059e2b0
mov eax, dword [ebp + 0x3c]
test al, al
je 0x5a1684
mov eax, dword [ebp - 0x44]
mov ebx, dword [esi]
push eax
call fcn.0059f830
mov edx, dword [ebx + 0x28]
add esp, 4
push eax
push str.mType
mov ecx, esi
call edx
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp + 0x3c]
cmp ebx, 0x5e
jne 0x5a17cc
cmp dword [ebp + 0x14], 0
je 0x5a17b8
mov ecx, dword [ebp + 8]
cmp ecx, 3
je 0x5a16a8
cmp ecx, 0x63
jne 0x5a17b8
lea eax, [ebp - 0x34]
push eax
call fcn.0059f9d0
mov ecx, dword [ebp + 0x14]
add esp, 4
cmp eax, dword [ecx + 0x38]
jne 0x5a17a1
mov ecx, dword [ebp + 0x20]
lea edx, [ebp - 0x34]
push edx
call fcn.005416f0
cmp byte [ebp + 0x3c], 0
mov eax, dword [ebp + 0x24]
mov dword [eax], 0x5e
je 0x5a1796
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
push 0x5e
push str.payloadMsgType
mov ecx, esi
call eax
mov ebx, dword [esi]
lea ecx, [ebp - 0x34]
call fcn.0061c880
mov edx, dword [ebx + 0x2c]
push eax
push str.payloadLen
mov ecx, esi
call edx
lea ecx, [ebp - 0x34]
call fcn.0061c880
cmp eax, 0x7d0
jae 0x5a1733
lea ecx, [ebp - 0x34]
call fcn.0061c880
push eax
lea ecx, [ebp - 0x34]
call fcn.00595640
push eax
push str.payload
mov ecx, esi
call fcn.00561b60
lea ecx, [ebp - 0x34]
call fcn.0061c880
cmp byte [edi + 0x30], 0
mov dword [ebp + 0x30], eax
je 0x5a176a
push str.TRAN_payload_size:
lea ecx, [edi + 8]
call fcn.0053b5d0
mov eax, dword [ebp + 0x30]
push eax
lea ecx, [edi + 8]
call fcn.0053d6f0
push 0x679a04
lea ecx, [edi + 8]
call fcn.0053b5d0
cmp byte [edi + 0x60], 0
je 0x5a1796
push str.TRAN_payload_size:
lea ecx, [edi + 0x38]
call fcn.0053b5d0
mov ecx, dword [ebp + 0x30]
push ecx
lea ecx, [edi + 0x38]
call fcn.0053d6f0
push 0x679a04
lea ecx, [edi + 0x38]
call fcn.0053b5d0
mov edx, dword [ebp + 0x38]
mov byte [edx], 1
jmp 0x5a23a1
mov eax, dword [ebp + 0x3c]
push 2
push eax
push esi
lea ecx, [ebp - 0x34]
push ecx
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
push 1
push eax
push esi
lea edx, [ebp - 0x34]
push edx
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
cmp ebx, 0x5f
jne 0x5a1899
cmp dword [ebp + 0x14], 0
je 0x5a1870
mov ecx, dword [ebp + 8]
cmp ecx, 4
je 0x5a17f1
cmp ecx, 3
je 0x5a17f1
cmp ecx, 0x63
jne 0x5a1870
lea eax, [ebp - 0x34]
push eax
call fcn.0059f9d0
mov ecx, dword [ebp + 0x14]
add esp, 4
cmp eax, dword [ecx + 0x38]
jne 0x5a1847
mov ecx, dword [ebp + 0x20]
lea edx, [ebp - 0x34]
push edx
call fcn.005416f0
cmp byte [ebp - 0xe], 0
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x38]
mov dword [eax], 0x5f
mov byte [ecx], 1
jne 0x5a2760
cmp byte [ebp + 0x3c], 0
je 0x5a2aa6
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Returning_extended_data..._1_
mov ecx, esi
call eax
jmp 0x5a2aa6
mov ebx, dword [ebp + 0x3c]
test bl, bl
je 0x5a185c
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Queueing_extended_data..._2_
mov ecx, esi
call eax
push 4
push ebx
push esi
lea ecx, [ebp - 0x34]
push ecx
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
test al, al
je 0x5a1885
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Queueing_extended_data..._1_
mov ecx, esi
call eax
mov eax, dword [ebp + 0x3c]
push 3
push eax
push esi
lea ecx, [ebp - 0x34]
push ecx
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
cmp ebx, 6
jne 0x5a18d3
cmp dword [ebp + 8], 1
jne 0x5a18c0
mov ecx, dword [ebp + 0x20]
lea edx, [ebp - 0x34]
push edx
call fcn.005416f0
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x38]
mov dword [eax], ebx
mov byte [ecx], 1
jmp 0x5a23a1
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Received_unexpected_SERVICE_ACCEPT_message.
mov ecx, esi
call eax
jmp 0x5a2760
cmp ebx, 0x5b
jne 0x5a192d
lea ecx, [ebp - 0x34]
push ecx
call fcn.0059f9d0
mov ecx, dword [ebp + 0x14]
add esp, 4
test ecx, ecx
je 0x5a1916
cmp dword [ecx + 0x38], eax
jne 0x5a1916
cmp dword [ebp + 8], 5
jne 0x5a2760
mov ecx, dword [ebp + 0x20]
lea edx, [ebp - 0x34]
push edx
call fcn.005416f0
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x38]
mov dword [eax], ebx
mov byte [ecx], 1
jmp 0x5a23a1
mov edx, dword [ebp + 0x3c]
push 5
push edx
push esi
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
cmp ebx, 0x3c
jne 0x5a196c
mov eax, dword [ebp + 8]
cmp eax, 7
je 0x5a1952
cmp eax, 8
je 0x5a1952
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Received_unexpected_SSH2_MSG_USERAUTH_PK_OK_message
mov ecx, esi
call eax
jmp 0x5a2760
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.005416f0
mov edx, dword [ebp + 0x24]
mov dword [edx], 0x3c
jmp 0x5a239b
cmp ebx, 0x5c
jne 0x5a19c6
lea ecx, [ebp - 0x34]
push ecx
call fcn.0059f9d0
mov ecx, dword [ebp + 0x14]
add esp, 4
test ecx, ecx
je 0x5a19af
cmp dword [ecx + 0x38], eax
jne 0x5a19af
cmp dword [ebp + 8], 5
jne 0x5a2760
mov ecx, dword [ebp + 0x20]
lea edx, [ebp - 0x34]
push edx
call fcn.005416f0
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x38]
mov dword [eax], ebx
mov byte [ecx], 1
jmp 0x5a23a1
mov edx, dword [ebp + 0x3c]
push 6
push edx
push esi
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
cmp ebx, 2
je 0x5a2760
cmp ebx, 3
jne 0x5a1a12
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str._SSH__Received_UNIMPLEMENTED_message
mov ecx, esi
call eax
cmp dword [ebp + 8], 1
jne 0x5a2760
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.005416f0
cmp byte [ebp - 0xe], 0
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x38]
mov dword [edx], ebx
mov byte [eax], 1
je 0x5a27ac
jmp 0x5a2760
cmp ebx, 4
jne 0x5a1a2a
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str._SSH__Received_DEBUG_message
mov ecx, esi
call eax
jmp 0x5a2760
cmp ebx, 0x61
jne 0x5a1b2d
cmp dword [ebp + 0x14], 0
je 0x5a1b19
lea ecx, [ebp - 0x34]
push ecx
call fcn.0059f9d0
add esp, 4
cmp byte [ebp + 0x3c], 0
mov ebx, eax
je 0x5a1a98
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Received_CHANNEL_CLOSE_from_server.
mov ecx, esi
call eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x44]
mov edx, dword [esi]
mov edx, dword [edx + 0x2c]
push ecx
push str.serverChannelNum
mov ecx, esi
call edx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x38]
mov eax, dword [esi]
mov eax, dword [eax + 0x2c]
push edx
push str.clientChannelNum
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
push ebx
push str.targetChannelNum
mov ecx, esi
call eax
mov eax, dword [ebp + 0x14]
cmp ebx, dword [eax + 0x38]
jne 0x5a1b12
mov ecx, dword [ebp + 0x1c]
mov byte [eax + 0x99], 1
mov byte [ecx], 1
cmp byte [eax + 0x9a], 0
jne 0x5a1ae2
mov edx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x2c]
push edx
push esi
push ebx
push eax
mov ecx, edi
call fcn.005a12b0
test al, al
je 0x5a27ac
test ebx, ebx
je 0x5a1ae2
mov ecx, ebx
call fcn.0056d4d0
test al, al
jne 0x5a27ac
mov eax, dword [ebp + 8]
cmp eax, 3
je 0x5a1af8
cmp eax, 4
je 0x5a1af8
cmp eax, 0x63
jne 0x5a2760
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.005416f0
mov edx, dword [ebp + 0x24]
mov dword [edx], 0x61
jmp 0x5a239b
push 7
jmp 0x5a1e9f
push 8
push eax
push esi
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
cmp ebx, 0x60
jne 0x5a1bda
cmp dword [ebp + 0x14], 0
je 0x5a1bc6
lea ecx, [ebp - 0x34]
push ecx
call fcn.0059f9d0
mov ecx, dword [ebp + 0x14]
add esp, 4
cmp eax, dword [ecx + 0x38]
jne 0x5a1baf
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov byte [ecx + 0x98], 1
mov byte [edx], 1
cmp eax, 3
je 0x5a1b77
cmp eax, 4
je 0x5a1b77
cmp eax, 0x63
jne 0x5a2760
mov ecx, dword [ebp + 0x20]
lea eax, [ebp - 0x34]
push eax
call fcn.005416f0
cmp byte [ebp - 0xe], 0
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x38]
mov dword [ecx], 0x60
mov byte [edx], 1
je 0x5a2aa6
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Waiting_for_re_key_to_complete.
mov ecx, esi
call edx
jmp 0x5a2760
mov eax, dword [ebp + 0x3c]
push 9
push eax
push esi
lea ecx, [ebp - 0x34]
push ecx
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
push 0xa
push eax
push esi
lea edx, [ebp - 0x34]
push edx
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
cmp ebx, 0x62
jne 0x5a1db6
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Received_CHANNEL_REQUEST_message
mov ecx, esi
call edx
lea ecx, [ebp - 0xa0]
call fcn.0053ba20
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x34]
push edx
mov byte [ebp - 4], 1
call fcn.0059fb90
add esp, 0xc
test al, al
je 0x5a1d94
mov ebx, dword [esi]
lea ecx, [ebp - 0xa0]
call fcn.00595640
push eax
mov eax, dword [ebx + 0x28]
push str.requestType
mov ecx, esi
call eax
push 0x679a04
lea ecx, [ebp - 0xa0]
call fcn.00595640
push eax
push str.TRAN_Request_Type:
mov ecx, edi
call fcn.0059e2b0
mov ebx, dword [ebp - 0x58]
push 0x679a04
push ebx
push str.TRAN_Channel:
mov ecx, edi
call fcn.0059e410
push str.exit_status
lea ecx, [ebp - 0xa0]
call fcn.0053cf30
test al, al
je 0x5a1cfb
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x5a1cd5
cmp ebx, dword [eax + 0x38]
jne 0x5a1cd5
lea ebx, [eax + 0xa0]
push ebx
lea ecx, [ebp - 0xa0]
push ecx
lea edx, [ebp - 0x58]
mov byte [eax + 0x9b], 1
push edx
lea eax, [ebp - 0x34]
push eax
call fcn.0059fc00
mov eax, dword [ebx]
mov edx, dword [esi]
mov edx, dword [edx + 0x2c]
add esp, 0x10
push eax
push str.exitStatusCode
mov ecx, esi
call edx
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0
call fcn.0053bcf0
jmp 0x5a2760
mov eax, dword [ebp + 0x3c]
push 0xb
push eax
push esi
lea ecx, [ebp - 0x34]
push ecx
mov ecx, edi
call fcn.0059fca0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0
call fcn.0053bcf0
jmp 0x5a2760
push str.keepalive_openssh.com
lea ecx, [ebp - 0xa0]
call fcn.0053ce30
test al, al
je 0x5a1d70
lea ecx, [ebp - 0x78]
call fcn.005400f0
mov edx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x2c]
push edx
push esi
push ebx
lea eax, [ebp - 0x78]
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.005a0d40
test al, al
je 0x5a281a
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x14]
push ecx
push esi
push ebx
push edx
mov ecx, edi
call fcn.005a0e40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x78]
test al, al
je 0x5a2821
call fcn.00540840
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0
call fcn.0053bcf0
jmp 0x5a2760
push str.exit_signal
lea ecx, [ebp - 0xa0]
call fcn.0053cf30
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0
call fcn.0053bcf0
jmp 0x5a2760
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Failed_to_parse_CHANNEL_REQUEST
mov ecx, esi
call edx
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0
call fcn.0053bcf0
jmp 0x5a2760
cmp ebx, 0x63
jne 0x5a1e60
lea eax, [ebp - 0x34]
push eax
call fcn.0059f9d0
mov ecx, dword [ebp + 0x14]
add esp, 4
test ecx, ecx
je 0x5a1df7
cmp dword [ecx + 0x38], eax
jne 0x5a1df7
cmp dword [ebp + 8], 6
jne 0x5a2760
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.005416f0
mov edx, dword [ebp + 0x24]
mov dword [edx], ebx
jmp 0x5a239b
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x2c]
push str.requestedChannelNum
mov ecx, esi
call eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [esi]
mov edx, dword [edx + 0x2c]
push ecx
push str.clientChannelNum
mov ecx, esi
call edx
mov ebx, dword [esi]
lea ecx, [ebp - 0x34]
call fcn.0061c880
push eax
mov eax, dword [ebx + 0x2c]
push str.payloadLen
mov ecx, esi
call eax
lea ecx, [ebp - 0x34]
call fcn.0061c880
cmp eax, 0x100
jbe 0x5a1e46
mov eax, 0x100
push eax
lea ecx, [ebp - 0x34]
call fcn.00595640
push eax
push str.payloadBytes
mov ecx, esi
call fcn.00561b60
push 0xc
jmp 0x5a1e9f
cmp ebx, 0x64
jne 0x5a1eb4
lea eax, [ebp - 0x34]
push eax
call fcn.0059f9d0
mov ecx, dword [ebp + 0x14]
add esp, 4
test ecx, ecx
je 0x5a1e9d
cmp dword [ecx + 0x38], eax
jne 0x5a1e9d
cmp dword [ebp + 8], 6
jne 0x5a2760
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.005416f0
mov edx, dword [ebp + 0x24]
mov dword [edx], ebx
jmp 0x5a239b
push 0xd
mov ecx, dword [ebp + 0x3c]
push ecx
push esi
lea edx, [ebp - 0x34]
push edx
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
cmp ebx, 1
je 0x5a283e
cmp ebx, 0x1f
jne 0x5a1fd7
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Received_KEX_DH_GEX_GROUP
mov ecx, esi
call edx
lea eax, [ebp + 0x33]
push eax
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x34]
push edx
mov dword [ebp - 0x14], 0
call fcn.0059d710
add esp, 0xc
test al, al
je 0x5a28c8
push esi
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x34]
push ecx
call fcn.0059d790
add esp, 0xc
test eax, eax
je 0x5a28c8
push eax
lea ecx, [edi + 0x1560]
call fcn.005e4110
push esi
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x34]
push eax
call fcn.0059d790
add esp, 0xc
test eax, eax
je 0x5a28c8
push eax
lea ecx, [edi + 0x1560]
call fcn.005e3b70
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x5a28df
cmp eax, 0x2710
ja 0x5a28df
mov ecx, eax
lea edx, [ecx + ecx]
push edx
lea ecx, [edi + 0x1560]
call fcn.005e3d20
lea ecx, [ebp - 0x78]
call fcn.005400f0
mov eax, dword [ebp - 0x54]
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 3
call fcn.00540bb0
mov edx, dword [edi + 0x1578]
lea ecx, [ebp - 0x78]
push ecx
push edx
call fcn.0059d410
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x2c]
add esp, 8
push eax
push esi
push ecx
lea edx, [ebp - 0x78]
push edx
push str.KEXDH_INIT
mov ecx, edi
call fcn.005a06b0
test al, al
jne 0x5a2754
push str.Error_sending_e_to_server
mov ecx, esi
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
call eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 0xd], 0
mov byte [ebp - 4], 0
call fcn.00540840
jmp 0x5a2aaa
cmp ebx, 0x14
jne 0x5a2119
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Received_key_exchange_init_message
mov ecx, esi
call eax
cmp dword [ebp + 8], 2
je 0x5a2010
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x2c]
push ecx
push esi
push edx
mov ecx, edi
mov byte [ebp - 0xe], 1
call fcn.005a0c80
test al, al
je 0x5a27ac
push esi
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.0059e470
test al, al
je 0x5a27ac
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 0x3c]
push edx
mov ecx, edi
call fcn.0059ee60
mov ecx, dword [ebp - 0x3c]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ecx
push str.numBits
mov ecx, esi
call edx
mov ebx, dword [ebp - 0x48]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ebx
push str.pbits
mov ecx, esi
call edx
mov eax, dword [edi + 0x488]
cmp eax, 1
jne 0x5a2078
push 2
lea ecx, [edi + 0x1560]
mov dword [ebp - 0x40], 0x1f
call fcn.005e3c80
jmp 0x5a20a7
cmp eax, 0xe
jne 0x5a2092
push eax
lea ecx, [edi + 0x1560]
mov dword [ebp - 0x40], 0x1f
call fcn.005e3c80
jmp 0x5a20a7
cmp eax, 0xa0
je 0x5a20a0
cmp eax, 0x100
jne 0x5a20a7
mov dword [ebp - 0x40], 0x21
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x54], 0x20
call fcn.005400f0
push 0x1e
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 4
call fcn.00540bb0
lea eax, [ebp - 0x78]
push eax
push ebx
call fcn.0059d3e0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
add esp, 8
push str.Sending_KEX_DH_GEX_REQUEST...
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
push ebx
push str.kex_pbits
mov ecx, esi
call eax
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x2c]
push ecx
push esi
push edx
lea eax, [ebp - 0x78]
push eax
push str.KEX_DH_GEX_REQUEST
mov ecx, edi
call fcn.005a06b0
test al, al
jne 0x5a2754
push str.Error_sending_KEX_DH_GEX_REQUEST_message_to_server
jmp 0x5a1fb9
cmp ebx, 0x21
je 0x5a23b0
cmp ebx, 0x15
jne 0x5a219f
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str._SSH__Received_newkeys_message
mov ecx, esi
call edx
push 0x679a04
push str.SSH_Key_Exchange_Success.
push str.TRAN
mov ecx, edi
call fcn.0059e2b0
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.SSH_Key_Exchange_Success.
mov ecx, esi
call edx
push esi
mov ecx, edi
call fcn.0059f3d0
mov ebx, dword [ebp + 8]
mov byte [ebp - 0xe], 0
mov ecx, esi
cmp ebx, 2
je 0x5a2908
mov eax, dword [ebp + 0x38]
cmp byte [eax], 0
jne 0x5a2934
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Return_condition_still_not_satisfied...
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
push ebx
push str.returnCondition
mov ecx, esi
call eax
jmp 0x5a2760
cmp ebx, 0x5d
jne 0x5a222e
xor eax, eax
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp + 0x30]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x50], eax
push edx
lea eax, [ebp - 0x34]
push eax
mov dword [ebp + 0x30], 1
call fcn.0059d6a0
lea ecx, [ebp - 0x50]
push ecx
lea edx, [ebp + 0x30]
mov bl, al
push edx
lea eax, [ebp - 0x34]
push eax
call fcn.0059d6a0
add esp, 0x18
test bl, bl
je 0x5a220f
test al, al
je 0x5a220f
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x5a220f
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax + 0x38]
jne 0x5a21fd
mov edx, dword [ebp - 0x50]
add dword [eax + 0x54], edx
jmp 0x5a220f
mov eax, dword [ebp + 0x3c]
push 0xe
push eax
push esi
lea ecx, [ebp - 0x34]
push ecx
mov ecx, edi
call fcn.0059fca0
cmp dword [ebp + 8], 9
jne 0x5a2760
cmp byte [ebp - 0xe], 0
mov edx, dword [ebp + 0x38]
mov byte [edx], 1
je 0x5a2aa6
jmp 0x5a2760
cmp ebx, 0x35
jne 0x5a227f
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str._SSH__Received_USERAUTH_BANNER
mov ecx, esi
call edx
lea ecx, [ebp - 0x148]
call fcn.0053e160
push esi
lea eax, [ebp - 0x148]
push eax
lea ecx, [edi + 0x288]
push ecx
lea edx, [ebp - 0x34]
push edx
mov byte [ebp - 4], 8
call fcn.005a0f10
add esp, 0x10
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 0
call fcn.0053e210
jmp 0x5a2760
cmp ebx, 0x50
jne 0x5a235b
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str._SSH__Received_GLOBAL_REQUEST
mov ecx, esi
call edx
lea ecx, [ebp - 0x1f0]
call fcn.0053e160
push esi
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0x1f0]
push ecx
lea edx, [ebp - 0x34]
push edx
mov byte [ebp - 4], 9
call fcn.005a0fc0
add esp, 0x10
test al, al
je 0x5a2347
mov ebx, dword [esi]
lea ecx, [ebp - 0x1f0]
call fcn.0053ed40
push eax
mov eax, dword [ebx + 0x28]
push str.GlobalRequestName
mov ecx, esi
call eax
mov bl, byte [ebp - 0x35]
mov edx, dword [esi]
mov edx, dword [edx + 0x2c]
movzx eax, bl
push eax
push str.WantReply
mov ecx, esi
call edx
test bl, bl
je 0x5a2347
lea ecx, [ebp - 0xc0]
call fcn.005400f0
push 0x52
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0xa
call fcn.00540bb0
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x2c]
push eax
push esi
push ecx
lea edx, [ebp - 0xc0]
push edx
push str.SSH2_MSG_REQUEST_FAILURE
mov ecx, edi
call fcn.005a06b0
test al, al
je 0x5a2945
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 9
call fcn.00540840
lea ecx, [ebp - 0x1f0]
mov byte [ebp - 4], 0
call fcn.0053e210
jmp 0x5a2760
cmp ebx, 0x33
je 0x5a2369
cmp ebx, 0x34
jne 0x5a297a
mov ecx, dword [ebp + 8]
cmp ecx, 7
je 0x5a238a
cmp ecx, 8
je 0x5a238a
push 0xf
push eax
push esi
lea eax, [ebp - 0x34]
push eax
mov ecx, edi
call fcn.0059fca0
jmp 0x5a2760
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.005416f0
mov edx, dword [ebp + 0x24]
mov dword [edx], ebx
mov eax, dword [ebp + 0x38]
mov byte [eax], 1
cmp byte [ebp - 0xe], 0
je 0x5a2aa6
jmp 0x5a2760
lea ecx, [ebp + 0x33]
push ecx
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x14], 0
call fcn.0059d710
lea ebx, [edi + 0x3c0]
add esp, 0xc
mov ecx, ebx
mov byte [ebp + 0x33], al
call fcn.00540000
cmp byte [ebp + 0x33], 0
je 0x5a2435
push esi
push ebx
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x34]
push edx
call fcn.0059d2c0
add esp, 0x10
mov byte [ebp + 0x33], al
test al, al
je 0x5a2435
mov eax, dword [edi + 0x400]
test eax, eax
je 0x5a2417
push eax
call fcn.00419f98
add esp, 4
mov dword [edi + 0x400], 0
push esi
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x34]
push ecx
call fcn.0059d790
add esp, 0xc
mov dword [edi + 0x400], eax
test eax, eax
jne 0x5a2435
mov byte [ebp + 0x33], al
lea ebx, [edi + 0x3e0]
mov ecx, ebx
call fcn.00540000
cmp byte [ebp + 0x33], 0
je 0x5a29a5
push esi
push ebx
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x34]
push eax
call fcn.0059d2c0
add esp, 0x10
test al, al
je 0x5a29a5
mov ecx, dword [edi + 0x400]
push ecx
lea ecx, [edi + 0x1560]
call fcn.005e4000
mov edx, dword [ebp + 0x3c]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
push edx
push esi
push eax
push ecx
mov ecx, edi
call fcn.0059eef0
cmp dword [edi + 0x48c], 2
jne 0x5a25bf
lea ecx, [ebp - 0x12c]
call fcn.0059f2d0
mov edx, dword [ebp + 0x3c]
push edx
push esi
lea eax, [ebp - 0x12c]
push eax
lea eax, [edi + 0x3c0]
push eax
mov byte [ebp - 4], 5
call fcn.0059cf10
mov edx, dword [esi]
add esp, 0x10
mov ecx, esi
test al, al
je 0x5a29bc
mov eax, dword [edx + 0x14]
push str.DSS_host_key_parsed_successfully.
call eax
mov edx, dword [ebp + 0x3c]
push edx
lea ecx, [edi + 0x438]
push esi
call fcn.0061c880
push eax
lea ecx, [edi + 0x438]
call fcn.00595640
push eax
mov ecx, ebx
call fcn.0061c880
push eax
mov ecx, ebx
call fcn.00595640
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.0059cbe0
add esp, 0x1c
test al, al
je 0x5a29de
cmp byte [ebp + 0x3c], 0
je 0x5a2595
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.DSS_signature_is_valid.
mov ecx, esi
call eax
lea ecx, [edi + 0x3c0]
call fcn.0061c880
push eax
lea ecx, [edi + 0x3c0]
call fcn.00595640
push eax
push str.dss_key
mov ecx, esi
call fcn.00561d20
mov ecx, ebx
call fcn.0061c880
push eax
mov ecx, ebx
call fcn.00595640
push eax
push str.sigH
mov ecx, esi
call fcn.00561d20
lea ecx, [edi + 0x438]
call fcn.0061c880
push eax
lea ecx, [edi + 0x438]
call fcn.00595640
push eax
push str.exchangeHash
mov ecx, esi
call fcn.00561d20
push 0x679a04
push str.DSS_signature_verified
push str.TRAN
mov ecx, edi
call fcn.0059e2b0
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0
call fcn.0059f350
jmp 0x5a26f9
lea ecx, [ebp - 0x168]
call fcn.005d9550
push esi
lea ecx, [ebp - 0x168]
push ecx
lea eax, [edi + 0x3c0]
push eax
mov byte [ebp - 4], 6
call fcn.0059d110
mov edx, dword [esi]
add esp, 0xc
mov ecx, esi
test al, al
je 0x5a2a58
mov eax, dword [edx + 0x14]
push str.RSA_host_key_parsed_successfully.
call eax
lea ecx, [edi + 0x408]
call fcn.0053aff0
lea eax, [edi + 0x408]
push eax
lea ecx, [ebp - 0x168]
push ecx
call fcn.005d96a0
add esp, 8
lea ecx, [edi + 0x438]
push esi
call fcn.0061c880
push eax
lea ecx, [edi + 0x438]
call fcn.00595640
push eax
mov ecx, ebx
call fcn.0061c880
push eax
mov ecx, ebx
call fcn.00595640
push eax
lea edx, [ebp - 0x168]
push edx
call fcn.0059c7f0
add esp, 0x18
test al, al
je 0x5a2a77
cmp byte [ebp + 0x3c], 0
je 0x5a26d4
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.RSA_signature_is_valid.
mov ecx, esi
call edx
lea ecx, [edi + 0x3c0]
call fcn.0061c880
push eax
lea ecx, [edi + 0x3c0]
call fcn.00595640
push eax
push str.rsa_key
mov ecx, esi
call fcn.00561d20
mov ecx, ebx
call fcn.0061c880
push eax
mov ecx, ebx
call fcn.00595640
push eax
push str.sigH
mov ecx, esi
call fcn.00561d20
lea ecx, [edi + 0x438]
call fcn.0061c880
push eax
lea ecx, [edi + 0x438]
call fcn.00595640
push eax
push str.exchangeHash
mov ecx, esi
call fcn.00561d20
push 0x679a04
push str.RSA_signature_verified
push str.TRAN
mov ecx, edi
call fcn.0059e2b0
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0
call fcn.0058f020
push esi
mov ecx, edi
call fcn.005a0bc0
lea ecx, [ebp - 0x78]
call fcn.005400f0
push 0x15
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 7
call fcn.00540bb0
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str._SSH__Sending_newkeys_to_server...
mov ecx, esi
call edx
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x2c]
push eax
push esi
push ecx
lea edx, [ebp - 0x78]
push edx
push str.NEWKEYS
mov ecx, edi
call fcn.005a06b0
mov ecx, esi
test al, al
je 0x5a2a82
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Expecting_newkeys_from_server...
call edx
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0
call fcn.00540840
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
je 0x5a2774
call fcn.0056d4d0
test al, al
jne 0x5a2aaa
cmp dword [ebp + 8], 0x63
je 0x5a2a8c
mov ebx, dword [ebp + 0x34]
jmp 0x5a15b8
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.ReadTimeoutMs_exceeded.
mov ecx, esi
call edx
mov ecx, dword [ebp + 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ecx
push str.ReadTimeoutMs
mov ecx, esi
call edx
mov dword [ebx], 0x100
mov byte [ebp - 0xd], 0
jmp 0x5a2aaa
movzx eax, byte [edi + 0x245]
mov byte [ebx + 2], al
mov cl, byte [edi + 0x247]
mov byte [ebx], cl
mov dl, byte [edi + 0x246]
mov byte [ebx + 3], dl
movzx eax, byte [edi + 0x244]
mov byte [ebx + 1], al
cmp byte [edi + 0x244], 0
jne 0x5a27fa
cmp byte [edi + 0x245], 0
jne 0x5a27fa
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Failed_to_read_packet_from_SSH_server.
mov ecx, esi
call eax
mov byte [ebp - 0xd], 0
jmp 0x5a2aaa
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Payload_is_empty_
mov ecx, esi
call eax
mov byte [ebp - 0xd], 0
jmp 0x5a2aaa
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x78]
mov byte [ebp - 0xd], 1
call fcn.00540840
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0
call fcn.0053bcf0
jmp 0x5a2aaa
mov ecx, dword [ebp + 0x28]
mov byte [ecx], 1
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Received_DISCONNECT_message
mov ecx, esi
call eax
push esi
lea eax, [edi + 0x1588]
push eax
lea ecx, [edi + 0x1584]
push ecx
lea edx, [ebp - 0x34]
push edx
call fcn.0059fd90
add esp, 0x10
test al, al
je 0x5a28a8
mov ebx, dword [esi]
lea ecx, [edi + 0x1588]
call fcn.00595640
push eax
mov eax, dword [ebx + 0x28]
push str.DisconnectReason
mov ecx, esi
call eax
push 0x679a04
lea ecx, [edi + 0x1588]
call fcn.00595640
push eax
push str.TRAN_Reason:
mov ecx, edi
call fcn.0059e2b0
mov ecx, dword [ebp + 0x34]
push esi
mov byte [ecx], 1
push 0x782
lea ecx, [edi + 0x88]
call fcn.005a64c0
mov byte [ebp - 0xd], 0
jmp 0x5a2aaa
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Failed_to_parse_KEX_DH_GEX_GROUP.
mov ecx, esi
call eax
mov byte [ebp - 0xd], 0
jmp 0x5a2aaa
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Invalid_number_of_bits_for_e.
mov ecx, esi
call eax
mov eax, dword [ebp - 0x3c]
mov edx, dword [esi]
mov edx, dword [edx + 0x2c]
push eax
push str.kex_numBits
mov ecx, esi
call edx
mov byte [ebp - 0xd], 0
jmp 0x5a2aaa
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Got_the_REKEY_we_were_waiting_for...
call edx
mov ecx, dword [ebp + 0x20]
lea eax, [ebp - 0x34]
push eax
call fcn.005416f0
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x38]
mov dword [ecx], 0x15
mov byte [edx], 1
jmp 0x5a2aa6
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Return_condition_previously_satisfied__got_the_REKEY_we_were_waiting_for...
call edx
jmp 0x5a2aa6
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Error_sending_SSH2_MSG_REQUEST_FAILURE_message_to_server
mov ecx, esi
call edx
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0xd], 0
mov byte [ebp - 4], 9
call fcn.00540840
lea ecx, [ebp - 0x1f0]
mov byte [ebp - 4], 0
call fcn.0053e210
jmp 0x5a2aaa
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Received_unexpected_SSH_message
mov ecx, esi
call edx
mov edi, dword [esi]
push ebx
call fcn.0059f830
add esp, 4
push eax
mov eax, dword [edi + 0x28]
push str.msgType
mov ecx, esi
call eax
jmp 0x5a2aa6
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Failed_to_parse_server_host_key.
mov ecx, esi
call eax
mov byte [ebp - 0xd], 0
jmp 0x5a2aaa
push str.Failed_to_parse_DSS_host_key
mov eax, dword [edx + 0x10]
call eax
lea ecx, [ebp - 0x12c]
mov byte [ebp - 0xd], 0
mov byte [ebp - 4], 0
call fcn.0059f350
jmp 0x5a2aaa
lea ecx, [edi + 0x3c0]
call fcn.0061c880
push eax
lea ecx, [edi + 0x3c0]
call fcn.00595640
push eax
push str.dss_key
mov ecx, esi
call fcn.00561d20
lea ecx, [edi + 0x3e0]
call fcn.0061c880
push eax
lea ecx, [edi + 0x3e0]
call fcn.00595640
push eax
push str.sigH
mov ecx, esi
call fcn.00561d20
lea ecx, [edi + 0x438]
call fcn.0061c880
push eax
lea ecx, [edi + 0x438]
call fcn.00595640
push eax
push str.exchangeHash
mov ecx, esi
call fcn.00561d20
mov edx, dword [esi]
push str.DSS_signature_verification_failure.__2_
mov ecx, esi
jmp 0x5a29c1
push str.Failed_to_parse_RSA_host_key
mov eax, dword [edx + 0x10]
call eax
lea ecx, [ebp - 0x168]
mov byte [ebp - 0xd], 0
mov byte [ebp - 4], 0
call fcn.0058f020
jmp 0x5a2aaa
mov edx, dword [esi]
push str.RSA_signature_verification_failure.
mov ecx, esi
jmp 0x5a2a5d
push str.Error_sending_newkeys_to_server
jmp 0x5a1fbb
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.005416f0
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x38]
mov dword [eax], edx
mov byte [ecx], 1
mov byte [ebp - 0xd], 1
lea ecx, [ebp - 0x34]
mov dword [ebp - 4], 0xffffffff
call fcn.00540840
mov al, byte [ebp - 0xd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x38