	.file	"245116.c"
	.intel_syntax noprefix
	.text
	.globl	d2i_DHparams
	.type	d2i_DHparams, @function
d2i_DHparams:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	d2i_DHparams, .-d2i_DHparams
	.globl	i2d_DHparams
	.type	i2d_DHparams, @function
i2d_DHparams:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	i2d_DHparams, .-i2d_DHparams
	.globl	X509_NAME_free
	.type	X509_NAME_free, @function
X509_NAME_free:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	X509_NAME_free, .-X509_NAME_free
	.globl	X509_free
	.type	X509_free, @function
X509_free:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	X509_free, .-X509_free
	.type	ssl3_get_client_method, @function
ssl3_get_client_method:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	cmp	DWORD PTR -20[rbp], 768
	jne	.L6
	call	SSLv3_client_method
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L7
.L6:
	mov	eax, 0
.L7:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	ssl3_get_client_method, .-ssl3_get_client_method
	.data
	.align 4
	.type	init, @object
	.size	init, 4
init:
	.long	1
	.local	SSLv3_client_data
	.comm	SSLv3_client_data,200,32
	.text
	.globl	SSLv3_client_method
	.type	SSLv3_client_method, @function
SSLv3_client_method:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, DWORD PTR init[rip]
	test	eax, eax
	je	.L9
	mov	DWORD PTR init[rip], 0
	call	sslv3_base_method@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 200
	mov	rsi, rax
	lea	rdi, SSLv3_client_data[rip]
	call	memcpy@PLT
	lea	rax, ssl3_connect[rip]
	mov	QWORD PTR SSLv3_client_data[rip+40], rax
	lea	rax, ssl3_get_client_method[rip]
	mov	QWORD PTR SSLv3_client_data[rip+152], rax
.L9:
	lea	rax, SSLv3_client_data[rip]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	SSLv3_client_method, .-SSLv3_client_method
	.globl	myState
	.bss
	.align 4
	.type	myState, @object
	.size	myState, 4
myState:
	.zero	4
	.globl	myStateNext
	.align 4
	.type	myStateNext, @object
	.size	myStateNext, 4
myStateNext:
	.zero	4
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR myState[rip], 12292
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	ssl3_connect
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.globl	ssl3_connect
	.type	ssl3_connect, @function
