Function at 0x41c770
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x4f6840]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
cmp dword [ebx + 0x1cc], 0
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], 0x4d8534
mov dword [ebp - 0x20], str.host_key_algorithm
mov dword [ebp - 0x1c], str.client_to_server_cipher
mov dword [ebp - 0x18], str.server_to_client_cipher
mov dword [ebp - 0x14], str.client_to_server_MAC
mov dword [ebp - 0x10], str.server_to_client_MAC
mov dword [ebp - 0xc], str.client_to_server_compression_method
mov dword [ebp - 8], str.server_to_client_compression_method
jne 0x41c7f1
push 0x74c
push 1
call fcn.0040e5e0
mov ecx, dword [ebp - 0x34]
add esp, 8
mov dword [ebx + 0x1cc], eax
mov dword [eax], 0
mov esi, dword [ebx + 0x1cc]
mov dword [ebp - 0x44], esi
mov eax, dword [esi]
cmp eax, 0x1b73
jg 0x41cb26
je 0x41cabf
cmp eax, 0x1aff
jg 0x41c9a5
je 0x41c957
test eax, eax
je 0x41c8d9
cmp eax, 0x1a26
je 0x41c89c
cmp eax, 0x1abc
jne 0x41c8c2
test ecx, ecx
je 0x41c843
push str.Unexpected_data_from_server_while_waiting_for_user_response
jmp 0x41c8b3
cmp dword [ebp + 0x10], 0
jg 0x41e3c8
mov eax, dword [ebx + 0x25c]
mov dword [esi + 0x140], eax
push 0
push ebx
call fcn.00426090
add esp, 8
cmp dword [esi + 0x140], 0
jne 0x41e3df
push 1
push 0
push 0
push str.User_aborted_at_kex_warning
push ebx
call fcn.00425190
add esp, 0x14
mov dword [esi], 0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x41df83
cmp dword [ecx + 8], 0x14
je 0x41df9a
push str.expected_key_exchange_packet_from_server
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0xc
pop edi
mov dword [esi], 0
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x138], 0
mov dword [esi + 0x134], 0
mov dword [esi + 0x12c], 0
mov dword [esi + 0x130], 0
test byte [ebx + 0x50], 2
je 0x41c944
mov dword [esi + 0x40], 0x4d6098
mov dword [esi + 0x44], 3
jmp 0x41d828
mov dword [esi + 0x40], 0x4d6088
mov dword [esi + 0x44], 4
jmp 0x41d828
test ecx, ecx
jne 0x41c83c
cmp dword [ebp + 0x10], ecx
jg 0x41e4eb
mov eax, dword [ebx + 0x25c]
mov dword [esi + 0x140], eax
push 0
push ebx
call fcn.00426090
add esp, 8
cmp dword [esi + 0x140], 0
jne 0x41e502
push 1
push 0
push 0
push str.User_aborted_at_host_key_warning
push ebx
call fcn.00425190
add esp, 0x14
jmp 0x41c8c2
sub eax, 0x1b18
je 0x41ca38
sub eax, 0x19
je 0x41c9ea
sub eax, 0x12
jne 0x41c8c2
test ecx, ecx
je 0x41e565
mov ecx, dword [ebx + 0x98]
mov edx, dword [ecx + 8]
test edx, edx
jne 0x41e756
mov eax, dword [esi + 0x48]
test eax, eax
je 0x41e57c
mov eax, dword [eax + 0x28]
jmp 0x41e57e
test ecx, ecx
jne 0x41c83c
cmp dword [ebp + 0x10], ecx
jg 0x41caa8
mov eax, dword [ebx + 0x25c]
mov dword [esi + 0x140], eax
push 0
push ebx
call fcn.00426090
add esp, 8
cmp dword [esi + 0x140], 0
jne 0x41e558
push 1
push 0
push 0
push str.User_aborted_at_cipher_warning
push ebx
call fcn.00425190
add esp, 0x14
jmp 0x41c8c2
test ecx, ecx
jne 0x41c83c
cmp dword [ebp + 0x10], ecx
jg 0x41e541
mov eax, dword [ebx + 0x25c]
mov dword [esi + 0x140], eax
push 0
push ebx
call fcn.00426090
add esp, 8
cmp dword [esi + 0x140], 0
je 0x41ca1f
cmp dword [esi + 0x18], 0
je 0x41e558
push 1
push ebx
call fcn.00426090
mov eax, dword [esi + 0x4c]
push ebx
push 0x425140
push dword [eax + 0x20]
push str.server_to_client_cipher
push dword [ebx + 0x110]
call fcn.004564e0
add esp, 0x1c
mov dword [esi + 0x140], eax
test eax, eax
jns 0x41ca07
pop edi
mov dword [esi], 0x1b31
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x41e67d
cmp dword [ecx + 8], 0x1f
je 0x41cad7
push str.expected_key_exchange_group_packet_from_server
jmp 0x41c8b3
push ecx
call fcn.004226f0
push dword [ebp - 0x34]
mov dword [esi + 0x1c], eax
call fcn.004226f0
mov ecx, dword [esi + 0x1c]
add esp, 8
mov dword [esi + 0x20], eax
test ecx, ecx
je 0x41cb1c
test eax, eax
je 0x41cb1c
push eax
push ecx
call fcn.00430aa0
mov dword [ebx + 0xe8], eax
add esp, 8
mov dword [esi + 0x38], 0x20
mov dword [esi + 0x3c], 0x21
jmp 0x41e6d4
push str.unable_to_read_mp_ints_from_incoming_group_packet
jmp 0x41c8b3
cmp eax, 0x1c85
jg 0x41d489
je 0x41d117
sub eax, 0x1b96
je 0x41cf25
sub eax, 0x56
je 0x41cdb4
sub eax, 0x3e
jne 0x41c8c2
test ecx, ecx
je 0x41e843
cmp dword [ecx + 8], 0x1e
je 0x41cb6c
push str.expected_RSA_public_key_packet_from_server
jmp 0x41c8b3
lea eax, [esi + 0x7c]
push eax
lea edi, [esi + 0x68]
push edi
push ecx
call fcn.00425910
mov eax, dword [edi]
add esp, 0xc
test eax, eax
jne 0x41cb8d
push str.unable_to_parse_RSA_public_key_packet
jmp 0x41c8b3
push dword [esi + 0x7c]
push eax
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
push dword [esi + 0x7c]
mov eax, dword [ebx + 0x9c]
push dword [edi]
push eax
mov eax, dword [eax]
call eax
mov dword [esi + 0x88], eax
lea edi, [esi + 0x84]
push edi
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x34]
call fcn.00425910
add esp, 0x28
cmp dword [ebp - 0x44], 0
je 0x41cb83
push 1
push dword [edi]
call fcn.0040e5e0
push dword [edi]
mov dword [esi + 0x70], eax
push dword [ebp - 0x44]
push eax
call fcn.0046d450
push dword [edi]
push dword [esi + 0x70]
call fcn.0043c540
mov ecx, dword [esi + 0x70]
add esp, 0x1c
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x41cc24
push ecx
call fcn.0040e5c0
push str.unable_to_parse_RSA_public_key_from_server
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0x10
jmp 0x41c8c2
push dword [edi]
mov eax, dword [ebx + 0x98]
push ecx
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
push dword [esi + 0x8c]
call fcn.0043c520
mov ecx, dword [ebx + 0x98]
mov ebx, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], 0
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x14]
shl ecx, 4
sub ebx, ecx
sub ebx, 0x31
mov dword [ebp - 0x30], ebx
lea eax, [ebx - 1]
push eax
call fcn.0042b850
add esp, 0x18
mov dword [esi + 0x2c], eax
xor edi, edi
test ebx, ebx
jle 0x41ccb0
nop dword [eax + eax]
mov ebx, edi
and ebx, 7
jne 0x41cc91
call fcn.0043a770
mov dword [ebp - 0x44], eax
jmp 0x41cc94
mov eax, dword [ebp - 0x44]
mov edx, eax
mov ecx, ebx
sar edx, cl
and edx, 1
push edx
push edi
push dword [esi + 0x2c]
call fcn.0042b700
inc edi
add esp, 0xc
cmp edi, dword [ebp - 0x30]
jl 0x41cc80
lea eax, [ebp - 0x30]
push eax
push dword [esi + 0x2c]
call fcn.00421350
mov ebx, dword [ebp - 0x30]
push 1
mov dword [ebp - 0x38], eax
lea edi, [ebx + 4]
push edi
call fcn.0040e5e0
mov ecx, ebx
mov dword [ebp - 0x44], eax
sar ecx, 0x18
push ebx
push dword [ebp - 0x38]
mov byte [eax], cl
mov ecx, ebx
sar ecx, 0x10
mov byte [eax + 1], cl
mov ecx, ebx
sar ecx, 8
mov byte [eax + 2], cl
mov byte [eax + 3], bl
add eax, 4
push eax
call fcn.0046d450
mov eax, dword [ebp - 0x40]
add eax, 7
cdq
and edx, 7
push 1
lea ebx, [edx + eax]
sar ebx, 3
push ebx
call fcn.0040e5e0
push dword [esi + 0x8c]
mov ecx, dword [ebp - 0x28]
push ebx
push eax
push edi
mov ecx, dword [ecx + 0x98]
push dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
push dword [ecx + 0xc]
call fcn.0043c400
push 0x1f
call fcn.00422730
add esp, 0x40
mov dword [esi + 0x13c], eax
push eax
call fcn.00425740
mov edi, dword [ebp - 0x30]
push ebx
push edi
push dword [esi + 0x13c]
call fcn.004256e0
push dword [esi + 0x13c]
push dword [ebp - 0x28]
call fcn.00422860
mov eax, dword [ebp - 0x28]
push ebx
push edi
push dword [eax + 0xc]
mov eax, dword [eax + 0x98]
push dword [eax + 0xc]
call fcn.0041f2b0
push dword [ebp - 0x44]
call fcn.0040e5c0
push dword [ebp - 0x38]
call fcn.0040e5c0
push edi
call fcn.0040e5c0
push dword [esi + 0x8c]
call fcn.0043c510
add esp, 0x38
mov dword [esi], 0x1c85
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x41e814
cmp dword [ecx + 8], 0x1f
je 0x41cde6
push dword [esi + 0x90]
call fcn.004357b0
push str.expected_ECDH_reply_packet_from_server
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0x10
jmp 0x41c8c2
lea eax, [esi + 0x7c]
push eax
lea edi, [esi + 0x68]
push edi
push ecx
call fcn.00425910
mov eax, dword [edi]
add esp, 0xc
test eax, eax
jne 0x41ce07
push str.unable_to_parse_ECDH_reply_packet
jmp 0x41c8b3
push dword [esi + 0x7c]
push eax
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
push dword [esi + 0x7c]
mov eax, dword [ebx + 0x9c]
push dword [edi]
push eax
mov eax, dword [eax]
call eax
mov dword [esi + 0x88], eax
lea eax, [ebp - 0x30]
push eax
push dword [esi + 0x90]
call fcn.00435880
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x41ce6e
push dword [esi + 0x90]
call fcn.004357b0
push str.Unable_to_encode_public_key_for_ECDH_hash
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0x10
jmp 0x41c8c2
push dword [ebp - 0x30]
mov eax, dword [ebx + 0x98]
push edi
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
push edi
call fcn.0040e5c0
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x34]
call fcn.00425910
mov eax, dword [ebp - 0x44]
add esp, 0x20
test eax, eax
je 0x41cdfd
mov edi, dword [ebp - 0x30]
push edi
push eax
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
push edi
push dword [ebp - 0x44]
push dword [esi + 0x90]
call fcn.004357c0
add esp, 0x1c
mov dword [esi + 0x2c], eax
test eax, eax
jne 0x41cefa
push dword [esi + 0x90]
call fcn.004357b0
push str.point_received_in_ECDH_was_not_valid
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0x10
jmp 0x41c8c2
lea eax, [esi + 0x80]
push eax
lea edi, [esi + 0x6c]
push edi
push dword [ebp - 0x34]
call fcn.00425910
add esp, 0xc
cmp dword [edi], 0
je 0x41cf65
push dword [esi + 0x90]
call fcn.004357b0
jmp 0x41d184
test ecx, ecx
je 0x41e73f
mov eax, dword [ecx + 8]
cmp eax, dword [esi + 0x3c]
je 0x41cf3f
push str.expected_key_exchange_reply_packet_from_server
jmp 0x41c8b3
push 2
push dword [ebx + 0x110]
call fcn.0045f180
lea eax, [esi + 0x7c]
push eax
lea edi, [esi + 0x68]
push edi
push dword [ebp - 0x34]
call fcn.00425910
mov ecx, dword [edi]
add esp, 0x14
test ecx, ecx
jne 0x41cf6f
push str.unable_to_parse_key_exchange_reply_packet
jmp 0x41c8b3
push dword [esi + 0x7c]
mov eax, dword [ebx + 0x9c]
push ecx
push eax
mov eax, dword [eax]
call eax
push dword [ebp - 0x34]
mov dword [esi + 0x88], eax
call fcn.004226f0
add esp, 0x10
mov dword [esi + 0x28], eax
test eax, eax
je 0x41cf65
lea eax, [esi + 0x80]
push eax
lea edi, [esi + 0x6c]
push edi
push dword [ebp - 0x34]
call fcn.00425910
add esp, 0xc
cmp dword [edi], 0
je 0x41cf65
push dword [esi + 0x28]
push dword [ebx + 0xe8]
call fcn.00430b20
add esp, 8
test eax, eax
je 0x41cfe0
push eax
push str.key_exchange_reply_failed_validation:__s
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0x10
jmp 0x41c8c2
push dword [esi + 0x28]
push dword [ebx + 0xe8]
call fcn.00430a30
mov dword [esi + 0x2c], eax
push 0
push dword [ebx + 0x110]
call fcn.0045f180
push dword [esi + 0x7c]
mov eax, dword [ebx + 0x98]
push dword [esi + 0x68]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
push dword [ebx + 0x98]
call fcn.00430a80
add esp, 0x24
test eax, eax
je 0x41d0b1
test dword [ebx + 0x50], 0x1000
jne 0x41d04d
mov eax, dword [ebx + 0x98]
push 0x400
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f300
add esp, 0xc
push dword [esi + 8]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f300
add esp, 0xc
test dword [ebx + 0x50], 0x1000
jne 0x41d086
mov eax, dword [ebx + 0x98]
push 0x2000
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f300
add esp, 0xc
push dword [esi + 0x1c]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f280
push dword [esi + 0x20]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f280
add esp, 0x18
push dword [esi + 0x24]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f280
push dword [esi + 0x28]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f280
push dword [ebx + 0xe8]
call fcn.004308a0
push dword [esi + 0x28]
call fcn.0042b910
push dword [ebx + 0x98]
call fcn.00430a80
add esp, 0x24
test eax, eax
je 0x41d187
push dword [esi + 0x20]
call fcn.0042b910
push dword [esi + 0x1c]
call fcn.0042b910
add esp, 8
jmp 0x41d187
test ecx, ecx
jne 0x41d132
pop edi
mov dword [esi], 0x1c85
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 8], 0x20
je 0x41d159
push dword [esi + 0x70]
call fcn.0040e5c0
push str.expected_signature_packet_from_server
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0x10
jmp 0x41c8c2
lea eax, [esi + 0x80]
push eax
lea edi, [esi + 0x6c]
push edi
push ecx
call fcn.00425910
add esp, 0xc
cmp dword [edi], 0
jne 0x41d17c
push str.unable_to_parse_signature_packet
jmp 0x41c8b3
push dword [esi + 0x70]
call fcn.0040e5c0
add esp, 4
push dword [esi + 0x2c]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f280
mov eax, dword [ebx + 0x98]
lea edi, [esi + 0x94]
push edi
push dword [ebx + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebx + 0xe8], 0
add esp, 0x14
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x41d1d4
push str.Servers_host_key_is_invalid
jmp 0x41c8b3
mov eax, dword [ebx + 0x98]
mov ecx, dword [ebx + 0x9c]
mov eax, dword [eax + 0xc]
push dword [eax + 0x14]
mov eax, dword [ecx + 0x28]
push edi
push dword [esi + 0x80]
push dword [esi + 0x6c]
push edx
call eax
add esp, 0x14
test eax, eax
jne 0x41d207
push str.Servers_host_key_did_not_match_the_signature_supplied
jmp 0x41c8b3
mov eax, dword [ebx + 0x9c]
push dword [esi + 0x88]
mov eax, dword [eax + 8]
call eax
add esp, 4
mov edi, eax
cmp dword [esi + 0x134], 0
mov dword [esi + 0x74], edi
jne 0x41d3ce
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x3c], edx
xor edi, edi
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov eax, dword [edi*8 + 0x4d6058]
cmp eax, dword [ebx + 0x9c]
je 0x41d277
mov edx, dword [ebx + 0x6c8]
xor eax, eax
test edx, edx
jle 0x41d274
lea ecx, [ebx + 0x6b0]
cmp dword [ecx], edi
je 0x41d315
inc eax
add ecx, 4
cmp eax, edx
jl 0x41d261
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
inc edi
cmp edi, 6
jb 0x41d240
test ecx, ecx
je 0x41d2b7
cmp edx, 1
mov eax, str.any_of_them
mov edi, 0x4d8b08
mov edx, 0x4cd6c7
cmovle eax, edi
push eax
mov eax, 0x4d19a8
cmovle eax, edx
push eax
push ecx
push str.Server_also_has__s_host_key_s__but_we_dont_know__s
push ebx
call fcn.0041f3a0
push dword [ebp - 0x2c]
call fcn.0040e5c0
add esp, 0x18
push dword [esi + 0x88]
push dword [ebx + 0x9c]
call fcn.004388a0
mov dword [esi + 0x78], eax
push str.Host_key_fingerprint_is:
push dword [ebx + 0x110]
call fcn.004569c0
push dword [esi + 0x78]
push dword [ebx + 0x110]
call fcn.004569c0
push dword [esi + 0x88]
push dword [ebx + 0x9c]
push dword [esi + 0x78]
push ebx
call fcn.00426e10
add esp, 0x28
mov dword [esi + 0x140], eax
test eax, eax
jne 0x41d36c
push str.Host_key_did_not_appear_in_manually_configured_list
jmp 0x41c8b3
cmp eax, edx
jge 0x41d271
mov ecx, dword [edi*8 + 0x4d6058]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x30]
push ecx
test eax, eax
je 0x41d33f
push eax
push 0x4d8af4
call fcn.0040df30
add esp, 0xc
jmp 0x41d34c
push 0x4d3a14
call fcn.0040df30
add esp, 8
push dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
call fcn.0040e5c0
mov edx, dword [ebp - 0x3c]
add esp, 4
mov ecx, dword [ebp - 0x44]
inc edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], edx
jmp 0x41d277
jns 0x41e8e9
push 1
push ebx
call fcn.00426090
mov eax, dword [ebx + 0x9c]
push ebx
push 0x425140
push dword [esi + 0x78]
push dword [esi + 0x74]
push dword [eax + 0x34]
push dword [ebx + 0xfc]
push dword [ebx + 0xf8]
push dword [ebx + 0x110]
call fcn.00456d00
add esp, 0x28
mov dword [esi + 0x140], eax
test eax, eax
jns 0x41e8bc
pop edi
mov dword [esi], 0x1ced
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x6cc], 0
je 0x41d440
push dword [esi + 0x88]
push dword [ebx + 0x9c]
call fcn.004388a0
mov dword [esi + 0x78], eax
push str.Storing_additional_host_key_for_this_host:
push dword [ebx + 0x110]
call fcn.004569c0
push dword [esi + 0x78]
push dword [ebx + 0x110]
call fcn.004569c0
push dword [esi + 0x78]
call fcn.0040e5c0
push dword [esi + 0x74]
mov eax, dword [ebx + 0x9c]
push dword [eax + 0x34]
push dword [ebx + 0xfc]
push dword [ebx + 0xf8]
call fcn.00468850
add esp, 0x2c
mov dword [ebx + 0x6cc], 0
jmp 0x41e8f4
mov eax, dword [ebx + 0xa0]
mov ecx, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x41d468
test dl, dl
je 0x41d464
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x41d468
add eax, 2
add ecx, 2
test dl, dl
jne 0x41d448
xor eax, eax
jmp 0x41d46d
sbb eax, eax
or eax, 1
test eax, eax
je 0x41d47b
push str.Host_key_was_different_in_repeat_key_exchange
jmp 0x41c8b3
push edi
call fcn.0040e5c0
add esp, 4
jmp 0x41e8fd
sub eax, 0x1ced
je 0x41e885
sub eax, 0x91
je 0x41d55d
sub eax, 0x7f
jne 0x41c8c2
test ecx, ecx
jne 0x41d7d6
mov eax, dword [ebp + 0x10]
test eax, eax
jns 0x41d7dc
cmp eax, 0xfffffffe
jne 0x41d4dc
mov dword [esi + 0x12c], 1
cmp dword [esi + 0x130], ecx
je 0x41d7dc
mov dword [esi + 0x130], ecx
test byte [ebx + 0x50], 0x40
push edi
je 0x41d54a
push str.Server_bug_prevents_key_re_exchange___s_
push ebx
call fcn.0041f3a0
push 0x1a
push dword [ebx + 0x248]
mov dword [ebx + 0x688], 0
mov dword [ebx + 0x684], 0
call fcn.004030e0
add esp, 0x14
test eax, eax
je 0x41d7dc
push ebx
push 0x423e80
push 0x1a
push dword [ebx + 0x248]
call fcn.004030e0
imul eax, eax, 0xea60
add esp, 8
push eax
call fcn.0044f6b0
add esp, 0xc
mov dword [ebx + 0x698], eax
jmp 0x41d7dc
push str.Initiating_key_re_exchange___s_
push ebx
call fcn.0041f3a0
add esp, 0xc
jmp 0x41d828
test ecx, ecx
je 0x41eb5b
cmp dword [ecx + 8], 0x15
je 0x41d575
push str.expected_new_keys_packet_from_server
jmp 0x41c8b3
mov ecx, dword [ebx + 0x6c]
mov dword [ebx + 0x684], 0
test ecx, ecx
je 0x41d592
mov eax, dword [ebx + 0x64]
push ecx
mov eax, dword [eax + 4]
call eax
add esp, 4
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x41d5a3
mov dword [ebx + 0x64], eax
mov eax, dword [eax]
call eax
mov dword [ebx + 0x6c], eax
mov ecx, dword [ebx + 0x84]
test ecx, ecx
je 0x41d5b9
mov eax, dword [ebx + 0x74]
push ecx
mov eax, dword [eax + 4]
call eax
add esp, 4
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x41d5d9
push dword [ebx + 0x6c]
mov dword [ebx + 0x74], ecx
mov eax, dword [esi + 0x5c]
mov dword [ebx + 0x7c], eax
mov eax, dword [ecx]
call eax
add esp, 4
mov dword [ebx + 0x84], eax
mov ecx, dword [ebx + 0x94]
test ecx, ecx
je 0x41d5f2
mov eax, dword [ebx + 0x8c]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
mov eax, dword [esi + 0x64]
mov dword [ebx + 0x8c], eax
mov eax, dword [eax + 0x14]
call eax
mov dword [ebx + 0x94], eax
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x41d68c
push dword [eax + 0x2c]
lea ebx, [esi + 0x94]
push 0x44
push ebx
push dword [esi + 0x2c]
push dword [ebp - 0x28]
call fcn.00421210
mov edi, eax
mov eax, dword [ebp - 0x28]
push edi
mov ecx, dword [eax + 0x64]
push dword [eax + 0x6c]
mov ecx, dword [ecx + 0xc]
call ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x64]
push dword [ecx + 0x2c]
push edi
call fcn.00463250
push edi
call fcn.0040e5c0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x64]
push dword [eax + 0x24]
push 0x42
push ebx
push dword [esi + 0x2c]
mov ebx, dword [ebp - 0x28]
push ebx
call fcn.00421210
mov ecx, dword [ebx + 0x64]
mov edi, eax
push edi
push dword [ebx + 0x6c]
mov ecx, dword [ecx + 8]
call ecx
mov ecx, dword [ebx + 0x64]
add esp, 0x44
push dword [ecx + 0x24]
push edi
call fcn.00463250
push edi
call fcn.0040e5c0
add esp, 0xc
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x41d6ce
push dword [eax + 0x30]
lea eax, [esi + 0x94]
push 0x46
push eax
push dword [esi + 0x2c]
push ebx
call fcn.00421210
mov ecx, dword [ebx + 0x74]
mov edi, eax
push edi
push dword [ebx + 0x84]
mov ecx, dword [ecx + 8]
call ecx
mov ecx, dword [ebx + 0x74]
push dword [ecx + 0x30]
push edi
call fcn.00463250
push edi
call fcn.0040e5c0
add esp, 0x28
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x41d6e6
push dword [eax + 0x34]
push str.Initialised__.200s_server__client_encryption
push ebx
call fcn.0041f3a0
add esp, 0xc
mov edx, dword [ebx + 0x74]
test edx, edx
je 0x41d720
mov eax, dword [ebx + 0x64]
mov edi, 0x4cd6c7
mov ecx, str.__required_by_cipher_
cmp dword [eax + 0x38], 0
mov eax, str.__in_ETM_mode_
cmove ecx, edi
cmp dword [ebx + 0x7c], 0
push ecx
cmove eax, edi
push eax
push dword [edx + 0x34]
push str.Initialised__.200s_server__client_MAC_algorithm_s_s
push ebx
call fcn.0041f3a0
add esp, 0x14
mov eax, dword [ebx + 0x8c]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x41d73c
push eax
push str.Initialised__s_decompression
push ebx
call fcn.0041f3a0
add esp, 0xc
push dword [esi + 0x2c]
call fcn.0042b910
push dword [ebx + 0x110]
call fcn.0045fa70
mov eax, dword [ebx + 0x6a0]
add esp, 8
test eax, eax
je 0x41d77e
push eax
push dword [ebx + 0x110]
call fcn.004569c0
mov dword [ebp - 0x34], 0
mov dword [ebx + 0x6a0], 0
jmp 0x41d825
mov dword [ebx + 0x694], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x1a
push dword [ebx + 0x248]
mov dword [ebx + 0x69c], eax
call fcn.004030e0
add esp, 8
test eax, eax
je 0x41d7d3
push ebx
push 0x423e80
push 0x1a
push dword [ebx + 0x248]
call fcn.004030e0
imul eax, eax, 0xea60
add esp, 8
push eax
call fcn.0044f6b0
add esp, 0xc
mov dword [ebx + 0x698], eax
mov ecx, dword [ebp - 0x34]
cmp dword [ecx + 8], 0x14
je 0x41d815
cmp dword [ebx + 0x238], 0
jne 0x41d7fe
push 0
push 0
push 0
push ebx
mov dword [ebx + 0x238], 1
call fcn.00419ad0
add esp, 0x10
pop edi
mov dword [esi], 0x1dfd
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
push str.Server_initiated_key_re_exchange
push dword [ebx + 0x110]
call fcn.004569c0
add esp, 8
mov dword [ebx + 0x184], 0
xor edi, edi
mov dword [esi + 0xd4], 0
nop
push edi
push 0x18
push dword [ebx + 0x248]
call fcn.00403110
add esp, 0xc
cmp eax, 5
ja case.default.0x41d85a
jmp dword [eax*4 + 0x41eb74]
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4de460
jmp 0x41d8d6
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4de458
jmp 0x41d8d6
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4de450
jmp 0x41d8d6
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4df6b0
jmp 0x41d8d6
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4de7e8
jmp 0x41d8d6
cmp edi, 5
jae case.default.0x41d85a
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0
inc dword [esi + 0xd4]
inc edi
cmp edi, 6
jl 0x41d840
mov dword [esi + 0xf0], 0
xor edi, edi
push edi
push 0x19
push dword [ebx + 0x248]
call fcn.00403110
add esp, 0xc
test eax, eax
jne 0x41d90c
cmp edi, 4
jae 0x41d91f
mov ecx, dword [esi + 0xf0]
mov dword [esi + ecx*4 + 0xf4], eax
inc dword [esi + 0xf0]
inc edi
cmp edi, 5
jl 0x41d8f2
mov dword [esi + 0x108], 0
xor edi, edi
push edi
push 0x1f
push dword [ebx + 0x248]
call fcn.00403110
add esp, 0xc
cmp eax, 6
ja case.default.0x41d94b
jmp dword [eax*4 + 0x41eb8c]
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4dc284
jmp 0x41d9f5
push 0x22
push dword [ebx + 0x248]
call fcn.004030e0
add esp, 8
test eax, eax
je case.default.0x41d94b
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4dd8a8
jmp 0x41d9f5
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4dd8a0
jmp 0x41d9f5
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4d9d30
jmp 0x41d9f5
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4dc1b0
jmp 0x41d9f5
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4dd3a0
jmp 0x41d9f5
cmp edi, 6
jae case.default.0x41d94b
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0
inc dword [esi + 0x108]
inc edi
cmp edi, 7
jl 0x41d931
push 0x17
push dword [ebx + 0x248]
call fcn.004030e0
add esp, 8
mov edx, 0x4e0548
test eax, eax
mov ecx, 0x4d60a4
lea eax, [esi + 0x14c]
cmovne ecx, edx
mov edx, 8
mov dword [esi + 0x128], ecx
mov dword [ebx + 0x164], 1
mov dword [ebx + 0x694], 1
nop dword [eax]
mov ecx, 0x10
nop word [eax + eax]
mov dword [eax], 0
add eax, 0xc
sub ecx, 1
jne 0x41da60
sub edx, 1
jne 0x41da50
xor eax, eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x3c], eax
cmp dword [esi + 0xd4], eax
jle 0x41daf3
lea edx, [esi + 0x14c]
lea ecx, [esi + 0xd8]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x40], ecx
mov ebx, dword [ecx]
test ebx, ebx
jne 0x41daa4
mov dword [ebp - 0x38], 1
jmp 0x41dade
xor edi, edi
cmp dword [ebx], edi
jle 0x41dade
mov esi, dword [ebp - 0x38]
nop dword [eax]
mov eax, dword [ebx + 4]
mov eax, dword [eax + edi*4]
push dword [eax]
push edx
call fcn.00420e10
mov ecx, dword [ebx + 4]
add esp, 8
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ecx + edi*4]
inc edi
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
cmp edi, dword [ebx]
jl 0x41dab0
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
inc eax
add ecx, 4
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], ecx
cmp eax, dword [esi + 0xd4]
jl 0x41da95
mov ebx, dword [ebp - 0x28]
cmp dword [esi + 0x134], 0
jne 0x41dc3c
mov edx, dword [esi + 0xf0]
xor eax, eax
mov dword [ebp - 0x40], eax
lea edi, [eax + 1]
test edx, edx
jle 0x41dbb2
lea ecx, [esi + 0xf4]
mov dword [ebp - 0x2c], ecx
nop
cmp dword [ecx], 0
mov edx, 0x4d605c
cmove eax, edi
xor edi, edi
mov dword [ebp - 0x38], eax
mov eax, dword [edx + edi]
cmp eax, dword [ecx]
jne 0x41db87
mov eax, dword [edi + 0x4d6058]
push dword [eax + 0x34]
push dword [ebx + 0xfc]
push dword [ebx + 0xf8]
call fcn.00468220
add esp, 0xc
test eax, eax
je 0x41db7f
mov eax, dword [edi + 0x4d6058]
push dword [eax + 0x30]
lea eax, [esi + 0x20c]
push eax
call fcn.00420e10
mov ecx, dword [edi + 0x4d6058]
add esp, 8
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x38]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x2c]
mov edx, 0x4d605c
add edi, 8
cmp edi, 0x30
jb 0x41db30
mov eax, dword [ebp - 0x40]
add ecx, 4
mov edx, dword [esi + 0xf0]
inc eax
mov dword [ebp - 0x40], eax
cmp eax, edx
mov eax, dword [ebp - 0x38]
mov edi, 1
mov dword [ebp - 0x2c], ecx
jl 0x41db20
mov dword [ebp - 0x40], 0
test edx, edx
jle 0x41dc64
lea ecx, [esi + 0xf4]
mov eax, 0x4d605c
mov dword [ebp - 0x38], ecx
xor ebx, ebx
cmp dword [ecx], 0
cmove ebx, edi
xor edi, edi
nop dword [eax]
mov eax, dword [edi + eax]
cmp eax, dword [ecx]
jne 0x41dc0e
mov eax, dword [edi + 0x4d6058]
push dword [eax + 0x30]
lea eax, [esi + 0x20c]
push eax
call fcn.00420e10
mov ecx, dword [edi + 0x4d6058]
add esp, 8
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x38]
mov dword [eax + 8], ebx
add edi, 8
mov eax, 0x4d605c
cmp edi, 0x30
jb 0x41dbe0
mov eax, dword [ebp - 0x40]
add ecx, 4
inc eax
mov dword [ebp - 0x38], ecx
cmp eax, dword [esi + 0xf0]
mov edi, 1
mov dword [ebp - 0x40], eax
mov eax, 0x4d605c
jl 0x41dbd1
jmp 0x41dc64
mov eax, dword [ebx + 0x9c]
push dword [eax + 0x30]
lea eax, [esi + 0x20c]
push eax
call fcn.00420e10
mov ecx, dword [ebx + 0x9c]
add esp, 8
mov dword [eax + 4], ecx
mov dword [eax + 8], 0
lea ecx, [esi + 0x2cc]
mov eax, 2
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], eax
nop word [eax + eax]
xor edx, edx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x38], edx
cmp dword [esi + 0x108], edx
jle 0x41dd04
lea eax, [esi + 0x10c]
mov dword [ebp - 0x3c], eax
nop dword [eax]
mov ebx, dword [eax]
test ebx, ebx
jne 0x41dcaf
mov dword [ebp - 0x40], 1
jmp 0x41dcef
xor edi, edi
cmp dword [ebx], edi
jle 0x41dcef
mov esi, dword [ebp - 0x40]
nop dword [eax + eax]
mov eax, dword [ebx + 4]
mov eax, dword [eax + edi*4]
push dword [eax + 0x20]
push ecx
call fcn.00420e10
mov ecx, dword [ebx + 4]
add esp, 8
mov ecx, dword [ecx + edi*4]
inc edi
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 8], esi
cmp edi, dword [ebx]
jl 0x41dcc0
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
inc edx
add eax, 4
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x3c], eax
cmp edx, dword [esi + 0x108]
jl 0x41dca0
mov eax, dword [ebp - 0x30]
add ecx, 0xc0
sub eax, 1
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], eax
jne 0x41dc80
lea ecx, [esi + 0x44c]
mov edx, 2
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], edx
nop word [eax + eax]
mov eax, dword [esi + 0x44]
xor edi, edi
test eax, eax
jle 0x41dd70
mov ebx, dword [ebp - 0x2c]
nop dword [eax]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + edi*4]
push dword [eax + 0x24]
push ebx
call fcn.00420e10
mov ecx, dword [esi + 0x40]
add esp, 8
mov ecx, dword [ecx + edi*4]
inc edi
mov dword [eax + 4], ecx
mov dword [eax + 8], 0
mov eax, dword [esi + 0x44]
cmp edi, eax
jl 0x41dd40
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
xor edi, edi
test eax, eax
jle 0x41ddb3
mov ebx, dword [ebp - 0x2c]
nop dword [eax]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x28]
test eax, eax
je 0x41dda7
push eax
push ebx
call fcn.00420e10
mov ecx, dword [esi + 0x40]
add esp, 8
mov ecx, dword [ecx + edi*4]
mov dword [eax + 4], ecx
mov dword [eax + 8], 1
inc edi
cmp edi, dword [esi + 0x44]
jl 0x41dd80
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
add ecx, 0xc0
sub edx, 1
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], edx
jne 0x41dd30
lea ebx, [esi + 0x5cc]
mov dword [ebp - 0x30], 2
mov dword [ebp - 0x2c], ebx
nop dword [eax + eax]
mov eax, dword [esi + 0x128]
push dword [eax]
push ebx
call fcn.00420e10
mov ecx, dword [esi + 0x128]
add esp, 8
mov dword [eax + 4], ecx
cmp dword [esi + 0x12c], 0
je 0x41de23
mov eax, dword [esi + 0x128]
mov eax, dword [eax + 4]
test eax, eax
je 0x41de23
push eax
push ebx
call fcn.00420e10
mov ecx, dword [esi + 0x128]
add esp, 8
mov dword [eax + 4], ecx
xor ebx, ebx
mov edi, dword [ebx + 0x4d6114]
push dword [edi]
push dword [ebp - 0x2c]
call fcn.00420e10
add esp, 8
mov dword [eax + 4], edi
cmp dword [esi + 0x12c], 0
je 0x41de5a
mov eax, dword [edi + 4]
test eax, eax
je 0x41de5a
push eax
push dword [ebp - 0x2c]
call fcn.00420e10
add esp, 8
mov dword [eax + 4], edi
add ebx, 4
cmp ebx, 8
jb 0x41de25
mov ebx, dword [ebp - 0x2c]
add ebx, 0xc0
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], ebx
jne 0x41dde0
push 0x14
call fcn.00422730
add esp, 4
mov dword [esi + 0x13c], eax
mov edi, 0x10
nop dword [eax]
call fcn.0043a770
push eax
push dword [esi + 0x13c]
call fcn.00425670
add esp, 8
sub edi, 1
jne 0x41de90
lea ebx, [esi + 0x14c]
mov dword [ebp - 0x40], 8
nop word [eax + eax]
push dword [esi + 0x13c]
call fcn.00425740
add esp, 4
mov dword [ebp - 0x30], 0
mov edi, ebx
mov eax, dword [edi]
test eax, eax
je 0x41defb
push eax
push dword [esi + 0x13c]
call fcn.004222e0
mov eax, dword [ebp - 0x30]
add esp, 8
inc eax
add edi, 0xc
mov dword [ebp - 0x30], eax
cmp eax, 0x10
jl 0x41ded7
add ebx, 0xc0
sub dword [ebp - 0x40], 1
jne 0x41dec0
push dword [esi + 0x13c]
call fcn.00425740
push dword [esi + 0x13c]
call fcn.00425740
push 0
push dword [esi + 0x13c]
call fcn.00422280
push 0
push dword [esi + 0x13c]
call fcn.00425790
mov eax, dword [esi + 0x13c]
push 1
mov eax, dword [eax]
add eax, 0xfffffffb
push eax
mov dword [esi + 0x34], eax
call fcn.0040e5e0
mov ecx, dword [esi + 0x13c]
push dword [esi + 0x34]
mov dword [esi + 0x30], eax
mov ecx, dword [ecx + 0x10]
add ecx, 5
push ecx
push eax
call fcn.0046d450
push dword [esi + 0x13c]
mov ebx, dword [ebp - 0x28]
push ebx
call fcn.00422860
mov ecx, dword [ebp - 0x34]
add esp, 0x34
test ecx, ecx
jne 0x41c8a4
pop edi
mov dword [esi], 0x1a26
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x98], 0
mov dword [ebx + 0x9c], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 0
add dword [ecx + 0x18], 0x10
xor edi, edi
mov dword [esi + 0x144], 0
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x3c]
push eax
push ecx
call fcn.00425910
mov edx, dword [ebp - 0x3c]
add esp, 0xc
test edx, edx
je 0x41e87b
cmp edi, 4
jne 0x41e047
mov ecx, dword [esi + 0x48]
test ecx, ecx
je 0x41e06e
mov ecx, dword [ecx + 0x38]
test ecx, ecx
je 0x41e06e
xor eax, eax
mov dword [esi + 0x50], ecx
cmp dword [ecx + 0x28], eax
mov ecx, dword [ebp - 0x34]
setne al
inc edi
mov dword [esi + 0x58], eax
jmp 0x41e004
cmp edi, 5
jne 0x41e06e
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x41e06e
mov ecx, dword [ecx + 0x38]
test ecx, ecx
je 0x41e06e
xor eax, eax
mov dword [esi + 0x54], ecx
cmp dword [ecx + 0x28], eax
mov ecx, dword [ebp - 0x34]
setne al
inc edi
mov dword [esi + 0x5c], eax
jmp 0x41e004
xor ecx, ecx
mov dword [ebp - 0x38], ecx
cmp ecx, 0x10
jge 0x41e85a
mov eax, edi
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [eax + 0x53]
lea eax, [esi + eax*4]
mov dword [ebp - 0x28], eax
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x41e85a
push dword [ebp - 0x2c]
push edx
push eax
call fcn.0041f340
add esp, 0xc
test eax, eax
jne 0x41e0e6
cmp edi, 6
je 0x41e0b7
cmp edi, 7
jne 0x41e0dd
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ecx + 4]
push dword [eax + 4]
call fcn.0041f340
add esp, 0xc
test eax, eax
je 0x41e0dd
mov dword [esi + 0x130], 1
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
inc ecx
jmp 0x41e070
test edi, edi
je 0x41e0f3
cmp edi, 1
jne 0x41e1e0
cmp dword [ebp - 0x38], 0
jne 0x41e10f
push dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
push eax
push dword [ebp - 0x30]
call fcn.0041f1b0
add esp, 0xc
test eax, eax
jne 0x41e119
mov dword [esi + 0x144], 0
test edi, edi
jne 0x41e138
mov ecx, dword [ebp - 0x28]
inc edi
mov eax, dword [ecx + 4]
mov dword [ebx + 0x98], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0xc], eax
jmp 0x41e004
cmp edi, 1
jne 0x41e1e0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov dword [ebx + 0x9c], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [ebx + 0x6c8], 0
mov dword [ebp - 0x28], eax
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [eax*8 + 0x4d6058]
mov dword [ebp - 0x30], ecx
cmp ecx, dword [ebx + 0x9c]
je 0x41e1ce
push dword [ebp - 0x2c]
push dword [ebp - 0x3c]
push dword [ecx + 0x30]
call fcn.0041f340
add esp, 0xc
test eax, eax
je 0x41e1cb
mov eax, dword [ebp - 0x30]
push dword [eax + 0x34]
push dword [ebx + 0xfc]
push dword [ebx + 0xf8]
call fcn.00468220
add esp, 0xc
test eax, eax
jne 0x41e1cb
mov eax, dword [ebx + 0x6c8]
mov ecx, dword [ebp - 0x28]
mov dword [ebx + eax*4 + 0x6b0], ecx
inc dword [ebx + 0x6c8]
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 6
jb 0x41e170
mov ecx, dword [ebp - 0x34]
inc edi
jmp 0x41e004
cmp edi, 2
jne 0x41e1fd
mov ecx, dword [ebp - 0x28]
inc edi
mov eax, dword [ecx + 4]
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x14], eax
jmp 0x41e004
cmp edi, 3
jne 0x41e21a
mov ecx, dword [ebp - 0x28]
inc edi
mov eax, dword [ecx + 4]
mov dword [esi + 0x4c], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x18], eax
jmp 0x41e004
cmp edi, 4
jne 0x41e237
mov ecx, dword [ebp - 0x28]
inc edi
mov eax, dword [ecx + 4]
mov dword [esi + 0x50], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x58], eax
jmp 0x41e004
cmp edi, 5
jne 0x41e254
mov ecx, dword [ebp - 0x28]
inc edi
mov eax, dword [ecx + 4]
mov dword [esi + 0x54], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x5c], eax
jmp 0x41e004
cmp edi, 6
jne 0x41e26b
mov ecx, dword [ebp - 0x28]
inc edi
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x60], eax
jmp 0x41e004
cmp edi, 7
je 0x41e27e
inc edi
cmp edi, 8
jge 0x41e287
mov ecx, dword [ebp - 0x34]
jmp 0x41e004
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov dword [esi + 0x64], eax
cmp dword [esi + 0x130], 0
je 0x41e2a3
push str.Server_supports_delayed_compression__will_try_this_later
push dword [ebx + 0x110]
call fcn.004569c0
add esp, 8
mov edi, dword [ebp - 0x34]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x3c]
push eax
push edi
call fcn.00425910
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x3c]
push eax
push edi
call fcn.00425910
push edi
call fcn.004226c0
add esp, 0x1c
test eax, eax
je 0x41e2df
cmp dword [esi + 0x144], 0
jne 0x41e2df
mov eax, 1
jmp 0x41e2e1
xor eax, eax
mov dword [esi + 0x148], eax
mov eax, dword [ebx + 0x98]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
call eax
mov edi, dword [ebx + 4]
mov edx, eax
mov ecx, edi
mov dword [ebx + 0xc], edx
lea eax, [ecx + 1]
mov dword [ebp - 0x30], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41e304
sub ecx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x98]
push ecx
push edi
push edx
push dword [eax + 0xc]
call fcn.0041f2b0
mov edx, dword [ebx + 8]
add esp, 0x10
mov ecx, edx
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41e330
mov eax, dword [ebx + 0x98]
sub ecx, edi
push ecx
push edx
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
push dword [esi + 0x34]
mov eax, dword [ebx + 0x98]
push dword [esi + 0x30]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
push dword [esi + 0x30]
call fcn.0040e5c0
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx]
inc eax
push eax
mov eax, dword [ecx + 0x14]
dec eax
push eax
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f2b0
add esp, 0x34
cmp dword [esi + 0xc], 0
je 0x41e3df
push 1
push ebx
call fcn.00426090
mov eax, dword [ebx + 0x98]
push ebx
push 0x425140
push dword [eax]
push str.key_exchange_algorithm
push dword [ebx + 0x110]
call fcn.004564e0
add esp, 0x1c
mov dword [esi + 0x140], eax
test eax, eax
jns 0x41c859
pop edi
mov dword [esi], 0x1abc
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x10], 0
je 0x41e502
push 1
push ebx
call fcn.00426090
xor edi, edi
add esp, 8
mov dword [ebp - 0x30], edi
cmp dword [ebx + 0x6c8], edi
jle 0x41e497
lea eax, [ebx + 0x6b0]
xor esi, esi
mov dword [ebp - 0x40], eax
mov eax, dword [eax]
xor edi, edi
mov dword [ebp - 0x38], eax
push edi
push 0x19
push dword [ebx + 0x248]
call fcn.00403110
add esp, 0xc
test eax, eax
je 0x41e476
mov ecx, dword [ebp - 0x38]
cmp eax, dword [ecx*8 + 0x4d605c]
je 0x41e440
inc edi
cmp edi, 5
jl 0x41e417
jmp 0x41e476
mov eax, dword [ecx*8 + 0x4d6058]
mov eax, dword [eax + 0x30]
test esi, esi
je 0x41e46b
push 0
push eax
push 0x4d49fc
push esi
mov edi, esi
call fcn.0040de70
push edi
mov esi, eax
call fcn.0040e5c0
add esp, 0x14
jmp 0x41e476
push eax
call fcn.0040df50
add esp, 4
mov esi, eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
inc ecx
add eax, 4
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x40], eax
cmp ecx, dword [ebx + 0x6c8]
jl 0x41e410
mov dword [ebp - 0x38], esi
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x38]
mov eax, dword [ebx + 0x9c]
mov ecx, dword [ebx + 0x110]
push ebx
push 0x425140
mov eax, dword [eax + 0x30]
test edi, edi
je 0x41e4c9
push edi
push eax
push ecx
call fcn.004565b0
push edi
mov dword [esi + 0x140], eax
call fcn.0040e5c0
add esp, 0x18
jmp 0x41e4de
push eax
push str.host_key_type
push ecx
call fcn.004564e0
add esp, 0x14
mov dword [esi + 0x140], eax
cmp dword [esi + 0x140], 0
jge 0x41c974
pop edi
mov dword [esi], 0x1aff
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x14], 0
je 0x41ca69
push 1
push ebx
call fcn.00426090
mov eax, dword [esi + 0x48]
push ebx
push 0x425140
push dword [eax + 0x20]
push str.client_to_server_cipher
push dword [ebx + 0x110]
call fcn.004564e0
add esp, 0x1c
mov dword [esi + 0x140], eax
test eax, eax
jns 0x41ca55
pop edi
mov dword [esi], 0x1b18
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x148], 0
je 0x41c9c6
pop edi
mov dword [esi], 0x1b43
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x41e58a
mov ecx, dword [ecx + 0x28]
jmp 0x41e58c
xor ecx, ecx
cmp eax, ecx
cmovg ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [ebx + 0x98]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
shl eax, 3
cmp ecx, eax
jle 0x41e5aa
mov dword [esi + 4], eax
push dword [ebx + 0x98]
call fcn.00430a80
add esp, 4
test eax, eax
je 0x41e694
push str.Doing_Diffie_Hellman_group_exchange
push dword [ebx + 0x110]
call fcn.004569c0
mov dword [ebx + 0x184], 2
add esp, 8
mov eax, dword [esi + 4]
dec eax
cdq
and edx, 0x3f
lea ecx, [edx + eax]
mov edx, 0x200
sar ecx, 6
shl edx, cl
mov dword [esi + 8], edx
cmp edx, 0x400
jge 0x41e606
mov dword [esi + 8], 0x400
jmp 0x41e615
cmp edx, 0x2000
jle 0x41e615
mov dword [esi + 8], 0x2000
test dword [ebx + 0x50], 0x1000
je 0x41e633
push 0x1e
call fcn.00422730
mov ecx, dword [esi + 8]
add esp, 4
mov dword [esi + 0x13c], eax
jmp 0x41e667
push 0x22
call fcn.00422730
push 0x400
push eax
mov dword [esi + 0x13c], eax
call fcn.00425790
push dword [esi + 8]
push dword [esi + 0x13c]
call fcn.00425790
mov eax, dword [esi + 0x13c]
add esp, 0x14
mov ecx, 0x2000
push ecx
push eax
call fcn.00425790
push dword [esi + 0x13c]
push ebx
call fcn.00422860
add esp, 0x10
pop edi
mov dword [esi], 0x1b73
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
push dword [ebx + 0x98]
mov dword [ebx + 0x184], 1
call fcn.00430ae0
mov dword [ebx + 0xe8], eax
mov dword [esi + 0x38], 0x1e
mov dword [esi + 0x3c], 0x1f
mov eax, dword [ebx + 0x98]
push dword [eax + 4]
push str.Using_Diffie_Hellman_with_standard_group___s_
push ebx
call fcn.0041f3a0
add esp, 0x10
mov eax, dword [ebx + 0x98]
mov eax, dword [eax + 0xc]
push dword [eax + 0x18]
push str.Doing_Diffie_Hellman_key_exchange_with_hash__s
push ebx
call fcn.0041f3a0
push 2
push dword [ebx + 0x110]
call fcn.0045f180
mov eax, dword [esi + 4]
add eax, eax
push eax
push dword [ebx + 0xe8]
call fcn.004308f0
push dword [esi + 0x38]
mov dword [esi + 0x24], eax
call fcn.00422730
push dword [esi + 0x24]
mov dword [esi + 0x13c], eax
push eax
call fcn.004222a0
push dword [esi + 0x13c]
push ebx
call fcn.00422860
push 1
push dword [ebx + 0x110]
call fcn.0045f180
add esp, 0x38
pop edi
mov dword [esi], 0x1b96
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 0xc]
push dword [eax + 0x18]
cmp edx, 2
jne 0x41e82b
push ecx
call fcn.00435790
add esp, 4
push eax
push str.Doing_ECDH_key_exchange_with_curve__s_and_hash__s
push ebx
call fcn.0041f3a0
push dword [ebx + 0x98]
mov dword [ebx + 0x184], 3
call fcn.00435950
add esp, 0x14
mov dword [esi + 0x90], eax
test eax, eax
jne 0x41e7a6
push str.Unable_to_generate_key_for_ECDH
jmp 0x41c8b3
lea ecx, [ebp - 0x30]
push ecx
push eax
call fcn.00435880
mov edi, eax
add esp, 8
test edi, edi
jne 0x41e7dd
push dword [esi + 0x90]
call fcn.004357b0
push str.Unable_to_encode_public_key_for_ECDH
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0x10
jmp 0x41c8c2
push 0x1e
call fcn.00422730
push eax
mov dword [esi + 0x13c], eax
call fcn.00425740
push dword [ebp - 0x30]
push edi
push dword [esi + 0x13c]
call fcn.004256e0
push edi
call fcn.0040e5c0
push dword [esi + 0x13c]
push ebx
call fcn.00422860
add esp, 0x20
pop edi
mov dword [esi], 0x1bec
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
push str.Doing_RSA_key_exchange_with_hash__s
push ebx
call fcn.0041f3a0
add esp, 0xc
mov dword [ebx + 0x184], 4
pop edi
mov dword [esi], 0x1c2a
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
push edx
push dword [ebp - 0x2c]
push dword [ebp + edi*4 - 0x24]
push str.Couldnt_agree_a__s__available:__.s_
call fcn.0040df30
push eax
push ebx
call fcn.00417110
add esp, 0x18
jmp 0x41c8c2
push str.KEXINIT_packet_was_incomplete
jmp 0x41c8b3
test ecx, ecx
je 0x41e893
push str.Unexpected_data_from_server_while_waiting_for_user_host_key_response
jmp 0x41c8b3
cmp dword [ebp + 0x10], 0
jle 0x41e8b0
pop edi
mov dword [esi], 0x1ced
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c107
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x25c]
mov dword [esi + 0x140], eax
push 0
push ebx
call fcn.00426090
add esp, 8
cmp dword [esi + 0x140], 0
jne 0x41e8e9
push 1
push 0
push 0
push str.Aborted_at_host_key_verification
push ebx
call fcn.00425190
add esp, 0x14
jmp 0x41c8c2
push dword [esi + 0x78]
call fcn.0040e5c0
add esp, 4
mov eax, dword [esi + 0x74]
mov dword [ebx + 0xa0], eax
mov eax, dword [ebx + 0x9c]
push dword [esi + 0x88]
mov eax, dword [eax + 4]
call eax
add esp, 4
cmp dword [esi + 0x134], 0
jne 0x41e96e
movups xmm0, xmmword [esi + 0x94]
mov eax, dword [ebx + 0x98]
movups xmmword [ebx + 0xa4], xmm0
movups xmm0, xmmword [esi + 0xa4]
movups xmmword [ebx + 0xb4], xmm0
movups xmm0, xmmword [esi + 0xb4]
movups xmmword [ebx + 0xc4], xmm0
movups xmm0, xmmword [esi + 0xc4]
movups xmmword [ebx + 0xd4], xmm0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov dword [ebx + 0xe4], eax
mov dword [esi + 0x134], 1
push 0x15
call fcn.00422730
push eax
push ebx
mov dword [esi + 0x13c], eax
call fcn.00422860
mov ecx, dword [ebx + 0x68]
add esp, 0xc
mov dword [ebx + 0x688], 0
test ecx, ecx
je 0x41e9a2
mov eax, dword [ebx + 0x60]
push ecx
mov eax, dword [eax + 4]
call eax
add esp, 4
mov eax, dword [esi + 0x48]
mov dword [ebx + 0x60], eax
test eax, eax
je 0x41e9b3
mov eax, dword [eax]
call eax
mov dword [ebx + 0x68], eax
mov ecx, dword [ebx + 0x80]
test ecx, ecx
je 0x41e9c9
mov eax, dword [ebx + 0x70]
push ecx
mov eax, dword [eax + 4]
call eax
add esp, 4
mov ecx, dword [esi + 0x50]
mov dword [ebx + 0x70], ecx
mov eax, dword [esi + 0x58]
mov dword [ebx + 0x78], eax
test ecx, ecx
je 0x41e9e9
push dword [ebx + 0x68]
mov eax, dword [ecx]
call eax
add esp, 4
mov dword [ebx + 0x80], eax
mov ecx, dword [ebx + 0x90]
test ecx, ecx
je 0x41ea02
mov eax, dword [ebx + 0x88]
push ecx
mov eax, dword [eax + 0xc]
call eax
add esp, 4
mov eax, dword [esi + 0x60]
mov dword [ebx + 0x88], eax
mov eax, dword [eax + 8]
call eax
mov dword [ebx + 0x90], eax
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x41ea98
push dword [eax + 0x2c]
lea ebx, [esi + 0x94]
push 0x43
push ebx
push dword [esi + 0x2c]
push dword [ebp - 0x28]
call fcn.00421210
mov edi, eax
mov eax, dword [ebp - 0x28]
push edi
mov ecx, dword [eax + 0x60]
push dword [eax + 0x68]
mov ecx, dword [ecx + 0xc]
call ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x60]
push dword [ecx + 0x2c]
push edi
call fcn.00463250
push edi
call fcn.0040e5c0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x60]
push dword [eax + 0x24]
push 0x41
push ebx
push dword [esi + 0x2c]
mov ebx, dword [ebp - 0x28]
push ebx
call fcn.00421210
mov ecx, dword [ebx + 0x60]
mov edi, eax
push edi
push dword [ebx + 0x68]
mov ecx, dword [ecx + 8]
call ecx
mov ecx, dword [ebx + 0x60]
add esp, 0x44
push dword [ecx + 0x24]
push edi
call fcn.00463250
push edi
call fcn.0040e5c0
add esp, 0xc
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x41eada
push dword [eax + 0x30]
lea eax, [esi + 0x94]
push 0x45
push eax
push dword [esi + 0x2c]
push ebx
call fcn.00421210
mov ecx, dword [ebx + 0x70]
mov edi, eax
push edi
push dword [ebx + 0x80]
mov ecx, dword [ecx + 8]
call ecx
mov ecx, dword [ebx + 0x70]
push dword [ecx + 0x30]
push edi
call fcn.00463250
push edi
call fcn.0040e5c0
add esp, 0x28
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x41eaf2
push dword [eax + 0x34]
push str.Initialised__.200s_client__server_encryption
push ebx
call fcn.0041f3a0
add esp, 0xc
mov edx, dword [ebx + 0x70]
test edx, edx
je 0x41eb2c
mov eax, dword [ebx + 0x60]
mov edi, 0x4cd6c7
mov ecx, str.__required_by_cipher_
cmp dword [eax + 0x38], 0
mov eax, str.__in_ETM_mode_
cmove ecx, edi
cmp dword [ebx + 0x78], 0
push ecx
cmove eax, edi
push eax
push dword [edx + 0x34]
push str.Initialised__.200s_client__server_MAC_algorithm_s_s
push ebx
call fcn.0041f3a0
add esp, 0x14
mov eax, dword [ebx + 0x88]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x41eb48
push eax
push str.Initialised__s_compression
push ebx
call fcn.0041f3a0
add esp, 0xc
push ebx
mov dword [ebx + 0x164], 0
call fcn.004227e0
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
mov dword [esi], 0x1d7e
xor ecx, ebp
pop esi
pop ebx
call fcn.0046c107
mov esp, ebp
pop ebp
ret