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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x4e5814]
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]
mov esi, dword [ebx + 0x1cc]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x24], 0x4c951c
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
mov dword [ebp - 0x48], esi
test esi, esi
jne 0x41c5ad
push 0x74c
push 1
call fcn.0040e450
mov ecx, dword [ebp - 0x40]
add esp, 8
mov dword [ebx + 0x1cc], eax
mov dword [eax], esi
mov esi, dword [ebx + 0x1cc]
mov dword [ebp - 0x48], esi
mov eax, dword [esi]
cmp eax, 0x1b73
jg 0x41c8d7
je 0x41c870
cmp eax, 0x1aff
jg 0x41c754
je 0x41c708
test eax, eax
je 0x41c68a
cmp eax, 0x1a26
je 0x41c64d
cmp eax, 0x1abc
jne 0x41c673
test ecx, ecx
je 0x41c5f6
push str.Unexpected_data_from_server_while_waiting_for_user_response
jmp 0x41c664
cmp dword [ebp + 0x10], 0
jg 0x41e0ea
mov eax, dword [ebx + 0x25c]
lea edi, [esi + 0x140]
mov dword [edi], eax
push 0
push ebx
call fcn.00425cf0
add esp, 8
cmp dword [edi], 0
jne 0x41e101
push 1
push 0
push 0
push str.User_aborted_at_kex_warning
push ebx
call fcn.00424e10
add esp, 0x14
mov dword [esi], 0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x41dcfa
cmp dword [ecx + 8], 0x14
je 0x41dd11
push str.expected_key_exchange_packet_from_server
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0xc
pop edi
mov dword [esi], 0
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
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 0x41c6f5
mov dword [esi + 0x40], 0x4c6ee0
mov dword [esi + 0x44], 3
jmp 0x41d5d7
mov dword [esi + 0x40], 0x4c6ed0
mov dword [esi + 0x44], 4
jmp 0x41d5d7
test ecx, ecx
jne 0x41c5ef
cmp dword [ebp + 0x10], ecx
jg 0x41e214
mov eax, dword [ebx + 0x25c]
lea edi, [esi + 0x140]
mov dword [edi], eax
push 0
push ebx
call fcn.00425cf0
add esp, 8
cmp dword [edi], 0
jne 0x41e22b
push 1
push 0
push 0
push str.User_aborted_at_host_key_warning
push ebx
call fcn.00424e10
add esp, 0x14
jmp 0x41c673
sub eax, 0x1b18
je 0x41c7e9
sub eax, 0x19
je 0x41c799
sub eax, 0x12
jne 0x41c673
test ecx, ecx
je 0x41e28d
mov ecx, dword [ebx + 0x98]
mov edx, dword [ecx + 8]
test edx, edx
jne 0x41e47f
mov eax, dword [esi + 0x48]
test eax, eax
je 0x41e2a4
mov eax, dword [eax + 0x28]
jmp 0x41e2a6
test ecx, ecx
jne 0x41c5ef
cmp dword [ebp + 0x10], ecx
jg 0x41c859
mov eax, dword [ebx + 0x25c]
lea edi, [esi + 0x140]
mov dword [esi + 0x140], eax
push 0
push ebx
call fcn.00425cf0
add esp, 8
cmp dword [edi], 0
jne 0x41e280
push 1
push 0
push 0
push str.User_aborted_at_cipher_warning
push ebx
call fcn.00424e10
add esp, 0x14
jmp 0x41c673
test ecx, ecx
jne 0x41c5ef
cmp dword [ebp + 0x10], ecx
jg 0x41e269
mov eax, dword [ebx + 0x25c]
lea edi, [esi + 0x140]
mov dword [edi], eax
push 0
push ebx
call fcn.00425cf0
add esp, 8
mov dword [ebp - 0x30], edi
cmp dword [edi], 0
je 0x41c7d0
cmp dword [esi + 0x18], 0
je 0x41e280
push 1
push ebx
call fcn.00425cf0
mov eax, dword [esi + 0x4c]
push ebx
push 0x424dc0
push dword [eax + 0x20]
push str.server_to_client_cipher
push dword [ebx + 0x110]
call fcn.004555e0
mov edi, dword [ebp - 0x30]
add esp, 0x1c
mov dword [edi], eax
test eax, eax
jns 0x41c7bc
pop edi
mov dword [esi], 0x1b31
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x41e3a6
cmp dword [ecx + 8], 0x1f
je 0x41c888
push str.expected_key_exchange_group_packet_from_server
jmp 0x41c664
push ecx
call fcn.004223d0
push dword [ebp - 0x40]
mov dword [esi + 0x1c], eax
call fcn.004223d0
mov ecx, dword [esi + 0x1c]
add esp, 8
mov dword [esi + 0x20], eax
test ecx, ecx
je 0x41c8cd
test eax, eax
je 0x41c8cd
push eax
push ecx
call fcn.00430540
mov dword [ebx + 0xe8], eax
add esp, 8
mov dword [esi + 0x38], 0x20
mov dword [esi + 0x3c], 0x21
jmp 0x41e3fd
push str.unable_to_read_mp_ints_from_incoming_group_packet
jmp 0x41c664
cmp eax, 0x1c85
jg 0x41d241
je 0x41ceca
sub eax, 0x1b96
je 0x41ccd8
sub eax, 0x56
je 0x41cb67
sub eax, 0x3e
jne 0x41c673
test ecx, ecx
je 0x41e56d
cmp dword [ecx + 8], 0x1e
je 0x41c91d
push str.expected_RSA_public_key_packet_from_server
jmp 0x41c664
lea eax, [esi + 0x7c]
push eax
lea edi, [esi + 0x68]
push edi
push ecx
call fcn.00425590
mov eax, dword [edi]
add esp, 0xc
test eax, eax
jne 0x41c93e
push str.unable_to_parse_RSA_public_key_packet
jmp 0x41c664
push dword [esi + 0x7c]
push eax
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efd0
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 - 0x2c]
push eax
push dword [ebp - 0x40]
call fcn.00425590
add esp, 0x28
cmp dword [ebp - 0x2c], 0
je 0x41c934
push 1
push dword [edi]
call fcn.0040e450
push dword [edi]
mov dword [esi + 0x70], eax
push dword [ebp - 0x2c]
push eax
call fcn.0046c130
push dword [edi]
push dword [esi + 0x70]
call fcn.0043bf30
mov ecx, dword [esi + 0x70]
add esp, 0x1c
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x41c9d5
push ecx
call fcn.0040e430
push str.unable_to_parse_RSA_public_key_from_server
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0x10
jmp 0x41c673
push dword [edi]
mov eax, dword [ebx + 0x98]
push ecx
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efd0
push dword [esi + 0x8c]
call fcn.0043bf10
mov ecx, dword [ebx + 0x98]
mov ebx, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], 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.0042b4a0
add esp, 0x18
mov dword [esi + 0x2c], eax
xor edi, edi
test ebx, ebx
jle 0x41ca60
nop dword [eax]
mov ebx, edi
and ebx, 7
jne 0x41ca41
call fcn.0043a1c0
mov dword [ebp - 0x2c], eax
jmp 0x41ca44
mov eax, dword [ebp - 0x2c]
mov edx, eax
mov ecx, ebx
sar edx, cl
and edx, 1
push edx
push edi
push dword [esi + 0x2c]
call fcn.0042b330
inc edi
add esp, 0xc
cmp edi, dword [ebp - 0x30]
jl 0x41ca30
lea eax, [ebp - 0x30]
push eax
push dword [esi + 0x2c]
call fcn.00421080
mov ebx, dword [ebp - 0x30]
mov edi, eax
push 1
mov dword [ebp - 0x3c], edi
lea eax, [ebx + 4]
push eax
call fcn.0040e450
mov ecx, ebx
mov dword [ebp - 0x2c], eax
sar ecx, 0x18
push ebx
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 edi
push eax
call fcn.0046c130
mov eax, dword [ebp - 0x44]
add eax, 7
cdq
and edx, 7
push 1
lea edi, [edx + eax]
sar edi, 3
push edi
call fcn.0040e450
push dword [esi + 0x8c]
lea ecx, [ebx + 4]
mov dword [ebp - 0x30], eax
push edi
push eax
push ecx
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x98]
push dword [ecx + 0xc]
call fcn.0043bdf0
push 0x1f
call fcn.00422410
add esp, 0x40
mov dword [esi + 0x13c], eax
push eax
call fcn.004253c0
mov ebx, dword [ebp - 0x30]
push edi
push ebx
push dword [esi + 0x13c]
call fcn.00425360
push dword [esi + 0x13c]
push dword [ebp - 0x34]
call fcn.00422530
mov eax, dword [ebp - 0x34]
push edi
push ebx
push dword [eax + 0xc]
mov eax, dword [eax + 0x98]
push dword [eax + 0xc]
call fcn.0041efd0
push dword [ebp - 0x2c]
call fcn.0040e430
push dword [ebp - 0x3c]
call fcn.0040e430
push ebx
call fcn.0040e430
push dword [esi + 0x8c]
call fcn.0043bf00
add esp, 0x38
mov dword [esi], 0x1c85
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x41e53e
cmp dword [ecx + 8], 0x1f
je 0x41cb99
push dword [esi + 0x90]
call fcn.00435240
push str.expected_ECDH_reply_packet_from_server
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0x10
jmp 0x41c673
lea eax, [esi + 0x7c]
push eax
lea edi, [esi + 0x68]
push edi
push ecx
call fcn.00425590
mov eax, dword [edi]
add esp, 0xc
test eax, eax
jne 0x41cbba
push str.unable_to_parse_ECDH_reply_packet
jmp 0x41c664
push dword [esi + 0x7c]
push eax
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efd0
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.00435310
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x41cc21
push dword [esi + 0x90]
call fcn.00435240
push str.Unable_to_encode_public_key_for_ECDH_hash
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0x10
jmp 0x41c673
push dword [ebp - 0x30]
mov eax, dword [ebx + 0x98]
push edi
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efd0
push edi
call fcn.0040e430
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x40]
call fcn.00425590
mov eax, dword [ebp - 0x2c]
add esp, 0x20
test eax, eax
je 0x41cbb0
mov edi, dword [ebp - 0x30]
push edi
push eax
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efd0
push edi
push dword [ebp - 0x2c]
push dword [esi + 0x90]
call fcn.00435250
add esp, 0x1c
mov dword [esi + 0x2c], eax
test eax, eax
jne 0x41ccad
push dword [esi + 0x90]
call fcn.00435240
push str.point_received_in_ECDH_was_not_valid
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0x10
jmp 0x41c673
lea eax, [esi + 0x80]
push eax
lea edi, [esi + 0x6c]
push edi
push dword [ebp - 0x40]
call fcn.00425590
add esp, 0xc
cmp dword [edi], 0
je 0x41cd18
push dword [esi + 0x90]
call fcn.00435240
jmp 0x41cf37
test ecx, ecx
je 0x41e468
mov eax, dword [ecx + 8]
cmp eax, dword [esi + 0x3c]
je 0x41ccf2
push str.expected_key_exchange_reply_packet_from_server
jmp 0x41c664
push 2
push dword [ebx + 0x110]
call fcn.0045e170
lea eax, [esi + 0x7c]
push eax
lea edi, [esi + 0x68]
push edi
push dword [ebp - 0x40]
call fcn.00425590
mov ecx, dword [edi]
add esp, 0x14
test ecx, ecx
jne 0x41cd22
push str.unable_to_parse_key_exchange_reply_packet
jmp 0x41c664
push dword [esi + 0x7c]
mov eax, dword [ebx + 0x9c]
push ecx
push eax
mov eax, dword [eax]
call eax
push dword [ebp - 0x40]
mov dword [esi + 0x88], eax
call fcn.004223d0
add esp, 0x10
mov dword [esi + 0x28], eax
test eax, eax
je 0x41cd18
lea eax, [esi + 0x80]
push eax
lea edi, [esi + 0x6c]
push edi
push dword [ebp - 0x40]
call fcn.00425590
add esp, 0xc
cmp dword [edi], 0
je 0x41cd18
push dword [esi + 0x28]
push dword [ebx + 0xe8]
call fcn.004305c0
add esp, 8
test eax, eax
je 0x41cd93
push eax
push str.key_exchange_reply_failed_validation:__s
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0x10
jmp 0x41c673
push dword [esi + 0x28]
push dword [ebx + 0xe8]
call fcn.004304d0
mov dword [esi + 0x2c], eax
push 0
push dword [ebx + 0x110]
call fcn.0045e170
push dword [esi + 0x7c]
mov eax, dword [ebx + 0x98]
push dword [esi + 0x68]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efd0
push dword [ebx + 0x98]
call fcn.00430520
add esp, 0x24
test eax, eax
je 0x41ce64
test dword [ebx + 0x50], 0x1000
jne 0x41ce00
mov eax, dword [ebx + 0x98]
push 0x400
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f020
add esp, 0xc
push dword [esi + 8]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f020
add esp, 0xc
test dword [ebx + 0x50], 0x1000
jne 0x41ce39
mov eax, dword [ebx + 0x98]
push 0x2000
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041f020
add esp, 0xc
push dword [esi + 0x1c]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efa0
push dword [esi + 0x20]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efa0
add esp, 0x18
push dword [esi + 0x24]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efa0
push dword [esi + 0x28]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efa0
push dword [ebx + 0xe8]
call fcn.00430340
push dword [esi + 0x28]
call fcn.0042b560
push dword [ebx + 0x98]
call fcn.00430520
add esp, 0x24
test eax, eax
je 0x41cf3a
push dword [esi + 0x20]
call fcn.0042b560
push dword [esi + 0x1c]
call fcn.0042b560
add esp, 8
jmp 0x41cf3a
test ecx, ecx
jne 0x41cee5
pop edi
mov dword [esi], 0x1c85
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 8], 0x20
je 0x41cf0c
push dword [esi + 0x70]
call fcn.0040e430
push str.expected_signature_packet_from_server
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0x10
jmp 0x41c673
lea eax, [esi + 0x80]
push eax
lea edi, [esi + 0x6c]
push edi
push ecx
call fcn.00425590
add esp, 0xc
cmp dword [edi], 0
jne 0x41cf2f
push str.unable_to_parse_signature_packet
jmp 0x41c664
push dword [esi + 0x70]
call fcn.0040e430
add esp, 4
push dword [esi + 0x2c]
mov eax, dword [ebx + 0x98]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efa0
mov eax, dword [ebx + 0x98]
lea ecx, [esi + 0x94]
push ecx
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 0x41cf87
push str.Servers_host_key_is_invalid
jmp 0x41c664
mov eax, dword [ebx + 0x98]
mov ecx, dword [ebx + 0x9c]
mov eax, dword [eax + 0xc]
push dword [eax + 0x14]
lea eax, [esi + 0x94]
push eax
push dword [esi + 0x80]
mov eax, dword [ecx + 0x28]
push dword [edi]
push edx
call eax
add esp, 0x14
test eax, eax
jne 0x41cfbf
push str.Servers_host_key_did_not_match_the_signature_supplied
jmp 0x41c664
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 0x41d17f
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x38], edx
xor edi, edi
mov dword [ebp - 0x28], ecx
mov eax, dword [edi*8 + 0x4c6ea0]
cmp eax, dword [ebx + 0x9c]
je 0x41d028
mov edx, dword [ebx + 0x6c8]
xor eax, eax
test edx, edx
jle 0x41d025
lea ecx, [ebx + 0x6b0]
cmp dword [ecx], edi
je 0x41d0c6
inc eax
add ecx, 4
cmp eax, edx
jl 0x41d012
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x38]
inc edi
cmp edi, 6
jb 0x41cff1
test ecx, ecx
je 0x41d068
cmp edx, 1
mov eax, str.any_of_them
mov edi, 0x4c9af0
mov edx, 0x4be6b7
cmovle eax, edi
push eax
mov eax, 0x4c2998
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.0041f0c0
push dword [ebp - 0x28]
call fcn.0040e430
add esp, 0x18
push dword [esi + 0x88]
push dword [ebx + 0x9c]
call fcn.00438340
mov dword [esi + 0x78], eax
push str.Host_key_fingerprint_is:
push dword [ebx + 0x110]
call fcn.00455ac0
push dword [esi + 0x78]
push dword [ebx + 0x110]
call fcn.00455ac0
push dword [esi + 0x88]
push dword [ebx + 0x9c]
push dword [esi + 0x78]
push ebx
call fcn.00426a70
add esp, 0x28
mov dword [esi + 0x140], eax
test eax, eax
jne 0x41d11d
push str.Host_key_did_not_appear_in_manually_configured_list
jmp 0x41c664
cmp eax, edx
jge 0x41d022
mov ecx, dword [edi*8 + 0x4c6ea0]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ecx + 0x30]
push ecx
test eax, eax
je 0x41d0f0
push eax
push 0x4c9adc
call fcn.0040dda0
add esp, 0xc
jmp 0x41d0fd
push 0x4c4a04
call fcn.0040dda0
add esp, 8
push dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
call fcn.0040e430
mov edx, dword [ebp - 0x38]
add esp, 4
mov ecx, dword [ebp - 0x2c]
inc edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x38], edx
jmp 0x41d028
jns 0x41e615
push 1
push ebx
call fcn.00425cf0
mov eax, dword [ebx + 0x9c]
push ebx
push 0x424dc0
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.00455df0
add esp, 0x28
mov dword [esi + 0x140], eax
test eax, eax
jns 0x41e5e8
pop edi
mov dword [esi], 0x1ced
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x6cc], 0
je 0x41d1f1
push dword [esi + 0x88]
push dword [ebx + 0x9c]
call fcn.00438340
mov dword [esi + 0x78], eax
push str.Storing_additional_host_key_for_this_host:
push dword [ebx + 0x110]
call fcn.00455ac0
push dword [esi + 0x78]
push dword [ebx + 0x110]
call fcn.00455ac0
push dword [esi + 0x78]
call fcn.0040e430
push dword [esi + 0x74]
mov eax, dword [ebx + 0x9c]
push dword [eax + 0x34]
push dword [ebx + 0xfc]
push dword [ebx + 0xf8]
call fcn.00467760
add esp, 0x2c
mov dword [ebx + 0x6cc], 0
jmp 0x41e620
mov eax, dword [ebx + 0xa0]
mov ecx, edi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x41d220
test dl, dl
je 0x41d21c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x41d220
add eax, 2
add ecx, 2
test dl, dl
jne 0x41d200
xor eax, eax
jmp 0x41d225
sbb eax, eax
or eax, 1
test eax, eax
je 0x41d233
push str.Host_key_was_different_in_repeat_key_exchange
jmp 0x41c664
push edi
call fcn.0040e430
add esp, 4
jmp 0x41e629
sub eax, 0x1ced
je 0x41e5b1
sub eax, 0x91
je 0x41d261
sub eax, 0x7f
je 0x41d4d1
jmp 0x41c673
test ecx, ecx
je 0x41e87f
cmp dword [ecx + 8], 0x15
je 0x41d279
push str.expected_new_keys_packet_from_server
jmp 0x41c664
mov ecx, dword [ebx + 0x6c]
mov dword [ebx + 0x684], 0
test ecx, ecx
je 0x41d296
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 0x41d2a7
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 0x41d2bd
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 0x41d2dd
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 0x41d2f6
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
lea ecx, [esi + 0x94]
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x41d38a
push dword [eax + 0x2c]
push 0x44
push ecx
push dword [esi + 0x2c]
push ebx
call fcn.00420f40
mov ecx, dword [ebx + 0x64]
mov edi, eax
push edi
push dword [ebx + 0x6c]
mov ecx, dword [ecx + 0xc]
call ecx
mov ecx, dword [ebx + 0x64]
push dword [ecx + 0x2c]
push edi
call fcn.004621c0
push edi
call fcn.0040e430
mov eax, dword [ebx + 0x64]
push dword [eax + 0x24]
lea eax, [esi + 0x94]
push 0x42
push eax
push dword [esi + 0x2c]
push ebx
call fcn.00420f40
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.004621c0
push edi
call fcn.0040e430
add esp, 0xc
lea ecx, [esi + 0x94]
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x41d3c6
push dword [eax + 0x30]
push 0x46
push ecx
push dword [esi + 0x2c]
push ebx
call fcn.00420f40
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.004621c0
push edi
call fcn.0040e430
add esp, 0x28
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x41d3de
push dword [eax + 0x34]
push str.Initialised__.200s_server__client_encryption
push ebx
call fcn.0041f0c0
add esp, 0xc
mov edx, dword [ebx + 0x74]
test edx, edx
je 0x41d418
mov eax, dword [ebx + 0x64]
mov edi, 0x4be6b7
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.0041f0c0
add esp, 0x14
mov eax, dword [ebx + 0x8c]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x41d434
push eax
push str.Initialised__s_decompression
push ebx
call fcn.0041f0c0
add esp, 0xc
push dword [esi + 0x2c]
call fcn.0042b560
push dword [ebx + 0x110]
call fcn.0045ea60
mov eax, dword [ebx + 0x6a0]
add esp, 8
test eax, eax
je 0x41d479
push eax
push dword [ebx + 0x110]
call fcn.00455ac0
add esp, 8
mov dword [ebp - 0x40], 0
mov dword [ebx + 0x6a0], 0
jmp 0x41d5d7
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.004030c0
add esp, 8
test eax, eax
je 0x41d4ce
push ebx
push 0x423b10
push 0x1a
push dword [ebx + 0x248]
call fcn.004030c0
imul eax, eax, 0xea60
add esp, 8
push eax
call fcn.0044e870
add esp, 0xc
mov dword [ebx + 0x698], eax
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x41d4fa
cmp dword [eax + 8], 0x14
jne 0x41d590
push str.Server_initiated_key_re_exchange
push dword [ebx + 0x110]
call fcn.00455ac0
add esp, 8
jmp 0x41d5d7
mov eax, dword [ebp + 0x10]
test eax, eax
jns 0x41d590
cmp eax, 0xfffffffe
jne 0x41d527
cmp dword [esi + 0x130], 0
mov dword [esi + 0x12c], 1
je 0x41d590
mov dword [esi + 0x130], 0
test byte [ebx + 0x50], 0x40
push edi
je 0x41d5c9
push str.Server_bug_prevents_key_re_exchange___s_
push ebx
call fcn.0041f0c0
push 0x1a
push dword [ebx + 0x248]
mov dword [ebx + 0x688], 0
mov dword [ebx + 0x684], 0
call fcn.004030c0
add esp, 0x14
test eax, eax
je 0x41d590
push ebx
push 0x423b10
push 0x1a
push dword [ebx + 0x248]
call fcn.004030c0
imul eax, eax, 0xea60
add esp, 8
push eax
call fcn.0044e870
add esp, 0xc
mov dword [ebx + 0x698], eax
cmp dword [ebx + 0x238], 0
jne 0x41d5b2
push 0
push 0
push 0
push ebx
mov dword [ebx + 0x238], 1
call fcn.00419830
add esp, 0x10
pop edi
mov dword [esi], 0x1dfd
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
push str.Initiating_key_re_exchange___s_
push ebx
call fcn.0041f0c0
add esp, 0xc
mov dword [ebx + 0x184], 0
xor edi, edi
mov dword [esi + 0xd4], 0
nop dword [eax]
push edi
push 0x18
push dword [ebx + 0x248]
call fcn.004030f0
add esp, 0xc
cmp eax, 5
ja case.default.0x41d60a
jmp dword [eax*4 + 0x41e898]
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4cf448
jmp 0x41d686
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4cf440
jmp 0x41d686
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4cf438
jmp 0x41d686
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4d0688
jmp 0x41d686
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0x4cf7d0
jmp 0x41d686
cmp edi, 5
jge case.default.0x41d60a
mov eax, dword [esi + 0xd4]
mov dword [esi + eax*4 + 0xd8], 0
inc dword [esi + 0xd4]
inc edi
cmp edi, 6
jl 0x41d5f0
mov dword [esi + 0xf0], 0
xor edi, edi
push edi
push 0x19
push dword [ebx + 0x248]
call fcn.004030f0
add esp, 0xc
test eax, eax
jne 0x41d6bc
cmp edi, 4
jge 0x41d6cf
mov ecx, dword [esi + 0xf0]
mov dword [esi + ecx*4 + 0xf4], eax
inc dword [esi + 0xf0]
inc edi
cmp edi, 5
jl 0x41d6a2
mov dword [esi + 0x108], 0
xor edi, edi
push edi
push 0x1f
push dword [ebx + 0x248]
call fcn.004030f0
add esp, 0xc
cmp eax, 6
ja case.default.0x41d6fb
jmp dword [eax*4 + 0x41e8b0]
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4cd26c
jmp 0x41d7a5
push 0x22
push dword [ebx + 0x248]
call fcn.004030c0
add esp, 8
test eax, eax
je case.default.0x41d6fb
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4ce890
jmp 0x41d7a5
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4ce888
jmp 0x41d7a5
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4cad18
jmp 0x41d7a5
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4cd198
jmp 0x41d7a5
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0x4ce388
jmp 0x41d7a5
cmp edi, 6
jge case.default.0x41d6fb
mov eax, dword [esi + 0x108]
mov dword [esi + eax*4 + 0x10c], 0
inc dword [esi + 0x108]
inc edi
cmp edi, 7
jl 0x41d6e1
push 0x17
push dword [ebx + 0x248]
call fcn.004030c0
add esp, 8
mov edx, 0x4c6eec
test eax, eax
mov ecx, 0x4d1520
lea eax, [esi + 0x14c]
cmove ecx, edx
mov edx, 8
mov dword [esi + 0x128], ecx
mov dword [ebx + 0x164], 1
mov dword [ebx + 0x694], 1
mov dword [ebp - 0x38], eax
nop dword [eax]
mov ecx, 0x10
nop word [eax + eax]
mov dword [eax], 0
add eax, 0xc
sub ecx, 1
jne 0x41d810
sub edx, 1
jne 0x41d800
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ecx
cmp dword [esi + 0xd4], ecx
jle 0x41d89a
lea eax, [esi + 0xd8]
mov dword [ebp - 0x3c], eax
nop word [eax + eax]
mov ebx, dword [eax]
test ebx, ebx
jne 0x41d84f
mov dword [ebp - 0x2c], 1
jmp 0x41d885
xor edi, edi
cmp dword [ebx], edi
jle 0x41d885
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebx + 4]
mov eax, dword [eax + edi*4]
push dword [eax]
push dword [ebp - 0x38]
call fcn.00420b30
mov ecx, dword [ebx + 4]
add esp, 8
mov ecx, dword [ecx + edi*4]
inc edi
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
cmp edi, dword [ebx]
jl 0x41d858
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x28]
inc ecx
add eax, 4
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x3c], eax
cmp ecx, dword [esi + 0xd4]
jl 0x41d840
mov ebx, dword [ebp - 0x34]
cmp dword [esi + 0x134], 0
jne 0x41d9d5
mov edx, dword [esi + 0xf0]
xor eax, eax
mov dword [ebp - 0x3c], eax
lea edi, [eax + 1]
test edx, edx
jle 0x41d951
lea ecx, [esi + 0xf4]
mov dword [ebp - 0x28], ecx
cmp dword [ecx], 0
cmove eax, edi
xor edi, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x4c6ea4]
cmp eax, dword [ecx]
jne 0x41d926
mov eax, dword [edi + 0x4c6ea0]
push dword [eax + 0x34]
push dword [ebx + 0xfc]
push dword [ebx + 0xf8]
call fcn.00467120
add esp, 0xc
test eax, eax
je 0x41d923
mov eax, dword [edi + 0x4c6ea0]
push dword [eax + 0x30]
lea eax, [esi + 0x20c]
push eax
call fcn.00420b30
mov ecx, dword [edi + 0x4c6ea0]
add esp, 8
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x28]
add edi, 8
cmp edi, 0x30
jb 0x41d8d1
mov eax, dword [ebp - 0x3c]
add ecx, 4
mov edx, dword [esi + 0xf0]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, edx
mov eax, dword [ebp - 0x2c]
mov edi, 1
mov dword [ebp - 0x28], ecx
jl 0x41d8c6
mov dword [ebp - 0x3c], 0
test edx, edx
jle 0x41d9fd
lea ecx, [esi + 0xf4]
xor ebx, ebx
mov dword [ebp - 0x2c], ecx
nop dword [eax + eax]
cmp dword [ecx], 0
cmove ebx, edi
xor edi, edi
nop dword [eax + eax]
mov eax, dword [edi + 0x4c6ea4]
cmp eax, dword [ecx]
jne 0x41d9b1
mov eax, dword [edi + 0x4c6ea0]
push dword [eax + 0x30]
lea eax, [esi + 0x20c]
push eax
call fcn.00420b30
mov ecx, dword [edi + 0x4c6ea0]
add esp, 8
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 8], ebx
add edi, 8
cmp edi, 0x30
jb 0x41d980
mov eax, dword [ebp - 0x3c]
add ecx, 4
inc eax
mov dword [ebp - 0x2c], ecx
mov edi, 1
mov dword [ebp - 0x3c], eax
cmp eax, dword [esi + 0xf0]
jl 0x41d970
jmp 0x41d9fd
mov eax, dword [ebx + 0x9c]
push dword [eax + 0x30]
lea eax, [esi + 0x20c]
push eax
call fcn.00420b30
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 - 0x28], ecx
mov dword [ebp - 0x30], eax
nop
xor edx, edx
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], edx
cmp dword [esi + 0x108], edx
jle 0x41da94
lea eax, [esi + 0x10c]
mov dword [ebp - 0x44], eax
nop dword [eax]
mov ebx, dword [eax]
test ebx, ebx
jne 0x41da3f
mov dword [ebp - 0x3c], 1
jmp 0x41da7f
xor edi, edi
cmp dword [ebx], edi
jle 0x41da7f
mov esi, dword [ebp - 0x3c]
nop dword [eax + eax]
mov eax, dword [ebx + 4]
mov eax, dword [eax + edi*4]
push dword [eax + 0x20]
push ecx
call fcn.00420b30
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 - 0x28]
mov dword [eax + 8], esi
cmp edi, dword [ebx]
jl 0x41da50
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x2c]
inc edx
add eax, 4
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x44], eax
cmp edx, dword [esi + 0x108]
jl 0x41da30
mov eax, dword [ebp - 0x30]
add ecx, 0xc0
sub eax, 1
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], eax
jne 0x41da10
mov eax, dword [esi + 0x44]
lea edx, [esi + 0x44c]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x30], 2
nop dword [eax]
xor edi, edi
mov ecx, eax
test eax, eax
jle 0x41dafd
mov ebx, dword [ebp - 0x28]
nop dword [eax + eax]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + edi*4]
push dword [eax + 0x24]
push ebx
call fcn.00420b30
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 ecx, dword [esi + 0x44]
cmp edi, ecx
jl 0x41dad0
mov edx, dword [ebp - 0x28]
xor edi, edi
mov eax, ecx
test ecx, ecx
jle 0x41db42
mov ebx, dword [ebp - 0x28]
nop dword [eax + eax]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x28]
test eax, eax
je 0x41db37
push eax
push ebx
call fcn.00420b30
mov ecx, dword [esi + 0x40]
add esp, 8
mov ecx, dword [ecx + edi*4]
mov dword [eax + 4], ecx
mov dword [eax + 8], 1
mov eax, dword [esi + 0x44]
inc edi
cmp edi, eax
jl 0x41db10
mov edx, dword [ebp - 0x28]
add edx, 0xc0
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x28], edx
jne 0x41dac0
lea ebx, [esi + 0x5cc]
mov dword [ebp - 0x30], 2
mov dword [ebp - 0x28], ebx
mov eax, dword [esi + 0x128]
push dword [eax]
push ebx
call fcn.00420b30
mov ecx, dword [esi + 0x128]
add esp, 8
mov dword [eax + 4], ecx
cmp dword [esi + 0x12c], 0
je 0x41dba8
mov eax, dword [esi + 0x128]
mov eax, dword [eax + 4]
test eax, eax
je 0x41dba8
push eax
push ebx
call fcn.00420b30
mov ecx, dword [esi + 0x128]
add esp, 8
mov dword [eax + 4], ecx
xor ebx, ebx
nop word [eax + eax]
mov edi, dword [ebx + 0x4c6f5c]
push dword [edi]
push dword [ebp - 0x28]
call fcn.00420b30
add esp, 8
mov dword [eax + 4], edi
cmp dword [esi + 0x12c], 0
je 0x41dbe5
mov eax, dword [edi + 4]
test eax, eax
je 0x41dbe5
push eax
push dword [ebp - 0x28]
call fcn.00420b30
add esp, 8
mov dword [eax + 4], edi
add ebx, 4
cmp ebx, 8
jb 0x41dbb0
mov ebx, dword [ebp - 0x28]
add ebx, 0xc0
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x28], ebx
jne 0x41db65
push 0x14
call fcn.00422410
add esp, 4
mov dword [esi + 0x13c], eax
mov edi, 0x10
call fcn.0043a1c0
push eax
push dword [esi + 0x13c]
call fcn.004252f0
add esp, 8
sub edi, 1
jne 0x41dc18
lea ebx, [edi + 8]
push dword [esi + 0x13c]
call fcn.004253c0
mov edi, dword [ebp - 0x38]
add esp, 4
mov dword [ebp - 0x30], 0
nop dword [eax]
mov eax, dword [edi]
test eax, eax
je 0x41dc74
push eax
push dword [esi + 0x13c]
call fcn.00422000
mov eax, dword [ebp - 0x30]
add esp, 8
inc eax
add edi, 0xc
mov dword [ebp - 0x30], eax
cmp eax, 0x10
jl 0x41dc50
add dword [ebp - 0x38], 0xc0
sub ebx, 1
jne 0x41dc34
push dword [esi + 0x13c]
call fcn.004253c0
push dword [esi + 0x13c]
call fcn.004253c0
push ebx
push dword [esi + 0x13c]
call fcn.00421fa0
push ebx
push dword [esi + 0x13c]
call fcn.00425410
mov eax, dword [esi + 0x13c]
push 1
mov eax, dword [eax]
add eax, 0xfffffffb
push eax
mov dword [esi + 0x34], eax
call fcn.0040e450
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.0046c130
push dword [esi + 0x13c]
mov ebx, dword [ebp - 0x34]
push ebx
call fcn.00422530
mov ecx, dword [ebp - 0x40]
add esp, 0x34
test ecx, ecx
jne 0x41c655
pop edi
mov dword [esi], 0x1a26
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
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 eax, eax
mov dword [esi + 0x144], 0
mov dword [ebp - 0x34], eax
nop
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x38]
push eax
push ecx
call fcn.00425590
add esp, 0xc
cmp dword [ebp - 0x38], 0
je 0x41e5a7
mov ecx, dword [ebp - 0x34]
cmp ecx, 4
jne 0x41ddc4
mov edx, dword [esi + 0x48]
test edx, edx
je 0x41ddea
mov edx, dword [edx + 0x38]
test edx, edx
je 0x41ddea
xor eax, eax
mov dword [esi + 0x50], edx
cmp dword [edx + 0x28], eax
setne al
mov dword [esi + 0x58], eax
jmp 0x41df98
cmp ecx, 5
jne 0x41ddea
mov edx, dword [esi + 0x4c]
test edx, edx
je 0x41ddea
mov edx, dword [edx + 0x38]
test edx, edx
je 0x41ddea
xor eax, eax
mov dword [esi + 0x54], edx
cmp dword [edx + 0x28], eax
setne al
mov dword [esi + 0x5c], eax
jmp 0x41df98
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edx, 0x10
jge 0x41e584
mov eax, ecx
shl eax, 4
add eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + 0x53]
lea edi, [esi + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x41e584
push dword [ebp - 0x28]
push dword [ebp - 0x38]
push eax
call fcn.0041f060
add esp, 0xc
test eax, eax
jne 0x41de5d
mov ecx, dword [ebp - 0x34]
cmp ecx, 6
je 0x41de32
cmp ecx, 7
jne 0x41de57
push dword [ebp - 0x28]
mov eax, dword [edi + 4]
push dword [ebp - 0x38]
push dword [eax + 4]
call fcn.0041f060
mov ecx, dword [ebp - 0x34]
add esp, 0xc
test eax, eax
je 0x41de57
mov dword [esi + 0x130], 1
mov edx, dword [ebp - 0x2c]
inc edx
jmp 0x41ddec
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x41de69
cmp eax, 1
jne 0x41de8d
cmp dword [ebp - 0x2c], 0
jne 0x41de83
push dword [ebp - 0x28]
push dword [ebp - 0x38]
push dword [edi]
call fcn.0041eed0
add esp, 0xc
test eax, eax
jne 0x41de8d
mov dword [esi + 0x144], 0
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x41dea8
mov eax, dword [edi + 4]
mov dword [ebx + 0x98], eax
mov eax, dword [edi + 8]
mov dword [esi + 0xc], eax
jmp 0x41df98
cmp ecx, 1
jne 0x41df34
mov eax, dword [edi + 4]
mov dword [ebx + 0x9c], eax
mov eax, dword [edi + 8]
xor edi, edi
mov dword [esi + 0x10], eax
mov dword [ebx + 0x6c8], 0
nop dword [eax]
mov eax, dword [edi*8 + 0x4c6ea0]
cmp eax, dword [ebx + 0x9c]
je 0x41df29
push dword [ebp - 0x28]
push dword [ebp - 0x38]
push dword [eax + 0x30]
call fcn.0041f060
add esp, 0xc
test eax, eax
je 0x41df29
mov eax, dword [edi*8 + 0x4c6ea0]
push dword [eax + 0x34]
push dword [ebx + 0xfc]
push dword [ebx + 0xf8]
call fcn.00467120
add esp, 0xc
test eax, eax
jne 0x41df29
mov eax, dword [ebx + 0x6c8]
mov dword [ebx + eax*4 + 0x6b0], edi
inc dword [ebx + 0x6c8]
inc edi
cmp edi, 6
jb 0x41ded0
mov ecx, dword [ebp - 0x34]
jmp 0x41df98
cmp ecx, 2
jne 0x41df47
mov eax, dword [edi + 4]
mov dword [esi + 0x48], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x14], eax
jmp 0x41df98
cmp ecx, 3
jne 0x41df5a
mov eax, dword [edi + 4]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x18], eax
jmp 0x41df98
cmp ecx, 4
jne 0x41df6d
mov eax, dword [edi + 4]
mov dword [esi + 0x50], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x58], eax
jmp 0x41df98
cmp ecx, 5
jne 0x41df80
mov eax, dword [edi + 4]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x5c], eax
jmp 0x41df98
cmp ecx, 6
jne 0x41df8d
mov eax, dword [edi + 4]
mov dword [esi + 0x60], eax
jmp 0x41df98
cmp ecx, 7
jne 0x41df98
mov eax, dword [edi + 4]
mov dword [esi + 0x64], eax
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 8
mov ecx, dword [ebp - 0x40]
jl 0x41dd80
cmp dword [esi + 0x130], 0
je 0x41dfc4
push str.Server_supports_delayed_compression__will_try_this_later
push dword [ebx + 0x110]
call fcn.00455ac0
add esp, 8
mov edi, dword [ebp - 0x40]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x38]
push eax
push edi
call fcn.00425590
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x38]
push eax
push edi
call fcn.00425590
push edi
call fcn.004223a0
add esp, 0x1c
test eax, eax
je 0x41e000
cmp dword [esi + 0x144], 0
jne 0x41e000
mov eax, 1
jmp 0x41e002
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 0x41e025
sub ecx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x98]
push ecx
push edi
push edx
push dword [eax + 0xc]
call fcn.0041efd0
mov edx, dword [ebx + 8]
add esp, 0x10
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41e050
mov eax, dword [ebx + 0x98]
sub ecx, edi
push ecx
push edx
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efd0
push dword [esi + 0x34]
mov eax, dword [ebx + 0x98]
push dword [esi + 0x30]
push dword [ebx + 0xc]
push dword [eax + 0xc]
call fcn.0041efd0
push dword [esi + 0x30]
call fcn.0040e430
mov ecx, dword [ebp - 0x40]
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.0041efd0
add esp, 0x34
lea edi, [esi + 0x140]
cmp dword [esi + 0xc], 0
je 0x41e101
push 1
push ebx
call fcn.00425cf0
mov eax, dword [ebx + 0x98]
push ebx
push 0x424dc0
push dword [eax]
push str.key_exchange_algorithm
push dword [ebx + 0x110]
call fcn.004555e0
add esp, 0x1c
mov dword [edi], eax
test eax, eax
jns 0x41c60e
pop edi
mov dword [esi], 0x1abc
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x10], 0
je 0x41e22b
push 1
push ebx
call fcn.00425cf0
xor ecx, ecx
add esp, 8
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], ecx
cmp dword [ebx + 0x6c8], ecx
jle 0x41e1c4
lea eax, [ebx + 0x6b0]
xor esi, esi
mov dword [ebp - 0x44], eax
mov eax, dword [eax]
xor edi, edi
mov dword [ebp - 0x3c], eax
nop dword [eax]
push edi
push 0x19
push dword [ebx + 0x248]
call fcn.004030f0
add esp, 0xc
test eax, eax
je 0x41e19f
mov ecx, dword [ebp - 0x3c]
cmp eax, dword [ecx*8 + 0x4c6ea4]
je 0x41e169
inc edi
cmp edi, 5
jl 0x41e140
jmp 0x41e19f
mov eax, dword [ecx*8 + 0x4c6ea0]
mov eax, dword [eax + 0x30]
test esi, esi
je 0x41e194
push 0
push eax
push 0x4c59ec
push esi
mov edi, esi
call fcn.0040dce0
push edi
mov esi, eax
call fcn.0040e430
add esp, 0x14
jmp 0x41e19f
push eax
call fcn.0040ddc0
add esp, 4
mov esi, eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x44]
inc edx
add eax, 4
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x44], eax
cmp edx, dword [ebx + 0x6c8]
jl 0x41e135
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x9c]
lea edi, [esi + 0x140]
mov edx, dword [ebx + 0x110]
push ebx
push 0x424dc0
mov eax, dword [eax + 0x30]
test ecx, ecx
je 0x41e1fa
push ecx
push eax
push edx
call fcn.004556b0
push dword [ebp - 0x28]
mov dword [edi], eax
call fcn.0040e430
add esp, 0x18
jmp 0x41e20b
push eax
push str.host_key_type
push edx
call fcn.004555e0
add esp, 0x14
mov dword [edi], eax
cmp dword [edi], 0
jge 0x41c727
pop edi
mov dword [esi], 0x1aff
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x14], 0
mov dword [ebp - 0x30], edi
je 0x41c81b
push 1
push ebx
call fcn.00425cf0
mov eax, dword [esi + 0x48]
push ebx
push 0x424dc0
push dword [eax + 0x20]
push str.client_to_server_cipher
push dword [ebx + 0x110]
call fcn.004555e0
add esp, 0x1c
mov dword [edi], eax
test eax, eax
jns 0x41c808
pop edi
mov dword [esi], 0x1b18
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x148], 0
je 0x41c775
pop edi
mov dword [esi], 0x1b43
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x41e2b2
mov ecx, dword [ecx + 0x28]
jmp 0x41e2b4
xor ecx, ecx
cmp eax, ecx
cmovg ecx, eax
mov dword [esi + 4], ecx
mov edx, dword [ebx + 0x98]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x14]
shl eax, 3
cmp ecx, eax
jle 0x41e2d8
mov dword [esi + 4], eax
mov edx, dword [ebx + 0x98]
push edx
call fcn.00430520
add esp, 4
test eax, eax
je 0x41e3bd
push str.Doing_Diffie_Hellman_group_exchange
push dword [ebx + 0x110]
call fcn.00455ac0
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 0x41e32f
mov dword [esi + 8], 0x400
jmp 0x41e33e
cmp edx, 0x2000
jle 0x41e33e
mov dword [esi + 8], 0x2000
test dword [ebx + 0x50], 0x1000
je 0x41e35c
push 0x1e
call fcn.00422410
mov ecx, dword [esi + 8]
add esp, 4
mov dword [esi + 0x13c], eax
jmp 0x41e390
push 0x22
call fcn.00422410
push 0x400
push eax
mov dword [esi + 0x13c], eax
call fcn.00425410
push dword [esi + 8]
push dword [esi + 0x13c]
call fcn.00425410
mov eax, dword [esi + 0x13c]
add esp, 0x14
mov ecx, 0x2000
push ecx
push eax
call fcn.00425410
push dword [esi + 0x13c]
push ebx
call fcn.00422530
add esp, 0x10
pop edi
mov dword [esi], 0x1b73
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
push dword [ebx + 0x98]
mov dword [ebx + 0x184], 1
call fcn.00430580
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.0041f0c0
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.0041f0c0
push 2
push dword [ebx + 0x110]
call fcn.0045e170
mov eax, dword [esi + 4]
add eax, eax
push eax
push dword [ebx + 0xe8]
call fcn.00430390
push dword [esi + 0x38]
mov dword [esi + 0x24], eax
call fcn.00422410
push dword [esi + 0x24]
mov dword [esi + 0x13c], eax
push eax
call fcn.00421fc0
push dword [esi + 0x13c]
push ebx
call fcn.00422530
push 1
push dword [ebx + 0x110]
call fcn.0045e170
add esp, 0x38
pop edi
mov dword [esi], 0x1b96
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x18]
push eax
cmp edx, 2
jne 0x41e555
push ecx
call fcn.00435220
add esp, 4
push eax
push str.Doing_ECDH_key_exchange_with_curve__s_and_hash__s
push ebx
call fcn.0041f0c0
push dword [ebx + 0x98]
mov dword [ebx + 0x184], 3
call fcn.004353e0
add esp, 0x14
mov dword [esi + 0x90], eax
test eax, eax
jne 0x41e4d0
push str.Unable_to_generate_key_for_ECDH
jmp 0x41c664
lea ecx, [ebp - 0x30]
push ecx
push eax
call fcn.00435310
mov edi, eax
add esp, 8
test edi, edi
jne 0x41e507
push dword [esi + 0x90]
call fcn.00435240
push str.Unable_to_encode_public_key_for_ECDH
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0x10
jmp 0x41c673
push 0x1e
call fcn.00422410
push eax
mov dword [esi + 0x13c], eax
call fcn.004253c0
push dword [ebp - 0x30]
push edi
push dword [esi + 0x13c]
call fcn.00425360
push edi
call fcn.0040e430
push dword [esi + 0x13c]
push ebx
call fcn.00422530
add esp, 0x20
pop edi
mov dword [esi], 0x1bec
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
push str.Doing_RSA_key_exchange_with_hash__s
push ebx
call fcn.0041f0c0
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.0046addd
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x38]
push dword [ebp - 0x28]
push dword [ebp + ecx*4 - 0x24]
push str.Couldnt_agree_a__s__available:__.s_
call fcn.0040dda0
push eax
push ebx
call fcn.00416f40
add esp, 0x18
jmp 0x41c673
push str.KEXINIT_packet_was_incomplete
jmp 0x41c664
test ecx, ecx
je 0x41e5bf
push str.Unexpected_data_from_server_while_waiting_for_user_host_key_response
jmp 0x41c664
cmp dword [ebp + 0x10], 0
jle 0x41e5dc
pop edi
mov dword [esi], 0x1ced
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046addd
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x25c]
mov dword [esi + 0x140], eax
push 0
push ebx
call fcn.00425cf0
add esp, 8
cmp dword [esi + 0x140], 0
jne 0x41e615
push 1
push 0
push 0
push str.Aborted_at_host_key_verification
push ebx
call fcn.00424e10
add esp, 0x14
jmp 0x41c673
push dword [esi + 0x78]
call fcn.0040e430
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 0x41e69a
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.00422410
push eax
push ebx
mov dword [esi + 0x13c], eax
call fcn.00422530
mov ecx, dword [ebx + 0x68]
add esp, 0xc
mov dword [ebx + 0x688], 0
test ecx, ecx
je 0x41e6ce
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 0x41e6df
mov eax, dword [eax]
call eax
mov dword [ebx + 0x68], eax
mov ecx, dword [ebx + 0x80]
test ecx, ecx
je 0x41e6f5
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 0x41e715
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 0x41e72e
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
lea ecx, [esi + 0x94]
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x41e7c2
push dword [eax + 0x2c]
push 0x43
push ecx
push dword [esi + 0x2c]
push ebx
call fcn.00420f40
mov ecx, dword [ebx + 0x60]
mov edi, eax
push edi
push dword [ebx + 0x68]
mov ecx, dword [ecx + 0xc]
call ecx
mov ecx, dword [ebx + 0x60]
push dword [ecx + 0x2c]
push edi
call fcn.004621c0
push edi
call fcn.0040e430
mov eax, dword [ebx + 0x60]
push dword [eax + 0x24]
lea eax, [esi + 0x94]
push 0x41
push eax
push dword [esi + 0x2c]
push ebx
call fcn.00420f40
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.004621c0
push edi
call fcn.0040e430
add esp, 0xc
lea ecx, [esi + 0x94]
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x41e7fe
push dword [eax + 0x30]
push 0x45
push ecx
push dword [esi + 0x2c]
push ebx
call fcn.00420f40
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.004621c0
push edi
call fcn.0040e430
add esp, 0x28
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x41e816
push dword [eax + 0x34]
push str.Initialised__.200s_client__server_encryption
push ebx
call fcn.0041f0c0
add esp, 0xc
mov edx, dword [ebx + 0x70]
test edx, edx
je 0x41e850
mov eax, dword [ebx + 0x60]
mov edi, 0x4be6b7
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.0041f0c0
add esp, 0x14
mov eax, dword [ebx + 0x88]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x41e86c
push eax
push str.Initialised__s_compression
push ebx
call fcn.0041f0c0
add esp, 0xc
push ebx
mov dword [ebx + 0x164], 0
call fcn.004224b0
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
mov dword [esi], 0x1d7e
xor ecx, ebp
pop esi
pop ebx
call fcn.0046addd
mov esp, ebp
pop ebp
ret