ssl3_connect:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -120[rbp], rdi
	mov	DWORD PTR -100[rbp], 0
	mov	eax, 0
	call	unknown@PLT
	cdqe
	mov	QWORD PTR -40[rbp], rax
	mov	QWORD PTR -48[rbp], 0
	mov	DWORD PTR -108[rbp], -1
	mov	DWORD PTR -104[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 280[rax]
	test	rax, rax
	je	.L14
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 280[rax]
	mov	QWORD PTR -48[rbp], rax
	jmp	.L15
.L14:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 168[rax]
	test	rax, rax
	je	.L15
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 168[rax]
	mov	QWORD PTR -48[rbp], rax
.L15:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 44[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 44[rax], edx
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 12288
	test	eax, eax
.L83:
	mov	eax, DWORD PTR myState[rip]
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR myState[rip]
	cmp	eax, 20480
	je	.L17
	cmp	eax, 20480
	jg	.L18
	cmp	eax, 16384
	je	.L17
	cmp	eax, 16384
	jg	.L18
	cmp	eax, 12292
	je	.L19
	cmp	eax, 12292
	jg	.L18
	cmp	eax, 4561
	jg	.L18
	cmp	eax, 4560
	jge	.L20
	cmp	eax, 4529
	jg	.L18
	cmp	eax, 4352
	jge	.L21
	cmp	eax, 4099
	je	.L17
	cmp	eax, 4099
	jg	.L18
	cmp	eax, 3
	je	.L22
	cmp	eax, 4096
	je	.L17
	jmp	.L18
.L21:
	sub	eax, 4352
	cmp	eax, 177
	ja	.L18
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L24[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L24[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L24:
	.long	.L35-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L34-.L24
	.long	.L34-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L33-.L24
	.long	.L33-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L32-.L24
	.long	.L32-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L31-.L24
	.long	.L31-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L30-.L24
	.long	.L30-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L29-.L24
	.long	.L29-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L28-.L24
	.long	.L28-.L24
	.long	.L28-.L24
	.long	.L28-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L27-.L24
	.long	.L27-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L26-.L24
	.long	.L26-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L25-.L24
	.long	.L25-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L18-.L24
	.long	.L23-.L24
	.long	.L23-.L24
	.text
.L19:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 60[rax], 1
	mov	DWORD PTR myState[rip], 4096
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	edx, DWORD PTR 124[rax]
	add	edx, 1
	mov	DWORD PTR 124[rax], edx
.L17:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 56[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 65280
	cmp	eax, 768
	je	.L36
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L36:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 4[rax], 4096
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 80[rax]
	test	rax, rax
	jne	.L38
	mov	eax, 0
	call	unknown@PLT
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L39
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L39:
	cmp	DWORD PTR -72[rbp], 0
	jne	.L40
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L40:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 80[rax], rdx
.L38:
	cmp	DWORD PTR -68[rbp], 0
	jne	.L41
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L41:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L42
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L42:
	mov	DWORD PTR myState[rip], 4368
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	edx, DWORD PTR 120[rax]
	add	edx, 1
	mov	DWORD PTR 120[rax], edx
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L34:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 68[rax], 0
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -100[rbp], 0
	jne	.L44
	mov	DWORD PTR -100[rbp], 1
.L44:
	cmp	DWORD PTR -108[rbp], 0
	jle	.L85
	mov	DWORD PTR myState[rip], 4384
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L33:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -100[rbp], 1
	jne	.L46
	mov	DWORD PTR -100[rbp], 2
.L46:
	cmp	DWORD PTR -108[rbp], 0
	jle	.L86
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 132[rax]
	test	eax, eax
	je	.L48
	mov	DWORD PTR myState[rip], 4560
	jmp	.L49
.L48:
	mov	DWORD PTR myState[rip], 4400
.L49:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L32:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 24[rax]
	and	eax, 256
	test	rax, rax
	je	.L50
	mov	DWORD PTR -104[rbp], 1
	jmp	.L51
.L50:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -100[rbp], 2
	jne	.L52
	mov	DWORD PTR -100[rbp], 3
	jmp	.L53
.L52:
	cmp	DWORD PTR -100[rbp], 4
	jne	.L53
	mov	DWORD PTR -100[rbp], 5
.L53:
	cmp	DWORD PTR -108[rbp], 0
	jle	.L87
.L51:
	mov	DWORD PTR myState[rip], 4416
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L31:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -100[rbp], 3
	jne	.L54
	mov	DWORD PTR -100[rbp], 4
.L54:
	cmp	DWORD PTR -108[rbp], 0
	jle	.L88
	mov	DWORD PTR myState[rip], 4432
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	cmp	DWORD PTR -76[rbp], 0
	jne	.L89
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L30:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -100[rbp], 5
	sete	al
	movzx	eax, al
	mov	edi, eax
	mov	eax, 0
	call	_TRACER_abort@PLT
	cmp	DWORD PTR -108[rbp], 0
	jle	.L90
	mov	DWORD PTR myState[rip], 4448
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L29:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jle	.L91
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 944[rax]
	test	eax, eax
	je	.L59
	mov	DWORD PTR myState[rip], 4464
	jmp	.L60
.L59:
	mov	DWORD PTR myState[rip], 4480
.L60:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L28:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jle	.L92
	mov	DWORD PTR myState[rip], 4480
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L27:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jle	.L93
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 944[rax]
	cmp	eax, 1
	jne	.L63
	mov	DWORD PTR myState[rip], 4496
	jmp	.L64
.L63:
	mov	DWORD PTR myState[rip], 4512
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 640[rax], 0
.L64:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L26:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jle	.L94
	mov	DWORD PTR myState[rip], 4512
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 640[rax], 0
	jmp	.L43
.L25:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jle	.L95
	mov	DWORD PTR myState[rip], 4528
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rdx, QWORD PTR 920[rdx]
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 1000[rax]
	test	rax, rax
	jne	.L67
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	DWORD PTR 192[rax], 0
	jmp	.L68
.L67:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR 1000[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR 192[rax], edx
.L68:
	cmp	DWORD PTR -84[rbp], 0
	jne	.L69
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L69:
	cmp	DWORD PTR -80[rbp], 0
	jne	.L96
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L23:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jle	.L97
	mov	DWORD PTR myState[rip], 4352
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	and	rdx, -5
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 132[rax]
	test	eax, eax
	je	.L72
	mov	DWORD PTR myStateNext[rip], 3
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR [rax]
	and	eax, 2
	test	rax, rax
	je	.L73
	mov	DWORD PTR myState[rip], 3
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	or	rdx, 4
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 8[rax], 0
	jmp	.L73
.L72:
	mov	DWORD PTR myStateNext[rip], 4560
.L73:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L20:
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jle	.L98
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 132[rax]
	test	eax, eax
	je	.L75
	mov	DWORD PTR myState[rip], 4512
	jmp	.L76
.L75:
	mov	DWORD PTR myState[rip], 3
.L76:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	jmp	.L43
.L35:
	cmp	QWORD PTR -56[rbp], 0
	jle	.L77
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 40[rax], 2
	mov	rax, QWORD PTR -16[rbp]
	cdqe
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jg	.L78
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L78:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 40[rax], 1
.L77:
	mov	eax, DWORD PTR myStateNext[rip]
	mov	DWORD PTR myState[rip], eax
	jmp	.L43
.L22:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 80[rax]
	test	rax, rax
	je	.L79
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR 80[rax], 0
.L79:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 60[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 132[rax]
	test	eax, eax
	je	.L80
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	edx, DWORD PTR 156[rax]
	add	edx, 1
	mov	DWORD PTR 156[rax], edx
.L80:
	mov	DWORD PTR -108[rbp], 1
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, ssl3_connect[rip]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	edx, DWORD PTR 128[rax]
	add	edx, 1
	mov	DWORD PTR 128[rax], edx
	jmp	.L37
.L18:
	mov	DWORD PTR -108[rbp], -1
	jmp	.L37
.L89:
	nop
	jmp	.L43
.L96:
	nop
.L43:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 940[rax]
	test	eax, eax
	jne	.L81
	cmp	DWORD PTR -104[rbp], 0
	jne	.L81
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 304[rax]
	test	eax, eax
	je	.L82
	mov	eax, 0
	call	unknown@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jle	.L99
.L82:
	mov	rax, QWORD PTR -48[rbp]
	test	rax, rax
	je	.L81
	mov	eax, DWORD PTR myState[rip]
	cmp	DWORD PTR -88[rbp], eax
	je	.L81
	mov	eax, DWORD PTR myState[rip]
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	mov	DWORD PTR myState[rip], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR myState[rip], eax
.L81:
	mov	DWORD PTR -104[rbp], 0
	jmp	.L83
.L85:
	nop
	jmp	.L37
.L86:
	nop
	jmp	.L37
.L87:
	nop
	jmp	.L37
.L88:
	nop
	jmp	.L37
.L90:
	nop
	jmp	.L37
.L91:
	nop
	jmp	.L37
.L92:
	nop
	jmp	.L37
.L93:
	nop
	jmp	.L37
.L94:
	nop
	jmp	.L37
.L95:
	nop
	jmp	.L37
.L97:
	nop
	jmp	.L37
.L98:
	nop
	jmp	.L37
.L99:
	nop
.L37:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 44[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 44[rax], edx
	mov	eax, DWORD PTR -108[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	ssl3_connect, .-ssl3_connect
	.section	.rodata
.LC0:
	.string	"s3_clnt.c"
	.text
	.type	ssl3_client_hello, @function
ssl3_client_hello:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	QWORD PTR -168[rbp], rdi
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR 72[rax]
	cmp	eax, 4368
	jne	.L101
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 256[rax]
	test	rax, rax
	je	.L116
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jne	.L117
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	eax, DWORD PTR 140[rax]
	test	eax, eax
	je	.L105
	jmp	.L103
.L116:
	nop
	jmp	.L103
.L117:
	nop
.L103:
	mov	rax, QWORD PTR -168[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	ssl_get_new_session@PLT
	mov	DWORD PTR -152[rbp], eax
	cmp	DWORD PTR -152[rbp], 0
	je	.L118
.L105:
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 120[rax]
	add	rax, 132
	mov	QWORD PTR -144[rbp], rax
	mov	edi, 0
	call	time@PLT
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -120[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	rax, QWORD PTR -128[rbp]
	shr	rax, 24
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -112[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	rax, QWORD PTR -128[rbp]
	shr	rax, 16
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -104[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	rax, QWORD PTR -128[rbp]
	shr	rax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -96[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	rax, QWORD PTR -128[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -144[rbp]
	mov	esi, 24
	mov	rdi, rax
	call	RAND_pseudo_bytes@PLT
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 4
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -80[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	sar	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -72[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -168[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR 372[rax], edx
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 120[rax]
	lea	rcx, 132[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	add	QWORD PTR -144[rbp], 32
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR 60[rax]
	test	eax, eax
	je	.L107
	mov	DWORD PTR -160[rbp], 0
	jmp	.L108
.L107:
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	eax, DWORD PTR 68[rax]
	mov	DWORD PTR -160[rbp], eax
.L108:
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -64[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	eax, DWORD PTR -160[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR [rax], dl
	cmp	DWORD PTR -160[rbp], 0
	je	.L109
	mov	edx, DWORD PTR -160[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 256[rax]
	lea	rcx, 72[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	add	QWORD PTR -144[rbp], rax
.L109:
	mov	rax, QWORD PTR -168[rbp]
	mov	rdi, rax
	call	SSL_get_ciphers@PLT
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	lea	rdx, 2[rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	ssl_cipher_list_to_bytes@PLT
	mov	DWORD PTR -160[rbp], eax
	cmp	DWORD PTR -160[rbp], 0
	jne	.L110
	mov	r8d, 503
	lea	rcx, .LC0[rip]
	mov	edx, 181
	mov	esi, 131
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L106
.L110:
	mov	eax, DWORD PTR -160[rbp]
	sar	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -144[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 1
	mov	edx, DWORD PTR -160[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -144[rbp], 2
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	add	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 352[rax]
	test	rax, rax
	jne	.L111
	mov	DWORD PTR -156[rbp], 0
	jmp	.L112
.L111:
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 352[rax]
	mov	rdi, rax
	call	sk_num@PLT
	mov	DWORD PTR -156[rbp], eax
.L112:
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -48[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	eax, DWORD PTR -156[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR [rax], dl
	mov	DWORD PTR -160[rbp], 0
	jmp	.L113
.L114:
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 352[rax]
	mov	edx, DWORD PTR -160[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	sk_value@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -8[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -160[rbp], 1
.L113:
	mov	eax, DWORD PTR -160[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L114
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -40[rbp], rax
	add	QWORD PTR -144[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -144[rbp]
	sub	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -24[rbp], rax
	add	QWORD PTR -88[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], 1
	mov	rax, QWORD PTR -32[rbp]
	shr	rax, 16
	mov	edx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -32[rbp]
	shr	rax, 8
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 2
	mov	rdx, QWORD PTR -32[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -88[rbp], 3
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR 72[rax], 4369
	mov	rax, QWORD PTR -144[rbp]
	sub	rax, QWORD PTR -136[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR 88[rax], edx
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR 92[rax], 0
.L101:
	mov	rax, QWORD PTR -168[rbp]
	mov	esi, 22
	mov	rdi, rax
	call	ssl3_do_write@PLT
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	jmp	.L115
.L118:
	nop
.L106:
	mov	eax, -1
.L115:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	ssl3_client_hello, .-ssl3_client_hello
	.type	ssl3_get_server_hello, @function
ssl3_get_server_hello:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -120[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -104[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	r9, rdx
	mov	r8d, 300
	mov	ecx, 2
	mov	edx, 4385
	mov	esi, 4384
	mov	rdi, rax
	call	ssl3_get_message@PLT
	mov	QWORD PTR -64[rbp], rax
	mov	eax, DWORD PTR -104[rbp]
	test	eax, eax
	jne	.L120
	mov	rax, QWORD PTR -64[rbp]
	jmp	.L144
.L120:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	sar	eax, 8
	cmp	edx, eax
	je	.L122
	mov	r8d, 561
	lea	rcx, .LC0[rip]
	mov	edx, 266
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 65280
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -100[rbp], 70
	jmp	.L123
.L122:
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	eax, al
	cmp	edx, eax
	je	.L124
	mov	r8d, 561
	lea	rcx, .LC0[rip]
	mov	edx, 266
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 65280
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -100[rbp], 70
	jmp	.L123
.L124:
	add	QWORD PTR -56[rbp], 2
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	lea	rcx, 100[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 32
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	add	QWORD PTR -56[rbp], 32
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -40[rbp], rax
	add	QWORD PTR -56[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	je	.L125
	cmp	DWORD PTR -96[rbp], 32
	je	.L125
	cmp	DWORD PTR -96[rbp], 15
	ja	.L125
	mov	DWORD PTR -100[rbp], 47
	mov	r8d, 582
	lea	rcx, .LC0[rip]
	mov	edx, 222
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L123
.L125:
	cmp	DWORD PTR -96[rbp], 0
	je	.L146
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	eax, DWORD PTR 68[rax]
	cmp	DWORD PTR -96[rbp], eax
	jne	.L147
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	lea	rcx, 72[rax]
	mov	edx, DWORD PTR -96[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcmp@PLT
	mov	DWORD PTR -92[rbp], eax
	cmp	DWORD PTR -92[rbp], 0
	jne	.L148
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, DWORD PTR 216[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	eax, DWORD PTR 104[rax]
	cmp	edx, eax
	je	.L129
	mov	DWORD PTR -100[rbp], 47
	mov	r8d, 593
	lea	rcx, .LC0[rip]
	mov	edx, 272
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L123
.L129:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 216[rax]
	mov	rdx, QWORD PTR -120[rbp]
	lea	rsi, 220[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 256[rdx]
	lea	rcx, 108[rdx]
	mov	edx, eax
	mov	rdi, rcx
	call	memcmp@PLT
	mov	DWORD PTR -88[rbp], eax
	cmp	DWORD PTR -88[rbp], 0
	je	.L130
	mov	DWORD PTR -100[rbp], 47
	mov	r8d, 593
	lea	rcx, .LC0[rip]
	mov	edx, 272
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L123
.L130:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 132[rax], 1
	jmp	.L131
.L126:
.L146:
	nop
	jmp	.L132
.L147:
	nop
	jmp	.L132
.L148:
	nop
.L132:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 132[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	eax, DWORD PTR 68[rax]
	test	eax, eax
	je	.L133
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	ssl_get_new_session@PLT
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L133
	mov	DWORD PTR -100[rbp], 80
	jmp	.L123
.L133:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	edx, DWORD PTR -96[rbp]
	mov	DWORD PTR 68[rax], edx
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	lea	rcx, 72[rax]
	mov	edx, DWORD PTR -96[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
.L131:
	mov	eax, DWORD PTR -96[rbp]
	add	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR 112[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	jne	.L134
	mov	DWORD PTR -100[rbp], 47
	mov	r8d, 620
	lea	rcx, .LC0[rip]
	mov	edx, 248
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L123
.L134:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 120[rax]
	mov	esi, 0
	mov	edi, 0
	call	rax
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	ssl_get_ciphers_by_id@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sk_find@PLT
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -76[rbp], 0
	jns	.L135
	mov	DWORD PTR -100[rbp], 47
	mov	r8d, 631
	lea	rcx, .LC0[rip]
	mov	edx, 261
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L123
.L135:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 132[rax]
	test	eax, eax
	je	.L136
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 200[rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	cmp	rdx, rax
	je	.L136
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 352[rax]
	and	eax, 8
	test	rax, rax
	jne	.L136
	mov	DWORD PTR -100[rbp], 47
	mov	r8d, 641
	lea	rcx, .LC0[rip]
	mov	edx, 197
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L123
.L136:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 920[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -16[rbp], rax
	add	QWORD PTR -56[rbp], 1
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	jne	.L137
	mov	QWORD PTR -72[rbp], 0
	jmp	.L138
.L137:
	mov	edx, DWORD PTR -96[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 352[rax]
	mov	esi, edx
	mov	rdi, rax
	call	ssl3_comp_find@PLT
	mov	QWORD PTR -72[rbp], rax
.L138:
	cmp	DWORD PTR -96[rbp], 0
	je	.L139
	cmp	QWORD PTR -72[rbp], 0
	jne	.L140
	mov	DWORD PTR -100[rbp], 47
	mov	r8d, 658
	lea	rcx, .LC0[rip]
	mov	edx, 257
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L123
.L140:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR 1000[rax], rdx
	jmp	.L141
.L139:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR 1000[rax], rdx
.L141:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	cmp	rdx, rax
	je	.L142
	mov	DWORD PTR -100[rbp], 50
	mov	r8d, 670
	lea	rcx, .LC0[rip]
	mov	edx, 115
	mov	esi, 146
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L143
.L142:
	mov	eax, 1
	jmp	.L144
.L123:
	mov	edx, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
.L143:
	mov	eax, -1
.L144:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L145
	call	__stack_chk_fail@PLT
.L145:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	ssl3_get_server_hello, .-ssl3_get_server_hello
	.type	ssl3_get_server_certificate, @function
ssl3_get_server_certificate:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 144
	mov	QWORD PTR -136[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -112[rbp], -1
	mov	QWORD PTR -80[rbp], 0
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	lea	rdx, -120[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	r9, rdx
	mov	r8d, 102400
	mov	ecx, -1
	mov	edx, 4401
	mov	esi, 4400
	mov	rdi, rax
	call	ssl3_get_message@PLT
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR -120[rbp]
	test	eax, eax
	jne	.L150
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L172
.L150:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 912[rax]
	cmp	eax, 12
	jne	.L152
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 940[rax], 1
	mov	eax, 1
	jmp	.L172
.L152:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 912[rax]
	cmp	eax, 11
	je	.L153
	mov	DWORD PTR -116[rbp], 10
	mov	r8d, 713
	lea	rcx, .LC0[rip]
	mov	edx, 114
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L153:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -40[rbp], rax
	call	sk_new_null@PLT
	mov	QWORD PTR -64[rbp], rax
	cmp	QWORD PTR -64[rbp], 0
	jne	.L155
	mov	r8d, 720
	lea	rcx, .LC0[rip]
	mov	edx, 33
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L156
.L155:
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 16
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 8
	or	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	add	QWORD PTR -72[rbp], 3
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 3
	cmp	QWORD PTR -48[rbp], rax
	je	.L157
	mov	DWORD PTR -116[rbp], 50
	mov	r8d, 728
	lea	rcx, .LC0[rip]
	mov	edx, 159
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L157:
	mov	QWORD PTR -88[rbp], 0
	jmp	.L158
.L163:
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 16
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 8
	or	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	add	QWORD PTR -72[rbp], 3
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	add	rax, 3
	cmp	QWORD PTR -32[rbp], rax
	jnb	.L159
	mov	DWORD PTR -116[rbp], 50
	mov	r8d, 737
	lea	rcx, .LC0[rip]
	mov	edx, 135
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L159:
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR -16[rbp]
	lea	rax, -96[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	d2i_X509@PLT
	mov	QWORD PTR -80[rbp], rax
	cmp	QWORD PTR -80[rbp], 0
	jne	.L160
	mov	DWORD PTR -116[rbp], 42
	mov	r8d, 746
	lea	rcx, .LC0[rip]
	mov	edx, 13
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L160:
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	rdx, rax
	mov	rax, QWORD PTR -96[rbp]
	cmp	rdx, rax
	je	.L161
	mov	DWORD PTR -116[rbp], 50
	mov	r8d, 752
	lea	rcx, .LC0[rip]
	mov	edx, 135
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L161:
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sk_push@PLT
	mov	DWORD PTR -100[rbp], eax
	cmp	DWORD PTR -100[rbp], 0
	jne	.L162
	mov	r8d, 757
	lea	rcx, .LC0[rip]
	mov	edx, 33
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L156
.L162:
	mov	QWORD PTR -80[rbp], 0
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	add	rax, 3
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -72[rbp], rax
.L158:
	mov	rax, QWORD PTR -88[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jb	.L163
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	ssl_verify_cert_chain@PLT
	mov	DWORD PTR -108[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 264[rax]
	test	eax, eax
	je	.L164
	cmp	DWORD PTR -108[rbp], 0
	jne	.L164
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 312[rax]
	mov	rdi, rax
	call	ssl_verify_alarm_type@PLT
	mov	DWORD PTR -116[rbp], eax
	mov	r8d, 769
	lea	rcx, .LC0[rip]
	mov	edx, 134
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L164:
	call	ERR_clear_error@PLT
	call	ssl_sess_cert_new@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L174
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	test	rax, rax
	je	.L166
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rdi, rax
	call	ssl_sess_cert_free@PLT
.L166:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 144[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	sk_value@PLT
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -64[rbp], 0
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	X509_get_pubkey@PLT
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jne	.L167
	mov	QWORD PTR -80[rbp], 0
	mov	DWORD PTR -116[rbp], 2
	mov	r8d, 792
	lea	rcx, .LC0[rip]
	mov	edx, 239
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L167:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	EVP_PKEY_missing_parameters@PLT
	mov	DWORD PTR -104[rbp], eax
	cmp	DWORD PTR -104[rbp], 0
	je	.L168
	mov	QWORD PTR -80[rbp], 0
	mov	DWORD PTR -116[rbp], 2
	mov	r8d, 792
	lea	rcx, .LC0[rip]
	mov	edx, 239
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L168:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	ssl_cert_type@PLT
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jns	.L169
	mov	QWORD PTR -80[rbp], 0
	mov	DWORD PTR -116[rbp], 2
	mov	r8d, 801
	lea	rcx, .LC0[rip]
	mov	edx, 247
	mov	esi, 144
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L154
.L169:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -108[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 28
	mov	r8d, 806
	lea	rcx, .LC0[rip]
	mov	edx, 3
	mov	esi, 1
	mov	rdi, rax
	call	CRYPTO_add_lock@PLT
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	add	rax, 1
	sal	rax, 4
	add	rax, rdx
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L170
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	add	rax, 1
	sal	rax, 4
	add	rax, rdx
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	X509_free
.L170:
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	add	rax, 1
	sal	rax, 4
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	add	rax, 1
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 152[rax]
	test	rax, rax
	je	.L171
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 152[rax]
	mov	rdi, rax
	call	X509_free
.L171:
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 28
	mov	r8d, 816
	lea	rcx, .LC0[rip]
	mov	edx, 3
	mov	esi, 1
	mov	rdi, rax
	call	CRYPTO_add_lock@PLT
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR 152[rax], rdx
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rdx, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 312[rdx]
	mov	QWORD PTR 160[rax], rdx
	mov	QWORD PTR -80[rbp], 0
	mov	DWORD PTR -112[rbp], 1
	jmp	.L156
.L154:
	mov	edx, DWORD PTR -116[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	jmp	.L156
.L174:
	nop
.L156:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	EVP_PKEY_free@PLT
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	X509_free
	mov	rax, QWORD PTR -64[rbp]
	lea	rsi, X509_free[rip]
	mov	rdi, rax
	call	sk_pop_free@PLT
	mov	eax, DWORD PTR -112[rbp]
.L172:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L173
	call	__stack_chk_fail@PLT
.L173:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	ssl3_get_server_certificate, .-ssl3_get_server_certificate
	.type	ssl3_get_key_exchange, @function
ssl3_get_key_exchange:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 376
	.cfi_offset 3, -24
	mov	QWORD PTR -376[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -312[rbp], 0
	mov	QWORD PTR -304[rbp], 0
	mov	QWORD PTR -296[rbp], 0
	lea	rdx, -360[rbp]
	mov	rax, QWORD PTR -376[rbp]
	mov	r9, rdx
	mov	r8d, 102400
	mov	ecx, -1
	mov	edx, 4417
	mov	esi, 4416
	mov	rdi, rax
	call	ssl3_get_message@PLT
	mov	QWORD PTR -320[rbp], rax
	mov	eax, DWORD PTR -360[rbp]
	test	eax, eax
	jne	.L176
	mov	rax, QWORD PTR -320[rbp]
	jmp	.L220
.L176:
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 912[rax]
	cmp	eax, 12
	je	.L178
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 940[rax], 1
	mov	eax, 1
	jmp	.L220
.L178:
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	test	rax, rax
	je	.L179
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L180
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 104[rax]
	mov	rdi, rax
	call	RSA_free@PLT
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	QWORD PTR 104[rax], 0
.L180:
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 112[rax]
	test	rax, rax
	je	.L181
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 112[rax]
	mov	rdi, rax
	call	DH_free@PLT
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	QWORD PTR 112[rax], 0
	jmp	.L181
.L179:
	mov	rax, QWORD PTR -376[rbp]
	mov	rbx, QWORD PTR 256[rax]
	call	ssl_sess_cert_new@PLT
	mov	QWORD PTR 144[rbx], rax
.L181:
	mov	DWORD PTR -348[rbp], 0
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 1
	test	rax, rax
	je	.L182
	call	RSA_new@PLT
	mov	QWORD PTR -304[rbp], rax
	cmp	QWORD PTR -304[rbp], 0
	jne	.L183
	mov	r8d, 905
	lea	rcx, .LC0[rip]
	mov	edx, 33
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L183:
	mov	rax, QWORD PTR -328[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, edx
	mov	DWORD PTR -364[rbp], eax
	add	QWORD PTR -328[rbp], 2
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 2
	mov	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	cmp	QWORD PTR -320[rbp], rax
	jge	.L185
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 913
	lea	rcx, .LC0[rip]
	mov	edx, 121
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L185:
	mov	rax, QWORD PTR -304[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	ecx, DWORD PTR -364[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	BN_bin2bn@PLT
	mov	rdx, QWORD PTR -304[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L187
	mov	r8d, 918
	lea	rcx, .LC0[rip]
	mov	edx, 3
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L187:
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	add	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, edx
	mov	DWORD PTR -364[rbp], eax
	add	QWORD PTR -328[rbp], 2
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 2
	add	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	cmp	QWORD PTR -320[rbp], rax
	jge	.L188
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 928
	lea	rcx, .LC0[rip]
	mov	edx, 120
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L188:
	mov	rax, QWORD PTR -304[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	ecx, DWORD PTR -364[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	BN_bin2bn@PLT
	mov	rdx, QWORD PTR -304[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L189
	mov	r8d, 933
	lea	rcx, .LC0[rip]
	mov	edx, 3
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L189:
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	add	QWORD PTR -328[rbp], rax
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	sub	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 32
	test	rax, rax
	je	.L190
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	X509_get_pubkey@PLT
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rdx, QWORD PTR -304[rbp]
	mov	QWORD PTR 104[rax], rdx
	mov	QWORD PTR -304[rbp], 0
	jmp	.L192
.L190:
	mov	r8d, 944
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L182:
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 16
	test	rax, rax
	je	.L193
	call	DH_new@PLT
	mov	QWORD PTR -296[rbp], rax
	cmp	QWORD PTR -296[rbp], 0
	jne	.L194
	mov	r8d, 959
	lea	rcx, .LC0[rip]
	mov	edx, 5
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L194:
	mov	rax, QWORD PTR -328[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, edx
	mov	DWORD PTR -364[rbp], eax
	add	QWORD PTR -328[rbp], 2
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 2
	mov	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	cmp	QWORD PTR -320[rbp], rax
	jge	.L195
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 967
	lea	rcx, .LC0[rip]
	mov	edx, 110
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L195:
	mov	ecx, DWORD PTR -364[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	BN_bin2bn@PLT
	mov	rdx, QWORD PTR -296[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L196
	mov	r8d, 972
	lea	rcx, .LC0[rip]
	mov	edx, 3
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L196:
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	add	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, edx
	mov	DWORD PTR -364[rbp], eax
	add	QWORD PTR -328[rbp], 2
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 2
	add	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	cmp	QWORD PTR -320[rbp], rax
	jge	.L197
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 982
	lea	rcx, .LC0[rip]
	mov	edx, 108
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L197:
	mov	ecx, DWORD PTR -364[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	BN_bin2bn@PLT
	mov	rdx, QWORD PTR -296[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L198
	mov	r8d, 987
	lea	rcx, .LC0[rip]
	mov	edx, 3
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L198:
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	add	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, edx
	mov	DWORD PTR -364[rbp], eax
	add	QWORD PTR -328[rbp], 2
	mov	eax, DWORD PTR -364[rbp]
	add	eax, 2
	add	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	cmp	QWORD PTR -320[rbp], rax
	jge	.L199
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 997
	lea	rcx, .LC0[rip]
	mov	edx, 109
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L199:
	mov	ecx, DWORD PTR -364[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	BN_bin2bn@PLT
	mov	rdx, QWORD PTR -296[rbp]
	mov	QWORD PTR 32[rdx], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	jne	.L200
	mov	r8d, 1002
	lea	rcx, .LC0[rip]
	mov	edx, 3
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L200:
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	add	QWORD PTR -328[rbp], rax
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	sub	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 32
	test	rax, rax
	je	.L201
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	X509_get_pubkey@PLT
	mov	QWORD PTR -312[rbp], rax
	jmp	.L202
.L201:
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 64
	test	rax, rax
	je	.L202
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 56[rax]
	mov	rdi, rax
	call	X509_get_pubkey@PLT
	mov	QWORD PTR -312[rbp], rax
.L202:
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rdx, QWORD PTR -296[rbp]
	mov	QWORD PTR 112[rax], rdx
	mov	QWORD PTR -296[rbp], 0
	jmp	.L192
.L193:
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 2
	test	rax, rax
	je	.L203
	mov	DWORD PTR -356[rbp], 47
	mov	r8d, 1027
	lea	rcx, .LC0[rip]
	mov	edx, 235
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L203:
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 4
	test	rax, rax
	je	.L192
	mov	DWORD PTR -356[rbp], 47
	mov	r8d, 1027
	lea	rcx, .LC0[rip]
	mov	edx, 235
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L192:
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 128
	test	rax, rax
	je	.L204
	mov	DWORD PTR -356[rbp], 40
	mov	r8d, 1034
	lea	rcx, .LC0[rip]
	mov	edx, 235
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L204:
	cmp	QWORD PTR -312[rbp], 0
	je	.L205
	mov	rax, QWORD PTR -328[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, edx
	mov	DWORD PTR -364[rbp], eax
	add	QWORD PTR -328[rbp], 2
	sub	QWORD PTR -320[rbp], 2
	mov	rax, QWORD PTR -312[rbp]
	mov	rdi, rax
	call	EVP_PKEY_size@PLT
	mov	DWORD PTR -352[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	cmp	QWORD PTR -320[rbp], rax
	je	.L206
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 1053
	lea	rcx, .LC0[rip]
	mov	edx, 264
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L206:
	mov	eax, DWORD PTR -352[rbp]
	cdqe
	cmp	QWORD PTR -320[rbp], rax
	jle	.L207
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 1053
	lea	rcx, .LC0[rip]
	mov	edx, 264
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L207:
	cmp	QWORD PTR -320[rbp], 0
	jg	.L208
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 1053
	lea	rcx, .LC0[rip]
	mov	edx, 264
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L208:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 6
	jne	.L209
	mov	DWORD PTR -352[rbp], 0
	lea	rax, -96[rbp]
	mov	QWORD PTR -336[rbp], rax
	mov	DWORD PTR -344[rbp], 2
	jmp	.L210
.L213:
	cmp	DWORD PTR -344[rbp], 2
	jne	.L211
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 328[rax]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L212
.L211:
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 336[rax]
	mov	QWORD PTR -288[rbp], rax
.L212:
	mov	rdx, QWORD PTR -288[rbp]
	lea	rax, -256[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	EVP_DigestInit@PLT
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 120[rax]
	lea	rcx, 132[rax]
	lea	rax, -256[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	EVP_DigestUpdate@PLT
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 120[rax]
	lea	rcx, 100[rax]
	lea	rax, -256[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	EVP_DigestUpdate@PLT
	mov	edx, DWORD PTR -348[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	lea	rax, -256[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	EVP_DigestUpdate@PLT
	lea	rdx, -364[rbp]
	mov	rcx, QWORD PTR -336[rbp]
	lea	rax, -256[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	EVP_DigestFinal@PLT
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	add	QWORD PTR -336[rbp], rax
	mov	eax, DWORD PTR -364[rbp]
	add	DWORD PTR -352[rbp], eax
	sub	DWORD PTR -344[rbp], 1
.L210:
	cmp	DWORD PTR -344[rbp], 0
	jg	.L213
	mov	rax, QWORD PTR -312[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -320[rbp]
	mov	edi, eax
	mov	edx, DWORD PTR -352[rbp]
	mov	rcx, QWORD PTR -328[rbp]
	lea	rax, -96[rbp]
	mov	r9, rsi
	mov	r8d, edi
	mov	rsi, rax
	mov	edi, 114
	call	RSA_verify@PLT
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	test	eax, eax
	jns	.L214
	mov	DWORD PTR -356[rbp], 51
	mov	r8d, 1080
	lea	rcx, .LC0[rip]
	mov	edx, 118
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L214:
	mov	eax, DWORD PTR -364[rbp]
	test	eax, eax
	jne	.L215
	mov	DWORD PTR -356[rbp], 51
	mov	r8d, 1087
	lea	rcx, .LC0[rip]
	mov	edx, 123
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L209:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 116
	jne	.L216
	call	EVP_dss1@PLT
	mov	QWORD PTR -264[rbp], rax
	mov	rdx, QWORD PTR -264[rbp]
	lea	rax, -256[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	EVP_DigestInit@PLT
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 120[rax]
	lea	rcx, 132[rax]
	lea	rax, -256[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	EVP_DigestUpdate@PLT
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR 120[rax]
	lea	rcx, 100[rax]
	lea	rax, -256[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	EVP_DigestUpdate@PLT
	mov	edx, DWORD PTR -348[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	lea	rax, -256[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	EVP_DigestUpdate@PLT
	mov	rax, QWORD PTR -320[rbp]
	mov	edi, eax
	mov	rdx, QWORD PTR -312[rbp]
	mov	rsi, QWORD PTR -328[rbp]
	lea	rax, -256[rbp]
	mov	rcx, rdx
	mov	edx, edi
	mov	rdi, rax
	call	EVP_VerifyFinal@PLT
	mov	DWORD PTR -340[rbp], eax
	cmp	DWORD PTR -340[rbp], 0
	jne	.L215
	mov	DWORD PTR -356[rbp], 51
	mov	r8d, 1105
	lea	rcx, .LC0[rip]
	mov	edx, 123
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L216:
	mov	r8d, 1112
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L205:
	mov	rax, QWORD PTR -272[rbp]
	and	eax, 256
	test	rax, rax
	jne	.L217
	mov	r8d, 1121
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L184
.L217:
	cmp	QWORD PTR -320[rbp], 0
	je	.L215
	mov	DWORD PTR -356[rbp], 50
	mov	r8d, 1127
	lea	rcx, .LC0[rip]
	mov	edx, 153
	mov	esi, 141
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L186
.L215:
	mov	rax, QWORD PTR -312[rbp]
	mov	rdi, rax
	call	EVP_PKEY_free@PLT
	mov	eax, 1
	jmp	.L220
.L186:
	mov	edx, DWORD PTR -356[rbp]
	mov	rax, QWORD PTR -376[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
.L184:
	mov	rax, QWORD PTR -312[rbp]
	mov	rdi, rax
	call	EVP_PKEY_free@PLT
	cmp	QWORD PTR -304[rbp], 0
	je	.L218
	mov	rax, QWORD PTR -304[rbp]
	mov	rdi, rax
	call	RSA_free@PLT
.L218:
	cmp	QWORD PTR -296[rbp], 0
	je	.L219
	mov	rax, QWORD PTR -296[rbp]
	mov	rdi, rax
	call	DH_free@PLT
.L219:
	mov	eax, -1
.L220:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L221
	call	__stack_chk_fail@PLT
.L221:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	ssl3_get_key_exchange, .-ssl3_get_key_exchange
	.type	ssl3_get_certificate_request, @function
ssl3_get_certificate_request:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -120[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -100[rbp], 0
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	lea	rdx, -104[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	r9, rdx
	mov	r8d, 102400
	mov	ecx, -1
	mov	edx, 4433
	mov	esi, 4432
	mov	rdi, rax
	call	ssl3_get_message@PLT
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -104[rbp]
	test	eax, eax
	jne	.L223
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L246
.L223:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 944[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 912[rax]
	cmp	eax, 14
	jne	.L225
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 940[rax], 1
	mov	eax, 1
	jmp	.L246
.L225:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 912[rax]
	cmp	eax, 13
	je	.L226
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 10
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1181
	lea	rcx, .LC0[rip]
	mov	edx, 262
	mov	esi, 135
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L227
.L226:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 768
	jle	.L228
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	and	eax, 256
	test	rax, rax
	je	.L228
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 10
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1192
	lea	rcx, .LC0[rip]
	mov	edx, 232
	mov	esi, 135
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L227
.L228:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -24[rbp], rax
	lea	rdi, ca_dn_cmp[rip]
	call	sk_new@PLT
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jne	.L229
	mov	r8d, 1201
	lea	rcx, .LC0[rip]
	mov	edx, 33
	mov	esi, 135
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L227
.L229:
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -16[rbp], rax
	add	QWORD PTR -64[rbp], 1
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 7
	jbe	.L230
	mov	DWORD PTR -96[rbp], 7
.L230:
	mov	DWORD PTR -92[rbp], 0
	jmp	.L231
.L232:
	mov	edx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	eax, DWORD PTR -92[rbp]
	mov	BYTE PTR 952[rdx+rax], cl
	add	DWORD PTR -92[rbp], 1
.L231:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jb	.L232
	mov	eax, DWORD PTR -96[rbp]
	add	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, edx
	mov	DWORD PTR -88[rbp], eax
	add	QWORD PTR -64[rbp], 2
	mov	edx, DWORD PTR -88[rbp]
	mov	eax, DWORD PTR -96[rbp]
	add	eax, edx
	add	eax, 3
	mov	eax, eax
	cmp	QWORD PTR -40[rbp], rax
	je	.L233
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 50
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1227
	lea	rcx, .LC0[rip]
	mov	edx, 159
	mov	esi, 135
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L227
.L233:
	mov	QWORD PTR -72[rbp], 0
	jmp	.L234
.L242:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, edx
	mov	eax, eax
	mov	QWORD PTR -32[rbp], rax
	add	QWORD PTR -64[rbp], 2
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	lea	rdx, 2[rax]
	mov	eax, DWORD PTR -88[rbp]
	cmp	rdx, rax
	jbe	.L235
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 352[rax]
	and	eax, 536870912
	test	rax, rax
	jne	.L248
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 50
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1239
	lea	rcx, .LC0[rip]
	mov	edx, 132
	mov	esi, 135
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L227
.L235:
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	lea	rax, -80[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	d2i_X509_NAME@PLT
	mov	QWORD PTR -48[rbp], rax
	cmp	QWORD PTR -48[rbp], 0
	jne	.L238
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 352[rax]
	and	eax, 536870912
	test	rax, rax
	jne	.L249
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 50
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1253
	lea	rcx, .LC0[rip]
	mov	edx, 13
	mov	esi, 135
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L227
.L238:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rdx, rax
	mov	rax, QWORD PTR -80[rbp]
	cmp	rdx, rax
	je	.L240
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 50
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1261
	lea	rcx, .LC0[rip]
	mov	edx, 131
	mov	esi, 135
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L227
.L240:
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sk_push@PLT
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L241
	mov	r8d, 1266
	lea	rcx, .LC0[rip]
	mov	edx, 33
	mov	esi, 135
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L227
.L241:
	mov	rax, QWORD PTR -32[rbp]
	add	QWORD PTR -64[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	add	rax, 2
	mov	QWORD PTR -72[rbp], rax
.L234:
	mov	eax, DWORD PTR -88[rbp]
	cmp	QWORD PTR -72[rbp], rax
	jb	.L242
	jmp	.L243
.L248:
	nop
	jmp	.L237
.L249:
	nop
.L237:
	call	ERR_clear_error@PLT
.L243:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 944[rax], 1
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	edx, DWORD PTR -96[rbp]
	mov	DWORD PTR 948[rax], edx
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 960[rax]
	test	rax, rax
	je	.L244
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 960[rax]
	lea	rsi, X509_NAME_free[rip]
	mov	rdi, rax
	call	sk_pop_free@PLT
.L244:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR 960[rax], rdx
	mov	QWORD PTR -56[rbp], 0
	mov	DWORD PTR -100[rbp], 1
.L227:
	cmp	QWORD PTR -56[rbp], 0
	je	.L245
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, X509_NAME_free[rip]
	mov	rdi, rax
	call	sk_pop_free@PLT
.L245:
	mov	eax, DWORD PTR -100[rbp]
.L246:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L247
	call	__stack_chk_fail@PLT
.L247:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	ssl3_get_certificate_request, .-ssl3_get_certificate_request
	.type	ca_dn_cmp, @function
ca_dn_cmp:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	X509_NAME_cmp@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	ca_dn_cmp, .-ca_dn_cmp
	.type	ssl3_get_server_done, @function
ssl3_get_server_done:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -20[rbp], 0
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9, rdx
	mov	r8d, 30
	mov	ecx, 14
	mov	edx, 4449
	mov	esi, 4448
	mov	rdi, rax
	call	ssl3_get_message@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	test	eax, eax
	jne	.L253
	mov	rax, QWORD PTR -16[rbp]
	jmp	.L256
.L253:
	cmp	QWORD PTR -16[rbp], 0
	jle	.L255
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 50
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1316
	lea	rcx, .LC0[rip]
	mov	edx, 159
	mov	esi, 145
	mov	edi, 20
	call	ERR_put_error@PLT
.L255:
	mov	DWORD PTR -20[rbp], 1
	mov	eax, DWORD PTR -20[rbp]
.L256:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L257
	call	__stack_chk_fail@PLT
.L257:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	ssl3_get_server_done, .-ssl3_get_server_done
	.type	ssl3_send_client_key_exchange, @function
ssl3_send_client_key_exchange:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 184
	.cfi_offset 3, -24
	mov	QWORD PTR -184[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -136[rbp], 0
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR 72[rax]
	cmp	eax, 4480
	jne	.L259
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 4
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	and	eax, 1
	test	rax, rax
	je	.L260
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L261
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 104[rax]
	mov	QWORD PTR -144[rbp], rax
	jmp	.L262
.L261:
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	X509_get_pubkey@PLT
	mov	QWORD PTR -136[rbp], rax
	cmp	QWORD PTR -136[rbp], 0
	jne	.L263
	mov	r8d, 1354
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L263:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 6
	je	.L265
	mov	r8d, 1354
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L265:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L266
	mov	r8d, 1354
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L266:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	EVP_PKEY_free@PLT
.L262:
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR 372[rax]
	sar	eax, 8
	mov	BYTE PTR -80[rbp], al
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR 372[rax]
	mov	BYTE PTR -79[rbp], al
	lea	rax, -80[rbp]
	add	rax, 2
	mov	esi, 46
	mov	rdi, rax
	call	RAND_bytes@PLT
	mov	DWORD PTR -160[rbp], eax
	cmp	DWORD PTR -160[rbp], 0
	jle	.L284
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	DWORD PTR 16[rax], 48
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 768
	jle	.L268
	add	QWORD PTR -152[rbp], 2
.L268:
	mov	rcx, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	lea	rax, -80[rbp]
	mov	r8d, 1
	mov	rsi, rax
	mov	edi, 48
	call	RSA_public_encrypt@PLT
	mov	DWORD PTR -172[rbp], eax
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 352[rax]
	and	eax, 134217728
	test	rax, rax
	je	.L269
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 1
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 1
	add	edx, 1
	mov	BYTE PTR [rax], dl
.L269:
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 352[rax]
	and	eax, 268435456
	test	rax, rax
	je	.L270
	mov	BYTE PTR -80[rbp], 112
.L270:
	cmp	DWORD PTR -172[rbp], 0
	jg	.L271
	mov	r8d, 1380
	lea	rcx, .LC0[rip]
	mov	edx, 119
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L271:
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 768
	jle	.L272
	mov	eax, DWORD PTR -172[rbp]
	sar	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 1
	mov	edx, DWORD PTR -172[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -96[rbp], 2
	add	DWORD PTR -172[rbp], 2
.L272:
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 168[rax]
	mov	r8, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 256[rax]
	lea	rsi, 20[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rbx, QWORD PTR 256[rax]
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	ecx, 48
	mov	rdi, rax
	call	r8
	mov	DWORD PTR 16[rbx], eax
	lea	rax, -80[rbp]
	mov	edx, 48
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	jmp	.L273
.L260:
	mov	rax, QWORD PTR -120[rbp]
	and	eax, 22
	test	rax, rax
	je	.L274
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 112[rax]
	test	rax, rax
	je	.L275
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 112[rax]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, rax
	lea	rsi, d2i_DHparams[rip]
	lea	rdi, i2d_DHparams[rip]
	call	ASN1_dup@PLT
	mov	QWORD PTR -104[rbp], rax
	cmp	QWORD PTR -104[rbp], 0
	jne	.L277
	jmp	.L283
.L275:
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, 40
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1410
	lea	rcx, .LC0[rip]
	mov	edx, 238
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L283:
	mov	r8d, 1417
	lea	rcx, .LC0[rip]
	mov	edx, 5
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L277:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	DH_generate_key@PLT
	mov	DWORD PTR -168[rbp], eax
	cmp	DWORD PTR -168[rbp], 0
	jne	.L278
	mov	r8d, 1422
	lea	rcx, .LC0[rip]
	mov	edx, 5
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L278:
	mov	rax, QWORD PTR -112[rbp]
	mov	rcx, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DH_compute_key@PLT
	mov	DWORD PTR -172[rbp], eax
	cmp	DWORD PTR -172[rbp], 0
	jg	.L279
	mov	r8d, 1433
	lea	rcx, .LC0[rip]
	mov	edx, 5
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L279:
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 168[rax]
	mov	r8, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 256[rax]
	lea	rsi, 20[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rbx, QWORD PTR 256[rax]
	mov	ecx, DWORD PTR -172[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	r8
	mov	DWORD PTR 16[rbx], eax
	mov	edx, DWORD PTR -172[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdi, rax
	call	BN_num_bits@PLT
	mov	DWORD PTR -164[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	add	eax, 7
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	sar	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 1
	mov	edx, DWORD PTR -172[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -152[rbp], 2
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	BN_bn2bin@PLT
	add	DWORD PTR -172[rbp], 2
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	DH_free@PLT
	jmp	.L273
.L274:
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, 40
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	r8d, 1458
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 152
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L264
.L273:
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -88[rbp], rax
	add	QWORD PTR -128[rbp], 1
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR [rax], 16
	mov	eax, DWORD PTR -172[rbp]
	sar	eax, 16
	mov	edx, eax
	mov	rax, QWORD PTR -128[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -172[rbp]
	sar	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 2
	mov	edx, DWORD PTR -172[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -128[rbp], 3
	mov	rax, QWORD PTR -184[rbp]
	mov	DWORD PTR 72[rax], 4481
	mov	eax, DWORD PTR -172[rbp]
	lea	edx, 4[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	DWORD PTR 88[rax], edx
	mov	rax, QWORD PTR -184[rbp]
	mov	DWORD PTR 92[rax], 0
.L259:
	mov	rax, QWORD PTR -184[rbp]
	mov	esi, 22
	mov	rdi, rax
	call	ssl3_do_write@PLT
	mov	DWORD PTR -156[rbp], eax
	mov	eax, DWORD PTR -156[rbp]
	jmp	.L281
.L284:
	nop
.L264:
	mov	eax, -1
.L281:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L282
	call	__stack_chk_fail@PLT
.L282:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	ssl3_send_client_key_exchange, .-ssl3_send_client_key_exchange
	.type	ssl3_send_client_verify, @function
ssl3_send_client_verify:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -120[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -108[rbp], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 72[rax]
	cmp	eax, 4496
	jne	.L286
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 4
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 208[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 168[rax]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	lea	rsi, 480[rax]
	lea	rax, -48[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 6
	jne	.L287
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 168[rax]
	mov	rcx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 120[rax]
	lea	rsi, 320[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 2[rax]
	lea	rcx, -108[rbp]
	lea	rax, -48[rbp]
	mov	r9, rsi
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 36
	mov	rsi, rax
	mov	edi, 114
	call	RSA_sign@PLT
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	jg	.L288
	mov	r8d, 1508
	lea	rcx, .LC0[rip]
	mov	edx, 4
	mov	esi, 153
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L289
.L288:
	mov	eax, DWORD PTR -108[rbp]
	shr	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	BYTE PTR [rax], dl
	mov	edx, DWORD PTR -108[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -72[rbp], 2
	mov	eax, DWORD PTR -108[rbp]
	add	eax, 2
	mov	eax, eax
	mov	QWORD PTR -88[rbp], rax
	jmp	.L290
.L287:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 116
	jne	.L291
	mov	rax, QWORD PTR -64[rbp]
	mov	r8, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	lea	rdi, -104[rbp]
	lea	rcx, -48[rbp]
	lea	rsi, 16[rcx]
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	mov	edx, 20
	mov	edi, eax
	call	DSA_sign@PLT
	mov	DWORD PTR -100[rbp], eax
	cmp	DWORD PTR -100[rbp], 0
	jne	.L292
	mov	r8d, 1524
	lea	rcx, .LC0[rip]
	mov	edx, 10
	mov	esi, 153
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L289
.L292:
	mov	eax, DWORD PTR -104[rbp]
	sar	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	BYTE PTR [rax], dl
	mov	edx, DWORD PTR -104[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -72[rbp], 2
	mov	eax, DWORD PTR -104[rbp]
	add	eax, 2
	cdqe
	mov	QWORD PTR -88[rbp], rax
	jmp	.L290
.L291:
	mov	r8d, 1533
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 153
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L289
.L290:
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -56[rbp], rax
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	BYTE PTR [rax], 15
	mov	rax, QWORD PTR -88[rbp]
	shr	rax, 16
	mov	edx, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -88[rbp]
	shr	rax, 8
	mov	rdx, rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 2
	mov	rdx, QWORD PTR -88[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -80[rbp], 3
	mov	rax, QWORD PTR -88[rbp]
	lea	edx, 4[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 88[rax], edx
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 92[rax], 0
.L286:
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 22
	mov	rdi, rax
	call	ssl3_do_write@PLT
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	jmp	.L294
.L289:
	mov	eax, -1
.L294:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L295
	call	__stack_chk_fail@PLT
.L295:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	ssl3_send_client_verify, .-ssl3_send_client_verify
	.type	ssl3_send_client_certificate, @function
ssl3_send_client_certificate:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 72[rax]
	cmp	eax, 4464
	jne	.L297
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 208[rax]
	test	rax, rax
	jne	.L298
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 72[rax], 4465
	jmp	.L297
.L298:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 208[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L299
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 72[rax], 4465
	jmp	.L297
.L299:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 208[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L300
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 72[rax], 4465
	jmp	.L297
.L300:
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 72[rax], 4466
.L297:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 72[rax]
	cmp	eax, 4465
	jne	.L301
	mov	DWORD PTR -56[rbp], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rax, QWORD PTR 280[rax]
	test	rax, rax
	je	.L302
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	r8, QWORD PTR 280[rax]
	lea	rdx, -32[rbp]
	lea	rcx, -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	mov	eax, 0
	call	r8
	mov	DWORD PTR -56[rbp], eax
.L302:
	cmp	DWORD PTR -56[rbp], 0
	jns	.L303
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 40[rax], 4
	mov	eax, -1
	jmp	.L318
.L303:
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 40[rax], 1
	cmp	DWORD PTR -56[rbp], 1
	jne	.L320
	mov	rax, QWORD PTR -32[rbp]
	test	rax, rax
	je	.L321
	mov	rax, QWORD PTR -40[rbp]
	test	rax, rax
	je	.L322
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 72[rax], 4465
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	SSL_use_certificate@PLT
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	je	.L308
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	SSL_use_PrivateKey@PLT
	mov	DWORD PTR -48[rbp], eax
	cmp	DWORD PTR -48[rbp], 0
	jne	.L309
	mov	DWORD PTR -56[rbp], 0
	jmp	.L309
.L308:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L309
.L305:
.L320:
	nop
	jmp	.L310
.L321:
	nop
	jmp	.L310
.L322:
	nop
.L310:
	cmp	DWORD PTR -56[rbp], 1
	jne	.L309
	mov	DWORD PTR -56[rbp], 0
	mov	r8d, 1589
	lea	rcx, .LC0[rip]
	mov	edx, 106
	mov	esi, 151
	mov	edi, 20
	call	ERR_put_error@PLT
.L309:
	mov	rax, QWORD PTR -40[rbp]
	test	rax, rax
	je	.L311
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	X509_free
.L311:
	mov	rax, QWORD PTR -32[rbp]
	test	rax, rax
	je	.L312
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	EVP_PKEY_free@PLT
.L312:
	cmp	DWORD PTR -56[rbp], 0
	jne	.L313
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 768
	jne	.L314
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 944[rax], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 41
	mov	esi, 1
	mov	rdi, rax
	call	ssl3_send_alert@PLT
	mov	eax, 1
	jmp	.L318
.L314:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 944[rax], 2
.L313:
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 72[rax], 4466
.L301:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 72[rax]
	cmp	eax, 4466
	jne	.L315
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 72[rax], 4467
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	eax, DWORD PTR 944[rax]
	cmp	eax, 2
	jne	.L316
	mov	QWORD PTR -24[rbp], 0
	jmp	.L317
.L316:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 208[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L317:
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	ssl3_output_cert_chain@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 88[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 92[rax], 0
.L315:
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 22
	mov	rdi, rax
	call	ssl3_do_write@PLT
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
.L318:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L319
	call	__stack_chk_fail@PLT
.L319:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	ssl3_send_client_certificate, .-ssl3_send_client_certificate
	.type	ssl3_check_cert_and_algorithm, @function
ssl3_check_cert_and_algorithm:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	jne	.L324
	mov	r8d, 1643
	lea	rcx, .LC0[rip]
	mov	edx, 157
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L325
.L324:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 768
	test	rax, rax
	je	.L326
	mov	eax, 1
	jmp	.L327
.L326:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 104[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 256[rax]
	mov	rax, QWORD PTR 144[rax]
	mov	rax, QWORD PTR 112[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -56[rbp], eax
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	add	rax, 1
	sal	rax, 4
	add	rax, rdx
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	X509_get_pubkey@PLT
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	add	rax, 1
	sal	rax, 4
	add	rax, rdx
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	X509_certificate_type@PLT
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	EVP_PKEY_free@PLT
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 32
	test	rax, rax
	je	.L348
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 17
	cmp	eax, 17
	je	.L349
	mov	r8d, 1671
	lea	rcx, .LC0[rip]
	mov	edx, 170
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L348:
	nop
	jmp	.L328
.L349:
	nop
.L328:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 64
	test	rax, rax
	je	.L331
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 18
	cmp	eax, 18
	je	.L331
	mov	r8d, 1677
	lea	rcx, .LC0[rip]
	mov	edx, 165
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L331:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 1
	test	rax, rax
	je	.L332
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 33
	cmp	eax, 33
	je	.L332
	cmp	QWORD PTR -16[rbp], 0
	jne	.L332
	mov	r8d, 1685
	lea	rcx, .LC0[rip]
	mov	edx, 169
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L332:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 16
	test	rax, rax
	je	.L350
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 68
	cmp	eax, 68
	je	.L351
	cmp	QWORD PTR -8[rbp], 0
	jne	.L352
	mov	r8d, 1693
	lea	rcx, .LC0[rip]
	mov	edx, 163
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L350:
	nop
	jmp	.L333
.L351:
	nop
	jmp	.L333
.L352:
	nop
.L333:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 2
	test	rax, rax
	je	.L353
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 260
	cmp	eax, 260
	je	.L354
	mov	r8d, 1698
	lea	rcx, .LC0[rip]
	mov	edx, 164
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L353:
	nop
	jmp	.L336
.L354:
	nop
.L336:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 4
	test	rax, rax
	je	.L338
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 516
	cmp	eax, 516
	je	.L338
	mov	r8d, 1704
	lea	rcx, .LC0[rip]
	mov	edx, 162
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L338:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 32[rax]
	and	eax, 2
	test	rax, rax
	je	.L339
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 4096
	test	eax, eax
	jne	.L339
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 1
	test	rax, rax
	je	.L340
	cmp	QWORD PTR -16[rbp], 0
	jne	.L341
	mov	r8d, 1718
	lea	rcx, .LC0[rip]
	mov	edx, 167
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L341:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	RSA_size@PLT
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 32[rax]
	and	eax, 4
	test	rax, rax
	je	.L342
	mov	DWORD PTR -64[rbp], 512
	jmp	.L343
.L342:
	mov	DWORD PTR -64[rbp], 1024
.L343:
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -64[rbp]
	jle	.L339
	mov	r8d, 1718
	lea	rcx, .LC0[rip]
	mov	edx, 167
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L340:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 22
	test	rax, rax
	je	.L344
	cmp	QWORD PTR -8[rbp], 0
	jne	.L345
	mov	r8d, 1730
	lea	rcx, .LC0[rip]
	mov	edx, 166
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L345:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	DH_size@PLT
	mov	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 920[rax]
	mov	rax, QWORD PTR 32[rax]
	and	eax, 4
	test	rax, rax
	je	.L346
	mov	DWORD PTR -60[rbp], 512
	jmp	.L347
.L346:
	mov	DWORD PTR -60[rbp], 1024
.L347:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jle	.L339
	mov	r8d, 1730
	lea	rcx, .LC0[rip]
	mov	edx, 166
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L344:
	mov	r8d, 1737
	lea	rcx, .LC0[rip]
	mov	edx, 250
	mov	esi, 130
	mov	edi, 20
	call	ERR_put_error@PLT
	jmp	.L330
.L339:
	mov	eax, 1
	jmp	.L327
.L330:
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 40
	mov	esi, 2
	mov	rdi, rax
	call	ssl3_send_alert@PLT
.L325:
	mov	eax, 0
.L327:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	ssl3_check_cert_and_algorithm, .-ssl3_check_cert_and_algorithm
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"245116.c"
	.text
	.align	2
	.global	d2i_DHparams
	.syntax unified
	.arm
	.fpu softvfp
	.type	d2i_DHparams, %function
d2i_DHparams:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	nop
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	d2i_DHparams, .-d2i_DHparams
	.align	2
	.global	i2d_DHparams
	.syntax unified
	.arm
	.fpu softvfp
	.type	i2d_DHparams, %function
i2d_DHparams:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	nop
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	i2d_DHparams, .-i2d_DHparams
	.align	2
	.global	X509_NAME_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	X509_NAME_free, %function
X509_NAME_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	X509_NAME_free, .-X509_NAME_free
	.align	2
	.global	X509_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	X509_free, %function
X509_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	X509_free, .-X509_free
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_get_client_method, %function
ssl3_get_client_method:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #768
	bne	.L6
	bl	SSLv3_client_method
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L7
.L6:
	mov	r3, #0
.L7:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ssl3_get_client_method, .-ssl3_get_client_method
	.data
	.align	2
	.type	init, %object
	.size	init, 4
init:
	.word	1
	.local	SSLv3_client_data
	.comm	SSLv3_client_data,100,4
	.text
	.align	2
	.global	SSLv3_client_method
	.syntax unified
	.arm
	.fpu softvfp
	.type	SSLv3_client_method, %function
SSLv3_client_method:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L11
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L9
	ldr	r3, .L11
	mov	r2, #0
	str	r2, [r3]
	bl	sslv3_base_method
	str	r0, [fp, #-8]
	mov	r2, #100
	ldr	r1, [fp, #-8]
	ldr	r0, .L11+4
	bl	memcpy
	ldr	r3, .L11+4
	ldr	r2, .L11+8
	str	r2, [r3, #20]
	ldr	r3, .L11+4
	ldr	r2, .L11+12
	str	r2, [r3, #76]
.L9:
	ldr	r3, .L11+4
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L12:
	.align	2
.L11:
	.word	init
	.word	SSLv3_client_data
	.word	ssl3_connect
	.word	ssl3_get_client_method
	.size	SSLv3_client_method, .-SSLv3_client_method
	.comm	myState,4,4
	.comm	myStateNext,4,4
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L15
	ldr	r2, .L15+4
	str	r2, [r3]
	ldr	r0, [fp, #-8]
	bl	ssl3_connect
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L16:
	.align	2
.L15:
	.word	myState
	.word	12292
	.size	main, .-main
	.align	2
	.global	ssl3_connect
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_connect, %function
ssl3_connect:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-88]
	mov	r3, #0
	str	r3, [fp, #-68]
	bl	unknown
	mov	r3, r0
	str	r3, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-80]
	mvn	r3, #0
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-60]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #192]
	cmp	r3, #0
	beq	.L18
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #192]
	str	r3, [fp, #-80]
	b	.L19
.L18:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L19
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #108]
	str	r3, [fp, #-80]
.L19:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #28]
	add	r2, r3, #1
	ldr	r3, [fp, #-88]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-56]
	and	r3, r3, #12288
	cmp	r3, #0
.L87:
	ldr	r3, .L104
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, .L104
	ldr	r3, [r3]
	cmp	r3, #20480
	beq	.L21
	cmp	r3, #20480
	bgt	.L22
	cmp	r3, #16384
	beq	.L21
	cmp	r3, #16384
	bgt	.L22
	ldr	r2, .L104+4
	cmp	r3, r2
	beq	.L23
	ldr	r2, .L104+4
	cmp	r3, r2
	bgt	.L22
	ldr	r2, .L104+8
	cmp	r3, r2
	bgt	.L22
	ldr	r2, .L104+12
	cmp	r3, r2
	bge	.L24
	ldr	r2, .L104+16
	cmp	r3, r2
	bgt	.L22
	cmp	r3, #4352
	bge	.L25
	ldr	r2, .L104+20
	cmp	r3, r2
	beq	.L21
	ldr	r2, .L104+20
	cmp	r3, r2
	bgt	.L22
	cmp	r3, #3
	beq	.L26
	cmp	r3, #4096
	beq	.L21
	b	.L22
.L25:
	sub	r3, r3, #4352
	cmp	r3, #177
	ldrls	pc, [pc, r3, asl #2]
	b	.L22
.L28:
	.word	.L39
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L38
	.word	.L38
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L37
	.word	.L37
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L36
	.word	.L36
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L35
	.word	.L35
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L34
	.word	.L34
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L33
	.word	.L33
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L32
	.word	.L32
	.word	.L32
	.word	.L32
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L31
	.word	.L31
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L30
	.word	.L30
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L29
	.word	.L29
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L22
	.word	.L27
	.word	.L27
.L23:
	ldr	r3, [fp, #-88]
	mov	r2, #1
	str	r2, [r3, #40]
	ldr	r3, .L104
	mov	r2, #4096
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #204]
	ldr	r2, [r3, #64]
	add	r2, r2, #1
	str	r2, [r3, #64]
.L21:
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #36]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	and	r3, r3, #65280
	cmp	r3, #768
	beq	.L40
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L40:
	ldr	r3, [fp, #-88]
	mov	r2, #4096
	str	r2, [r3, #4]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #60]
	cmp	r3, #0
	bne	.L42
	bl	unknown
	mov	r3, r0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L43
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L43:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L44
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L44:
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #60]
.L42:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L45
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L45:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L46
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L46:
	ldr	r3, .L104
	ldr	r2, .L104+24
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #204]
	ldr	r2, [r3, #60]
	add	r2, r2, #1
	str	r2, [r3, #60]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L38:
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #48]
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L48
	mov	r3, #1
	str	r3, [fp, #-68]
.L48:
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L89
	ldr	r3, .L104
	ldr	r2, .L104+28
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L37:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-68]
	cmp	r3, #1
	bne	.L50
	mov	r3, #2
	str	r3, [fp, #-68]
.L50:
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L90
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L52
	ldr	r3, .L104
	ldr	r2, .L104+12
	str	r2, [r3]
	b	.L53
.L52:
	ldr	r3, .L104
	ldr	r2, .L104+32
	str	r2, [r3]
.L53:
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L36:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #12]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L54
	mov	r3, #1
	str	r3, [fp, #-72]
	b	.L55
.L54:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-68]
	cmp	r3, #2
	bne	.L56
	mov	r3, #3
	str	r3, [fp, #-68]
	b	.L57
.L56:
	ldr	r3, [fp, #-68]
	cmp	r3, #4
	bne	.L57
	mov	r3, #5
	str	r3, [fp, #-68]
.L57:
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L91
.L55:
	ldr	r3, .L104
	mov	r2, #4416
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L35:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-68]
	cmp	r3, #3
	bne	.L58
	mov	r3, #4
	str	r3, [fp, #-68]
.L58:
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L92
	ldr	r3, .L104
	ldr	r2, .L104+36
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L93
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L34:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-68]
	cmp	r3, #5
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	_TRACER_abort
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L94
	ldr	r3, .L104
	ldr	r2, .L104+40
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L33:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L95
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #856]
	cmp	r3, #0
	beq	.L63
	ldr	r3, .L104
	ldr	r2, .L104+44
	str	r2, [r3]
	b	.L64
.L63:
	ldr	r3, .L104
	mov	r2, #4480
	str	r2, [r3]
.L64:
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L32:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L96
	ldr	r3, .L104
	mov	r2, #4480
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L31:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L97
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #856]
	cmp	r3, #1
	bne	.L67
	ldr	r3, .L104
	ldr	r2, .L104+48
	str	r2, [r3]
	b	.L68
.L67:
	ldr	r3, .L104
	ldr	r2, .L104+52
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	mov	r2, #0
	str	r2, [r3, #572]
.L68:
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L30:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L98
	ldr	r3, .L104
	ldr	r2, .L104+52
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	mov	r2, #0
	str	r2, [r3, #572]
	b	.L47
.L29:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L99
	ldr	r3, .L104
	ldr	r2, .L104+56
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	ldr	r3, [fp, #-88]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #176]
	ldr	r2, [r2, #840]
	str	r2, [r3, #172]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #896]
	cmp	r3, #0
	bne	.L71
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #176]
	mov	r2, #0
	str	r2, [r3, #168]
	b	.L72
.L71:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r2, [r3, #896]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #176]
	ldr	r2, [r2]
	str	r2, [r3, #168]
.L72:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L73
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L73:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L100
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L27:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L101
	ldr	r3, .L104
	mov	r2, #4352
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	bic	r2, r2, #4
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L76
	ldr	r3, .L104+60
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r3, [r3]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L77
	ldr	r3, .L104
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	orr	r2, r2, #4
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L77
.L76:
	ldr	r3, .L104+60
	ldr	r2, .L104+12
	str	r2, [r3]
.L77:
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L24:
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L102
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L79
	ldr	r3, .L104
	ldr	r2, .L104+52
	str	r2, [r3]
	b	.L80
.L79:
	ldr	r3, .L104
	mov	r2, #3
	str	r2, [r3]
.L80:
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	b	.L47
.L39:
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	ble	.L81
	ldr	r3, [fp, #-88]
	mov	r2, #2
	str	r2, [r3, #24]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	bgt	.L82
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L82:
	ldr	r3, [fp, #-88]
	mov	r2, #1
	str	r2, [r3, #24]
.L81:
	ldr	r3, .L104+60
	ldr	r3, [r3]
	ldr	r2, .L104
	str	r3, [r2]
	b	.L47
.L26:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #60]
	cmp	r3, #0
	beq	.L83
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #60]
.L83:
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #64]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #40]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L84
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #204]
	ldr	r2, [r3, #96]
	add	r2, r2, #1
	str	r2, [r3, #96]
.L84:
	mov	r3, #1
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-88]
	ldr	r2, .L104+64
	str	r2, [r3, #32]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #204]
	ldr	r2, [r3, #68]
	add	r2, r2, #1
	str	r2, [r3, #68]
	b	.L41
.L22:
	mvn	r3, #0
	str	r3, [fp, #-76]
	b	.L41
.L93:
	nop
	b	.L47
.L100:
	nop
.L47:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #852]
	cmp	r3, #0
	bne	.L85
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L85
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #208]
	cmp	r3, #0
	beq	.L86
	bl	unknown
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L103
.L86:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L85
	ldr	r3, .L104
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	beq	.L85
	ldr	r3, .L104
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r2, .L104
	ldr	r3, [fp, #-48]
	str	r3, [r2]
	ldr	r2, .L104
	ldr	r3, [fp, #-8]
	str	r3, [r2]
.L85:
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L87
.L89:
	nop
	b	.L41
.L90:
	nop
	b	.L41
.L91:
	nop
	b	.L41
.L92:
	nop
	b	.L41
.L94:
	nop
	b	.L41
.L95:
	nop
	b	.L41
.L96:
	nop
	b	.L41
.L97:
	nop
	b	.L41
.L98:
	nop
	b	.L41
.L99:
	nop
	b	.L41
.L101:
	nop
	b	.L41
.L102:
	nop
	b	.L41
.L103:
	nop
.L41:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #28]
	sub	r2, r3, #1
	ldr	r3, [fp, #-88]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-76]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L105:
	.align	2
.L104:
	.word	myState
	.word	12292
	.word	4561
	.word	4560
	.word	4529
	.word	4099
	.word	4368
	.word	4384
	.word	4400
	.word	4432
	.word	4448
	.word	4464
	.word	4496
	.word	4512
	.word	4528
	.word	myStateNext
	.word	ssl3_connect
	.size	ssl3_connect, .-ssl3_connect
	.section	.rodata
	.align	2
.LC0:
	.ascii	"s3_clnt.c\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_client_hello, %function
ssl3_client_hello:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #104
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #52]
	ldr	r2, .L125
	cmp	r3, r2
	bne	.L107
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #176]
	cmp	r3, #0
	beq	.L122
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #176]
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L123
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #140]
	cmp	r3, #0
	beq	.L111
	b	.L109
.L122:
	nop
	b	.L109
.L123:
	nop
.L109:
	mov	r1, #0
	ldr	r0, [fp, #-96]
	bl	ssl_get_new_session
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L124
.L111:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #84]
	add	r3, r3, #128
	str	r3, [fp, #-92]
	mov	r0, #0
	bl	time
	mov	r3, r0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #24
	and	r2, r3, #255
	ldr	r3, [fp, #-68]
	strb	r2, [r3]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #16
	and	r2, r3, #255
	ldr	r3, [fp, #-64]
	strb	r2, [r3]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, [fp, #-60]
	strb	r2, [r3]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-72]
	and	r2, r3, #255
	ldr	r3, [fp, #-56]
	strb	r2, [r3]
	mov	r1, #28
	ldr	r0, [fp, #-92]
	bl	RAND_pseudo_bytes
	ldr	r3, [fp, #-80]
	add	r3, r3, #4
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	asr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, [fp, #-48]
	strb	r2, [r3]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	and	r2, r3, #255
	ldr	r3, [fp, #-44]
	strb	r2, [r3]
	ldr	r3, [fp, #-96]
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	str	r2, [r3, #244]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #84]
	add	r3, r3, #128
	mov	r2, #32
	mov	r1, r3
	ldr	r0, [fp, #-92]
	bl	memcpy
	ldr	r3, [fp, #-92]
	add	r3, r3, #32
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #40]
	cmp	r3, #0
	beq	.L113
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L114
.L113:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #68]
	str	r3, [fp, #-88]
.L114:
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-88]
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	beq	.L115
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #176]
	add	r3, r3, #72
	ldr	r2, [fp, #-88]
	mov	r1, r3
	ldr	r0, [fp, #-92]
	bl	memcpy
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	str	r3, [fp, #-92]
.L115:
	ldr	r0, [fp, #-96]
	bl	SSL_get_ciphers
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-92]
	add	r3, r3, #2
	mov	r2, r3
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-96]
	bl	ssl_cipher_list_to_bytes
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bne	.L116
	ldr	r3, .L125+4
	str	r3, [sp]
	ldr	r3, .L125+8
	mov	r2, #181
	mov	r1, #131
	mov	r0, #20
	bl	ERR_put_error
	b	.L112
.L116:
	ldr	r3, [fp, #-88]
	asr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, [fp, #-92]
	strb	r2, [r3]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	ldr	r2, [fp, #-88]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-92]
	add	r3, r3, #2
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #228]
	cmp	r3, #0
	bne	.L117
	mov	r3, #0
	str	r3, [fp, #-84]
	b	.L118
.L117:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #228]
	mov	r0, r3
	bl	sk_num
	str	r0, [fp, #-84]
.L118:
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-84]
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-32]
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L119
.L120:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #228]
	ldr	r1, [fp, #-88]
	mov	r0, r3
	bl	sk_value
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	and	r2, r3, #255
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L119:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	blt	.L120
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-28]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-52]
	sub	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-20]
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	lsr	r3, r3, #16
	and	r2, r3, #255
	ldr	r3, [fp, #-52]
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	lsr	r2, r3, #8
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #2
	ldr	r2, [fp, #-24]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-96]
	ldr	r2, .L125+12
	str	r2, [r3, #52]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-80]
	sub	r2, r2, r3
	ldr	r3, [fp, #-96]
	str	r2, [r3, #64]
	ldr	r3, [fp, #-96]
	mov	r2, #0
	str	r2, [r3, #68]
.L107:
	mov	r1, #22
	ldr	r0, [fp, #-96]
	bl	ssl3_do_write
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L121
.L124:
	nop
.L112:
	mvn	r3, #0
.L121:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L126:
	.align	2
.L125:
	.word	4368
	.word	503
	.word	.LC0
	.word	4369
	.size	ssl3_client_hello, .-ssl3_client_hello
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_get_server_hello, %function
ssl3_get_server_hello:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-80]
	ldr	r3, .L157
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #72
	str	r3, [sp, #4]
	mov	r3, #300
	str	r3, [sp]
	mov	r3, #2
	ldr	r2, .L157+4
	ldr	r1, .L157+8
	ldr	r0, [fp, #-80]
	bl	ssl3_get_message
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L128
	ldr	r3, [fp, #-60]
	b	.L152
.L128:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-56]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	asr	r3, r3, #8
	cmp	r2, r3
	beq	.L130
	ldr	r3, .L157+12
	str	r3, [sp]
	ldr	r3, .L157+16
	ldr	r2, .L157+20
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	and	r3, r3, #65280
	ldr	r2, [fp, #-56]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r2, r3, r2
	ldr	r3, [fp, #-80]
	str	r2, [r3]
	mov	r3, #70
	str	r3, [fp, #-68]
	b	.L131
.L130:
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	and	r3, r3, #255
	cmp	r2, r3
	beq	.L132
	ldr	r3, .L157+12
	str	r3, [sp]
	ldr	r3, .L157+16
	ldr	r2, .L157+20
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	and	r3, r3, #65280
	ldr	r2, [fp, #-56]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r2, r3, r2
	ldr	r3, [fp, #-80]
	str	r2, [r3]
	mov	r3, #70
	str	r3, [fp, #-68]
	b	.L131
.L132:
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #84]
	add	r3, r3, #96
	mov	r2, #32
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	memcpy
	ldr	r3, [fp, #-56]
	add	r3, r3, #32
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L133
	ldr	r3, [fp, #-44]
	cmp	r3, #32
	beq	.L133
	ldr	r3, [fp, #-44]
	cmp	r3, #15
	bhi	.L133
	mov	r3, #47
	str	r3, [fp, #-68]
	ldr	r3, .L157+24
	str	r3, [sp]
	ldr	r3, .L157+16
	mov	r2, #222
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	b	.L131
.L133:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L154
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #68]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bne	.L155
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	add	r3, r3, #72
	ldr	r2, [fp, #-44]
	mov	r1, r3
	ldr	r0, [fp, #-56]
	bl	memcmp
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L156
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #140]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #104]
	cmp	r2, r3
	beq	.L137
	mov	r3, #47
	str	r3, [fp, #-68]
	ldr	r3, .L157+28
	str	r3, [sp]
	ldr	r3, .L157+16
	mov	r2, #272
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	b	.L131
.L137:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	add	r0, r3, #108
	ldr	r3, [fp, #-80]
	add	r1, r3, #144
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #140]
	mov	r2, r3
	bl	memcmp
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L138
	mov	r3, #47
	str	r3, [fp, #-68]
	ldr	r3, .L157+28
	str	r3, [sp]
	ldr	r3, .L157+16
	mov	r2, #272
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	b	.L131
.L138:
	ldr	r3, [fp, #-80]
	mov	r2, #1
	str	r2, [r3, #92]
	b	.L139
.L134:
.L154:
	nop
	b	.L140
.L155:
	nop
	b	.L140
.L156:
	nop
.L140:
	ldr	r3, [fp, #-80]
	mov	r2, #0
	str	r2, [r3, #92]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #68]
	cmp	r3, #0
	beq	.L141
	mov	r1, #0
	ldr	r0, [fp, #-80]
	bl	ssl_get_new_session
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L141
	mov	r3, #80
	str	r3, [fp, #-68]
	b	.L131
.L141:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r2, [fp, #-44]
	str	r2, [r3, #68]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	add	r3, r3, #72
	ldr	r2, [fp, #-44]
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	memcpy
.L139:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #56]
	ldr	r0, [fp, #-56]
	blx	r3
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L142
	mov	r3, #47
	str	r3, [fp, #-68]
	mov	r3, #620
	str	r3, [sp]
	ldr	r3, .L157+16
	mov	r2, #248
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	b	.L131
.L142:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #60]
	mov	r1, #0
	mov	r0, #0
	blx	r3
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	ssl_get_ciphers_by_id
	str	r0, [fp, #-20]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-20]
	bl	sk_find
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L143
	mov	r3, #47
	str	r3, [fp, #-68]
	ldr	r3, .L157+32
	str	r3, [sp]
	ldr	r3, .L157+16
	ldr	r2, .L157+36
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	b	.L131
.L143:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L144
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #172]
	mov	r2, r3
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	beq	.L144
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #232]
	and	r3, r3, #8
	cmp	r3, #0
	bne	.L144
	mov	r3, #47
	str	r3, [fp, #-68]
	ldr	r3, .L157+40
	str	r3, [sp]
	ldr	r3, .L157+16
	mov	r2, #197
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	b	.L131
.L144:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #84]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #840]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L145
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L146
.L145:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #228]
	ldr	r2, [fp, #-44]
	mov	r1, r2
	mov	r0, r3
	bl	ssl3_comp_find
	str	r0, [fp, #-64]
.L146:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L147
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bne	.L148
	mov	r3, #47
	str	r3, [fp, #-68]
	ldr	r3, .L157+44
	str	r3, [sp]
	ldr	r3, .L157+16
	ldr	r2, .L157+48
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	b	.L131
.L148:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #84]
	ldr	r2, [fp, #-64]
	str	r2, [r3, #896]
	b	.L149
.L147:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #84]
	ldr	r2, [fp, #-64]
	str	r2, [r3, #896]
.L149:
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	beq	.L150
	mov	r3, #50
	str	r3, [fp, #-68]
	ldr	r3, .L157+52
	str	r3, [sp]
	ldr	r3, .L157+16
	mov	r2, #115
	mov	r1, #146
	mov	r0, #20
	bl	ERR_put_error
	b	.L151
.L150:
	mov	r3, #1
	b	.L152
.L131:
	ldr	r2, [fp, #-68]
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	ssl3_send_alert
.L151:
	mvn	r3, #0
.L152:
	ldr	r2, .L157
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L153
	bl	__stack_chk_fail
.L153:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L158:
	.align	2
.L157:
	.word	.LC1
	.word	4385
	.word	4384
	.word	561
	.word	.LC0
	.word	266
	.word	582
	.word	593
	.word	631
	.word	261
	.word	641
	.word	658
	.word	257
	.word	670
	.size	ssl3_get_server_hello, .-ssl3_get_server_hello
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_get_server_certificate, %function
ssl3_get_server_certificate:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-80]
	ldr	r3, .L185
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mvn	r3, #0
	str	r3, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #76
	str	r3, [sp, #4]
	mov	r3, #102400
	str	r3, [sp]
	mvn	r3, #0
	ldr	r2, .L185+4
	ldr	r1, .L185+8
	ldr	r0, [fp, #-80]
	bl	ssl3_get_message
	mov	r3, r0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bne	.L160
	ldr	r3, [fp, #-40]
	b	.L182
.L160:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #836]
	cmp	r3, #12
	bne	.L162
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #84]
	mov	r2, #1
	str	r2, [r3, #852]
	mov	r3, #1
	b	.L182
.L162:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #836]
	cmp	r3, #11
	beq	.L163
	mov	r3, #10
	str	r3, [fp, #-68]
	ldr	r3, .L185+12
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #114
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L163:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-36]
	bl	sk_new_null
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L165
	mov	r3, #720
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #33
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L166
.L165:
	ldr	r3, [fp, #-52]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r2, r3, #16
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r2, r2, #2
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	add	r3, r3, #3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-32]
	add	r3, r3, #3
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	beq	.L167
	mov	r3, #50
	str	r3, [fp, #-68]
	mov	r3, #728
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #159
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L167:
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L168
.L173:
	ldr	r3, [fp, #-52]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r2, r3, #16
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r2, r2, #2
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-52]
	add	r3, r3, #3
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	add	r3, r3, #3
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcs	.L169
	mov	r3, #50
	str	r3, [fp, #-68]
	ldr	r3, .L185+20
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #135
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L169:
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-16]
	sub	r3, fp, #72
	mov	r1, r3
	mov	r0, #0
	bl	d2i_X509
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bne	.L170
	mov	r3, #42
	str	r3, [fp, #-68]
	ldr	r3, .L185+24
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #13
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L170:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	beq	.L171
	mov	r3, #50
	str	r3, [fp, #-68]
	mov	r3, #752
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #135
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L171:
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-48]
	bl	sk_push
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L172
	ldr	r3, .L185+28
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #33
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L166
.L172:
	mov	r3, #0
	str	r3, [fp, #-56]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	add	r3, r3, #3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-52]
.L168:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bcc	.L173
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-80]
	bl	ssl_verify_cert_chain
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #180]
	cmp	r3, #0
	beq	.L174
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L174
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #212]
	mov	r0, r3
	bl	ssl_verify_alarm_type
	str	r0, [fp, #-68]
	ldr	r3, .L185+32
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #134
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L174:
	bl	ERR_clear_error
	bl	ssl_sess_cert_new
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L184
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	cmp	r3, #0
	beq	.L176
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	mov	r0, r3
	bl	ssl_sess_cert_free
.L176:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #144]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, [fp, #-48]
	bl	sk_value
	str	r0, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r0, [fp, #-56]
	bl	X509_get_pubkey
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L177
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #2
	str	r3, [fp, #-68]
	mov	r3, #792
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #239
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L177:
	ldr	r0, [fp, #-44]
	bl	EVP_PKEY_missing_parameters
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L178
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #2
	str	r3, [fp, #-68]
	mov	r3, #792
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #239
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L178:
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-56]
	bl	ssl_cert_type
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L179
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #2
	str	r3, [fp, #-68]
	ldr	r3, .L185+36
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #247
	mov	r1, #144
	mov	r0, #20
	bl	ERR_put_error
	b	.L164
.L179:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	add	r0, r3, #16
	ldr	r3, .L185+40
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #3
	mov	r1, #1
	bl	CRYPTO_add_lock
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L180
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	X509_free
.L180:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r2, [fp, #-56]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	add	r2, r3, #4
	ldr	r3, [fp, #-24]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #148]
	cmp	r3, #0
	beq	.L181
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #148]
	mov	r0, r3
	bl	X509_free
.L181:
	ldr	r3, [fp, #-56]
	add	r0, r3, #16
	mov	r3, #816
	str	r3, [sp]
	ldr	r3, .L185+16
	mov	r2, #3
	mov	r1, #1
	bl	CRYPTO_add_lock
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r2, [fp, #-56]
	str	r2, [r3, #148]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #176]
	ldr	r2, [fp, #-80]
	ldr	r2, [r2, #212]
	str	r2, [r3, #152]
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #1
	str	r3, [fp, #-64]
	b	.L166
.L164:
	ldr	r2, [fp, #-68]
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	ssl3_send_alert
	b	.L166
.L184:
	nop
.L166:
	ldr	r0, [fp, #-44]
	bl	EVP_PKEY_free
	ldr	r0, [fp, #-56]
	bl	X509_free
	ldr	r1, .L185+44
	ldr	r0, [fp, #-48]
	bl	sk_pop_free
	ldr	r3, [fp, #-64]
.L182:
	ldr	r2, .L185
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L183
	bl	__stack_chk_fail
.L183:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L186:
	.align	2
.L185:
	.word	.LC2
	.word	4401
	.word	4400
	.word	713
	.word	.LC0
	.word	737
	.word	746
	.word	757
	.word	769
	.word	801
	.word	806
	.word	X509_free
	.size	ssl3_get_server_certificate, .-ssl3_get_server_certificate
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_get_key_exchange, %function
ssl3_get_key_exchange:
	@ args = 0, pretend = 0, frame = 304
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #316
	str	r0, [fp, #-312]
	ldr	r3, .L234
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-276]
	mov	r3, #0
	str	r3, [fp, #-272]
	mov	r3, #0
	str	r3, [fp, #-268]
	sub	r3, fp, #304
	str	r3, [sp, #4]
	mov	r3, #102400
	str	r3, [sp]
	mvn	r3, #0
	ldr	r2, .L234+4
	mov	r1, #4416
	ldr	r0, [fp, #-312]
	bl	ssl3_get_message
	str	r0, [fp, #-280]
	ldr	r3, [fp, #-304]
	cmp	r3, #0
	bne	.L188
	ldr	r3, [fp, #-280]
	b	.L232
.L188:
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #836]
	cmp	r3, #12
	beq	.L190
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #84]
	mov	r2, #1
	str	r2, [r3, #852]
	mov	r3, #1
	b	.L232
.L190:
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	cmp	r3, #0
	beq	.L191
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #52]
	cmp	r3, #0
	beq	.L192
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #52]
	mov	r0, r3
	bl	RSA_free
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	mov	r2, #0
	str	r2, [r3, #52]
.L192:
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #56]
	cmp	r3, #0
	beq	.L193
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #56]
	mov	r0, r3
	bl	DH_free
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	mov	r2, #0
	str	r2, [r3, #56]
	b	.L193
.L191:
	ldr	r3, [fp, #-312]
	ldr	r4, [r3, #176]
	bl	ssl_sess_cert_new
	mov	r3, r0
	str	r3, [r4, #144]
.L193:
	mov	r3, #0
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L194
	bl	RSA_new
	str	r0, [fp, #-272]
	ldr	r3, [fp, #-272]
	cmp	r3, #0
	bne	.L195
	ldr	r3, .L234+8
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #33
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L195:
	ldr	r3, [fp, #-296]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-296]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-296]
	add	r3, r3, #2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-308]
	add	r3, r3, #2
	str	r3, [fp, #-284]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-280]
	cmp	r2, r3
	ble	.L197
	mov	r3, #50
	str	r3, [fp, #-292]
	ldr	r3, .L234+16
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #121
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L197:
	ldr	r1, [fp, #-308]
	ldr	r3, [fp, #-272]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r0, [fp, #-296]
	bl	BN_bin2bn
	mov	r2, r0
	ldr	r3, [fp, #-272]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-272]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L199
	ldr	r3, .L234+20
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #3
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L199:
	ldr	r3, [fp, #-308]
	mov	r2, r3
	ldr	r3, [fp, #-296]
	add	r3, r3, r2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-296]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-296]
	add	r3, r3, #2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-308]
	add	r3, r3, #2
	ldr	r2, [fp, #-284]
	add	r3, r2, r3
	str	r3, [fp, #-284]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-280]
	cmp	r2, r3
	ble	.L200
	mov	r3, #50
	str	r3, [fp, #-292]
	mov	r3, #928
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #120
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L200:
	ldr	r1, [fp, #-308]
	ldr	r3, [fp, #-272]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r0, [fp, #-296]
	bl	BN_bin2bn
	mov	r2, r0
	ldr	r3, [fp, #-272]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-272]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L201
	ldr	r3, .L234+24
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #3
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L201:
	ldr	r3, [fp, #-308]
	mov	r2, r3
	ldr	r3, [fp, #-296]
	add	r3, r3, r2
	str	r3, [fp, #-296]
	ldr	r2, [fp, #-280]
	ldr	r3, [fp, #-284]
	sub	r3, r2, r3
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-252]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L202
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	X509_get_pubkey
	str	r0, [fp, #-276]
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r2, [fp, #-272]
	str	r2, [r3, #52]
	mov	r3, #0
	str	r3, [fp, #-272]
	b	.L204
.L202:
	mov	r3, #944
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #157
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L194:
	ldr	r3, [fp, #-252]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L205
	bl	DH_new
	str	r0, [fp, #-268]
	ldr	r3, [fp, #-268]
	cmp	r3, #0
	bne	.L206
	ldr	r3, .L234+28
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #5
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L206:
	ldr	r3, [fp, #-296]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-296]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-296]
	add	r3, r3, #2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-308]
	add	r3, r3, #2
	str	r3, [fp, #-284]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-280]
	cmp	r2, r3
	ble	.L207
	mov	r3, #50
	str	r3, [fp, #-292]
	ldr	r3, .L234+32
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #110
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L207:
	ldr	r3, [fp, #-308]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-296]
	bl	BN_bin2bn
	mov	r2, r0
	ldr	r3, [fp, #-268]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-268]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L208
	mov	r3, #972
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #3
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L208:
	ldr	r3, [fp, #-308]
	mov	r2, r3
	ldr	r3, [fp, #-296]
	add	r3, r3, r2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-296]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-296]
	add	r3, r3, #2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-308]
	add	r3, r3, #2
	ldr	r2, [fp, #-284]
	add	r3, r2, r3
	str	r3, [fp, #-284]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-280]
	cmp	r2, r3
	ble	.L209
	mov	r3, #50
	str	r3, [fp, #-292]
	ldr	r3, .L234+36
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #108
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L209:
	ldr	r3, [fp, #-308]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-296]
	bl	BN_bin2bn
	mov	r2, r0
	ldr	r3, [fp, #-268]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-268]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L210
	ldr	r3, .L234+40
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #3
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L210:
	ldr	r3, [fp, #-308]
	mov	r2, r3
	ldr	r3, [fp, #-296]
	add	r3, r3, r2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-296]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-296]
	add	r3, r3, #2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-308]
	add	r3, r3, #2
	ldr	r2, [fp, #-284]
	add	r3, r2, r3
	str	r3, [fp, #-284]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-280]
	cmp	r2, r3
	ble	.L211
	mov	r3, #50
	str	r3, [fp, #-292]
	ldr	r3, .L234+44
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #109
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L211:
	ldr	r3, [fp, #-308]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-296]
	bl	BN_bin2bn
	mov	r2, r0
	ldr	r3, [fp, #-268]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-268]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L212
	ldr	r3, .L234+48
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #3
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L212:
	ldr	r3, [fp, #-308]
	mov	r2, r3
	ldr	r3, [fp, #-296]
	add	r3, r3, r2
	str	r3, [fp, #-296]
	ldr	r2, [fp, #-280]
	ldr	r3, [fp, #-284]
	sub	r3, r2, r3
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-252]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L213
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	X509_get_pubkey
	str	r0, [fp, #-276]
	b	.L214
.L213:
	ldr	r3, [fp, #-252]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L214
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #28]
	mov	r0, r3
	bl	X509_get_pubkey
	str	r0, [fp, #-276]
.L214:
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r2, [fp, #-268]
	str	r2, [r3, #56]
	mov	r3, #0
	str	r3, [fp, #-268]
	b	.L204
.L205:
	ldr	r3, [fp, #-252]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L215
	mov	r3, #47
	str	r3, [fp, #-292]
	ldr	r3, .L234+52
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #235
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L215:
	ldr	r3, [fp, #-252]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L204
	mov	r3, #47
	str	r3, [fp, #-292]
	ldr	r3, .L234+52
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #235
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L204:
	ldr	r3, [fp, #-252]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L216
	mov	r3, #40
	str	r3, [fp, #-292]
	ldr	r3, .L234+56
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #235
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L216:
	ldr	r3, [fp, #-276]
	cmp	r3, #0
	beq	.L217
	ldr	r3, [fp, #-296]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-296]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-296]
	add	r3, r3, #2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-280]
	sub	r3, r3, #2
	str	r3, [fp, #-280]
	ldr	r0, [fp, #-276]
	bl	EVP_PKEY_size
	str	r0, [fp, #-288]
	ldr	r3, [fp, #-308]
	ldr	r2, [fp, #-280]
	cmp	r2, r3
	beq	.L218
	mov	r3, #50
	str	r3, [fp, #-292]
	ldr	r3, .L234+60
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #264
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L218:
	ldr	r2, [fp, #-280]
	ldr	r3, [fp, #-288]
	cmp	r2, r3
	ble	.L219
	mov	r3, #50
	str	r3, [fp, #-292]
	ldr	r3, .L234+60
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #264
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L219:
	ldr	r3, [fp, #-280]
	cmp	r3, #0
	bgt	.L220
	mov	r3, #50
	str	r3, [fp, #-292]
	ldr	r3, .L234+60
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #264
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L220:
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	cmp	r3, #6
	bne	.L221
	mov	r3, #0
	str	r3, [fp, #-288]
	sub	r3, fp, #88
	str	r3, [fp, #-300]
	mov	r3, #2
	str	r3, [fp, #-264]
	b	.L222
.L225:
	ldr	r3, [fp, #-264]
	cmp	r3, #2
	bne	.L223
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #216]
	str	r3, [fp, #-260]
	b	.L224
.L223:
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #220]
	str	r3, [fp, #-260]
.L224:
	sub	r3, fp, #240
	ldr	r1, [fp, #-260]
	mov	r0, r3
	bl	EVP_DigestInit
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #84]
	add	r1, r3, #128
	sub	r3, fp, #240
	mov	r2, #32
	mov	r0, r3
	bl	EVP_DigestUpdate
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #84]
	add	r1, r3, #96
	sub	r3, fp, #240
	mov	r2, #32
	mov	r0, r3
	bl	EVP_DigestUpdate
	ldr	r2, [fp, #-284]
	sub	r3, fp, #240
	ldr	r1, [fp, #-256]
	mov	r0, r3
	bl	EVP_DigestUpdate
	sub	r2, fp, #308
	sub	r3, fp, #240
	ldr	r1, [fp, #-300]
	mov	r0, r3
	bl	EVP_DigestFinal
	ldr	r3, [fp, #-308]
	mov	r2, r3
	ldr	r3, [fp, #-300]
	add	r3, r3, r2
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-308]
	ldr	r2, [fp, #-288]
	add	r3, r2, r3
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-264]
	sub	r3, r3, #1
	str	r3, [fp, #-264]
.L222:
	ldr	r3, [fp, #-264]
	cmp	r3, #0
	bgt	.L225
	ldr	r0, [fp, #-288]
	ldr	r3, [fp, #-280]
	ldr	r2, [fp, #-276]
	ldr	r2, [r2, #12]
	sub	r1, fp, #88
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-296]
	mov	r2, r0
	mov	r0, #114
	bl	RSA_verify
	mov	r3, r0
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-308]
	cmp	r3, #0
	bge	.L226
	mov	r3, #51
	str	r3, [fp, #-292]
	ldr	r3, .L234+64
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #118
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L226:
	ldr	r3, [fp, #-308]
	cmp	r3, #0
	bne	.L227
	mov	r3, #51
	str	r3, [fp, #-292]
	ldr	r3, .L234+68
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #123
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L221:
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	cmp	r3, #116
	bne	.L228
	bl	EVP_dss1
	str	r0, [fp, #-248]
	sub	r3, fp, #240
	ldr	r1, [fp, #-248]
	mov	r0, r3
	bl	EVP_DigestInit
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #84]
	add	r1, r3, #128
	sub	r3, fp, #240
	mov	r2, #32
	mov	r0, r3
	bl	EVP_DigestUpdate
	ldr	r3, [fp, #-312]
	ldr	r3, [r3, #84]
	add	r1, r3, #96
	sub	r3, fp, #240
	mov	r2, #32
	mov	r0, r3
	bl	EVP_DigestUpdate
	ldr	r2, [fp, #-284]
	sub	r3, fp, #240
	ldr	r1, [fp, #-256]
	mov	r0, r3
	bl	EVP_DigestUpdate
	ldr	r2, [fp, #-280]
	sub	r0, fp, #240
	ldr	r3, [fp, #-276]
	ldr	r1, [fp, #-296]
	bl	EVP_VerifyFinal
	str	r0, [fp, #-244]
	ldr	r3, [fp, #-244]
	cmp	r3, #0
	bne	.L227
	mov	r3, #51
	str	r3, [fp, #-292]
	ldr	r3, .L234+72
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #123
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L228:
	ldr	r3, .L234+76
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #157
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L217:
	ldr	r3, [fp, #-252]
	and	r3, r3, #256
	cmp	r3, #0
	bne	.L229
	ldr	r3, .L234+80
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #157
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L196
.L229:
	ldr	r3, [fp, #-280]
	cmp	r3, #0
	beq	.L227
	mov	r3, #50
	str	r3, [fp, #-292]
	ldr	r3, .L234+84
	str	r3, [sp]
	ldr	r3, .L234+12
	mov	r2, #153
	mov	r1, #141
	mov	r0, #20
	bl	ERR_put_error
	b	.L198
.L227:
	ldr	r0, [fp, #-276]
	bl	EVP_PKEY_free
	mov	r3, #1
	b	.L232
.L198:
	ldr	r2, [fp, #-292]
	mov	r1, #2
	ldr	r0, [fp, #-312]
	bl	ssl3_send_alert
.L196:
	ldr	r0, [fp, #-276]
	bl	EVP_PKEY_free
	ldr	r3, [fp, #-272]
	cmp	r3, #0
	beq	.L230
	ldr	r0, [fp, #-272]
	bl	RSA_free
.L230:
	ldr	r3, [fp, #-268]
	cmp	r3, #0
	beq	.L231
	ldr	r0, [fp, #-268]
	bl	DH_free
.L231:
	mvn	r3, #0
.L232:
	ldr	r2, .L234
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L233
	bl	__stack_chk_fail
.L233:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L235:
	.align	2
.L234:
	.word	.LC3
	.word	4417
	.word	905
	.word	.LC0
	.word	913
	.word	918
	.word	933
	.word	959
	.word	967
	.word	982
	.word	987
	.word	997
	.word	1002
	.word	1027
	.word	1034
	.word	1053
	.word	1080
	.word	1087
	.word	1105
	.word	1112
	.word	1121
	.word	1127
	.size	ssl3_get_key_exchange, .-ssl3_get_key_exchange
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_get_certificate_request, %function
ssl3_get_certificate_request:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-72]
	ldr	r3, .L264
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-40]
	sub	r3, fp, #68
	str	r3, [sp, #4]
	mov	r3, #102400
	str	r3, [sp]
	mvn	r3, #0
	ldr	r2, .L264+4
	ldr	r1, .L264+8
	ldr	r0, [fp, #-72]
	bl	ssl3_get_message
	mov	r3, r0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L237
	ldr	r3, [fp, #-32]
	b	.L260
.L237:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	mov	r2, #0
	str	r2, [r3, #856]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #836]
	cmp	r3, #14
	bne	.L239
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	mov	r2, #1
	str	r2, [r3, #852]
	mov	r3, #1
	b	.L260
.L239:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #836]
	cmp	r3, #13
	beq	.L240
	mov	r2, #10
	mov	r1, #2
	ldr	r0, [fp, #-72]
	bl	ssl3_send_alert
	ldr	r3, .L264+12
	str	r3, [sp]
	ldr	r3, .L264+16
	ldr	r2, .L264+20
	mov	r1, #135
	mov	r0, #20
	bl	ERR_put_error
	b	.L241
.L240:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	cmp	r3, #768
	ble	.L242
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L242
	mov	r2, #10
	mov	r1, #2
	ldr	r0, [fp, #-72]
	bl	ssl3_send_alert
	ldr	r3, .L264+24
	str	r3, [sp]
	ldr	r3, .L264+16
	mov	r2, #232
	mov	r1, #135
	mov	r0, #20
	bl	ERR_put_error
	b	.L241
.L242:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-24]
	ldr	r0, .L264+28
	bl	sk_new
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L243
	ldr	r3, .L264+32
	str	r3, [sp]
	ldr	r3, .L264+16
	mov	r2, #33
	mov	r1, #135
	mov	r0, #20
	bl	ERR_put_error
	b	.L241
.L243:
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #7
	bls	.L244
	mov	r3, #7
	str	r3, [fp, #-52]
.L244:
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L245
.L246:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldr	r2, [fp, #-72]
	ldr	r2, [r2, #84]
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	add	r3, r3, #864
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L245:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bcc	.L246
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-44]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-44]
	add	r3, r3, #2
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #3
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	beq	.L247
	mov	r2, #50
	mov	r1, #2
	ldr	r0, [fp, #-72]
	bl	ssl3_send_alert
	ldr	r3, .L264+36
	str	r3, [sp]
	ldr	r3, .L264+16
	mov	r2, #159
	mov	r1, #135
	mov	r0, #20
	bl	ERR_put_error
	b	.L241
.L247:
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L248
.L256:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-44]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-44]
	add	r3, r3, #2
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	add	r3, r3, #2
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcs	.L249
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #232]
	and	r3, r3, #536870912
	cmp	r3, #0
	bne	.L262
	mov	r2, #50
	mov	r1, #2
	ldr	r0, [fp, #-72]
	bl	ssl3_send_alert
	ldr	r3, .L264+40
	str	r3, [sp]
	ldr	r3, .L264+16
	mov	r2, #132
	mov	r1, #135
	mov	r0, #20
	bl	ERR_put_error
	b	.L241
.L249:
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-28]
	sub	r3, fp, #64
	mov	r1, r3
	mov	r0, #0
	bl	d2i_X509_NAME
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L252
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #232]
	and	r3, r3, #536870912
	cmp	r3, #0
	bne	.L263
	mov	r2, #50
	mov	r1, #2
	ldr	r0, [fp, #-72]
	bl	ssl3_send_alert
	ldr	r3, .L264+44
	str	r3, [sp]
	ldr	r3, .L264+16
	mov	r2, #13
	mov	r1, #135
	mov	r0, #20
	bl	ERR_put_error
	b	.L241
.L252:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-64]
	cmp	r2, r3
	beq	.L254
	mov	r2, #50
	mov	r1, #2
	ldr	r0, [fp, #-72]
	bl	ssl3_send_alert
	ldr	r3, .L264+48
	str	r3, [sp]
	ldr	r3, .L264+16
	mov	r2, #131
	mov	r1, #135
	mov	r0, #20
	bl	ERR_put_error
	b	.L241
.L254:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-40]
	bl	sk_push
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L255
	ldr	r3, .L264+52
	str	r3, [sp]
	ldr	r3, .L264+16
	mov	r2, #33
	mov	r1, #135
	mov	r0, #20
	bl	ERR_put_error
	b	.L241
.L255:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	add	r3, r3, #2
	str	r3, [fp, #-56]
.L248:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L256
	b	.L257
.L262:
	nop
	b	.L251
.L263:
	nop
.L251:
	bl	ERR_clear_error
.L257:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	mov	r2, #1
	str	r2, [r3, #856]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	ldr	r2, [fp, #-52]
	str	r2, [r3, #860]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #872]
	cmp	r3, #0
	beq	.L258
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #872]
	ldr	r1, .L264+56
	mov	r0, r3
	bl	sk_pop_free
.L258:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #84]
	ldr	r2, [fp, #-40]
	str	r2, [r3, #872]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #1
	str	r3, [fp, #-60]
.L241:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L259
	ldr	r1, .L264+56
	ldr	r0, [fp, #-40]
	bl	sk_pop_free
.L259:
	ldr	r3, [fp, #-60]
.L260:
	ldr	r2, .L264
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L261
	bl	__stack_chk_fail
.L261:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L265:
	.align	2
.L264:
	.word	.LC4
	.word	4433
	.word	4432
	.word	1181
	.word	.LC0
	.word	262
	.word	1192
	.word	ca_dn_cmp
	.word	1201
	.word	1227
	.word	1239
	.word	1253
	.word	1261
	.word	1266
	.word	X509_NAME_free
	.size	ssl3_get_certificate_request, .-ssl3_get_certificate_request
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ca_dn_cmp, %function
ca_dn_cmp:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	X509_NAME_cmp
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ca_dn_cmp, .-ca_dn_cmp
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_get_server_done, %function
ssl3_get_server_done:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	ldr	r3, .L274
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-16]
	sub	r3, fp, #20
	str	r3, [sp, #4]
	mov	r3, #30
	str	r3, [sp]
	mov	r3, #14
	ldr	r2, .L274+4
	ldr	r1, .L274+8
	ldr	r0, [fp, #-24]
	bl	ssl3_get_message
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L269
	ldr	r3, [fp, #-12]
	b	.L272
.L269:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	ble	.L271
	mov	r2, #50
	mov	r1, #2
	ldr	r0, [fp, #-24]
	bl	ssl3_send_alert
	ldr	r3, .L274+12
	str	r3, [sp]
	ldr	r3, .L274+16
	mov	r2, #159
	mov	r1, #145
	mov	r0, #20
	bl	ERR_put_error
.L271:
	mov	r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
.L272:
	ldr	r2, .L274
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L273
	bl	__stack_chk_fail
.L273:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L275:
	.align	2
.L274:
	.word	.LC5
	.word	4449
	.word	4448
	.word	1316
	.word	.LC0
	.size	ssl3_get_server_done, .-ssl3_get_server_done
	.section	.rodata
	.align	2
.LC6:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_send_client_key_exchange, %function
ssl3_send_client_key_exchange:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #128
	str	r0, [fp, #-128]
	ldr	r3, .L303
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #52]
	cmp	r3, #4480
	bne	.L277
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	add	r3, r3, #4
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L278
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #52]
	cmp	r3, #0
	beq	.L279
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #52]
	str	r3, [fp, #-112]
	b	.L280
.L279:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	X509_get_pubkey
	str	r0, [fp, #-108]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bne	.L281
	ldr	r3, .L303+4
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #157
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L281:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	cmp	r3, #6
	beq	.L283
	ldr	r3, .L303+4
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #157
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L283:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L284
	ldr	r3, .L303+4
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #157
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L284:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-112]
	ldr	r0, [fp, #-108]
	bl	EVP_PKEY_free
.L280:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #244]
	asr	r3, r3, #8
	and	r3, r3, #255
	strb	r3, [fp, #-64]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #244]
	and	r3, r3, #255
	strb	r3, [fp, #-63]
	sub	r3, fp, #64
	add	r3, r3, #2
	mov	r1, #46
	mov	r0, r3
	bl	RAND_bytes
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	ble	.L302
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #176]
	mov	r2, #48
	str	r2, [r3, #16]
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	cmp	r3, #768
	ble	.L286
	ldr	r3, [fp, #-120]
	add	r3, r3, #2
	str	r3, [fp, #-120]
.L286:
	sub	r1, fp, #64
	mov	r3, #1
	str	r3, [sp]
	ldr	r3, [fp, #-112]
	ldr	r2, [fp, #-120]
	mov	r0, #48
	bl	RSA_public_encrypt
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #232]
	and	r3, r3, #134217728
	cmp	r3, #0
	beq	.L287
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	add	r2, r2, #1
	and	r2, r2, #255
	strb	r2, [r3]
.L287:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #232]
	and	r3, r3, #268435456
	cmp	r3, #0
	beq	.L288
	mov	r3, #112
	strb	r3, [fp, #-64]
.L288:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bgt	.L289
	ldr	r3, .L303+12
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #119
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L289:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	cmp	r3, #768
	ble	.L290
	ldr	r3, [fp, #-116]
	asr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, [fp, #-76]
	strb	r2, [r3]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	ldr	r2, [fp, #-116]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-76]
	add	r3, r3, #2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-116]
	add	r3, r3, #2
	str	r3, [fp, #-116]
.L290:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #84]
	ldr	r5, [r3, #12]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #176]
	add	r1, r3, #20
	ldr	r3, [fp, #-128]
	ldr	r4, [r3, #176]
	sub	r2, fp, #64
	mov	r3, #48
	ldr	r0, [fp, #-128]
	blx	r5
	mov	r3, r0
	str	r3, [r4, #16]
	sub	r3, fp, #64
	mov	r2, #48
	mov	r1, #0
	mov	r0, r3
	bl	memset
	b	.L291
.L278:
	ldr	r3, [fp, #-100]
	and	r3, r3, #22
	cmp	r3, #0
	beq	.L292
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #56]
	cmp	r3, #0
	beq	.L293
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #56]
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-96]
	ldr	r1, .L303+16
	ldr	r0, .L303+20
	bl	ASN1_dup
	str	r0, [fp, #-92]
	ldr	r3, [fp, #-92]
	cmp	r3, #0
	bne	.L295
	b	.L301
.L293:
	mov	r2, #40
	mov	r1, #2
	ldr	r0, [fp, #-128]
	bl	ssl3_send_alert
	ldr	r3, .L303+24
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #238
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L301:
	ldr	r3, .L303+28
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #5
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L295:
	ldr	r0, [fp, #-92]
	bl	DH_generate_key
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bne	.L296
	ldr	r3, .L303+32
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #5
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L296:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-92]
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	DH_compute_key
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bgt	.L297
	ldr	r3, .L303+36
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #5
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L297:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #84]
	ldr	r5, [r3, #12]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #176]
	add	r1, r3, #20
	ldr	r3, [fp, #-128]
	ldr	r4, [r3, #176]
	ldr	r3, [fp, #-116]
	ldr	r2, [fp, #-120]
	ldr	r0, [fp, #-128]
	blx	r5
	mov	r3, r0
	str	r3, [r4, #16]
	ldr	r3, [fp, #-116]
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-120]
	bl	memset
	ldr	r3, [fp, #-92]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	BN_num_bits
	str	r0, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #7
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	asr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, [fp, #-120]
	strb	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-116]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-92]
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-120]
	mov	r0, r3
	bl	BN_bn2bin
	ldr	r3, [fp, #-116]
	add	r3, r3, #2
	str	r3, [fp, #-116]
	ldr	r0, [fp, #-92]
	bl	DH_free
	b	.L291
.L292:
	mov	r2, #40
	mov	r1, #2
	ldr	r0, [fp, #-128]
	bl	ssl3_send_alert
	ldr	r3, .L303+40
	str	r3, [sp]
	ldr	r3, .L303+8
	mov	r2, #157
	mov	r1, #152
	mov	r0, #20
	bl	ERR_put_error
	b	.L282
.L291:
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-72]
	mov	r2, #16
	strb	r2, [r3]
	ldr	r3, [fp, #-116]
	asr	r3, r3, #16
	and	r2, r3, #255
	ldr	r3, [fp, #-104]
	strb	r2, [r3]
	ldr	r3, [fp, #-116]
	asr	r2, r3, #8
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #2
	ldr	r2, [fp, #-116]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #3
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-128]
	ldr	r2, .L303+44
	str	r2, [r3, #52]
	ldr	r3, [fp, #-116]
	add	r2, r3, #4
	ldr	r3, [fp, #-128]
	str	r2, [r3, #64]
	ldr	r3, [fp, #-128]
	mov	r2, #0
	str	r2, [r3, #68]
.L277:
	mov	r1, #22
	ldr	r0, [fp, #-128]
	bl	ssl3_do_write
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	b	.L299
.L302:
	nop
.L282:
	mvn	r3, #0
.L299:
	ldr	r2, .L303
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L300
	bl	__stack_chk_fail
.L300:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L304:
	.align	2
.L303:
	.word	.LC6
	.word	1354
	.word	.LC0
	.word	1380
	.word	d2i_DHparams
	.word	i2d_DHparams
	.word	1410
	.word	1417
	.word	1422
	.word	1433
	.word	1458
	.word	4481
	.size	ssl3_send_client_key_exchange, .-ssl3_send_client_key_exchange
	.section	.rodata
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_send_client_verify, %function
ssl3_send_client_verify:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #96
	str	r0, [fp, #-88]
	ldr	r3, .L316
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #52]
	ldr	r2, .L316+4
	cmp	r3, r2
	bne	.L306
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #136]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-88]
	ldr	r2, [r2, #84]
	add	r1, r2, #420
	sub	r2, fp, #44
	add	r2, r2, #16
	ldr	r0, [fp, #-88]
	blx	r3
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	cmp	r3, #6
	bne	.L307
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-88]
	ldr	r2, [r2, #84]
	add	r1, r2, #268
	sub	r2, fp, #44
	ldr	r0, [fp, #-88]
	blx	r3
	ldr	r3, [fp, #-68]
	add	r2, r3, #2
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #12]
	sub	r1, fp, #44
	str	r3, [sp, #4]
	sub	r3, fp, #84
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #36
	mov	r0, #114
	bl	RSA_sign
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bgt	.L308
	ldr	r3, .L316+8
	str	r3, [sp]
	ldr	r3, .L316+12
	mov	r2, #4
	mov	r1, #153
	mov	r0, #20
	bl	ERR_put_error
	b	.L309
.L308:
	ldr	r3, [fp, #-84]
	lsr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, [fp, #-68]
	strb	r2, [r3]
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #2
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-84]
	add	r3, r3, #2
	str	r3, [fp, #-76]
	b	.L310
.L307:
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	cmp	r3, #116
	bne	.L311
	ldr	r3, [fp, #-64]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-68]
	add	ip, r3, #2
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #12]
	sub	r2, fp, #44
	add	r1, r2, #16
	str	r3, [sp, #4]
	sub	r3, fp, #80
	str	r3, [sp]
	mov	r3, ip
	mov	r2, #20
	bl	DSA_sign
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L312
	ldr	r3, .L316+16
	str	r3, [sp]
	ldr	r3, .L316+12
	mov	r2, #10
	mov	r1, #153
	mov	r0, #20
	bl	ERR_put_error
	b	.L309
.L312:
	ldr	r3, [fp, #-80]
	asr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, [fp, #-68]
	strb	r2, [r3]
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #2
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-80]
	add	r3, r3, #2
	str	r3, [fp, #-76]
	b	.L310
.L311:
	ldr	r3, .L316+20
	str	r3, [sp]
	ldr	r3, .L316+12
	mov	r2, #157
	mov	r1, #153
	mov	r0, #20
	bl	ERR_put_error
	b	.L309
.L310:
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-52]
	mov	r2, #15
	strb	r2, [r3]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r2, r3, #255
	ldr	r3, [fp, #-72]
	strb	r2, [r3]
	ldr	r3, [fp, #-76]
	lsr	r2, r3, #8
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #2
	ldr	r2, [fp, #-76]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	add	r2, r3, #4
	ldr	r3, [fp, #-88]
	str	r2, [r3, #64]
	ldr	r3, [fp, #-88]
	mov	r2, #0
	str	r2, [r3, #68]
.L306:
	mov	r1, #22
	ldr	r0, [fp, #-88]
	bl	ssl3_do_write
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	b	.L314
.L309:
	mvn	r3, #0
.L314:
	ldr	r2, .L316
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L315
	bl	__stack_chk_fail
.L315:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L317:
	.align	2
.L316:
	.word	.LC7
	.word	4496
	.word	1508
	.word	.LC0
	.word	1524
	.word	1533
	.size	ssl3_send_client_verify, .-ssl3_send_client_verify
	.section	.rodata
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_send_client_certificate, %function
ssl3_send_client_certificate:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	ldr	r3, .L345
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #52]
	ldr	r2, .L345+4
	cmp	r3, r2
	bne	.L319
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #136]
	cmp	r3, #0
	bne	.L320
	ldr	r3, [fp, #-48]
	ldr	r2, .L345+8
	str	r2, [r3, #52]
	b	.L319
.L320:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #136]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L321
	ldr	r3, [fp, #-48]
	ldr	r2, .L345+8
	str	r2, [r3, #52]
	b	.L319
.L321:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #136]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L322
	ldr	r3, [fp, #-48]
	ldr	r2, .L345+8
	str	r2, [r3, #52]
	b	.L319
.L322:
	ldr	r3, [fp, #-48]
	ldr	r2, .L345+12
	str	r2, [r3, #52]
.L319:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #52]
	ldr	r2, .L345+8
	cmp	r3, r2
	bne	.L323
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #192]
	cmp	r3, #0
	beq	.L324
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #204]
	ldr	r3, [r3, #192]
	sub	r2, fp, #36
	sub	r1, fp, #40
	ldr	r0, [fp, #-48]
	blx	r3
	str	r0, [fp, #-32]
.L324:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bge	.L325
	ldr	r3, [fp, #-48]
	mov	r2, #4
	str	r2, [r3, #24]
	mvn	r3, #0
	b	.L340
.L325:
	ldr	r3, [fp, #-48]
	mov	r2, #1
	str	r2, [r3, #24]
	ldr	r3, [fp, #-32]
	cmp	r3, #1
	bne	.L342
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L343
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L344
	ldr	r3, [fp, #-48]
	ldr	r2, .L345+8
	str	r2, [r3, #52]
	ldr	r3, [fp, #-40]
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	SSL_use_certificate
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L330
	ldr	r3, [fp, #-36]
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	SSL_use_PrivateKey
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L331
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L331
.L330:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L331
.L327:
.L342:
	nop
	b	.L332
.L343:
	nop
	b	.L332
.L344:
	nop
.L332:
	ldr	r3, [fp, #-32]
	cmp	r3, #1
	bne	.L331
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, .L345+16
	str	r3, [sp]
	ldr	r3, .L345+20
	mov	r2, #106
	mov	r1, #151
	mov	r0, #20
	bl	ERR_put_error
.L331:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L333
	ldr	r3, [fp, #-40]
	mov	r0, r3
	bl	X509_free
.L333:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L334
	ldr	r3, [fp, #-36]
	mov	r0, r3
	bl	EVP_PKEY_free
.L334:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L335
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	cmp	r3, #768
	bne	.L336
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #84]
	mov	r2, #0
	str	r2, [r3, #856]
	mov	r2, #41
	mov	r1, #1
	ldr	r0, [fp, #-48]
	bl	ssl3_send_alert
	mov	r3, #1
	b	.L340
.L336:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #84]
	mov	r2, #2
	str	r2, [r3, #856]
.L335:
	ldr	r3, [fp, #-48]
	ldr	r2, .L345+12
	str	r2, [r3, #52]
.L323:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #52]
	ldr	r2, .L345+12
	cmp	r3, r2
	bne	.L337
	ldr	r3, [fp, #-48]
	ldr	r2, .L345+24
	str	r2, [r3, #52]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #856]
	cmp	r3, #2
	bne	.L338
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L339
.L338:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #136]
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
.L339:
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	ssl3_output_cert_chain
	str	r0, [fp, #-16]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-48]
	str	r2, [r3, #64]
	ldr	r3, [fp, #-48]
	mov	r2, #0
	str	r2, [r3, #68]
.L337:
	mov	r1, #22
	ldr	r0, [fp, #-48]
	bl	ssl3_do_write
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
.L340:
	ldr	r2, .L345
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L341
	bl	__stack_chk_fail
.L341:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L346:
	.align	2
.L345:
	.word	.LC8
	.word	4464
	.word	4465
	.word	4466
	.word	1589
	.word	.LC0
	.word	4467
	.size	ssl3_send_client_certificate, .-ssl3_send_client_certificate
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ssl3_check_cert_and_algorithm, %function
ssl3_check_cert_and_algorithm:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L348
	ldr	r3, .L379
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #157
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L349
.L348:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	and	r3, r3, #768
	cmp	r3, #0
	beq	.L350
	mov	r3, #1
	b	.L351
.L350:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #52]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #176]
	ldr	r3, [r3, #144]
	ldr	r3, [r3, #56]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	X509_get_pubkey
	str	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	X509_certificate_type
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-40]
	bl	EVP_PKEY_free
	ldr	r3, [fp, #-32]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L372
	ldr	r3, [fp, #-16]
	and	r3, r3, #17
	cmp	r3, #17
	beq	.L373
	ldr	r3, .L379+8
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #170
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L372:
	nop
	b	.L352
.L373:
	nop
.L352:
	ldr	r3, [fp, #-32]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L355
	ldr	r3, [fp, #-16]
	and	r3, r3, #18
	cmp	r3, #18
	beq	.L355
	ldr	r3, .L379+12
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #165
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L355:
	ldr	r3, [fp, #-32]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L356
	ldr	r3, [fp, #-16]
	and	r3, r3, #33
	cmp	r3, #33
	beq	.L356
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L356
	ldr	r3, .L379+16
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #169
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L356:
	ldr	r3, [fp, #-32]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L374
	ldr	r3, [fp, #-16]
	and	r3, r3, #68
	cmp	r3, #68
	beq	.L375
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L376
	ldr	r3, .L379+20
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #163
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L374:
	nop
	b	.L357
.L375:
	nop
	b	.L357
.L376:
	nop
.L357:
	ldr	r3, [fp, #-32]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L377
	ldr	r3, [fp, #-16]
	and	r3, r3, #260
	cmp	r3, #260
	beq	.L378
	ldr	r3, .L379+24
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #164
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L377:
	nop
	b	.L360
.L378:
	nop
.L360:
	ldr	r3, [fp, #-32]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L362
	ldr	r3, [fp, #-16]
	and	r3, r3, #516
	cmp	r3, #516
	beq	.L362
	ldr	r3, .L379+28
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #162
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L362:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #16]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L363
	ldr	r3, [fp, #-16]
	and	r3, r3, #4096
	cmp	r3, #0
	bne	.L363
	ldr	r3, [fp, #-32]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L364
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L365
	ldr	r3, .L379+32
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #167
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L365:
	ldr	r0, [fp, #-28]
	bl	RSA_size
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #16]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L366
	mov	r3, #512
	str	r3, [fp, #-48]
	b	.L367
.L366:
	mov	r3, #1024
	str	r3, [fp, #-48]
.L367:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	ble	.L363
	ldr	r3, .L379+32
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #167
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L364:
	ldr	r3, [fp, #-32]
	and	r3, r3, #22
	cmp	r3, #0
	beq	.L368
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L369
	ldr	r3, .L379+36
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #166
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L369:
	ldr	r0, [fp, #-24]
	bl	DH_size
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #840]
	ldr	r3, [r3, #16]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L370
	mov	r3, #512
	str	r3, [fp, #-44]
	b	.L371
.L370:
	mov	r3, #1024
	str	r3, [fp, #-44]
.L371:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	ble	.L363
	ldr	r3, .L379+36
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #166
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L368:
	ldr	r3, .L379+40
	str	r3, [sp]
	ldr	r3, .L379+4
	mov	r2, #250
	mov	r1, #130
	mov	r0, #20
	bl	ERR_put_error
	b	.L354
.L363:
	mov	r3, #1
	b	.L351
.L354:
	mov	r2, #40
	mov	r1, #2
	ldr	r0, [fp, #-56]
	bl	ssl3_send_alert
.L349:
	mov	r3, #0
.L351:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L380:
	.align	2
.L379:
	.word	1643
	.word	.LC0
	.word	1671
	.word	1677
	.word	1685
	.word	1693
	.word	1698
	.word	1704
	.word	1718
	.word	1730
	.word	1737
	.size	ssl3_check_cert_and_algorithm, .-ssl3_check_cert_and_algorithm
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
