	.file	"extr_if_cx.c_cx_ioctl.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"async"
.LC1:
	.string	"fr"
.LC2:
	.string	"cisco"
.LC3:
	.string	"ppp"
.LC4:
	.string	"ioctl: getregistered\n"
.LC5:
	.string	"ioctl: getport\n"
.LC6:
	.string	"ioctl: setproto\n"
.LC7:
	.string	"ioctl: getproto\n"
.LC8:
	.string	"ioctl: getkeepalive\n"
.LC9:
	.string	"ioctl: setkeepalive\n"
.LC10:
	.string	"ioctl: getmode\n"
.LC11:
	.string	"ioctl: setmode\n"
.LC12:
	.string	"ioctl: getestat\n"
.LC13:
	.string	"ioctl: clrstat\n"
.LC14:
	.string	"ioctl: getbaud\n"
.LC15:
	.string	"ioctl: setbaud\n"
.LC16:
	.string	"ioctl: getloop\n"
.LC17:
	.string	"ioctl: setloop\n"
.LC18:
	.string	"ioctl: getdpll\n"
.LC19:
	.string	"ioctl: setdpll\n"
.LC20:
	.string	"ioctl: getnrzi\n"
.LC21:
	.string	"ioctl: setnrzi\n"
.LC22:
	.string	"ioctl: getdebug\n"
.LC23:
	.string	"ioctl: setdebug\n"
.LC24:
	.string	"ioctl: tiocsdtr\n"
.LC25:
	.string	"ioctl: tioccdtr\n"
.LC26:
	.string	"ioctl: tiocmset\n"
.LC27:
	.string	"ioctl: tiocmbis\n"
.LC28:
	.string	"ioctl: tiocmbic\n"
.LC29:
	.string	"ioctl: tiocmget\n"
	.text
	.p2align 4
	.type	cx_ioctl, @function
cx_ioctl:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	mov	rbp, rdx
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	sub	rsp, 40
	.cfi_def_cfa_offset 96
	mov	r13, QWORD PTR [rdi]
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 24[rsp], rax
	xor	eax, eax
	mov	rax, QWORD PTR 40[r13]
	mov	r14, QWORD PTR 48[r13]
	mov	r12, QWORD PTR [rax]
	lea	eax, -134[rsi]
	cmp	eax, 20
	ja	.L2
	lea	rdx, .L4[rip]
	mov	r15, r8
	movsx	rax, DWORD PTR [rdx+rax*4]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L4:
	.long	.L24-.L4
	.long	.L23-.L4
	.long	.L22-.L4
	.long	.L21-.L4
	.long	.L20-.L4
	.long	.L19-.L4
	.long	.L18-.L4
	.long	.L17-.L4
	.long	.L16-.L4
	.long	.L15-.L4
	.long	.L14-.L4
	.long	.L13-.L4
	.long	.L12-.L4
	.long	.L11-.L4
	.long	.L10-.L4
	.long	.L9-.L4
	.long	.L8-.L4
	.long	.L7-.L4
	.long	.L6-.L4
	.long	.L5-.L4
	.long	.L3-.L4
	.text
.L2:
	lea	eax, -128[rsi]
	cmp	eax, 5
	ja	.L64
	lea	rdx, .L66[rip]
	movsx	rax, DWORD PTR [rdx+rax*4]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L66:
	.long	.L71-.L66
	.long	.L70-.L66
	.long	.L69-.L66
	.long	.L68-.L66
	.long	.L67-.L66
	.long	.L65-.L66
	.text
.L67:
	mov	rdi, r13
	lea	rsi, .LC28[rip]
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR 0[rbp]
	test	DWORD PTR TIOCM_DTR[rip], eax
	jne	.L112
.L74:
	test	DWORD PTR TIOCM_RTS[rip], eax
	jne	.L113
	.p2align 4,,10
	.p2align 3
.L75:
	mov	rdi, r12
	xor	r15d, r15d
	call	CX_UNLOCK@PLT
	mov	edi, r13d
	call	splx@PLT
