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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
cmp dword [edi + 0x1a0], esi
jne 0x41d8c5
push 0xfc
push 1
call fcn.0040bca9
pop ecx
mov dword [edi + 0x1a0], eax
pop ecx
mov dword [eax], esi
cmp dword [edi + 0xc4], esi
mov ebx, dword [edi + 0x1a0]
mov dword [ebp - 4], ebx
je 0x41d8ed
push 0x17c6
push str..._ssh.c
push str._ssh__bare_connection
call fcn.004522d8
add esp, 0xc
mov eax, dword [ebx]
mov ecx, 0x19ef
cmp eax, ecx
jg 0x41dbcf
je 0x41db6a
sub eax, esi
je 0x41db11
sub eax, 0x18a2
je 0x41db01
sub eax, 0xd9
je 0x41dac3
sub eax, 0x19
je 0x41da48
sub eax, 0x19
je 0x41da04
sub eax, 0x12
jne 0x41dc03
cmp dword [ebp + 0x14], esi
je 0x41eafc
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x90]
cmp dword [eax + 8], 0
jne 0x41ec2d
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x48]
mov eax, dword [eax + 0x20]
mov ecx, dword [ecx + 0x20]
cmp eax, ecx
jle 0x41d969
mov ecx, eax
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
shl eax, 3
cmp ecx, eax
jle 0x41d982
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x90]
cmp dword [eax + 0xc], 0
jne 0x41eb5b
push str.Doing_Diffie_Hellman_group_exchange
push dword [esi + 0xe4]
call fcn.00441aad
pop ecx
mov dword [esi + 0x158], 2
mov eax, dword [ebx + 4]
dec eax
pop ecx
cdq
push 0x40
pop ecx
idiv ecx
mov edx, 0x200
mov ecx, eax
shl edx, cl
mov eax, 0x400
cmp edx, eax
mov dword [ebx + 8], edx
jge 0x41d9d0
mov dword [ebx + 8], eax
mov eax, 0x2000
cmp dword [ebx + 8], eax
jle 0x41d9dd
mov dword [ebx + 8], eax
test byte [esi + 0x51], 0x10
je 0x41eb07
push 0x1e
pop edi
call fcn.00412b4a
mov dword [ebx + 0xec], eax
push eax
mov eax, dword [ebx + 8]
call fcn.00412995
pop ecx
jmp 0x41eb41
cmp dword [ebp + 0x14], esi
je 0x41da13
push str.Unexpected_data_from_server_while_waiting_for_user_response
jmp 0x41f323
cmp dword [ebp + 0x10], esi
jg 0x41dab8
mov eax, dword [edi + 0x230]
mov dword [ebx + 0xf0], eax
mov esi, dword [ebp + 8]
xor edi, edi
call fcn.004136cf
cmp dword [ebx + 0xf0], edi
jne 0x41eaef
mov eax, str.User_aborted_at_cipher_warning
jmp 0x41ec8f
cmp dword [ebp + 0x14], esi
jne 0x41da09
cmp dword [ebp + 0x10], esi
jg 0x41eae4
mov eax, dword [edi + 0x230]
mov dword [ebx + 0xf0], eax
mov esi, dword [ebp + 8]
xor edi, edi
call fcn.004136cf
cmp dword [ebx + 0xf0], edi
je 0x41da3e
cmp dword [ebx + 0x14], 0
je 0x41eaef
mov esi, dword [ebp + 8]
xor edi, edi
inc edi
call fcn.004136cf
mov ecx, dword [ebx + 0x48]
mov eax, esi
push eax
push 0x413bb1
push dword [ecx + 0x18]
push str.server_to_client_cipher
push dword [eax + 0xe4]
call fcn.00441d41
add esp, 0x14
test eax, eax
mov dword [ebx + 0xf0], eax
jge 0x41da28
mov dword [ebx], 0x19ad
jmp 0x41f5d0
cmp dword [ebp + 0x14], esi
jne 0x41da09
cmp dword [ebp + 0x10], esi
jg 0x41ea92
mov eax, dword [edi + 0x230]
mov dword [ebx + 0xf0], eax
mov esi, dword [ebp + 8]
xor edi, edi
call fcn.004136cf
cmp dword [ebx + 0xf0], edi
jne 0x41eaa0
mov eax, str.User_aborted_at_kex_warning
jmp 0x41ec8f
mov ecx, dword [ebp + 0x14]
cmp ecx, esi
je 0x41e476
jmp 0x41e484
mov dword [ebx + 0x48], esi
mov dword [ebx + 0x44], esi
mov dword [ebx + 0x50], esi
mov dword [ebx + 0x4c], esi
mov dword [ebx + 0x58], esi
mov dword [ebx + 0x54], esi
mov dword [ebx + 0xe8], esi
mov dword [ebx + 0xe4], esi
mov dword [ebx + 0xdc], esi
mov dword [ebx + 0xe0], esi
test byte [edi + 0x50], 2
mov edi, dword [ebp + 8]
je 0x41db57
mov dword [ebx + 0x3c], 0x47a6d0
mov dword [ebx + 0x40], 3
jmp 0x41df82
mov dword [ebx + 0x3c], 0x47a6c0
mov dword [ebx + 0x40], 4
jmp 0x41df82
mov eax, dword [ebp + 0x14]
cmp eax, esi
je 0x41eb54
cmp dword [eax + 8], 0x1f
je 0x41db85
push str.expected_key_exchange_group_packet_from_server
jmp 0x41f323
mov esi, dword [ebp + 0x14]
call fcn.00412d3d
mov dword [ebx + 0x18], eax
call fcn.00412d3d
mov ecx, dword [ebx + 0x18]
test ecx, ecx
mov dword [ebx + 0x1c], eax
je 0x41dbc5
test eax, eax
je 0x41dbc5
push eax
push ecx
call fcn.004279d6
pop ecx
mov dword [edi + 0xc0], eax
pop ecx
mov dword [ebx + 0x34], 0x20
mov dword [ebx + 0x38], 0x21
jmp 0x41eb96
push str.unable_to_read_mp_ints_from_incoming_group_packet
jmp 0x41f5be
sub eax, 0x1a12
je 0x41ef73
sub eax, 0x3f
je 0x41ed01
sub eax, 0x5a
je 0x41eca4
sub eax, 0x3b
je 0x41ec50
sub eax, 0x75
je 0x41dc0a
sub eax, 0x69
je 0x41de74
mov dword [ebx], esi
jmp 0x41f5d0
mov eax, dword [ebp + 0x14]
cmp eax, esi
je 0x41f5b1
cmp dword [eax + 8], 0x15
je 0x41dc25
push str.expected_new_keys_packet_from_server
jmp 0x41f323
mov eax, dword [edi + 0x6c]
cmp eax, esi
mov dword [edi + 0x658], esi
je 0x41dc3a
mov ecx, dword [edi + 0x64]
push eax
call dword [ecx + 4]
pop ecx
mov eax, dword [ebx + 0x48]
mov dword [edi + 0x64], eax
call dword [eax]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x7c]
cmp eax, esi
je 0x41dc54
mov ecx, dword [edi + 0x74]
push eax
call dword [ecx + 4]
pop ecx
mov eax, dword [ebx + 0x50]
mov dword [edi + 0x74], eax
call dword [eax]
mov dword [edi + 0x7c], eax
mov eax, dword [edi + 0x8c]
cmp eax, esi
je 0x41dc74
mov ecx, dword [edi + 0x84]
push eax
call dword [ecx + 0x18]
pop ecx
mov eax, dword [ebx + 0x58]
mov dword [edi + 0x84], eax
call dword [eax + 0x14]
mov dword [edi + 0x8c], eax
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
shl eax, 1
cmp eax, 0x40
jbe 0x41dcb0
push 0x1b7b
push str..._ssh.c
push str.sizeof_keyspace____ssh__kex__hash__hlen__SSH2_MKKEY_ITERS
call fcn.004522d8
add esp, 0xc
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x58]
push eax
push 0x44
lea esi, [ebx + 0x84]
push esi
push dword [ebx + 0x28]
call fcn.0041426d
mov eax, dword [edi + 0x64]
mov eax, dword [eax + 0x20]
add esp, 0x10
add eax, 7
push 8
cdq
pop ecx
idiv ecx
mov ecx, dword [edi + 0x90]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0xc]
shl ecx, 1
cmp eax, ecx
jle 0x41dd03
push 0x1b7e
push str..._ssh.c
push str._ssh__sccipher__keylen7____8___ssh__kex__hash__hlen__SSH2_MKKEY_ITERS
call fcn.004522d8
add esp, 0xc
mov eax, dword [edi + 0x64]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x6c]
call dword [eax + 0xc]
lea eax, [ebp - 0x58]
push eax
push 0x42
push esi
push dword [ebx + 0x28]
call fcn.0041426d
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x64]
shl eax, 1
add esp, 0x18
cmp dword [ecx + 0x1c], eax
jle 0x41dd4f
push 0x1b82
push str..._ssh.c
push str.ssh__sccipher__blksize___ssh__kex__hash__hlen__SSH2_MKKEY_ITERS
call fcn.004522d8
add esp, 0xc
mov eax, dword [edi + 0x64]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x6c]
call dword [eax + 8]
lea eax, [ebp - 0x58]
push eax
push 0x46
push esi
push dword [ebx + 0x28]
call fcn.0041426d
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x74]
shl eax, 1
add esp, 0x18
cmp dword [ecx + 0x28], eax
jle 0x41dd9b
push 0x1b86
push str..._ssh.c
push str.ssh__scmac__len___ssh__kex__hash__hlen__SSH2_MKKEY_ITERS
call fcn.004522d8
add esp, 0xc
mov eax, dword [edi + 0x74]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x7c]
call dword [eax + 8]
lea eax, [ebp - 0x58]
push 0x40
push eax
call fcn.0044b1f3
mov eax, dword [edi + 0x64]
push dword [eax + 0x28]
push str.Initialised__.200s_server__client_encryption
push edi
call fcn.004124d8
mov eax, dword [edi + 0x74]
push dword [eax + 0x2c]
push str.Initialised__.200s_server__client_MAC_algorithm
push edi
call fcn.004124d8
mov eax, dword [edi + 0x84]
mov eax, dword [eax + 0x24]
add esp, 0x28
test eax, eax
je 0x41ddf4
push eax
push str.Initialised__s_decompression
push edi
call fcn.004124d8
add esp, 0xc
push dword [ebx + 0x28]
call fcn.00423a23
lea esi, [edi + 0x674]
mov eax, dword [esi]
test eax, eax
pop ecx
je 0x41de23
push eax
push dword [edi + 0xe4]
call fcn.00441aad
and dword [ebp + 0x14], 0
and dword [esi], 0
pop ecx
pop ecx
jmp 0x41df82
and dword [edi + 0x668], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x670], eax
add edi, 0x21c
push 0x18
push dword [edi]
call fcn.00402219
test eax, eax
pop ecx
pop ecx
je 0x41de74
mov esi, dword [ebp + 8]
push esi
push 0x414fb0
push 0x18
push dword [edi]
call fcn.00402219
imul eax, eax, 0xea60
pop ecx
pop ecx
push eax
call fcn.0043bf3b
add esp, 0xc
mov dword [esi + 0x66c], eax
mov eax, dword [ebp + 0x14]
xor esi, esi
cmp eax, esi
je 0x41de8b
cmp dword [eax + 8], 0x14
je 0x41de90
mov edi, dword [ebp + 8]
jmp 0x41df4a
cmp dword [ebp + 0x10], esi
jge 0x41de83
cmp eax, esi
je 0x41deae
mov eax, dword [ebp + 8]
push str.Server_initiated_key_re_exchange
push dword [eax + 0xe4]
call fcn.00441aad
pop ecx
pop ecx
jmp 0x41df7f
cmp dword [ebp + 0x10], 0xfffffffe
jne 0x41dee7
lea edi, [ebx + 0xdc]
cmp dword [edi], esi
je 0x41ded5
push 0x1bdc
push str..._ssh.c
push str._s__userauth_succeeded
call fcn.004522d8
add esp, 0xc
lea eax, [ebx + 0xe0]
cmp dword [eax], esi
mov dword [edi], 1
je 0x41de83
mov dword [eax], esi
mov edi, dword [ebp + 8]
test byte [edi + 0x50], 0x40
push dword [ebp + 0xc]
je 0x41df71
push str.Server_bug_prevents_key_re_exchange___s_
push edi
call fcn.004124d8
and dword [edi + 0x65c], 0
and dword [edi + 0x658], 0
lea esi, [edi + 0x21c]
push 0x18
push dword [esi]
call fcn.00402219
add esp, 0x14
test eax, eax
je 0x41df48
push edi
push 0x414fb0
push 0x18
push dword [esi]
call fcn.00402219
imul eax, eax, 0xea60
pop ecx
pop ecx
push eax
call fcn.0043bf3b
add esp, 0xc
mov dword [edi + 0x66c], eax
xor esi, esi
lea eax, [edi + 0x20c]
cmp dword [eax], esi
jne 0x41df66
push esi
push esi
push esi
push edi
mov dword [eax], 1
call fcn.0041adee
add esp, 0x10
mov dword [ebx], 0x1bc4
jmp 0x41f5d0
push str.Initiating_key_re_exchange___s_
push edi
call fcn.004124d8
add esp, 0xc
mov edi, dword [ebp + 8]
xor esi, esi
mov dword [edi + 0x158], esi
mov dword [ebx + 0xa4], esi
push esi
push 0x17
push dword [edi + 0x21c]
call fcn.00402298
add esp, 0xc
sub eax, 0
je 0x41dffe
dec eax
je 0x41dfeb
dec eax
je 0x41dfd8
dec eax
je 0x41dfc5
dec eax
jne 0x41e017
mov eax, dword [ebx + 0xa4]
mov dword [ebx + eax*4 + 0xa8], 0x46ed8c
jmp 0x41e011
mov eax, dword [ebx + 0xa4]
mov dword [ebx + eax*4 + 0xa8], 0x46e834
jmp 0x41e011
mov eax, dword [ebx + 0xa4]
mov dword [ebx + eax*4 + 0xa8], 0x46e7e4
jmp 0x41e011
mov eax, dword [ebx + 0xa4]
mov dword [ebx + eax*4 + 0xa8], 0x46e7b8
jmp 0x41e011
cmp esi, 4
jge 0x41e017
mov eax, dword [ebx + 0xa4]
and dword [ebx + eax*4 + 0xa8], 0
inc dword [ebx + 0xa4]
inc esi
cmp esi, 5
jl 0x41df90
xor esi, esi
mov dword [ebx + 0xbc], esi
push esi
push 0x1d
push dword [edi + 0x21c]
call fcn.00402298
add esp, 0xc
sub eax, 0
je 0x41e0c8
dec eax
je 0x41e0b5
dec eax
je 0x41e0a2
dec eax
je 0x41e08f
dec eax
je 0x41e069
dec eax
jne 0x41e0e1
mov eax, dword [ebx + 0xbc]
mov dword [ebx + eax*4 + 0xc0], 0x46c340
jmp 0x41e0db
push 0x20
push dword [edi + 0x21c]
call fcn.00402219
test eax, eax
pop ecx
pop ecx
je 0x41e0e1
mov eax, dword [ebx + 0xbc]
mov dword [ebx + eax*4 + 0xc0], 0x46e548
jmp 0x41e0db
mov eax, dword [ebx + 0xbc]
mov dword [ebx + eax*4 + 0xc0], 0x46c1a0
jmp 0x41e0db
mov eax, dword [ebx + 0xbc]
mov dword [ebx + eax*4 + 0xc0], 0x46d45c
jmp 0x41e0db
mov eax, dword [ebx + 0xbc]
mov dword [ebx + eax*4 + 0xc0], 0x46e538
jmp 0x41e0db
cmp esi, 5
jge 0x41e0e1
mov eax, dword [ebx + 0xbc]
and dword [ebx + eax*4 + 0xc0], 0
inc dword [ebx + 0xbc]
inc esi
cmp esi, 6
jl 0x41e029
push 0x16
push dword [edi + 0x21c]
call fcn.00402219
test eax, eax
pop ecx
pop ecx
je 0x41e10a
mov dword [ebx + 0xd8], str.zlib
jmp 0x41e114
mov dword [ebx + 0xd8], str.none
xor eax, eax
inc eax
mov dword [edi + 0x138], eax
mov dword [edi + 0x668], eax
push 0x14
pop edi
call fcn.00412b4a
push 0x10
mov dword [ebx + 0xec], eax
pop esi
call fcn.0042b416
push eax
push dword [ebx + 0xec]
call fcn.00412980
dec esi
pop ecx
pop ecx
jne 0x41e134
mov esi, dword [ebx + 0xec]
call fcn.004129c8
xor eax, eax
cmp dword [ebx + 0xa4], eax
mov dword [ebp - 0xc], eax
jle 0x41e1c8
lea ecx, [ebx + 0xa8]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
mov edi, dword [ecx]
test edi, edi
je 0x41e1b6
and dword [ebp + 0xc], 0
cmp dword [edi], 0
jle 0x41e1b6
test eax, eax
je 0x41e192
mov esi, dword [ebx + 0xec]
push 0x4649ec
call fcn.004129d7
pop ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
push dword [eax]
mov esi, dword [ebx + 0xec]
call fcn.004129d7
xor eax, eax
inc eax
inc dword [ebp + 0xc]
pop ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [edi]
jl 0x41e17d
inc dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
add dword [ebp - 8], 4
cmp ecx, dword [ebx + 0xa4]
jl 0x41e16b
xor edi, edi
cmp dword [ebx + 0xe4], edi
jne 0x41e212
mov esi, dword [ebx + 0xec]
call fcn.004129c8
mov eax, dword [edi + 0x47a6b8]
push dword [eax + 0x30]
mov esi, dword [ebx + 0xec]
call fcn.004129d7
cmp edi, 4
pop ecx
jae 0x41e208
mov esi, dword [ebx + 0xec]
push 0x4649ec
call fcn.004129d7
pop ecx
add edi, 4
cmp edi, 8
jb 0x41e1dd
jmp 0x41e249
mov esi, dword [ebp + 8]
cmp dword [esi + 0x90], edi
jne 0x41e234
push 0x185a
push str..._ssh.c
push str.ssh__kex
call fcn.004522d8
add esp, 0xc
mov eax, dword [esi + 0x94]
push dword [eax + 0x30]
mov eax, dword [ebx + 0xec]
call fcn.00412a83
pop ecx
mov dword [ebp - 0x14], 2
mov esi, dword [ebx + 0xec]
call fcn.004129c8
xor eax, eax
cmp dword [ebx + 0xbc], eax
mov dword [ebp - 0xc], eax
jle 0x41e2cf
lea ecx, [ebx + 0xc0]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
mov edi, dword [ecx]
test edi, edi
je 0x41e2bd
and dword [ebp + 0xc], 0
cmp dword [edi], 0
jle 0x41e2bd
test eax, eax
je 0x41e298
mov esi, dword [ebx + 0xec]
push 0x4649ec
call fcn.004129d7
pop ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x18]
mov esi, dword [ebx + 0xec]
call fcn.004129d7
xor eax, eax
inc eax
inc dword [ebp + 0xc]
pop ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [edi]
jl 0x41e283
inc dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
add dword [ebp - 8], 4
cmp ecx, dword [ebx + 0xbc]
jl 0x41e271
dec dword [ebp - 0x14]
jne 0x41e250
mov dword [ebp + 0xc], 2
mov esi, dword [ebx + 0xec]
call fcn.004129c8
xor edi, edi
cmp dword [ebx + 0x40], edi
jle 0x41e325
mov eax, dword [ebx + 0x3c]
mov eax, dword [eax + edi*4]
push dword [eax + 0x24]
mov esi, dword [ebx + 0xec]
call fcn.004129d7
mov eax, dword [ebx + 0x40]
dec eax
cmp edi, eax
pop ecx
jge 0x41e31f
mov esi, dword [ebx + 0xec]
push 0x4649ec
call fcn.004129d7
pop ecx
inc edi
cmp edi, dword [ebx + 0x40]
jl 0x41e2f1
dec dword [ebp + 0xc]
jne 0x41e2df
mov dword [ebp - 0x14], 2
mov esi, dword [ebx + 0xec]
call fcn.004129c8
mov eax, dword [ebx + 0xd8]
push dword [eax]
mov esi, dword [ebx + 0xec]
call fcn.004129d7
xor edi, edi
cmp dword [ebx + 0xdc], edi
pop ecx
je 0x41e38b
mov eax, dword [ebx + 0xd8]
cmp dword [eax + 4], edi
je 0x41e38b
mov esi, dword [ebx + 0xec]
push 0x4649ec
call fcn.004129d7
mov eax, dword [ebx + 0xd8]
push dword [eax + 4]
mov esi, dword [ebx + 0xec]
call fcn.004129d7
pop ecx
pop ecx
mov dword [ebp + 0xc], edi
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x47a6dc]
cmp edi, dword [ebx + 0xd8]
je 0x41e3ed
mov esi, dword [ebx + 0xec]
push 0x4649ec
call fcn.004129d7
push dword [edi]
mov esi, dword [ebx + 0xec]
call fcn.004129d7
cmp dword [ebx + 0xdc], 0
pop ecx
pop ecx
je 0x41e3ed
cmp dword [edi + 4], 0
je 0x41e3ed
mov esi, dword [ebx + 0xec]
push 0x4649ec
call fcn.004129d7
push dword [edi + 4]
mov esi, dword [ebx + 0xec]
call fcn.004129d7
pop ecx
pop ecx
add dword [ebp + 0xc], 4
cmp dword [ebp + 0xc], 8
jb 0x41e38e
dec dword [ebp - 0x14]
jne 0x41e331
mov esi, dword [ebx + 0xec]
call fcn.004129c8
mov esi, dword [ebx + 0xec]
call fcn.004129c8
push 0
push dword [ebx + 0xec]
call fcn.00412980
push dword [ebx + 0xec]
xor eax, eax
call fcn.00412995
mov eax, dword [ebx + 0xec]
mov eax, dword [eax]
add eax, 0xfffffffb
push 1
push eax
mov dword [ebx + 0x30], eax
call fcn.0040bca9
mov ecx, dword [ebx + 0xec]
push dword [ebx + 0x30]
mov dword [ebx + 0x2c], eax
mov ecx, dword [ecx + 0x10]
add ecx, 5
push ecx
push eax
call fcn.004526b0
push dword [ebx + 0xec]
push dword [ebp + 8]
call fcn.0041f840
add esp, 0x28
cmp dword [ebp + 0x14], 0
jne 0x41e481
mov dword [ebx], 0x18a2
jmp 0x41f5d0
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 8], 0x14
je 0x41e49d
push str.expected_key_exchange_packet_from_server
call fcn.0040c314
push eax
mov eax, dword [ebp + 8]
jmp 0x41f5c6
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [edx + 0x90], eax
mov dword [edx + 0x94], eax
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0xc], eax
add dword [ecx + 0x18], 0x10
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
mov esi, ecx
call fcn.00412c6b
cmp dword [ebp + 0xc], 0
jne 0x41e4ea
push str.KEXINIT_packet_was_incomplete
jmp 0x41f014
mov ebx, dword [ebp - 4]
xor edi, edi
cmp dword [ebx + 0xa4], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], edi
jle 0x41e57a
lea eax, [ebx + 0xa8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [eax]
cmp esi, edi
jne 0x41e518
mov dword [ebx + 0xc], 1
jmp 0x41e55b
cmp dword [esi], edi
jle 0x41e55b
cmp dword [ebp - 0x14], 0
jne 0x41e52d
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
push dword [eax]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
jne 0x41e54c
inc edi
cmp edi, dword [esi]
jl 0x41e51c
jmp 0x41e55b
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x90], eax
mov eax, dword [ebp + 8]
xor edi, edi
cmp dword [eax + 0x90], edi
jne 0x41e57a
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x10], 4
cmp eax, dword [ebx + 0xa4]
jl 0x41e506
mov esi, dword [ebp + 8]
cmp dword [esi + 0x90], edi
jne 0x41e5a8
push dword [ebp + 0xc]
push dword [ebp - 8]
push str.Couldnt_agree_a_key_exchange_algorithm__available:__.s_
call fcn.0040c314
push eax
mov eax, esi
call fcn.004155cc
add esp, 0x10
and dword [ebx], 0
jmp 0x41f5d0
push dword [ebp - 8]
mov edi, dword [ebp + 0xc]
push dword [ebp - 0x14]
call fcn.00414229
mov esi, dword [ebp + 0x14]
pop ecx
mov dword [ebx + 0xf4], eax
pop ecx
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
call fcn.00412c6b
mov edi, dword [ebp + 0xc]
xor ebx, ebx
cmp edi, ebx
jne 0x41e5f2
push str.KEXINIT_packet_was_incomplete
call fcn.0040c314
push eax
mov eax, dword [ebp + 8]
call fcn.004155cc
mov eax, dword [ebp - 4]
mov dword [eax], ebx
jmp 0x41f5ce
xor esi, esi
mov eax, dword [esi*4 + 0x47a6b8]
push dword [eax + 0x30]
mov eax, dword [ebp - 8]
mov ecx, edi
call fcn.004141cd
test eax, eax
pop ecx
jne 0x41e618
inc esi
cmp esi, 2
jb 0x41e5f4
mov esi, dword [ebp + 8]
jmp 0x41e628
mov eax, dword [esi*4 + 0x47a6b8]
mov esi, dword [ebp + 8]
mov dword [esi + 0x94], eax
cmp dword [esi + 0x94], ebx
jne 0x41e653
push edi
push dword [ebp - 8]
push str.Couldnt_agree_a_host_key_algorithm__available:__.s_
call fcn.0040c314
push eax
mov eax, esi
call fcn.004155cc
mov eax, dword [ebp - 4]
add esp, 0x10
mov dword [eax], ebx
jmp 0x41f5d0
mov esi, dword [ebp - 4]
cmp dword [esi + 0xf4], ebx
je 0x41e679
push dword [ebp - 8]
mov eax, dword [0x47a6b8]
push dword [eax + 0x30]
call fcn.00414229
test eax, eax
pop ecx
pop ecx
je 0x41e679
xor eax, eax
inc eax
jmp 0x41e67b
xor eax, eax
mov dword [esi + 0xf4], eax
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
call fcn.00412c6b
cmp dword [ebp + 0xc], 0
je 0x41e4e0
mov esi, dword [ebp - 4]
xor ebx, ebx
cmp dword [esi + 0xbc], ebx
mov dword [ebp - 0xc], ebx
jle 0x41e70a
lea eax, [esi + 0xc0]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
cmp edi, ebx
jne 0x41e6c4
mov dword [esi + 0x10], 1
jmp 0x41e6f1
cmp dword [edi], ebx
jle 0x41e6f1
mov eax, dword [edi + 4]
mov eax, dword [eax + ebx*4]
push dword [eax + 0x18]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
jne 0x41e6e8
inc ebx
cmp ebx, dword [edi]
jl 0x41e6c8
jmp 0x41e6f1
mov eax, dword [edi + 4]
mov eax, dword [eax + ebx*4]
mov dword [esi + 0x44], eax
xor ebx, ebx
cmp dword [esi + 0x44], ebx
jne 0x41e730
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x14], 4
cmp eax, dword [esi + 0xbc]
jl 0x41e6b2
cmp dword [esi + 0x44], ebx
jne 0x41e730
push dword [ebp + 0xc]
push dword [ebp - 8]
push str.Couldnt_agree_a_client_to_server_cipher__available:__.s_
call fcn.0040c314
push eax
mov eax, dword [ebp + 8]
call fcn.004155cc
add esp, 0x10
jmp 0x41f05d
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
call fcn.00412c6b
cmp dword [ebp + 0xc], 0
je 0x41e4e0
mov esi, dword [ebp - 4]
xor ebx, ebx
cmp dword [esi + 0xbc], ebx
mov dword [ebp - 0xc], ebx
jle 0x41e7b9
lea eax, [esi + 0xc0]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
cmp edi, ebx
jne 0x41e773
mov dword [esi + 0x14], 1
jmp 0x41e7a0
cmp dword [edi], ebx
jle 0x41e7a0
mov eax, dword [edi + 4]
mov eax, dword [eax + ebx*4]
push dword [eax + 0x18]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
jne 0x41e797
inc ebx
cmp ebx, dword [edi]
jl 0x41e777
jmp 0x41e7a0
mov eax, dword [edi + 4]
mov eax, dword [eax + ebx*4]
mov dword [esi + 0x48], eax
xor ebx, ebx
cmp dword [esi + 0x48], ebx
jne 0x41e7ce
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x14], 4
cmp eax, dword [esi + 0xbc]
jl 0x41e761
cmp dword [esi + 0x48], ebx
jne 0x41e7ce
push dword [ebp + 0xc]
push dword [ebp - 8]
push str.Couldnt_agree_a_server_to_client_cipher__available:__.s_
jmp 0x41e71a
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
call fcn.00412c6b
xor edi, edi
cmp dword [ebp + 0xc], edi
je 0x41e82a
mov esi, dword [ebp - 4]
cmp dword [esi + 0x40], edi
jle 0x41e815
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + edi*4]
push dword [eax + 0x24]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
jne 0x41e80c
inc edi
cmp edi, dword [esi + 0x40]
jl 0x41e7eb
jmp 0x41e815
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + edi*4]
mov dword [esi + 0x4c], eax
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
call fcn.00412c6b
xor edi, edi
cmp dword [ebp + 0xc], edi
jne 0x41e847
push str.KEXINIT_packet_was_incomplete
call fcn.0040c314
push eax
mov eax, dword [ebp + 8]
call fcn.004155cc
mov eax, dword [ebp - 4]
mov dword [eax], edi
jmp 0x41f5ce
mov esi, dword [ebp - 4]
cmp dword [esi + 0x40], edi
jle 0x41e879
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + edi*4]
push dword [eax + 0x24]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
jne 0x41e870
inc edi
cmp edi, dword [esi + 0x40]
jl 0x41e84f
jmp 0x41e879
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + edi*4]
mov dword [esi + 0x50], eax
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
call fcn.00412c6b
cmp dword [ebp + 0xc], 0
je 0x41e4e0
xor ebx, ebx
test ebx, ebx
mov edi, dword [ebp - 4]
jne 0x41e8a2
mov esi, dword [edi + 0xd8]
jmp 0x41e8a9
mov esi, dword [ebx*4 + 0x47a6d8]
push dword [esi]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
jne 0x41e8e9
push dword [esi + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
je 0x41e8e1
cmp dword [edi + 0xdc], 0
jne 0x41e8e9
mov dword [edi + 0xe0], 1
inc ebx
cmp ebx, 3
jb 0x41e893
jmp 0x41e8ec
mov dword [edi + 0x54], esi
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
call fcn.00412c6b
cmp dword [ebp + 0xc], 0
je 0x41e4e0
xor ebx, ebx
test ebx, ebx
mov edi, dword [ebp - 4]
jne 0x41e915
mov esi, dword [edi + 0xd8]
jmp 0x41e91c
mov esi, dword [ebx*4 + 0x47a6d8]
push dword [esi]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
jne 0x41e95f
push dword [esi + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004141cd
test eax, eax
pop ecx
je 0x41e954
cmp dword [edi + 0xdc], 0
jne 0x41e95f
mov dword [edi + 0xe0], 1
inc ebx
cmp ebx, 3
jb 0x41e906
mov edi, dword [ebp - 4]
jmp 0x41e962
mov dword [edi + 0x58], esi
cmp dword [edi + 0xe0], 0
je 0x41e980
mov eax, dword [ebp + 8]
push str.Server_supports_delayed_compression__will_try_this_later
push dword [eax + 0xe4]
call fcn.00441aad
pop ecx
pop ecx
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 8]
lea ebx, [ebp + 0xc]
call fcn.00412c6b
call fcn.00412c6b
mov ecx, esi
call fcn.00412c48
test eax, eax
je 0x41e9af
mov eax, dword [ebp - 4]
cmp dword [eax + 0xf4], 0
jne 0x41e9af
xor eax, eax
inc eax
jmp 0x41e9b1
xor eax, eax
mov ecx, dword [ebp - 4]
mov edi, dword [ebp + 8]
mov dword [ecx + 0xf8], eax
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
call dword [eax]
push dword [edi + 4]
mov dword [edi + 0xc], eax
call fcn.00451fa0
push dword [edi + 4]
mov ecx, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [ecx + 0x1c]
mov ebx, eax
call fcn.004128b4
push dword [edi + 8]
call fcn.00451fa0
push dword [edi + 8]
mov ecx, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [ecx + 0x1c]
mov ebx, eax
call fcn.004128b4
mov eax, dword [ebp - 4]
push dword [eax + 0x2c]
mov ecx, dword [edi + 0x90]
push dword [edi + 0xc]
mov ebx, dword [eax + 0x30]
mov esi, dword [ecx + 0x1c]
call fcn.004128b4
mov eax, dword [ebp - 4]
push dword [eax + 0x2c]
call fcn.0040bd73
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax]
mov eax, dword [eax + 0x14]
inc ebx
dec eax
push eax
mov eax, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.004128b4
mov eax, dword [ebp - 4]
add esp, 0x2c
cmp dword [eax + 0xc], 0
mov esi, edi
je 0x41ea9d
xor edi, edi
inc edi
call fcn.004136cf
mov eax, dword [esi + 0x90]
push esi
push 0x413bb1
push dword [eax]
push str.key_exchange_algorithm
push dword [esi + 0xe4]
call fcn.00441d41
mov ecx, dword [ebp - 4]
add esp, 0x14
test eax, eax
mov dword [ecx + 0xf0], eax
mov ebx, ecx
jge 0x41dae1
mov dword [ebx], 0x197b
jmp 0x41f5d0
mov ebx, dword [ebp - 4]
cmp dword [ebx + 0x10], 0
je 0x41da74
mov esi, dword [ebp + 8]
xor edi, edi
inc edi
call fcn.004136cf
mov ecx, dword [ebx + 0x44]
mov eax, esi
push eax
push 0x413bb1
push dword [ecx + 0x18]
push str.client_to_server_cipher
push dword [eax + 0xe4]
call fcn.00441d41
add esp, 0x14
test eax, eax
mov dword [ebx + 0xf0], eax
jge 0x41da62
mov dword [ebx], 0x1994
jmp 0x41f5d0
cmp dword [ebx + 0xf8], 0
je 0x41d947
mov dword [ebx], 0x19bf
jmp 0x41f5d0
push 0x22
pop edi
call fcn.00412b4a
mov dword [ebx + 0xec], eax
push eax
mov eax, 0x400
call fcn.00412995
push dword [ebx + 0xec]
mov eax, dword [ebx + 8]
call fcn.00412995
push dword [ebx + 0xec]
mov eax, 0x2000
call fcn.00412995
add esp, 0xc
push dword [ebx + 0xec]
push esi
call fcn.0041f840
pop ecx
pop ecx
mov ecx, 0x19ef
mov dword [ebx], ecx
jmp 0x41f5d0
push eax
mov dword [esi + 0x158], 1
call fcn.0042799c
mov dword [esi + 0xc0], eax
mov dword [ebx + 0x34], 0x1e
mov dword [ebx + 0x38], 0x1f
mov eax, dword [esi + 0x90]
push dword [eax + 4]
push str.Using_Diffie_Hellman_with_standard_group___s_
push esi
call fcn.004124d8
add esp, 0x10
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
push dword [eax + 0x10]
push str.Doing_Diffie_Hellman_key_exchange_with_hash__s
push esi
call fcn.004124d8
push 2
push dword [esi + 0xe4]
call fcn.0044240d
mov eax, dword [ebx + 4]
shl eax, 1
push eax
push dword [esi + 0xc0]
call fcn.00427a45
mov edi, dword [ebx + 0x34]
mov dword [ebx + 0x20], eax
call fcn.00412b4a
mov esi, eax
mov eax, dword [ebx + 0x20]
lea ecx, [ebp - 0x14]
push ecx
push eax
mov dword [ebx + 0xec], esi
call fcn.00412a97
mov dword [ebp + 0xc], eax
call fcn.004129c8
push dword [ebp + 0xc]
mov edi, dword [ebp - 0x14]
call fcn.00412a34
push dword [ebp + 0xc]
call fcn.0040bd73
push dword [ebx + 0xec]
mov esi, dword [ebp + 8]
push esi
call fcn.0041f840
push 1
push dword [esi + 0xe4]
call fcn.0044240d
add esp, 0x3c
jmp 0x41ef7a
mov eax, dword [eax + 0x1c]
push dword [eax + 0x10]
push str.Doing_RSA_key_exchange_with_hash__s
push esi
call fcn.004124d8
add esp, 0xc
mov dword [esi + 0x158], 3
jmp 0x41ed08
cmp dword [ebp + 0x14], esi
je 0x41ec5f
push str.Unexpected_data_from_server_while_waiting_for_user_host_key_response
jmp 0x41f323
cmp dword [ebp + 0x10], esi
jg 0x41f2eb
mov eax, dword [edi + 0x230]
mov dword [ebx + 0xf0], eax
mov esi, dword [ebp + 8]
xor edi, edi
call fcn.004136cf
cmp dword [ebx + 0xf0], edi
jne 0x41f2f9
mov eax, str.Aborted_at_host_key_verification
xor edi, edi
push 1
push edi
push edi
call fcn.004167da
add esp, 0xc
mov dword [ebx], edi
jmp 0x41f5d0
mov eax, dword [ebp + 0x14]
cmp eax, esi
je 0x41ef68
cmp dword [eax + 8], 0x20
je 0x41ecc9
push dword [ebx + 0x64]
call fcn.0040bd73
mov dword [esp], str.expected_signature_packet_from_server
jmp 0x41f323
lea edi, [ebx + 0x74]
add ebx, 0x60
mov esi, eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], ebx
call fcn.00412c6b
mov eax, ebx
cmp dword [eax], 0
jne 0x41eced
push str.unable_to_parse_signature_packet
jmp 0x41f014
mov ebx, dword [ebp - 4]
push dword [ebx + 0x64]
call fcn.0040bd73
mov edi, dword [ebp + 8]
pop ecx
jmp 0x41f194
mov eax, dword [ebp + 0x14]
cmp eax, esi
jne 0x41ed13
mov dword [ebx], 0x1a51
jmp 0x41f5d0
cmp dword [eax + 8], 0x1e
je 0x41ed23
push str.expected_RSA_public_key_packet_from_server
jmp 0x41f323
lea edi, [ebx + 0x70]
add ebx, 0x5c
mov esi, eax
mov dword [ebp + 0xc], ebx
call fcn.00412c6b
mov eax, ebx
mov eax, dword [eax]
test eax, eax
jne 0x41ed45
push str.unable_to_parse_RSA_public_key_packet
jmp 0x41f014
mov ebx, dword [edi]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0xc]
mov eax, dword [eax + 0x90]
mov esi, dword [eax + 0x1c]
call fcn.004128b4
push dword [edi]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ecx]
mov eax, dword [eax + 0x94]
call dword [eax]
mov ecx, dword [ebp - 4]
mov esi, dword [ebp + 0x14]
lea edi, [ecx + 0x78]
add esp, 0x10
lea ebx, [ebp + 0xc]
mov dword [ecx + 0x7c], eax
mov dword [ebp - 0x14], edi
call fcn.00412c6b
cmp dword [ebp + 0xc], 0
je 0x41ed3b
push 1
mov esi, edi
push dword [esi]
call fcn.0040bca9
push dword [esi]
mov edi, dword [ebp - 4]
push dword [ebp + 0xc]
mov dword [edi + 0x64], eax
push eax
call fcn.004526b0
push dword [esi]
push dword [edi + 0x64]
call fcn.0042cc33
add esp, 0x1c
test eax, eax
push dword [edi + 0x64]
mov dword [edi + 0x80], eax
jne 0x41ede6
call fcn.0040bd73
mov dword [esp], str.unable_to_parse_RSA_public_key_from_server
call fcn.0040c314
push eax
mov eax, dword [ebp + 8]
call fcn.004155cc
and dword [edi], 0
jmp 0x41f5ce
mov eax, dword [ebp + 8]
push dword [eax + 0xc]
mov eax, dword [eax + 0x90]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ecx]
mov esi, dword [eax + 0x1c]
call fcn.004128b4
push dword [edi + 0x80]
call fcn.0042c90f
mov esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
shl eax, 4
mov dword [ebp - 0xc], esi
sub esi, eax
sub esi, 0x31
lea eax, [esi - 1]
xor ebx, ebx
push eax
mov dword [ebp - 0x14], ebx
call fcn.00424fc9
add esp, 0x10
cmp esi, ebx
mov dword [edi + 0x28], eax
jle 0x41ee6c
mov dword [ebp + 0xc], ebx
and dword [ebp + 0xc], 7
jne 0x41ee4f
call fcn.0042b416
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x14]
sar eax, cl
and eax, 1
push eax
push ebx
push dword [edi + 0x28]
call fcn.0042483b
add esp, 0xc
inc ebx
cmp ebx, esi
jl 0x41ee3e
lea eax, [ebp + 0xc]
push eax
push dword [edi + 0x28]
call fcn.00412a97
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
lea eax, [ebx + 4]
push 1
push eax
mov dword [ebp - 8], eax
call fcn.0040bca9
mov esi, eax
mov eax, ebx
sar eax, 0x18
mov byte [esi], al
mov eax, ebx
sar eax, 0x10
mov byte [esi + 1], al
mov eax, ebx
sar eax, 8
push ebx
push dword [ebp - 0x10]
mov byte [esi + 2], al
lea eax, [esi + 4]
push eax
mov dword [ebp - 0x18], esi
mov byte [esi + 3], bl
call fcn.004526b0
mov eax, dword [ebp - 0xc]
add eax, 7
push 8
pop ecx
cdq
idiv ecx
push 1
push eax
mov dword [ebp + 0xc], eax
call fcn.0040bca9
push dword [edi + 0x80]
mov dword [ebp - 0x14], eax
push dword [ebp + 0xc]
push eax
push dword [ebp - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x90]
push esi
push dword [eax + 0x1c]
call fcn.0042c9d0
push 0x1f
pop edi
call fcn.00412b4a
mov ebx, dword [ebp - 4]
add ebx, 0xec
mov esi, eax
mov dword [ebx], eax
call fcn.004129c8
push dword [ebp - 0x14]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebx]
call fcn.00412a34
mov esi, dword [ebp + 8]
add esp, 0x40
push dword [ebx]
push esi
call fcn.0041f840
push dword [ebp - 0x14]
mov eax, dword [esi + 0x90]
push dword [esi + 0xc]
mov esi, dword [eax + 0x1c]
mov ebx, edi
call fcn.004128b4
push dword [ebp - 0x18]
call fcn.0040bd73
push dword [ebp - 0x10]
call fcn.0040bd73
push dword [ebp - 0x14]
call fcn.0040bd73
mov eax, dword [ebp - 4]
push dword [eax + 0x80]
call fcn.0042c90a
add esp, 0x20
mov ebx, dword [ebp - 4]
mov dword [ebx], 0x1aab
jmp 0x41f5d0
mov eax, dword [ebp + 0x14]
cmp eax, esi
jne 0x41ef85
mov dword [ebx], 0x1a12
jmp 0x41f5d0
mov eax, dword [eax + 8]
cmp eax, dword [ebx + 0x38]
je 0x41ef97
push str.expected_key_exchange_reply_packet_from_server
jmp 0x41f323
mov eax, dword [ebp + 8]
push 2
push dword [eax + 0xe4]
call fcn.0044240d
mov esi, dword [ebp + 0x14]
lea edi, [ebx + 0x70]
pop ecx
add ebx, 0x5c
pop ecx
mov dword [ebp - 0x14], edi
mov dword [ebp + 0xc], ebx
call fcn.00412c6b
mov eax, ebx
mov eax, dword [eax]
test eax, eax
je 0x41f00f
mov edx, dword [ebp - 0x14]
push dword [edx]
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x94]
push eax
call dword [ecx]
mov ebx, dword [ebp - 4]
pop ecx
pop ecx
mov dword [ebx + 0x7c], eax
call fcn.00412d3d
test eax, eax
mov dword [ebx + 0x24], eax
jne 0x41eff4
push str.unable_to_parse_key_exchange_reply_packet
jmp 0x41f5be
mov esi, dword [ebp + 0x14]
lea edi, [ebx + 0x74]
add ebx, 0x60
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], ebx
call fcn.00412c6b
mov eax, ebx
cmp dword [eax], 0
jne 0x41f02d
push str.unable_to_parse_key_exchange_reply_packet
call fcn.0040c314
push eax
mov eax, dword [ebp + 8]
call fcn.004155cc
mov eax, dword [ebp - 4]
and dword [eax], 0
jmp 0x41f5ce
mov esi, dword [ebp - 4]
push dword [esi + 0x24]
mov edi, dword [ebp + 8]
push dword [edi + 0xc0]
call fcn.00427b54
test eax, eax
pop ecx
pop ecx
je 0x41f065
push eax
push str.key_exchange_reply_failed_validation:__s
call fcn.0040c314
push eax
mov eax, edi
call fcn.004155cc
add esp, 0xc
and dword [esi], 0
jmp 0x41f5d0
mov esi, dword [ebp - 4]
push dword [esi + 0x24]
push dword [edi + 0xc0]
call fcn.00427ba9
mov dword [esi + 0x28], eax
push 0
push dword [edi + 0xe4]
call fcn.0044240d
mov eax, dword [ebp + 0xc]
push dword [eax]
mov eax, dword [edi + 0x90]
mov ecx, dword [ebp - 0x14]
push dword [edi + 0xc]
mov ebx, dword [ecx]
mov esi, dword [eax + 0x1c]
call fcn.004128b4
mov eax, dword [edi + 0x90]
add esp, 0x18
cmp dword [eax + 0xc], 0
jne 0x41f12f
mov esi, 0x1000
test dword [edi + 0x50], esi
jne 0x41f0cc
push dword [edi + 0xc]
push dword [eax + 0x1c]
mov eax, 0x400
call fcn.004128ee
pop ecx
pop ecx
push dword [edi + 0xc]
mov eax, dword [edi + 0x90]
push dword [eax + 0x1c]
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 8]
call fcn.004128ee
test dword [edi + 0x50], esi
pop ecx
pop ecx
jne 0x41f102
push dword [edi + 0xc]
mov eax, dword [edi + 0x90]
push dword [eax + 0x1c]
mov eax, 0x2000
call fcn.004128ee
pop ecx
pop ecx
push dword [ebx + 0x18]
mov eax, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00412be2
push dword [ebx + 0x1c]
mov eax, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00412be2
add esp, 0x10
jmp 0x41f132
mov ebx, dword [ebp - 4]
push dword [ebx + 0x20]
mov eax, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00412be2
push dword [ebx + 0x24]
mov eax, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00412be2
push dword [edi + 0xc0]
call fcn.00427a06
push dword [ebx + 0x24]
call fcn.00423a23
mov eax, dword [edi + 0x90]
add esp, 0x18
cmp dword [eax + 0xc], 0
jne 0x41f191
mov esi, dword [ebp - 4]
push dword [esi + 0x1c]
call fcn.00423a23
push dword [esi + 0x18]
call fcn.00423a23
pop ecx
pop ecx
mov ebx, dword [ebp - 4]
push dword [ebx + 0x28]
mov eax, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00412be2
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0xc], 0x20
pop ecx
pop ecx
jbe 0x41f1d0
push 0x1abc
push str..._ssh.c
push str.ssh__kex__hash__hlen___sizeof_s__exchange_hash_
call fcn.004522d8
add esp, 0xc
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
lea esi, [ebx + 0x84]
push esi
push dword [edi + 0xc]
call dword [eax + 8]
and dword [edi + 0xc0], 0
mov eax, dword [ebx + 0x7c]
test eax, eax
pop ecx
pop ecx
je 0x41f5b9
mov edx, dword [edi + 0x90]
mov edx, dword [edx + 0x1c]
push dword [edx + 0xc]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edi + 0x94]
push esi
push dword [edx]
mov edx, dword [ebp - 0xc]
push dword [edx]
push eax
call dword [ecx + 0x28]
add esp, 0x14
test eax, eax
je 0x41f5b9
push dword [ebx + 0x7c]
mov eax, dword [edi + 0x94]
call dword [eax + 8]
xor esi, esi
cmp dword [ebx + 0xe4], esi
pop ecx
mov dword [ebx + 0x68], eax
jne 0x41f30c
push dword [ebx + 0x7c]
mov eax, dword [edi + 0x94]
call dword [eax + 0x24]
mov dword [ebx + 0x6c], eax
mov dword [esp], str.Host_key_fingerprint_is:
push dword [edi + 0xe4]
call fcn.00441aad
push dword [ebx + 0x6c]
push dword [edi + 0xe4]
call fcn.00441aad
push dword [ebx + 0x7c]
push dword [edi + 0x94]
push dword [ebx + 0x6c]
push edi
call fcn.00413be7
add esp, 0x20
cmp eax, esi
mov dword [ebx + 0xf0], eax
jne 0x41f29c
push str.Host_key_did_not_appear_in_manually_configured_list
jmp 0x41f323
mov esi, dword [ebp + 8]
jge 0x41f2f6
xor edi, edi
inc edi
call fcn.004136cf
mov edi, dword [ebp - 4]
mov eax, dword [esi + 0x94]
push esi
push 0x413bb1
push dword [edi + 0x6c]
push dword [edi + 0x68]
push dword [eax + 0x34]
push dword [esi + 0xd4]
push dword [esi + 0xd0]
push dword [esi + 0xe4]
call fcn.00441c20
add esp, 0x20
test eax, eax
mov dword [edi + 0xf0], eax
mov ebx, edi
jge 0x41ec74
mov dword [ebx], 0x1ae6
jmp 0x41f5d0
mov ebx, dword [ebp - 4]
push dword [ebx + 0x6c]
call fcn.0040bd73
mov eax, dword [ebx + 0x68]
mov dword [esi + 0x98], eax
jmp 0x41f345
push eax
push dword [edi + 0x98]
call fcn.00452250
test eax, eax
pop ecx
pop ecx
je 0x41f337
push str.Host_key_was_different_in_repeat_key_exchange
call fcn.0040c314
push eax
mov eax, edi
call fcn.004155cc
mov dword [ebx], esi
jmp 0x41f5ce
push dword [ebx + 0x68]
call fcn.0040bd73
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x94]
pop ecx
push dword [ebx + 0x7c]
call dword [eax + 4]
cmp dword [ebx + 0xe4], 0
pop ecx
jne 0x41f3ac
push 0x20
lea eax, [ebx + 0x84]
push eax
lea eax, [esi + 0x9c]
push eax
call fcn.004526b0
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
add esp, 0xc
cmp eax, 0x20
mov dword [esi + 0xbc], eax
jbe 0x41f3a2
push 0x1b15
push str..._ssh.c
push str.ssh__v2_session_id_len___sizeof_ssh__v2_session_id_
call fcn.004522d8
add esp, 0xc
mov dword [ebx + 0xe4], 1
push 0x15
pop edi
call fcn.00412b4a
push eax
push esi
mov dword [ebx + 0xec], eax
call fcn.0041f840
mov eax, dword [esi + 0x68]
and dword [esi + 0x65c], 0
test eax, eax
pop ecx
pop ecx
je 0x41f3d9
mov ecx, dword [esi + 0x60]
push eax
call dword [ecx + 4]
pop ecx
mov eax, dword [ebx + 0x44]
mov dword [esi + 0x60], eax
call dword [eax]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x78]
test eax, eax
je 0x41f3f3
mov ecx, dword [esi + 0x70]
push eax
call dword [ecx + 4]
pop ecx
mov eax, dword [ebx + 0x4c]
mov dword [esi + 0x70], eax
call dword [eax]
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x88]
test eax, eax
je 0x41f413
mov ecx, dword [esi + 0x80]
push eax
call dword [ecx + 0xc]
pop ecx
mov eax, dword [ebx + 0x54]
mov dword [esi + 0x80], eax
call dword [eax + 8]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
shl eax, 1
cmp eax, 0x40
jbe 0x41f44f
push 0x1b39
push str..._ssh.c
push str.sizeof_keyspace____ssh__kex__hash__hlen__SSH2_MKKEY_ITERS
call fcn.004522d8
add esp, 0xc
lea ecx, [ebp - 0x58]
push ecx
lea eax, [ebx + 0x84]
push 0x43
push eax
push dword [ebx + 0x28]
mov edi, esi
call fcn.0041426d
mov eax, dword [esi + 0x60]
mov eax, dword [eax + 0x20]
add esp, 0x10
add eax, 7
push 8
cdq
pop ecx
idiv ecx
mov ecx, dword [esi + 0x90]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0xc]
shl ecx, 1
cmp eax, ecx
jle 0x41f4a1
push 0x1b3c
push str..._ssh.c
push str._ssh__cscipher__keylen7____8___ssh__kex__hash__hlen__SSH2_MKKEY_ITERS
call fcn.004522d8
add esp, 0xc
mov eax, dword [esi + 0x60]
lea ecx, [ebp - 0x58]
push ecx
push dword [esi + 0x68]
call dword [eax + 0xc]
lea eax, [ebp - 0x58]
push eax
push 0x41
lea eax, [ebx + 0x84]
push eax
push dword [ebx + 0x28]
mov edi, esi
call fcn.0041426d
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esi + 0x60]
shl eax, 1
add esp, 0x18
cmp dword [ecx + 0x1c], eax
jle 0x41f4f5
push 0x1b40
push str..._ssh.c
push str.ssh__cscipher__blksize___ssh__kex__hash__hlen__SSH2_MKKEY_ITERS
call fcn.004522d8
add esp, 0xc
mov eax, dword [esi + 0x60]
lea ecx, [ebp - 0x58]
push ecx
push dword [esi + 0x68]
call dword [eax + 8]
lea eax, [ebp - 0x58]
push eax
push 0x45
lea eax, [ebx + 0x84]
push eax
push dword [ebx + 0x28]
mov edi, esi
call fcn.0041426d
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esi + 0x70]
shl eax, 1
add esp, 0x18
cmp dword [ecx + 0x28], eax
jle 0x41f549
push 0x1b44
push str..._ssh.c
push str.ssh__csmac__len___ssh__kex__hash__hlen__SSH2_MKKEY_ITERS
call fcn.004522d8
add esp, 0xc
mov eax, dword [esi + 0x70]
lea ecx, [ebp - 0x58]
push ecx
push dword [esi + 0x78]
call dword [eax + 8]
lea eax, [ebp - 0x58]
push 0x40
push eax
call fcn.0044b1f3
mov eax, dword [esi + 0x60]
push dword [eax + 0x28]
push str.Initialised__.200s_client__server_encryption
push esi
call fcn.004124d8
mov eax, dword [esi + 0x70]
push dword [eax + 0x2c]
push str.Initialised__.200s_client__server_MAC_algorithm
push esi
call fcn.004124d8
mov eax, dword [esi + 0x80]
mov eax, dword [eax + 0x24]
add esp, 0x28
test eax, eax
je 0x41f5a2
push eax
push str.Initialised__s_compression
push esi
call fcn.004124d8
add esp, 0xc
mov esi, dword [ebp + 8]
and dword [esi + 0x138], 0
call fcn.00416764
mov dword [ebx], 0x1b5b
jmp 0x41f5d0
push str.Servers_host_key_did_not_match_the_signature_supplied
call fcn.0040c314
push eax
mov eax, edi
call fcn.004155cc
and dword [ebx], 0
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret