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

Disassembly:
push 0xffffffffffffffff
push 0x50c169
mov eax, dword fs:[0]
push eax
sub esp, 0x1e4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5894dc]
xor eax, esp
push eax
lea eax, [esp + 0x1f8]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [esp + 0x224]
mov ebp, dword [esp + 0x234]
xor esi, esi
mov ecx, ebp
mov byte [esp + 0x14], 0
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], esi
mov dword [eax], esi
call fcn.00459cd0
mov ecx, dword [esp + 0x220]
call fcn.00404150
mov ecx, dword [esp + 0x238]
mov edx, dword [esp + 0x228]
mov eax, dword [esp + 0x218]
mov byte [ecx], 0
mov ecx, dword [esp + 0x21c]
mov byte [edx], 0
mov byte [eax], 0
mov byte [ecx], 0
mov byte [esp + 0x15], 0
call sub.KERNEL32.dll_GetTickCount
lea ecx, [esp + 0x1c]
mov dword [esp + 0x7c], eax
call fcn.00404230
mov dword [esp + 0x200], esi
mov esi, dword [esp + 0x230]
mov ebx, dword [esp + 0x210]
lea ecx, [esp + 0x1c]
call fcn.00404150
test ebx, ebx
je 0x4a87c1
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [esp + 0x7c]
cmp eax, ecx
jbe 0x4a87c1
sub eax, ecx
cmp eax, ebx
ja 0x4a9b58
mov ebx, dword [esp + 0x23c]
mov edx, dword [esp + 0x22c]
mov eax, dword [esp + 0x20c]
push ebx
push esi
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call fcn.004a6f90
test al, al
je 0x4a9b8f
mov ecx, dword [esp + 0x22c]
test ecx, ecx
je 0x4a8806
call fcn.0044e700
test al, al
jne 0x4a9b85
lea ecx, [esp + 0x1c]
call fcn.0046fb70
test eax, eax
je 0x4a9bdf
lea ecx, [esp + 0x1c]
call fcn.0046fb70
test eax, eax
jne 0x4a882b
mov ebp, 0xf423f
jmp 0x4a8837
lea ecx, [esp + 0x1c]
call fcn.004e81e0
movzx ebp, byte [eax]
push 0x510770
push ebp
mov dword [esp + 0x4c], ebp
call fcn.004a6650
add esp, 4
push eax
push str.TRAN_
mov ecx, edi
call fcn.004a51f0
test bl, bl
je 0x4a887d
mov edx, dword [esp + 0x44]
mov ebp, dword [esi]
push edx
add ebp, 0x28
call fcn.004a6650
add esp, 4
push eax
mov eax, dword [ebp]
push str.mType
mov ecx, esi
call eax
mov ebp, dword [esp + 0x44]
cmp ebp, 0x5e
jne 0x4a8997
cmp dword [esp + 0x214], 0
je 0x4a8982
mov eax, dword [esp + 0x208]
cmp eax, 3
je 0x4a88a9
cmp eax, 0x63
jne 0x4a8982
lea ecx, [esp + 0x1c]
push ecx
call fcn.004a67f0
mov edx, dword [esp + 0x218]
add esp, 4
cmp eax, dword [edx + 0x38]
jne 0x4a896d
mov ecx, dword [esp + 0x220]
lea eax, [esp + 0x1c]
push eax
call fcn.004058a0
test bl, bl
mov ecx, dword [esp + 0x224]
mov dword [ecx], 0x5e
je 0x4a895e
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
push 0x5e
push str.payloadMsgType
mov ecx, esi
call eax
mov ebp, dword [esi]
lea ecx, [esp + 0x1c]
add ebp, 0x2c
call fcn.0046fb70
mov edx, dword [ebp]
push eax
push str.payloadLen
mov ecx, esi
call edx
lea ecx, [esp + 0x1c]
call fcn.0046fb70
cmp eax, 0x7d0
jae 0x4a8943
lea ecx, [esp + 0x1c]
call fcn.0046fb70
push eax
lea ecx, [esp + 0x20]
call fcn.004e81e0
push eax
push str.payload
mov ecx, esi
call fcn.00424300
push 0x510770
lea ecx, [esp + 0x20]
call fcn.0046fb70
push eax
push str.TRAN_payload_size:
mov ecx, edi
call fcn.004a5330
mov eax, dword [esp + 0x238]
mov byte [eax], 1
jmp 0x4a973f
push 2
push ebx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
push 1
push ebx
push esi
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
cmp ebp, 0x5f
jne 0x4a8a7d
cmp dword [esp + 0x214], 0
je 0x4a8a56
mov eax, dword [esp + 0x208]
cmp eax, 4
je 0x4a89c8
cmp eax, 3
je 0x4a89c8
cmp eax, 0x63
jne 0x4a8a56
lea eax, [esp + 0x1c]
push eax
call fcn.004a67f0
mov ecx, dword [esp + 0x218]
add esp, 4
cmp eax, dword [ecx + 0x38]
jne 0x4a8a2f
mov ecx, dword [esp + 0x220]
lea edx, [esp + 0x1c]
push edx
call fcn.004058a0
cmp byte [esp + 0x15], 0
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x238]
mov dword [eax], 0x5f
mov byte [ecx], 1
jne 0x4a9b26
test bl, bl
je 0x4a9ec6
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Returning_extended_data..._1_
mov ecx, esi
call eax
jmp 0x4a9ec6
test bl, bl
je 0x4a8a41
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, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
test bl, bl
je 0x4a8a68
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Queueing_extended_data..._1_
mov ecx, esi
call eax
push 3
push ebx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
cmp ebp, 6
jne 0x4a8ac8
cmp dword [esp + 0x208], 1
jne 0x4a8ab5
mov ecx, dword [esp + 0x220]
lea edx, [esp + 0x1c]
push edx
call fcn.004058a0
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x238]
mov dword [eax], ebp
mov byte [ecx], 1
jmp 0x4a973f
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Received_unexpected_SERVICE_ACCEPT_message.
mov ecx, esi
call eax
jmp 0x4a9b26
cmp ebp, 0x5b
jne 0x4a8b36
lea ecx, [esp + 0x1c]
push ecx
call fcn.004a67f0
mov ecx, dword [esp + 0x218]
add esp, 4
test ecx, ecx
je 0x4a8b21
cmp dword [ecx + 0x38], eax
jne 0x4a8b21
cmp dword [esp + 0x208], 5
jne 0x4a9b26
mov ecx, dword [esp + 0x220]
lea edx, [esp + 0x1c]
push edx
call fcn.004058a0
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x238]
mov dword [eax], ebp
mov byte [ecx], 1
jmp 0x4a973f
push 5
push ebx
push esi
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
cmp ebp, 0x3c
jne 0x4a8b82
mov eax, dword [esp + 0x208]
cmp eax, 7
je 0x4a8b5f
cmp eax, 8
je 0x4a8b5f
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Received_unexpected_SSH2_MSG_USERAUTH_PK_OK_message
mov ecx, esi
call edx
jmp 0x4a9b26
mov ecx, dword [esp + 0x220]
lea eax, [esp + 0x1c]
push eax
call fcn.004058a0
mov ecx, dword [esp + 0x224]
mov dword [ecx], 0x3c
jmp 0x4a9735
cmp ebp, 0x5c
jne 0x4a8bf0
lea eax, [esp + 0x1c]
push eax
call fcn.004a67f0
mov ecx, dword [esp + 0x218]
add esp, 4
test ecx, ecx
je 0x4a8bdb
cmp dword [ecx + 0x38], eax
jne 0x4a8bdb
cmp dword [esp + 0x208], 5
jne 0x4a9b26
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x224]
call fcn.004058a0
mov edx, dword [esp + 0x224]
mov eax, dword [esp + 0x238]
mov dword [edx], ebp
mov byte [eax], 1
jmp 0x4a973f
push 6
push ebx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
cmp ebp, 2
je 0x4a9b26
cmp ebp, 3
jne 0x4a8c4e
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str._SSH__Received_UNIMPLEMENTED_message
mov ecx, esi
call eax
cmp dword [esp + 0x208], 1
jne 0x4a9b26
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x224]
call fcn.004058a0
cmp byte [esp + 0x15], 0
mov edx, dword [esp + 0x224]
mov eax, dword [esp + 0x238]
mov dword [edx], ebp
mov byte [eax], 1
je 0x4a9b85
jmp 0x4a9b26
cmp ebp, 4
jne 0x4a8c66
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str._SSH__Received_DEBUG_message
mov ecx, esi
call eax
jmp 0x4a9b26
cmp ebp, 0x61
jne 0x4a8d9b
cmp dword [esp + 0x214], 0
lea ecx, [esp + 0x1c]
je 0x4a8d8a
push ecx
call fcn.004a67f0
add esp, 4
test bl, bl
mov ebp, eax
je 0x4a8cdf
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Received_CHANNEL_CLOSE_from_server.
mov ecx, esi
call eax
mov eax, dword [esp + 0x214]
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 [esp + 0x214]
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 ebp
push str.targetChannelNum
mov ecx, esi
call eax
mov eax, dword [esp + 0x214]
cmp ebp, dword [eax + 0x38]
jne 0x4a8d75
mov ecx, dword [esp + 0x21c]
mov byte [eax + 0x99], 1
mov byte [ecx], 1
cmp byte [eax + 0x9a], 0
jne 0x4a8d38
push ebx
mov ebx, dword [esp + 0x230]
push esi
push ebx
mov edx, eax
push edx
mov ecx, edi
call fcn.004a84b0
test al, al
je 0x4a9b85
test ebx, ebx
je 0x4a8d38
mov ecx, ebx
call fcn.0044e700
test al, al
jne 0x4a9b85
mov eax, dword [esp + 0x208]
cmp eax, 3
je 0x4a8d52
cmp eax, 4
je 0x4a8d52
cmp eax, 0x63
jne 0x4a9b26
mov ecx, dword [esp + 0x220]
lea eax, [esp + 0x1c]
push eax
call fcn.004058a0
mov ecx, dword [esp + 0x224]
mov dword [ecx], 0x61
jmp 0x4a9735
push 7
push ebx
push esi
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
push 8
push ebx
push esi
push ecx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
cmp ebp, 0x60
jne 0x4a8e62
cmp dword [esp + 0x214], 0
lea edx, [esp + 0x1c]
je 0x4a8e51
push edx
call fcn.004a67f0
mov ecx, dword [esp + 0x218]
add esp, 4
cmp eax, dword [ecx + 0x38]
jne 0x4a8e3c
mov eax, dword [esp + 0x218]
mov byte [ecx + 0x98], 1
mov byte [eax], 1
mov eax, dword [esp + 0x208]
cmp eax, 3
je 0x4a8df6
cmp eax, 4
je 0x4a8df6
cmp eax, 0x63
jne 0x4a9b26
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x224]
call fcn.004058a0
cmp byte [esp + 0x15], 0
mov edx, dword [esp + 0x224]
mov eax, dword [esp + 0x238]
mov dword [edx], 0x60
mov byte [eax], 1
je 0x4a9ec6
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Waiting_for_re_key_to_complete.
mov ecx, esi
call eax
jmp 0x4a9b26
push 9
push ebx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
push 0xa
push ebx
push esi
push edx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
cmp ebp, 0x62
jne 0x4a907e
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Received_CHANNEL_REQUEST_message
mov ecx, esi
call edx
lea ecx, [esp + 0x80]
call fcn.00408020
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0x20c], 1
call fcn.004a69a0
add esp, 0xc
test al, al
je 0x4a9057
mov ebp, dword [esi]
lea ecx, [esp + 0x80]
add ebp, 0x28
call fcn.004e81e0
push eax
mov eax, dword [ebp]
push str.requestType
mov ecx, esi
call eax
push 0x510770
lea ecx, [esp + 0x84]
call fcn.004e81e0
push eax
push str.TRAN_Request_Type:
mov ecx, edi
call fcn.004a51f0
mov ebp, dword [esp + 0x4c]
push 0x510770
push ebp
push str.TRAN_Channel:
mov ecx, edi
call fcn.004a5330
push str.exit_status
lea ecx, [esp + 0x84]
call fcn.004095a0
test al, al
je 0x4a8fa5
mov eax, dword [esp + 0x214]
test eax, eax
je 0x4a8f7c
cmp ebp, dword [eax + 0x38]
jne 0x4a8f7c
lea ebx, [eax + 0xa0]
push ebx
lea ecx, [esp + 0x84]
push ecx
lea edx, [esp + 0x54]
mov byte [eax + 0x9b], 1
push edx
lea eax, [esp + 0x28]
push eax
call fcn.004a6a20
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, [esp + 0x80]
mov byte [esp + 0x200], 0
call fcn.00408310
jmp 0x4a9b26
push 0xb
push ebx
push esi
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.004a6ad0
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0
call fcn.00408310
jmp 0x4a9b26
push str.keepalive_openssh.com
lea ecx, [esp + 0x84]
call fcn.004094b0
test al, al
je 0x4a902d
lea ecx, [esp + 0x5c]
call fcn.00404230
mov ebp, dword [esp + 0x22c]
push ebx
push esi
push ebp
lea ecx, [esp + 0x68]
push ecx
mov ecx, edi
mov byte [esp + 0x210], 2
call fcn.004a7f50
test al, al
je 0x4a9bf7
mov edx, dword [esp + 0x214]
push ebx
push esi
push ebp
push edx
mov ecx, edi
call fcn.004a8060
test al, al
mov byte [esp + 0x200], 1
lea ecx, [esp + 0x5c]
je 0x4a9c03
call fcn.00404a00
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0
call fcn.00408310
jmp 0x4a9b26
push str.exit_signal
lea ecx, [esp + 0x84]
call fcn.004095a0
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0
call fcn.00408310
jmp 0x4a9b26
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Failed_to_parse_CHANNEL_REQUEST
mov ecx, esi
call edx
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0
call fcn.00408310
jmp 0x4a9b26
cmp ebp, 0x63
jne 0x4a915f
lea eax, [esp + 0x1c]
push eax
call fcn.004a67f0
mov ecx, dword [esp + 0x218]
add esp, 4
test ecx, ecx
je 0x4a90db
cmp dword [ecx + 0x38], eax
jne 0x4a90db
cmp dword [esp + 0x208], 6
jne 0x4a9b26
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x224]
call fcn.004058a0
mov edx, dword [esp + 0x224]
mov eax, dword [esp + 0x238]
mov dword [edx], ebp
mov byte [eax], 1
jmp 0x4a973f
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x2c]
push str.requestedChannelNum
mov ecx, esi
call eax
mov eax, dword [esp + 0x214]
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 ebp, dword [esi]
lea ecx, [esp + 0x1c]
add ebp, 0x2c
call fcn.0046fb70
push eax
mov eax, dword [ebp]
push str.payloadLen
mov ecx, esi
call eax
lea ecx, [esp + 0x1c]
call fcn.0046fb70
cmp eax, 0x100
jbe 0x4a9133
mov eax, pe_nt_image_headers32
push eax
lea ecx, [esp + 0x20]
call fcn.004e81e0
push eax
push str.payloadBytes
mov ecx, esi
call fcn.00424300
push 0xc
push ebx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
cmp ebp, 0x64
jne 0x4a91c3
lea edx, [esp + 0x1c]
push edx
call fcn.004a67f0
mov ecx, dword [esp + 0x218]
add esp, 4
test ecx, ecx
je 0x4a91ae
cmp dword [ecx + 0x38], eax
jne 0x4a91ae
cmp dword [esp + 0x208], 6
jne 0x4a9b26
mov ecx, dword [esp + 0x220]
lea eax, [esp + 0x1c]
push eax
call fcn.004058a0
mov ecx, dword [esp + 0x224]
mov dword [ecx], ebp
jmp 0x4a9735
push 0xd
push ebx
push esi
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
cmp ebp, 1
je 0x4a9c26
cmp ebp, 0x1f
jne 0x4a92f7
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Received_KEX_DH_GEX_GROUP
mov ecx, esi
call eax
lea ecx, [esp + 0x16]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x24], 0
call fcn.004a4670
add esp, 0xc
test al, al
je 0x4a9cb4
push esi
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.004a46f0
add esp, 0xc
test eax, eax
je 0x4a9cb4
lea ebp, [edi + 0x1560]
push eax
mov ecx, ebp
call fcn.004d0b20
push esi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004a46f0
add esp, 0xc
test eax, eax
je 0x4a9cb4
push eax
mov ecx, ebp
call fcn.004d0550
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4a9ccc
cmp eax, 0x2710
ja 0x4a9ccc
lea ecx, [eax + eax]
push ecx
mov ecx, ebp
call fcn.004d06c0
lea ecx, [esp + 0x5c]
call fcn.00404230
mov edx, dword [esp + 0x58]
push edx
lea ecx, [esp + 0x60]
mov byte [esp + 0x204], 3
call fcn.00404de0
mov ecx, dword [edi + 0x1578]
lea eax, [esp + 0x5c]
push eax
push ecx
call fcn.004a42a0
mov edx, dword [esp + 0x234]
add esp, 8
push ebx
push esi
push edx
lea eax, [esp + 0x68]
push eax
push str.KEXDH_INIT
mov ecx, edi
call fcn.004a7820
test al, al
jne 0x4a9b15
push str.Error_sending_e_to_server
mov ecx, esi
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
call eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x14], 0
mov byte [esp + 0x200], 0
call fcn.00404a00
jmp 0x4a9ecb
cmp ebp, 0x14
jne 0x4a9451
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Received_key_exchange_init_message
mov ecx, esi
call eax
cmp dword [esp + 0x208], 2
je 0x4a9336
mov ecx, dword [esp + 0x22c]
push ebx
push esi
push ecx
mov ecx, edi
mov byte [esp + 0x21], 1
call fcn.004a7e90
test al, al
je 0x4a9b85
push esi
lea edx, [esp + 0x20]
push edx
mov ecx, edi
call fcn.004a5390
test al, al
je 0x4a9b85
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, edi
call fcn.004a5e60
mov eax, dword [esp + 0x3c]
mov edx, dword [esi]
mov edx, dword [edx + 0x2c]
push eax
push str.numBits
mov ecx, esi
call edx
mov ebp, dword [esp + 0x48]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ebp
push str.pbits
mov ecx, esi
call edx
mov eax, dword [edi + 0x488]
cmp eax, 1
jne 0x4a93a4
push 2
lea ecx, [edi + 0x1560]
mov dword [esp + 0x44], 0x1f
call fcn.004d0660
jmp 0x4a93d5
cmp eax, 0xe
jne 0x4a93bf
push eax
lea ecx, [edi + 0x1560]
mov dword [esp + 0x44], 0x1f
call fcn.004d0660
jmp 0x4a93d5
cmp eax, 0xa0
je 0x4a93cd
cmp eax, 0x100
jne 0x4a93d5
mov dword [esp + 0x40], 0x21
lea ecx, [esp + 0x5c]
mov dword [esp + 0x58], 0x20
call fcn.00404230
push 0x1e
lea ecx, [esp + 0x60]
mov byte [esp + 0x204], 4
call fcn.00404de0
lea eax, [esp + 0x5c]
push eax
push ebp
call fcn.004a4270
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 ebp
push str.kex_pbits
mov ecx, esi
call eax
mov ecx, dword [esp + 0x22c]
push ebx
push esi
push ecx
lea edx, [esp + 0x68]
push edx
push str.KEX_DH_GEX_REQUEST
mov ecx, edi
call fcn.004a7820
test al, al
jne 0x4a9b15
push str.Error_sending_KEX_DH_GEX_REQUEST_message_to_server
jmp 0x4a92d3
cmp ebp, 0x21
je 0x4a974f
cmp ebp, 0x15
jne 0x4a94e4
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str._SSH__Received_newkeys_message
mov ecx, esi
call eax
push 0x510770
push str.SSH_Key_Exchange_Success.
push str.TRAN
mov ecx, edi
call fcn.004a51f0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.SSH_Key_Exchange_Success.
mov ecx, esi
call eax
push esi
mov ecx, edi
call fcn.004a61e0
mov ebx, dword [esp + 0x208]
cmp ebx, 2
mov byte [esp + 0x15], 0
je 0x4a9cf7
mov ecx, dword [esp + 0x238]
cmp byte [ecx], 0
mov ecx, esi
jne 0x4a9d32
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 0x4a9b26
cmp ebp, 0x5d
jne 0x4a958e
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x24]
xor ebp, ebp
push eax
mov dword [esp + 0x24], 1
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebp
call fcn.004a45a0
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x28]
mov byte [esp + 0x26], al
push edx
lea eax, [esp + 0x30]
push eax
call fcn.004a45a0
add esp, 0x18
cmp byte [esp + 0x16], 0
je 0x4a9566
test al, al
je 0x4a9566
mov eax, dword [esp + 0x214]
cmp eax, ebp
je 0x4a9566
mov ecx, dword [esp + 0x54]
cmp ecx, dword [eax + 0x38]
jne 0x4a9556
mov edx, dword [esp + 0x50]
add dword [eax + 0x54], edx
jmp 0x4a9566
push 0xe
push ebx
push esi
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.004a6ad0
cmp dword [esp + 0x208], 9
jne 0x4a9b26
cmp byte [esp + 0x15], 0
mov ecx, dword [esp + 0x238]
mov byte [ecx], 1
je 0x4a9ec6
jmp 0x4a9b26
cmp ebp, 0x35
jne 0x4a95eb
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str._SSH__Received_USERAUTH_BANNER
mov ecx, esi
call eax
lea ecx, [esp + 0xc8]
call fcn.00402710
push esi
lea ecx, [esp + 0xcc]
push ecx
lea edx, [edi + 0x288]
push edx
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x210], 8
call fcn.004a8140
add esp, 0x10
lea ecx, [esp + 0xc8]
mov byte [esp + 0x200], 0
call fcn.004027d0
jmp 0x4a9b26
cmp ebp, 0x50
jne 0x4a96e7
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str._SSH__Received_GLOBAL_REQUEST
mov ecx, esi
call eax
lea ecx, [esp + 0x170]
call fcn.00402710
push esi
lea ecx, [esp + 0x1b]
push ecx
lea edx, [esp + 0x178]
push edx
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x210], 9
call fcn.004a81e0
add esp, 0x10
test al, al
je 0x4a96ce
mov ebp, dword [esi]
lea ecx, [esp + 0x170]
add ebp, 0x28
call fcn.00403320
mov edx, dword [ebp]
push eax
push str.GlobalRequestName
mov ecx, esi
call edx
movzx ecx, byte [esp + 0x17]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ecx
push str.WantReply
mov ecx, esi
call edx
cmp byte [esp + 0x17], 0
je 0x4a96ce
lea ecx, [esp + 0xa8]
call fcn.00404230
push 0x52
lea ecx, [esp + 0xac]
mov byte [esp + 0x204], 0xa
call fcn.00404de0
mov eax, dword [esp + 0x22c]
push ebx
push esi
push eax
lea ecx, [esp + 0xb4]
push ecx
push str.SSH2_MSG_REQUEST_FAILURE
mov ecx, edi
call fcn.004a7820
test al, al
je 0x4a9d43
lea ecx, [esp + 0xa8]
mov byte [esp + 0x200], 9
call fcn.00404a00
lea ecx, [esp + 0x170]
mov byte [esp + 0x200], 0
call fcn.004027d0
jmp 0x4a9b26
cmp ebp, 0x33
je 0x4a96f5
cmp ebp, 0x34
jne 0x4a9d83
mov eax, dword [esp + 0x208]
cmp eax, 7
je 0x4a971b
cmp eax, 8
je 0x4a971b
push 0xf
push ebx
push esi
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.004a6ad0
jmp 0x4a9b26
mov ecx, dword [esp + 0x220]
lea eax, [esp + 0x1c]
push eax
call fcn.004058a0
mov ecx, dword [esp + 0x224]
mov dword [ecx], ebp
mov edx, dword [esp + 0x238]
mov byte [edx], 1
cmp byte [esp + 0x15], 0
je 0x4a9ec6
jmp 0x4a9b26
lea eax, [esp + 0x16]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x24], 0
call fcn.004a4670
lea ebp, [edi + 0x3c0]
add esp, 0xc
mov ecx, ebp
mov bl, al
call fcn.00404150
test bl, bl
je 0x4a97d7
push esi
push ebp
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004a4150
mov bl, al
add esp, 0x10
test bl, bl
je 0x4a97d7
mov eax, dword [edi + 0x400]
test eax, eax
je 0x4a97b8
push eax
call fcn.004ecd7b
add esp, 4
mov dword [edi + 0x400], 0
push esi
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.004a46f0
add esp, 0xc
test eax, eax
mov dword [edi + 0x400], eax
jne 0x4a97d7
xor bl, bl
lea ebp, [edi + 0x3e0]
mov ecx, ebp
call fcn.00404150
test bl, bl
je 0x4a9db0
push esi
push ebp
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.004a4150
add esp, 0x10
test al, al
je 0x4a9db0
mov eax, dword [edi + 0x400]
push eax
lea ecx, [edi + 0x1560]
call fcn.004d0a00
mov ebx, dword [esp + 0x23c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
push ebx
push esi
push ecx
push edx
mov ecx, edi
call fcn.004a5ef0
cmp dword [edi + 0x48c], 2
jne 0x4a996e
lea ecx, [esp + 0xc8]
call fcn.00451f10
push ebx
push esi
lea eax, [esp + 0xd0]
push eax
lea eax, [edi + 0x3c0]
push eax
mov byte [esp + 0x210], 5
call fcn.004a3db0
mov edx, dword [esi]
add esp, 0x10
test al, al
mov ecx, esi
je 0x4a9dc8
mov eax, dword [edx + 0x14]
push str.DSS_host_key_parsed_successfully.
call eax
mov ecx, dword [esp + 0x23c]
push ecx
lea ebx, [edi + 0x438]
push esi
mov ecx, ebx
call fcn.0046fb70
push eax
mov ecx, ebx
call fcn.004e81e0
push eax
mov ecx, ebp
call fcn.0046fb70
push eax
mov ecx, ebp
call fcn.004e81e0
push eax
lea edx, [esp + 0xe0]
push edx
call fcn.004a39c0
add esp, 0x1c
test al, al
je 0x4a9df0
cmp byte [esp + 0x23c], 0
je 0x4a993f
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.DSS_signature_is_valid.
mov ecx, esi
call edx
lea ecx, [edi + 0x3c0]
call fcn.0046fb70
push eax
lea ecx, [edi + 0x3c0]
call fcn.004e81e0
push eax
push str.dss_key
mov ecx, esi
call fcn.004244e0
mov ecx, ebp
call fcn.0046fb70
push eax
mov ecx, ebp
call fcn.004e81e0
push eax
push str.sigH
mov ecx, esi
call fcn.004244e0
mov ecx, ebx
call fcn.0046fb70
push eax
mov ecx, ebx
call fcn.004e81e0
push eax
push str.exchangeHash
mov ecx, esi
call fcn.004244e0
push 0x510770
push str.DSS_signature_verified
push str.TRAN
mov ecx, edi
call fcn.004a51f0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x200], 0
call fcn.00451f90
jmp 0x4a9aab
lea ecx, [esp + 0xc8]
call fcn.00482350
push esi
lea eax, [esp + 0xcc]
push eax
lea eax, [edi + 0x3c0]
push eax
mov byte [esp + 0x20c], 6
call fcn.004a3fb0
mov edx, dword [esi]
add esp, 0xc
test al, al
mov ecx, esi
je 0x4a9e64
mov eax, dword [edx + 0x14]
push str.RSA_host_key_parsed_successfully.
call eax
lea ebx, [edi + 0x408]
mov ecx, ebx
call fcn.00407610
lea ecx, [esp + 0xc8]
push ebx
push ecx
call fcn.004824d0
add esp, 8
lea ebx, [edi + 0x438]
push esi
mov ecx, ebx
call fcn.0046fb70
push eax
mov ecx, ebx
call fcn.004e81e0
push eax
mov ecx, ebp
call fcn.0046fb70
push eax
mov ecx, ebp
call fcn.004e81e0
push eax
lea edx, [esp + 0xdc]
push edx
call fcn.004a3510
add esp, 0x18
test al, al
je 0x4a9e89
cmp byte [esp + 0x23c], 0
je 0x4a9a81
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.0046fb70
push eax
lea ecx, [edi + 0x3c0]
call fcn.004e81e0
push eax
push str.rsa_key
mov ecx, esi
call fcn.004244e0
mov ecx, ebp
call fcn.0046fb70
push eax
mov ecx, ebp
call fcn.004e81e0
push eax
push str.sigH
mov ecx, esi
call fcn.004244e0
mov ecx, ebx
call fcn.0046fb70
push eax
mov ecx, ebx
call fcn.004e81e0
push eax
push str.exchangeHash
mov ecx, esi
call fcn.004244e0
push 0x510770
push str.RSA_signature_verified
push str.TRAN
mov ecx, edi
call fcn.004a51f0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x200], 0
call fcn.00436530
push esi
mov ecx, edi
call fcn.004a7dd0
lea ecx, [esp + 0x5c]
call fcn.00404230
push 0x15
lea ecx, [esp + 0x60]
mov byte [esp + 0x204], 7
call fcn.00404de0
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str._SSH__Sending_newkeys_to_server...
mov ecx, esi
call edx
mov eax, dword [esp + 0x23c]
mov ecx, dword [esp + 0x22c]
push eax
push esi
push ecx
lea edx, [esp + 0x68]
push edx
push str.NEWKEYS
mov ecx, edi
call fcn.004a7820
test al, al
mov ecx, esi
je 0x4a9e94
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Expecting_newkeys_from_server...
call edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x200], 0
call fcn.00404a00
mov ecx, dword [esp + 0x22c]
test ecx, ecx
je 0x4a9b3e
call fcn.0044e700
test al, al
jne 0x4a9ecb
cmp dword [esp + 0x208], 0x63
je 0x4a9e9e
mov ebp, dword [esp + 0x234]
jmp 0x4a8796
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.ReadTimeoutMs_exceeded.
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ebx
push str.ReadTimeoutMs
mov ecx, esi
call edx
mov byte [ebp + 2], 0
mov byte [ebp], 0
mov byte [ebp + 3], 0
mov byte [ebp + 1], 1
mov byte [esp + 0x14], 0
jmp 0x4a9ecb
movzx eax, byte [edi + 0x245]
mov byte [ebp + 2], al
mov cl, byte [edi + 0x247]
mov byte [ebp], cl
mov dl, byte [edi + 0x246]
mov byte [ebp + 3], dl
movzx eax, byte [edi + 0x244]
mov byte [ebp + 1], al
cmp byte [edi + 0x244], 0
jne 0x4a9bd5
cmp byte [edi + 0x245], 0
jne 0x4a9bd5
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 [esp + 0x14], 0
jmp 0x4a9ecb
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Payload_is_empty_
mov ecx, esi
call eax
mov byte [esp + 0x14], 0
jmp 0x4a9ecb
mov byte [esp + 0x200], 1
lea ecx, [esp + 0x5c]
mov byte [esp + 0x14], 1
call fcn.00404a00
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0
call fcn.00408310
jmp 0x4a9ecb
mov ecx, dword [esp + 0x228]
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 ebp, [edi + 0x1588]
push ebp
lea ecx, [edi + 0x1584]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.004a6bc0
add esp, 0x10
test al, al
je 0x4a9c8f
mov ebx, dword [esi]
mov ecx, ebp
add ebx, 0x28
call fcn.004e81e0
push eax
mov eax, dword [ebx]
push str.DisconnectReason
mov ecx, esi
call eax
push 0x510770
mov ecx, ebp
call fcn.004e81e0
push eax
push str.TRAN_Reason:
mov ecx, edi
call fcn.004a51f0
mov ecx, dword [esp + 0x234]
push esi
mov byte [ecx], 1
push 0x782
lea ecx, [edi + 0x88]
call fcn.00459000
mov byte [esp + 0x14], 0
jmp 0x4a9ecb
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 [esp + 0x14], 0
jmp 0x4a9ecb
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 [esp + 0x3c]
mov edx, dword [esi]
mov edx, dword [edx + 0x2c]
push eax
push str.kex_numBits
mov ecx, esi
call edx
mov byte [esp + 0x14], 0
jmp 0x4a9ecb
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Got_the_REKEY_we_were_waiting_for...
mov ecx, esi
call edx
mov ecx, dword [esp + 0x220]
lea eax, [esp + 0x1c]
push eax
call fcn.004058a0
mov ecx, dword [esp + 0x224]
mov edx, dword [esp + 0x238]
mov dword [ecx], 0x15
mov byte [edx], 1
jmp 0x4a9ec6
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 0x4a9ec6
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, [esp + 0xa8]
mov byte [esp + 0x14], 0
mov byte [esp + 0x200], 9
call fcn.00404a00
lea ecx, [esp + 0x170]
mov byte [esp + 0x200], 0
call fcn.004027d0
jmp 0x4a9ecb
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 ebp
add edi, 0x28
call fcn.004a6650
add esp, 4
push eax
mov eax, dword [edi]
push str.msgType
mov ecx, esi
call eax
jmp 0x4a9ec6
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Failed_to_parse_server_host_key.
mov ecx, esi
call eax
mov byte [esp + 0x14], 0
jmp 0x4a9ecb
push str.Failed_to_parse_DSS_host_key
mov eax, dword [edx + 0x10]
call eax
lea ecx, [esp + 0xc8]
mov byte [esp + 0x14], 0
mov byte [esp + 0x200], 0
call fcn.00451f90
jmp 0x4a9ecb
lea ebx, [edi + 0x3c0]
mov ecx, ebx
call fcn.0046fb70
push eax
mov ecx, ebx
call fcn.004e81e0
push eax
push str.dss_key
mov ecx, esi
call fcn.004244e0
lea ebx, [edi + 0x3e0]
mov ecx, ebx
call fcn.0046fb70
push eax
mov ecx, ebx
call fcn.004e81e0
push eax
push str.sigH
mov ecx, esi
call fcn.004244e0
add edi, 0x438
mov ecx, edi
call fcn.0046fb70
push eax
mov ecx, edi
call fcn.004e81e0
push eax
push str.exchangeHash
mov ecx, esi
call fcn.004244e0
mov edx, dword [esi]
push str.DSS_signature_verification_failure.__2_
mov ecx, esi
jmp 0x4a9dcd
push str.Failed_to_parse_RSA_host_key
mov eax, dword [edx + 0x10]
call eax
lea ecx, [esp + 0xc8]
mov byte [esp + 0x14], 0
mov byte [esp + 0x200], 0
call fcn.00436530
jmp 0x4a9ecb
mov edx, dword [esi]
push str.RSA_signature_verification_failure.
mov ecx, esi
jmp 0x4a9e69
push str.Error_sending_newkeys_to_server
jmp 0x4a92d5
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x224]
call fcn.004058a0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x238]
mov dword [eax], edx
mov byte [ecx], 1
mov byte [esp + 0x14], 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x200], 0xffffffff
call fcn.00404a00
mov al, byte [esp + 0x14]
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1f0
ret 0x38