.L1:
	mov	rax, QWORD PTR 24[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L114
	add	rsp, 40
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	mov	eax, r15d
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
.L68:
	.cfi_restore_state
	mov	rdi, r13
	lea	rsi, .LC27[rip]
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR 0[rbp]
	test	DWORD PTR TIOCM_DTR[rip], eax
	jne	.L115
.L72:
	test	DWORD PTR TIOCM_RTS[rip], eax
	je	.L75
	mov	esi, 1
	mov	rdi, r14
	call	cx_set_rts@PLT
	jmp	.L75
.L69:
	lea	rsi, .LC29[rip]
	mov	rdi, r13
	xor	r15d, r15d
	call	CX_DEBUG2@PLT
	mov	rdi, r13
	call	cx_modem_status@PLT
	mov	DWORD PTR 0[rbp], eax
	jmp	.L1
.L71:
	lea	rsi, .LC24[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	ebp, eax
	call	CX_LOCK@PLT
	mov	esi, 1
.L107:
	mov	rdi, r14
	xor	r15d, r15d
	call	cx_set_dtr@PLT
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, ebp
	call	splx@PLT
	jmp	.L1
.L65:
	lea	rsi, .LC25[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	ebp, eax
	call	CX_LOCK@PLT
	xor	esi, esi
	jmp	.L107
.L70:
	lea	rsi, .LC26[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR 0[rbp]
	xor	esi, esi
	test	DWORD PTR TIOCM_DTR[rip], eax
	setne	sil
	mov	rdi, r14
	call	cx_set_dtr@PLT
	xor	esi, esi
	mov	eax, DWORD PTR 0[rbp]
	test	DWORD PTR TIOCM_RTS[rip], eax
	setne	sil
.L106:
	mov	rdi, r14
	call	cx_set_rts@PLT
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L10:
	mov	rdi, r13
	lea	rsi, .LC10[rip]
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR SERIAL_HDLC[rip]
	mov	ebx, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], ebx
	jne	.L110
	mov	eax, DWORD PTR SERIAL_ASYNC[rip]
	.p2align 4,,10
	.p2align 3
.L110:
	mov	DWORD PTR 0[rbp], eax
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L11:
	lea	rsi, .LC20[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	rdi, r14
	call	cx_get_nrzi@PLT
	mov	DWORD PTR 0[rbp], eax
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L12:
	lea	rsi, .LC5[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	rdi, r14
	call	cx_get_port@PLT
	mov	rdi, r12
	mov	DWORD PTR 0[rbp], eax
	call	CX_UNLOCK@PLT
	mov	edi, r13d
	call	splx@PLT
	mov	eax, DWORD PTR 0[rbp]
	sar	eax, 31
	and	eax, DWORD PTR EINVAL[rip]
	mov	r15d, eax
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L14:
	lea	rsi, .LC4[rip]
	mov	rdi, r13
	mov	r12, rsp
	call	CX_DEBUG2@PLT
	mov	esi, 16
	mov	rdi, r12
	call	bzero@PLT
	mov	eax, DWORD PTR NCHAN[rip]
	imul	eax, DWORD PTR NCX[rip]
	test	eax, eax
	jle	.L29
	lea	esi, -1[rax]
	mov	rdi, QWORD PTR channel[rip]
	xor	eax, eax
	mov	r8d, 1
	jmp	.L28
	.p2align 4,,10
	.p2align 3
.L77:
	mov	rax, rdx
.L28:
	mov	ecx, DWORD PTR [rdi+rax*4]
	test	ecx, ecx
	je	.L27
	mov	edx, eax
	mov	ecx, eax
	mov	ebx, r8d
	sar	edx, 3
	and	ecx, 7
	movsx	rdx, edx
	sal	ebx, cl
	or	BYTE PTR [rsp+rdx], bl
.L27:
	lea	rdx, 1[rax]
	cmp	rsi, rax
	jne	.L77
.L29:
	mov	edx, 16
	mov	rsi, rbp
	mov	rdi, r12
	xor	r15d, r15d
	call	bcopy@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L15:
	mov	rdi, r13
	lea	rsi, .LC12[rip]
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR 44[r14]
	mov	DWORD PTR 32[rbp], eax
	mov	eax, DWORD PTR 40[r14]
	mov	DWORD PTR 28[rbp], eax
	mov	eax, DWORD PTR 36[r14]
	mov	DWORD PTR 24[rbp], eax
	mov	eax, DWORD PTR 32[r14]
	mov	DWORD PTR 20[rbp], eax
	mov	eax, DWORD PTR 28[r14]
	mov	DWORD PTR 16[rbp], eax
	mov	eax, DWORD PTR 24[r14]
	mov	DWORD PTR 12[rbp], eax
	mov	eax, DWORD PTR 20[r14]
	mov	DWORD PTR 8[rbp], eax
	mov	eax, DWORD PTR 16[r14]
	mov	DWORD PTR 4[rbp], eax
	mov	eax, DWORD PTR 12[r14]
	mov	DWORD PTR 0[rbp], eax
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L16:
	lea	rsi, .LC15[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	rsi, QWORD PTR 0[rbp]
	mov	rdi, r14
	call	cx_set_baud@PLT
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, r13d
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L17:
	lea	rsi, .LC23[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	ebx, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	mov	eax, DWORD PTR 0[rbp]
	je	.L105
	mov	edx, 1
	test	eax, eax
	cmove	eax, edx
	mov	rdx, QWORD PTR 8[r13]
	mov	DWORD PTR 4[r14], eax
	mov	edx, DWORD PTR [rdx]
	test	DWORD PTR IFF_DEBUG[rip], edx
	je	.L62
.L105:
	mov	DWORD PTR [r14], eax
.L62:
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, ebx
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L13:
	lea	rsi, .LC7[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r15d, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR M_ASYNC[rip]
	lea	rsi, .LC0[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L30
	mov	rdi, QWORD PTR 8[r13]
	call	IFP2SP@PLT
	lea	rsi, .LC1[rip]
	mov	eax, DWORD PTR [rax]
	test	DWORD PTR PP_FR[rip], eax
	jne	.L30
	mov	rax, QWORD PTR 8[r13]
	lea	rsi, .LC2[rip]
	mov	eax, DWORD PTR [rax]
	test	DWORD PTR PP_CISCO[rip], eax
	lea	rax, .LC3[rip]
	cmove	rsi, rax
.L30:
	mov	rdi, rbp
	call	strcpy@PLT
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, r15d
	xor	r15d, r15d
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L8:
	lea	rsi, .LC8[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	rdi, QWORD PTR 8[r13]
	call	IFP2SP@PLT
	mov	eax, DWORD PTR [rax]
	test	DWORD PTR PP_FR[rip], eax
	jne	.L109
	mov	rax, QWORD PTR 8[r13]
	mov	eax, DWORD PTR [rax]
	and	eax, DWORD PTR PP_CISCO[rip]
	mov	r15d, eax
	jne	.L109
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r14d, eax
	call	CX_LOCK@PLT
	mov	rdi, QWORD PTR 8[r13]
	call	IFP2SP@PLT
	mov	rdi, r12
	mov	eax, DWORD PTR [rax]
	test	DWORD PTR PP_KEEPALIVE[rip], eax
	setne	al
	movzx	eax, al
	mov	DWORD PTR 0[rbp], eax
	call	CX_UNLOCK@PLT
	mov	edi, r14d
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L9:
	lea	rsi, .LC16[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	rdi, r14
	call	cx_get_loop@PLT
	mov	DWORD PTR 0[rbp], eax
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L5:
	lea	rsi, .LC14[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	rdi, r14
	call	cx_get_baud@PLT
	mov	QWORD PTR 0[rbp], rax
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L24:
	lea	rsi, .LC6[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L48
	mov	r8, QWORD PTR 8[r13]
	mov	eax, DWORD PTR 4[r8]
	test	DWORD PTR IFF_DRV_RUNNING[rip], eax
	jne	.L48
	mov	ecx, 6
	lea	rsi, .LC2[rip]
	mov	rdi, rbp
	repz cmpsb
	seta	al
	sbb	al, 0
	movsx	r15d, al
	test	r15d, r15d
	je	.L116
	cmp	BYTE PTR 0[rbp], 102
	jne	.L35
	cmp	BYTE PTR 1[rbp], 114
	jne	.L35
	movzx	eax, BYTE PTR 2[rbp]
	neg	eax
	mov	r15d, eax
	jne	.L35
	mov	eax, DWORD PTR PP_CISCO[rip]
	mov	rdi, r8
	not	eax
	and	DWORD PTR [r8], eax
	call	IFP2SP@PLT
	mov	r8, rax
	mov	eax, DWORD PTR PP_FR[rip]
	or	eax, DWORD PTR PP_KEEPALIVE[rip]
	or	DWORD PTR [r8], eax
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L3:
	lea	rsi, .LC13[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	ebp, eax
	call	CX_LOCK@PLT
	mov	QWORD PTR 12[r14], 0
	mov	rdi, r12
	mov	QWORD PTR 20[r14], 0
	mov	QWORD PTR 28[r14], 0
	mov	QWORD PTR 36[r14], 0
	mov	DWORD PTR 44[r14], 0
	call	CX_UNLOCK@PLT
	mov	edi, ebp
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L18:
	lea	rsi, .LC19[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	esi, DWORD PTR 0[rbp]
	mov	rdi, r14
	call	cx_set_dpll@PLT
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, r13d
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L19:
	lea	rsi, .LC9[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	mov	rdi, QWORD PTR 8[r13]
	call	IFP2SP@PLT
	mov	eax, DWORD PTR [rax]
	test	DWORD PTR PP_FR[rip], eax
	jne	.L109
	mov	rax, QWORD PTR 8[r13]
	mov	eax, DWORD PTR [rax]
	and	eax, DWORD PTR PP_CISCO[rip]
	mov	r15d, eax
	jne	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r14d, eax
	call	CX_LOCK@PLT
	mov	edx, DWORD PTR 0[rbp]
	mov	rdi, QWORD PTR 8[r13]
	test	edx, edx
	je	.L41
	call	IFP2SP@PLT
	mov	edx, DWORD PTR PP_KEEPALIVE[rip]
	or	DWORD PTR [rax], edx
.L42:
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, r14d
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L20:
	lea	rsi, .LC17[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	esi, DWORD PTR 0[rbp]
	mov	rdi, r14
	call	cx_set_loop@PLT
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, r13d
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L22:
	lea	rsi, .LC21[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	esi, DWORD PTR 0[rbp]
	mov	rdi, r14
	call	cx_set_nrzi@PLT
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, r13d
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L23:
	lea	rsi, .LC6[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	esi, DWORD PTR 0[rbp]
	mov	rdi, r14
	call	cx_set_port@PLT
	mov	rdi, r12
	call	CX_UNLOCK@PLT
	mov	edi, r13d
	call	splx@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L6:
	mov	rdi, r13
	lea	rsi, .LC22[rip]
	call	CX_DEBUG2@PLT
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR [r14]
	jmp	.L110
	.p2align 4,,10
	.p2align 3
.L7:
	lea	rsi, .LC18[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L109
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	r13d, eax
	call	CX_LOCK@PLT
	mov	rdi, r14
	call	cx_get_dpll@PLT
	mov	DWORD PTR 0[rbp], eax
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L21:
	lea	rsi, .LC11[rip]
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	esi, DWORD PTR PRIV_DRIVER[rip]
	mov	rdi, r15
	call	priv_check@PLT
	mov	r15d, eax
	test	eax, eax
	jne	.L1
	mov	r15d, DWORD PTR 32[r13]
	test	r15d, r15d
	jne	.L48
	mov	eax, DWORD PTR M_ASYNC[rip]
	cmp	DWORD PTR 8[r14], eax
	je	.L117
	mov	eax, DWORD PTR 16[r13]
	test	eax, eax
	je	.L47
	mov	eax, DWORD PTR SERIAL_ASYNC[rip]
	cmp	DWORD PTR 0[rbp], eax
	je	.L48
.L47:
	xor	eax, eax
	call	splhigh@PLT
	mov	rdi, r12
	mov	ebx, eax
	call	CX_LOCK@PLT
	mov	eax, DWORD PTR 8[r14]
	mov	esi, DWORD PTR M_HDLC[rip]
	mov	r8d, DWORD PTR M_ASYNC[rip]
	cmp	eax, esi
	je	.L118
.L50:
	cmp	eax, r8d
	jne	.L62
	mov	eax, DWORD PTR SERIAL_HDLC[rip]
	cmp	DWORD PTR 0[rbp], eax
	jne	.L62
	mov	rax, QWORD PTR 8[r13]
	mov	eax, DWORD PTR [rax]
	test	DWORD PTR IFF_DEBUG[rip], eax
	je	.L52
	mov	eax, DWORD PTR 4[r14]
	mov	DWORD PTR [r14], eax
.L52:
	mov	rdi, r14
	call	cx_set_mode@PLT
	mov	rdi, r14
	mov	esi, 1
	call	cx_enable_receive@PLT
	mov	esi, 1
	mov	rdi, r14
	call	cx_enable_transmit@PLT
	jmp	.L62
	.p2align 4,,10
	.p2align 3
.L109:
	mov	r15d, DWORD PTR EINVAL[rip]
	jmp	.L1
.L117:
	mov	rax, QWORD PTR 24[r13]
	test	rax, rax
	je	.L47
	mov	eax, DWORD PTR [rax]
	test	DWORD PTR TS_ISOPEN[rip], eax
	je	.L47
	.p2align 4,,10
	.p2align 3
.L48:
	mov	r15d, DWORD PTR EBUSY[rip]
	jmp	.L1
.L35:
	mov	ecx, 4
	lea	rsi, .LC3[rip]
	mov	rdi, rbp
	repz cmpsb
	seta	al
	sbb	al, 0
	movsx	r15d, al
	test	r15d, r15d
	jne	.L109
	mov	rdi, r8
	call	IFP2SP@PLT
	mov	rdx, QWORD PTR 8[r13]
	mov	r8, rax
	mov	eax, DWORD PTR PP_FR[rip]
	or	eax, DWORD PTR PP_KEEPALIVE[rip]
	not	eax
	and	DWORD PTR [r8], eax
	mov	eax, DWORD PTR PP_CISCO[rip]
	not	eax
	and	DWORD PTR [rdx], eax
	jmp	.L1
.L64:
	movsx	rsi, esi
	mov	rdi, r13
	call	CX_DEBUG2@PLT
	mov	r15d, DWORD PTR ENOTTY[rip]
	jmp	.L1
.L118:
	mov	ecx, DWORD PTR SERIAL_ASYNC[rip]
	cmp	DWORD PTR 0[rbp], ecx
	jne	.L50
	mov	esi, r8d
	mov	rdi, r14
	call	cx_set_mode@PLT
	xor	esi, esi
	mov	rdi, r14
	call	cx_enable_receive@PLT
	xor	esi, esi
	mov	rdi, r14
	call	cx_enable_transmit@PLT
	jmp	.L62
.L116:
	mov	rdi, r8
	call	IFP2SP@PLT
	mov	rdi, QWORD PTR 8[r13]
	mov	r8, rax
	mov	eax, DWORD PTR PP_FR[rip]
	not	eax
	and	DWORD PTR [r8], eax
	call	IFP2SP@PLT
	mov	edx, DWORD PTR PP_KEEPALIVE[rip]
	or	DWORD PTR [rax], edx
	mov	rax, QWORD PTR 8[r13]
	mov	edx, DWORD PTR PP_CISCO[rip]
	or	DWORD PTR [rax], edx
	jmp	.L1
.L41:
	call	IFP2SP@PLT
	mov	r8, rax
	mov	eax, DWORD PTR PP_KEEPALIVE[rip]
	not	eax
	and	DWORD PTR [r8], eax
	jmp	.L42
.L115:
	mov	esi, 1
	mov	rdi, r14
	call	cx_set_dtr@PLT
	mov	eax, DWORD PTR 0[rbp]
	jmp	.L72
.L113:
	xor	esi, esi
	jmp	.L106
.L112:
	xor	esi, esi
	mov	rdi, r14
	call	cx_set_dtr@PLT
	mov	eax, DWORD PTR 0[rbp]
	jmp	.L74
.L114:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	cx_ioctl, .-cx_ioctl
	.comm	channel,8,8
	.comm	TS_ISOPEN,4,4
	.comm	TIOCM_RTS,4,4
	.comm	TIOCM_DTR,4,4
	.comm	SERIAL_HDLC,4,4
	.comm	SERIAL_ASYNC,4,4
	.comm	PRIV_DRIVER,4,4
	.comm	PP_KEEPALIVE,4,4
	.comm	PP_FR,4,4
	.comm	PP_CISCO,4,4
	.comm	NCX,4,4
	.comm	NCHAN,4,4
	.comm	M_HDLC,4,4
	.comm	M_ASYNC,4,4
	.comm	IFF_DRV_RUNNING,4,4
	.comm	IFF_DEBUG,4,4
	.comm	ENOTTY,4,4
	.comm	EINVAL,4,4
	.comm	EBUSY,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.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, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_if_cx.c_cx_ioctl.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"async\000"
	.align	2
.LC1:
	.ascii	"fr\000"
	.align	2
.LC2:
	.ascii	"cisco\000"
	.align	2
.LC3:
	.ascii	"ppp\000"
	.align	2
.LC4:
	.ascii	"ioctl: getregistered\012\000"
	.align	2
.LC5:
	.ascii	"ioctl: getport\012\000"
	.align	2
.LC6:
	.ascii	"ioctl: setproto\012\000"
	.align	2
.LC7:
	.ascii	"ioctl: getproto\012\000"
	.align	2
.LC8:
	.ascii	"ioctl: getkeepalive\012\000"
	.align	2
.LC9:
	.ascii	"ioctl: setkeepalive\012\000"
	.align	2
.LC10:
	.ascii	"ioctl: getmode\012\000"
	.align	2
.LC11:
	.ascii	"ioctl: setmode\012\000"
	.align	2
.LC12:
	.ascii	"ioctl: getestat\012\000"
	.align	2
.LC13:
	.ascii	"ioctl: clrstat\012\000"
	.align	2
.LC14:
	.ascii	"ioctl: getbaud\012\000"
	.align	2
.LC15:
	.ascii	"ioctl: setbaud\012\000"
	.align	2
.LC16:
	.ascii	"ioctl: getloop\012\000"
	.align	2
.LC17:
	.ascii	"ioctl: setloop\012\000"
	.align	2
.LC18:
	.ascii	"ioctl: getdpll\012\000"
	.align	2
.LC19:
	.ascii	"ioctl: setdpll\012\000"
	.align	2
.LC20:
	.ascii	"ioctl: getnrzi\012\000"
	.align	2
.LC21:
	.ascii	"ioctl: setnrzi\012\000"
	.align	2
.LC22:
	.ascii	"ioctl: getdebug\012\000"
	.align	2
.LC23:
	.ascii	"ioctl: setdebug\012\000"
	.align	2
.LC24:
	.ascii	"ioctl: tiocsdtr\012\000"
	.align	2
.LC25:
	.ascii	"ioctl: tioccdtr\012\000"
	.align	2
.LC26:
	.ascii	"ioctl: tiocmset\012\000"
	.align	2
.LC27:
	.ascii	"ioctl: tiocmbis\012\000"
	.align	2
.LC28:
	.ascii	"ioctl: tiocmbic\012\000"
	.align	2
.LC29:
	.ascii	"ioctl: tiocmget\012\000"
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC30:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cx_ioctl, %function
cx_ioctl:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, lr}
	ldr	r4, [r0]
	mov	r8, r2
	ldr	ip, [r4, #20]
	ldr	r2, .L124
	sub	sp, sp, #24
	sub	r3, r1, #134
	ldr	r2, [r2]
	str	r2, [sp, #20]
	mov	r2,#0
	ldr	r7, [ip]
	ldr	r6, [r4, #24]
	ldr	r5, [sp, #56]
	cmp	r3, #20
	ldrls	pc, [pc, r3, asl #2]
	b	.L2
.L4:
	.word	.L24
	.word	.L23
	.word	.L22
	.word	.L21
	.word	.L20
	.word	.L19
	.word	.L18
	.word	.L17
	.word	.L16
	.word	.L15
	.word	.L14
	.word	.L13
	.word	.L12
	.word	.L11
	.word	.L10
	.word	.L9
	.word	.L8
	.word	.L7
	.word	.L6
	.word	.L5
	.word	.L3
.L3:
	ldr	r1, .L124+4
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	mov	r0, r7
	str	r5, [r6, #44]
	str	r5, [r6, #40]
	str	r5, [r6, #36]
	str	r5, [r6, #32]
	str	r5, [r6, #28]
	str	r5, [r6, #24]
	str	r5, [r6, #20]
	str	r5, [r6, #16]
	str	r5, [r6, #12]
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
.L1:
	ldr	r3, .L124
	ldr	r2, [r3]
	ldr	r3, [sp, #20]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L118
	mov	r0, r5
	add	sp, sp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
.L5:
	mov	r0, r4
	ldr	r1, .L124+12
	bl	CX_DEBUG2
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	mov	r0, r6
	bl	cx_get_baud
	mov	r3, r0
.L115:
	mov	r0, r7
.L114:
	str	r3, [r8]
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
	mov	r5, #0
	b	.L1
.L7:
	mov	r0, r4
	ldr	r1, .L124+20
	bl	CX_DEBUG2
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	mov	r0, r6
	bl	cx_get_dpll
	mov	r3, r0
	b	.L115
.L6:
	ldr	r1, .L124+24
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r3, [r6]
	b	.L115
.L8:
	ldr	r1, .L124+28
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r0, [r4, #4]
	bl	IFP2SP
	ldr	r3, .L124+32
	ldr	r2, [r0]
	ldr	r3, [r3]
	tst	r2, r3
	bne	.L116
	ldr	r2, [r4, #4]
	ldr	r3, .L124+36
	ldr	r0, [r2]
	ldr	r3, [r3]
	ands	r5, r0, r3
	bne	.L116
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r6, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r0, [r4, #4]
	bl	IFP2SP
	ldr	r3, .L124+40
	ldr	r2, [r0]
	ldr	r3, [r3]
	mov	r0, r7
	tst	r2, r3
	movne	r3, #1
	moveq	r3, #0
	str	r3, [r8]
	bl	CX_UNLOCK
	mov	r0, r6
	bl	splx
	b	.L1
.L9:
	mov	r0, r4
	ldr	r1, .L124+44
	bl	CX_DEBUG2
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	mov	r0, r6
	bl	cx_get_loop
	mov	r3, r0
	b	.L115
.L10:
	ldr	r1, .L124+48
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	ldreq	r3, .L124+52
	ldrne	r3, .L124+56
	ldr	r3, [r3]
	str	r3, [r8]
.L75:
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
	mov	r5, #0
	b	.L1
.L11:
	mov	r0, r4
	ldr	r1, .L124+60
	bl	CX_DEBUG2
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	mov	r0, r6
	bl	cx_get_nrzi
	mov	r3, r0
	b	.L115
.L12:
	ldr	r1, .L124+64
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	mov	r0, r6
	bl	cx_get_port
	mov	r3, r0
	mov	r0, r7
	str	r3, [r8]
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
	ldr	r3, [r8]
	cmp	r3, #0
	movge	r5, #0
	bge	.L1
.L116:
	ldr	r3, .L124+68
	ldr	r5, [r3]
	b	.L1
.L13:
	ldr	r1, .L124+72
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r5, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L78
	ldr	r0, [r4, #4]
	bl	IFP2SP
	ldr	r3, .L124+32
	ldr	r2, [r0]
	ldr	r3, [r3]
	tst	r2, r3
	bne	.L79
	ldr	r2, [r4, #4]
	ldr	r3, .L124+36
	ldr	r2, [r2]
	ldr	r3, [r3]
	ldr	r1, .L124+76
	tst	r2, r3
	ldr	r3, .L124+80
	moveq	r1, r3
.L30:
	mov	r0, r8
	bl	strcpy
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r5
	bl	splx
	mov	r5, #0
	b	.L1
.L14:
	ldr	r1, .L124+84
	mov	r0, r4
	bl	CX_DEBUG2
	mov	r1, #16
	add	r0, sp, #4
	bl	bzero
	ldr	r2, .L124+88
	ldr	r3, .L124+92
	ldr	r0, [r2]
	ldr	r3, [r3]
	mul	r0, r3, r0
	cmp	r0, #0
	ble	.L29
	mov	r2, #0
	mov	r4, #1
	ldr	r3, .L124+96
	ldr	r3, [r3]
	sub	r3, r3, #4
	add	r0, r3, r0, lsl #2
.L28:
	ldr	r1, [r3, #4]!
	cmp	r1, #0
	beq	.L27
	add	r1, sp, #24
	add	ip, r1, r2, asr #3
	ldrb	r1, [ip, #-20]	@ zero_extendqisi2
	and	lr, r2, #7
	orr	r1, r1, r4, lsl lr
	strb	r1, [ip, #-20]
.L27:
	cmp	r0, r3
	add	r2, r2, #1
	bne	.L28
.L29:
	mov	r1, r8
	mov	r2, #16
	add	r0, sp, #4
	bl	bcopy
	mov	r5, #0
	b	.L1
.L15:
	ldr	r1, .L124+100
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r2, [r6, #44]
	ldr	r3, [r6, #40]
	str	r2, [r8, #32]
	ldr	r2, [r6, #36]
	str	r3, [r8, #28]
	ldr	r3, [r6, #32]
	str	r2, [r8, #24]
	ldr	r2, [r6, #28]
	ldr	r1, [r6, #20]
	str	r3, [r8, #20]
	ldr	r3, [r6, #24]
	str	r2, [r8, #16]
	ldr	r2, [r6, #16]
	str	r3, [r8, #12]
	mov	r0, r7
	ldr	r3, [r6, #12]
	str	r1, [r8, #8]
	str	r2, [r8, #4]
	b	.L114
.L16:
	ldr	r1, .L124+104
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r1, [r8]
	mov	r0, r6
	bl	cx_set_baud
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
	b	.L1
.L17:
	ldr	r1, .L124+108
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	bl	splhigh
	mov	r9, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	ldr	r3, [r8]
	beq	.L111
	cmp	r3, #0
	moveq	r3, #1
	ldr	r1, [r4, #4]
	ldr	r2, .L124+112
	ldr	r1, [r1]
	ldr	r2, [r2]
	str	r3, [r6, #4]
	tst	r1, r2
	beq	.L62
.L111:
	str	r3, [r6]
.L62:
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r9
	bl	splx
	b	.L1
.L18:
	ldr	r1, .L124+116
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r1, [r8]
	mov	r0, r6
	bl	cx_set_dpll
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
	b	.L1
.L19:
	ldr	r1, .L124+120
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	ldr	r0, [r4, #4]
	bl	IFP2SP
	ldr	r3, .L124+32
	ldr	r2, [r0]
	ldr	r3, [r3]
	tst	r2, r3
	bne	.L116
	ldr	r2, [r4, #4]
	ldr	r3, .L124+36
	ldr	r5, [r2]
	ldr	r3, [r3]
	ands	r5, r5, r3
	bne	.L116
	bl	splhigh
	mov	r6, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r3, [r8]
	ldr	r0, [r4, #4]
	cmp	r3, #0
	beq	.L41
	bl	IFP2SP
	ldr	r2, .L124+40
	ldr	r3, [r0]
	ldr	r2, [r2]
	orr	r3, r3, r2
	str	r3, [r0]
.L42:
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r6
	bl	splx
	b	.L1
.L20:
	ldr	r1, .L124+124
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r1, [r8]
	mov	r0, r6
	bl	cx_set_loop
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
	b	.L1
.L21:
	ldr	r1, .L124+128
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	ldr	r5, [r4, #16]
	cmp	r5, #0
	bne	.L48
	ldr	r10, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r10]
	cmp	r2, r3
	beq	.L119
	ldr	r3, [r4, #8]
	cmp	r3, #0
	beq	.L47
	ldr	r3, .L124+52
	ldr	r2, [r8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L48
.L47:
	bl	splhigh
	mov	r9, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r2, .L124+132
	ldr	r3, [r6, #8]
	ldr	r2, [r2]
	cmp	r3, r2
	ldrne	r1, [r10]
	beq	.L120
.L50:
	cmp	r3, r1
	bne	.L62
	ldr	r3, .L124+56
	ldr	r1, [r8]
	ldr	r3, [r3]
	cmp	r1, r3
	bne	.L62
	ldr	r1, [r4, #4]
	ldr	r3, .L124+112
	ldr	r1, [r1]
	ldr	r3, [r3]
	mov	r0, r6
	tst	r1, r3
	ldrne	r3, [r6, #4]
	mov	r1, r2
	strne	r3, [r6]
	bl	cx_set_mode
	mov	r1, #1
	mov	r0, r6
	bl	cx_enable_receive
	mov	r0, r6
	mov	r1, #1
	bl	cx_enable_transmit
	b	.L62
.L22:
	ldr	r1, .L124+136
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L116
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r1, [r8]
	mov	r0, r6
	bl	cx_set_nrzi
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
	b	.L1
.L23:
	ldr	r1, .L124+140
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r1, [r8]
	mov	r0, r6
	bl	cx_set_port
	mov	r0, r7
	bl	CX_UNLOCK
	mov	r0, r4
	bl	splx
	b	.L1
.L24:
	ldr	r1, .L124+140
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+8
	mov	r0, r5
	ldr	r1, [r3]
	bl	priv_check
	subs	r5, r0, #0
	bne	.L1
	ldr	r3, .L124+16
	ldr	r2, [r6, #8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L48
	ldr	r6, [r4, #4]
	ldr	r3, .L124+144
	ldr	r2, [r6, #4]
	ldr	r3, [r3]
	tst	r2, r3
	bne	.L48
	mov	r1, r8
	ldr	r0, .L124+76
	bl	strcmp
	subs	r5, r0, #0
	beq	.L121
	ldrb	r3, [r8]	@ zero_extendqisi2
	cmp	r3, #102
	bne	.L35
	ldrb	r3, [r8, #1]	@ zero_extendqisi2
	cmp	r3, #114
	bne	.L35
	ldrb	r5, [r8, #2]	@ zero_extendqisi2
	rsb	r5, r5, #0
	cmp	r5, #0
	bne	.L35
	ldr	r2, .L124+36
	ldr	r3, [r6]
	ldr	r2, [r2]
	mov	r0, r6
	bic	r3, r3, r2
	str	r3, [r6]
	bl	IFP2SP
	ldr	r3, .L124+40
	ldr	r2, .L124+32
	ldr	r1, [r3]
	ldr	r2, [r2]
	ldr	r3, [r0]
	orr	r2, r2, r1
	orr	r3, r3, r2
	str	r3, [r0]
	b	.L1
.L119:
	ldr	r3, [r4, #12]
	cmp	r3, #0
	beq	.L47
	ldr	r1, .L124+148
	ldr	r2, [r3]
	ldr	r3, [r1]
	tst	r2, r3
	beq	.L47
.L48:
	ldr	r3, .L124+152
	ldr	r5, [r3]
	b	.L1
.L78:
	ldr	r1, .L124+156
	b	.L30
.L79:
	ldr	r1, .L124+160
	b	.L30
.L35:
	mov	r1, r8
	ldr	r0, .L124+80
	bl	strcmp
	subs	r5, r0, #0
	bne	.L116
	mov	r0, r6
	bl	IFP2SP
	ldr	r3, .L124+40
	ldr	r2, .L124+32
	ldr	r1, [r3]
	ldr	r2, [r2]
	ldr	r3, [r0]
	orr	r2, r2, r1
	bic	r3, r3, r2
	ldr	r1, [r4, #4]
	ldr	r2, .L124+36
	str	r3, [r0]
	ldr	r2, [r2]
	ldr	r3, [r1]
	bic	r3, r3, r2
	str	r3, [r1]
	b	.L1
.L120:
	ldr	r1, .L124+52
	ldr	ip, [r8]
	ldr	r0, [r1]
	ldr	r1, [r10]
	cmp	ip, r0
	bne	.L50
	mov	r0, r6
	bl	cx_set_mode
	mov	r1, #0
	mov	r0, r6
	bl	cx_enable_receive
	mov	r0, r6
	mov	r1, #0
	bl	cx_enable_transmit
	b	.L62
.L121:
	mov	r0, r6
	bl	IFP2SP
	mov	r3, r0
	ldr	r1, .L124+32
	ldr	r2, [r0]
	ldr	r1, [r1]
	ldr	r0, [r4, #4]
	bic	r2, r2, r1
	str	r2, [r3]
	bl	IFP2SP
	ldr	r2, .L124+40
	ldr	r3, [r0]
	ldr	r1, [r2]
	ldr	r2, [r4, #4]
	orr	r3, r3, r1
	ldr	r1, .L124+36
	str	r3, [r0]
	ldr	r1, [r1]
	ldr	r3, [r2]
	orr	r3, r3, r1
	str	r3, [r2]
	b	.L1
.L41:
	bl	IFP2SP
	ldr	r2, .L124+40
	ldr	r3, [r0]
	ldr	r2, [r2]
	bic	r3, r3, r2
	str	r3, [r0]
	b	.L42
.L118:
	bl	__stack_chk_fail
.L2:
	sub	r3, r1, #128
	cmp	r3, #5
	ldrls	pc, [pc, r3, asl #2]
	b	.L64
.L66:
	.word	.L71
	.word	.L70
	.word	.L69
	.word	.L68
	.word	.L67
	.word	.L65
.L64:
	mov	r0, r4
	bl	CX_DEBUG2
	ldr	r3, .L124+164
	ldr	r5, [r3]
	b	.L1
.L65:
	ldr	r1, .L124+168
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	mov	r0, r6
	mov	r1, #0
	bl	cx_set_dtr
	b	.L75
.L67:
	ldr	r1, .L124+172
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r2, .L124+176
	ldr	r3, [r8]
	ldr	r2, [r2]
	tst	r3, r2
	bne	.L122
.L74:
	ldr	r2, .L124+180
	ldr	r2, [r2]
	tst	r3, r2
	beq	.L75
	mov	r0, r6
	mov	r1, #0
.L112:
	bl	cx_set_rts
	b	.L75
.L68:
	ldr	r1, .L124+184
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r2, .L124+176
	ldr	r3, [r8]
	ldr	r2, [r2]
	tst	r3, r2
	bne	.L123
.L72:
	ldr	r2, .L124+180
	ldr	r2, [r2]
	tst	r3, r2
	beq	.L75
	mov	r0, r6
	mov	r1, #1
	bl	cx_set_rts
	b	.L75
.L69:
	ldr	r1, .L124+188
	mov	r0, r4
	bl	CX_DEBUG2
	mov	r0, r4
	bl	cx_modem_status
	mov	r5, #0
	str	r0, [r8]
	b	.L1
.L123:
	mov	r1, #1
	mov	r0, r6
	bl	cx_set_dtr
	ldr	r3, [r8]
	b	.L72
.L70:
	ldr	r1, .L124+192
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	ldr	r3, .L124+176
	ldr	r2, [r8]
	ldr	r3, [r3]
	mov	r0, r6
	tst	r2, r3
	movne	r1, #1
	moveq	r1, #0
	bl	cx_set_dtr
	ldr	r3, .L124+180
	ldr	r2, [r8]
	ldr	r3, [r3]
	mov	r0, r6
	tst	r2, r3
	movne	r1, #1
	moveq	r1, #0
	b	.L112
.L71:
	ldr	r1, .L124+196
	mov	r0, r4
	bl	CX_DEBUG2
	bl	splhigh
	mov	r4, r0
	mov	r0, r7
	bl	CX_LOCK
	mov	r0, r6
	mov	r1, #1
	bl	cx_set_dtr
	b	.L75
.L122:
	mov	r1, #0
	mov	r0, r6
	bl	cx_set_dtr
	ldr	r3, [r8]
	b	.L74
.L125:
	.align	2
.L124:
	.word	.LC30
	.word	.LC13
	.word	PRIV_DRIVER
	.word	.LC14
	.word	M_ASYNC
	.word	.LC18
	.word	.LC22
	.word	.LC8
	.word	PP_FR
	.word	PP_CISCO
	.word	PP_KEEPALIVE
	.word	.LC16
	.word	.LC10
	.word	SERIAL_ASYNC
	.word	SERIAL_HDLC
	.word	.LC20
	.word	.LC5
	.word	EINVAL
	.word	.LC7
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	NCHAN
	.word	NCX
	.word	channel
	.word	.LC12
	.word	.LC15
	.word	.LC23
	.word	IFF_DEBUG
	.word	.LC19
	.word	.LC9
	.word	.LC17
	.word	.LC11
	.word	M_HDLC
	.word	.LC21
	.word	.LC6
	.word	IFF_DRV_RUNNING
	.word	TS_ISOPEN
	.word	EBUSY
	.word	.LC0
	.word	.LC1
	.word	ENOTTY
	.word	.LC25
	.word	.LC28
	.word	TIOCM_DTR
	.word	TIOCM_RTS
	.word	.LC27
	.word	.LC29
	.word	.LC26
	.word	.LC24
	.size	cx_ioctl, .-cx_ioctl
	.comm	channel,4,4
	.comm	TS_ISOPEN,4,4
	.comm	TIOCM_RTS,4,4
	.comm	TIOCM_DTR,4,4
	.comm	SERIAL_HDLC,4,4
	.comm	SERIAL_ASYNC,4,4
	.comm	PRIV_DRIVER,4,4
	.comm	PP_KEEPALIVE,4,4
	.comm	PP_FR,4,4
	.comm	PP_CISCO,4,4
	.comm	NCX,4,4
	.comm	NCHAN,4,4
	.comm	M_HDLC,4,4
	.comm	M_ASYNC,4,4
	.comm	IFF_DRV_RUNNING,4,4
	.comm	IFF_DEBUG,4,4
	.comm	ENOTTY,4,4
	.comm	EINVAL,4,4
	.comm	EBUSY,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
