	.file	"extr_hastd.c_descriptors_assert.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"stdin"
.LC1:
	.string	"stdout"
.LC2:
	.string	"stderr"
.LC3:
	.string	"[%s] (%s) "
.LC4:
	.string	"sysconf(_SC_OPEN_MAX) failed"
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC5:
	.string	"Unable to fstat descriptor %d: %s"
	.align 8
.LC6:
	.string	"Descriptor %d (%s) is closed, but should be open."
	.align 8
.LC7:
	.string	"Descriptor %d (event) is closed, but should be open."
	.align 8
.LC8:
	.string	"Descriptor %d (event) is %s, but should be %s."
	.align 8
.LC9:
	.string	"Descriptor %d (ctrl) is closed, but should be open."
	.align 8
.LC10:
	.string	"Descriptor %d (ctrl) is %s, but should be %s."
	.align 8
.LC11:
	.string	"Descriptor %d (conn) is closed, but should be open."
	.align 8
.LC12:
	.string	"Descriptor %d (conn) is %s, but should be %s."
	.align 8
.LC13:
	.string	"Descriptor %d (conn) is open, but should be closed."
	.align 8
.LC14:
	.string	"Descriptor %d (remote in) is closed, but should be open."
	.align 8
.LC15:
	.string	"Descriptor %d (remote in) is %s, but should be %s."
	.align 8
.LC16:
	.string	"Descriptor %d (remote out) is closed, but should be open."
	.align 8
.LC17:
	.string	"Descriptor %d (remote out) is %s, but should be %s."
	.align 8
.LC18:
	.string	"Descriptor %d is open (%s), but should be closed."
	.section	.rodata.str1.1
.LC19:
	.string	"%s"
	.text
	.p2align 4
	.globl	descriptors_assert
	.type	descriptors_assert, @function
descriptors_assert:
.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
	mov	r13d, esi
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12, rdi
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	sub	rsp, 312
	.cfi_def_cfa_offset 368
	mov	edi, DWORD PTR _SC_OPEN_MAX[rip]
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 296[rsp], rax
	xor	eax, eax
	mov	BYTE PTR 32[rsp], 0
	call	sysconf@PLT
	cmp	rax, -1
	je	.L44
	mov	rbp, rax
	test	rax, rax
	js	.L4
.L3:
	xor	ebx, ebx
	lea	r15, 24[rsp]
.L27:
	mov	rsi, r15
	mov	edi, ebx
	mov	r14d, ebx
	call	fstat@PLT
	test	rax, rax
	je	.L45
	mov	rdi, QWORD PTR errno[rip]
	cmp	rdi, QWORD PTR EBADF[rip]
	je	.L8
	call	strerror@PLT
	lea	rdi, 32[rsp]
	mov	ecx, ebx
	lea	rdx, .LC5[rip]
	mov	r8, rax
	mov	esi, 256
	xor	eax, eax
	call	snprintf@PLT
.L4:
	cmp	BYTE PTR 32[rsp], 0
	jne	.L46
.L1:
	mov	rax, QWORD PTR 296[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L47
	add	rsp, 312
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	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
	.p2align 4,,10
	.p2align 3
.L45:
	.cfi_restore_state
	mov	eax, DWORD PTR STDIN_FILENO[rip]
	mov	r8, QWORD PTR 24[rsp]
	mov	edx, ebx
	cmp	eax, ebx
	jne	.L48
.L6:
	add	rbx, 1
	cmp	rbp, rbx
	jge	.L27
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L48:
	cmp	ebx, DWORD PTR STDOUT_FILENO[rip]
	mov	ecx, 1
	je	.L6
	cmp	DWORD PTR STDERR_FILENO[rip], edx
	jne	.L9
	.p2align 4,,10
	.p2align 3
.L49:
	test	ecx, ecx
	jne	.L6
.L31:
	lea	r8, .LC0[rip]
	cmp	r14d, eax
	je	.L10
	cmp	DWORD PTR STDOUT_FILENO[rip], r14d
	lea	r8, .LC1[rip]
	lea	rax, .LC2[rip]
	cmovne	r8, rax
.L10:
	lea	rdi, 32[rsp]
	mov	ecx, r14d
	mov	esi, 256
	lea	rdx, .LC6[rip]
	xor	eax, eax
	call	snprintf@PLT
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L8:
	mov	eax, DWORD PTR STDIN_FILENO[rip]
	mov	edx, ebx
	cmp	ebx, eax
	je	.L31
	cmp	ebx, DWORD PTR STDOUT_FILENO[rip]
	je	.L31
	xor	ecx, ecx
	xor	r8d, r8d
	cmp	DWORD PTR STDERR_FILENO[rip], edx
	je	.L49
.L9:
	mov	rdi, QWORD PTR 48[r12]
	mov	DWORD PTR 12[rsp], ecx
	mov	DWORD PTR 8[rsp], edx
	mov	QWORD PTR [rsp], r8
	call	proto_descriptor@PLT
	mov	edx, DWORD PTR 8[rsp]
	mov	r8, QWORD PTR [rsp]
	mov	ecx, DWORD PTR 12[rsp]
	cmp	eax, edx
	jne	.L11
	test	ecx, ecx
	je	.L50
	mov	rdi, r8
	mov	QWORD PTR [rsp], r8
	call	S_ISSOCK@PLT
	test	eax, eax
	jne	.L6
	mov	rdi, QWORD PTR S_IFSOCK[rip]
	call	dtype2str@PLT
	mov	r8, QWORD PTR [rsp]
	mov	rbx, rax
	mov	rdi, r8
	call	dtype2str@PLT
	lea	rdi, 32[rsp]
	mov	r9, rbx
	mov	ecx, r14d
	mov	r8, rax
	lea	rdx, .LC8[rip]
	mov	esi, 256
	xor	eax, eax
	call	snprintf@PLT
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L46:
	mov	edi, r13d
	call	pjdlog_init@PLT
	mov	rdi, QWORD PTR [r12]
	call	role2str@PLT
	mov	esi, DWORD PTR 8[r12]
	lea	rdi, .LC3[rip]
	mov	edx, eax
	call	pjdlog_prefix_set@PLT
	lea	rsi, 32[rsp]
	lea	rdi, .LC19[rip]
	call	PJDLOG_ABORT@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L44:
	mov	edi, r13d
	mov	ebp, 16384
	call	pjdlog_init@PLT
	mov	rdi, QWORD PTR [r12]
	call	role2str@PLT
	mov	esi, DWORD PTR 8[r12]
	lea	rdi, .LC3[rip]
	mov	edx, eax
	call	pjdlog_prefix_set@PLT
	mov	edi, DWORD PTR LOG_WARNING[rip]
	lea	rsi, .LC4[rip]
	call	pjdlog_errno@PLT
	xor	eax, eax
	call	pjdlog_fini@PLT
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L11:
	mov	rdi, QWORD PTR 40[r12]
	mov	DWORD PTR 12[rsp], ecx
	mov	DWORD PTR 8[rsp], edx
	mov	QWORD PTR [rsp], r8
	call	proto_descriptor@PLT
	mov	edx, DWORD PTR 8[rsp]
	mov	r8, QWORD PTR [rsp]
	mov	ecx, DWORD PTR 12[rsp]
	cmp	eax, edx
	je	.L51
	mov	rax, QWORD PTR [r12]
	cmp	rax, QWORD PTR HAST_ROLE_PRIMARY[rip]
	je	.L52
.L15:
	cmp	QWORD PTR HAST_ROLE_SECONDARY[rip], rax
	je	.L53
.L25:
	test	ecx, ecx
	je	.L6
	mov	rdi, r8
	call	dtype2str@PLT
	lea	rdi, 32[rsp]
	mov	ecx, r14d
	lea	rdx, .LC18[rip]
	mov	r8, rax
	mov	esi, 256
	xor	eax, eax
	call	snprintf@PLT
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L53:
	mov	rdi, QWORD PTR 32[r12]
	test	rdi, rdi
	je	.L23
	mov	DWORD PTR 12[rsp], ecx
	mov	DWORD PTR 8[rsp], edx
	mov	QWORD PTR [rsp], r8
	call	proto_descriptor@PLT
	mov	edx, DWORD PTR 8[rsp]
	mov	r8, QWORD PTR [rsp]
	mov	ecx, DWORD PTR 12[rsp]
	cmp	eax, edx
	je	.L54
	mov	rax, QWORD PTR HAST_ROLE_SECONDARY[rip]
	cmp	QWORD PTR [r12], rax
	jne	.L25
.L23:
	mov	rdi, QWORD PTR 24[r12]
	mov	DWORD PTR 12[rsp], ecx
	mov	DWORD PTR 8[rsp], edx
	mov	QWORD PTR [rsp], r8
	call	proto_descriptor@PLT
	mov	edx, DWORD PTR 8[rsp]
	mov	r8, QWORD PTR [rsp]
	mov	ecx, DWORD PTR 12[rsp]
	cmp	eax, edx
	je	.L55
	mov	DWORD PTR 12[rsp], edx
	mov	rax, QWORD PTR HAST_ROLE_SECONDARY[rip]
	cmp	QWORD PTR [r12], rax
	jne	.L25
	mov	rdi, QWORD PTR 16[r12]
	mov	DWORD PTR 8[rsp], ecx
	mov	QWORD PTR [rsp], r8
	call	proto_descriptor@PLT
	mov	edx, DWORD PTR 12[rsp]
	mov	r8, QWORD PTR [rsp]
	mov	ecx, DWORD PTR 8[rsp]
	cmp	eax, edx
	jne	.L25
	test	ecx, ecx
	je	.L56
	mov	rdi, r8
	mov	QWORD PTR [rsp], r8
	call	S_ISSOCK@PLT
	test	eax, eax
	jne	.L6
	mov	rdi, QWORD PTR S_IFSOCK[rip]
	call	dtype2str@PLT
	mov	r8, QWORD PTR [rsp]
	mov	rbx, rax
	mov	rdi, r8
	call	dtype2str@PLT
	lea	rdi, 32[rsp]
	mov	r9, rbx
	mov	ecx, r14d
	mov	r8, rax
	lea	rdx, .LC17[rip]
	mov	esi, 256
	xor	eax, eax
	call	snprintf@PLT
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L51:
	test	ecx, ecx
	je	.L57
	mov	rdi, r8
	mov	QWORD PTR [rsp], r8
	call	S_ISSOCK@PLT
	test	eax, eax
	jne	.L6
	mov	rdi, QWORD PTR S_IFSOCK[rip]
	call	dtype2str@PLT
	mov	r8, QWORD PTR [rsp]
	mov	rbx, rax
	mov	rdi, r8
	call	dtype2str@PLT
	lea	rdi, 32[rsp]
	mov	r9, rbx
	mov	ecx, r14d
	mov	r8, rax
	lea	rdx, .LC10[rip]
	mov	esi, 256
	xor	eax, eax
	call	snprintf@PLT
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L52:
	mov	rdi, QWORD PTR 32[r12]
	mov	DWORD PTR 12[rsp], ecx
	mov	DWORD PTR 8[rsp], edx
	mov	QWORD PTR [rsp], r8
	call	proto_descriptor@PLT
	mov	edx, DWORD PTR 8[rsp]
	mov	r8, QWORD PTR [rsp]
	mov	ecx, DWORD PTR 12[rsp]
	cmp	eax, edx
	je	.L16
	mov	rax, QWORD PTR [r12]
	jmp	.L15
.L16:
	test	ecx, ecx
	je	.L58
	mov	rdi, r8
	mov	QWORD PTR [rsp], r8
	call	S_ISSOCK@PLT
	test	eax, eax
	jne	.L6
	mov	rdi, QWORD PTR S_IFSOCK[rip]
	call	dtype2str@PLT
	mov	r8, QWORD PTR [rsp]
	mov	rbx, rax
	mov	rdi, r8
	call	dtype2str@PLT
	lea	rdi, 32[rsp]
	mov	r9, rbx
	mov	ecx, r14d
	mov	r8, rax
	lea	rdx, .LC12[rip]
	mov	esi, 256
	xor	eax, eax
	call	snprintf@PLT
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L55:
	test	ecx, ecx
	je	.L59
	mov	rdi, r8
	mov	QWORD PTR [rsp], r8
	call	S_ISSOCK@PLT
	test	eax, eax
	jne	.L6
	mov	rdi, QWORD PTR S_IFSOCK[rip]
	call	dtype2str@PLT
	mov	r8, QWORD PTR [rsp]
	mov	rbx, rax
	mov	rdi, r8
	call	dtype2str@PLT
	lea	rdi, 32[rsp]
	mov	r9, rbx
	mov	ecx, r14d
	mov	r8, rax
	lea	rdx, .LC15[rip]
	mov	esi, 256
	xor	eax, eax
	call	snprintf@PLT
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L54:
	test	ecx, ecx
	je	.L6
	lea	rdi, 32[rsp]
	mov	ecx, r14d
	mov	esi, 256
	xor	eax, eax
	lea	rdx, .LC13[rip]
	call	snprintf@PLT
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L50:
	lea	rdi, 32[rsp]
	mov	ecx, r14d
	mov	esi, 256
	xor	eax, eax
	lea	rdx, .LC7[rip]
	call	snprintf@PLT
	jmp	.L4
.L57:
	lea	rdi, 32[rsp]
	mov	ecx, r14d
	mov	esi, 256
	xor	eax, eax
	lea	rdx, .LC9[rip]
	call	snprintf@PLT
	jmp	.L4
.L47:
	call	__stack_chk_fail@PLT
.L58:
	lea	rdi, 32[rsp]
	mov	ecx, r14d
	mov	esi, 256
	xor	eax, eax
	lea	rdx, .LC11[rip]
	call	snprintf@PLT
	jmp	.L4
.L59:
	lea	rdi, 32[rsp]
	mov	ecx, r14d
	mov	esi, 256
	xor	eax, eax
	lea	rdx, .LC14[rip]
	call	snprintf@PLT
	jmp	.L4
.L56:
	lea	rdi, 32[rsp]
	mov	ecx, r14d
	mov	esi, 256
	xor	eax, eax
	lea	rdx, .LC16[rip]
	call	snprintf@PLT
	jmp	.L4
	.cfi_endproc
.LFE0:
	.size	descriptors_assert, .-descriptors_assert
	.comm	errno,8,8
	.comm	_SC_OPEN_MAX,4,4
	.comm	S_IFSOCK,8,8
	.comm	STDOUT_FILENO,4,4
	.comm	STDIN_FILENO,4,4
	.comm	STDERR_FILENO,4,4
	.comm	LOG_WARNING,4,4
	.comm	HAST_ROLE_SECONDARY,8,8
	.comm	HAST_ROLE_PRIMARY,8,8
	.comm	EBADF,8,8
	.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_hastd.c_descriptors_assert.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"stdin\000"
	.align	2
.LC1:
	.ascii	"stdout\000"
	.align	2
.LC2:
	.ascii	"stderr\000"
	.align	2
.LC3:
	.ascii	"[%s] (%s) \000"
	.align	2
.LC4:
	.ascii	"sysconf(_SC_OPEN_MAX) failed\000"
	.align	2
.LC5:
	.ascii	"Unable to fstat descriptor %d: %s\000"
	.align	2
.LC6:
	.ascii	"Descriptor %d (%s) is closed, but should be open.\000"
	.align	2
.LC7:
	.ascii	"Descriptor %d (event) is closed, but should be open"
	.ascii	".\000"
	.align	2
.LC8:
	.ascii	"Descriptor %d (event) is %s, but should be %s.\000"
	.align	2
.LC9:
	.ascii	"Descriptor %d (ctrl) is closed, but should be open."
	.ascii	"\000"
	.align	2
.LC10:
	.ascii	"Descriptor %d (ctrl) is %s, but should be %s.\000"
	.align	2
.LC11:
	.ascii	"Descriptor %d (conn) is closed, but should be open."
	.ascii	"\000"
	.align	2
.LC12:
	.ascii	"Descriptor %d (conn) is %s, but should be %s.\000"
	.align	2
.LC13:
	.ascii	"Descriptor %d (conn) is open, but should be closed."
	.ascii	"\000"
	.align	2
.LC14:
	.ascii	"Descriptor %d (remote in) is closed, but should be "
	.ascii	"open.\000"
	.align	2
.LC15:
	.ascii	"Descriptor %d (remote in) is %s, but should be %s.\000"
	.align	2
.LC16:
	.ascii	"Descriptor %d (remote out) is closed, but should be"
	.ascii	" open.\000"
	.align	2
.LC17:
	.ascii	"Descriptor %d (remote out) is %s, but should be %s."
	.ascii	"\000"
	.align	2
.LC18:
	.ascii	"Descriptor %d is open (%s), but should be closed.\000"
	.align	2
.LC19:
	.ascii	"%s\000"
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	descriptors_assert
	.syntax unified
	.arm
	.fpu softvfp
	.type	descriptors_assert, %function
descriptors_assert:
	@ args = 0, pretend = 0, frame = 280
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r3, #0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	ldr	r2, .L60
	sub	sp, sp, #292
	mov	r5, r0
	ldr	r0, [r2]
	ldr	r2, .L60+4
	str	r1, [sp, #12]
	ldr	r2, [r2]
	str	r2, [sp, #284]
	mov	r2,#0
	strb	r3, [sp, #28]
	bl	sysconf
	cmn	r0, #1
	beq	.L45
	cmp	r0, #0
	mov	r4, r0
	blt	.L4
.L3:
	mov	r6, #0
	ldr	r8, .L60+8
	ldr	r7, .L60+12
	ldr	r9, .L60+16
	ldr	r10, .L60+20
	ldr	fp, .L60+24
.L27:
	mov	r0, r6
	add	r1, sp, #24
	bl	fstat
	cmp	r0, #0
	beq	.L46
	ldr	r0, [r8]
	ldr	r3, [r7]
	cmp	r0, r3
	beq	.L32
	bl	strerror
	mov	r3, r6
	str	r0, [sp]
	mov	r1, #256
	ldr	r2, .L60+28
	add	r0, sp, #28
	bl	snprintf
.L4:
	ldrb	r3, [sp, #28]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L47
.L1:
	ldr	r3, .L60+4
	ldr	r2, [r3]
	ldr	r3, [sp, #284]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L48
	add	sp, sp, #292
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L46:
	mov	r3, #1
	ldr	r2, [sp, #24]
.L6:
	ldr	r1, [r9]
	cmp	r1, r6
	beq	.L7
	ldr	r0, [r10]
	cmp	r0, r6
	beq	.L7
	ldr	r0, [fp]
	cmp	r0, r6
	beq	.L7
	ldr	r0, [r5, #24]
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	bl	proto_descriptor
	cmp	r0, r6
	ldr	r3, [sp, #16]
	ldr	r2, [sp, #20]
	bne	.L11
	cmp	r3, #0
	beq	.L49
	mov	r0, r2
	str	r2, [sp, #16]
	bl	S_ISSOCK
	cmp	r0, #0
	ldr	r2, [sp, #16]
	bne	.L9
	mov	r0, r2
	bl	dtype2str
	ldr	r2, .L60+32
	mov	r4, r0
	ldr	r0, [r2]
	bl	dtype2str
	mov	r3, r6
	str	r0, [sp, #4]
	mov	r1, #256
	ldr	r2, .L60+36
	str	r4, [sp]
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L7:
	cmp	r3, #0
	beq	.L50
.L9:
	add	r6, r6, #1
	cmp	r6, r4
	ble	.L27
	b	.L4
.L32:
	mov	r2, #0
	mov	r3, r2
	b	.L6
.L47:
	ldr	r0, [sp, #12]
	bl	pjdlog_init
	ldm	r5, {r0, r4}
	bl	role2str
	mov	r1, r4
	mov	r2, r0
	ldr	r0, .L60+40
	bl	pjdlog_prefix_set
	add	r1, sp, #28
	ldr	r0, .L60+44
	bl	PJDLOG_ABORT
	b	.L1
.L45:
	ldr	r0, [sp, #12]
	bl	pjdlog_init
	ldm	r5, {r0, r4}
	bl	role2str
	mov	r1, r4
	mov	r2, r0
	ldr	r0, .L60+40
	bl	pjdlog_prefix_set
	ldr	r3, .L60+48
	ldr	r1, .L60+52
	ldr	r0, [r3]
	bl	pjdlog_errno
	mov	r4, #16384
	bl	pjdlog_fini
	b	.L3
.L11:
	ldr	r0, [r5, #20]
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	bl	proto_descriptor
	cmp	r0, r6
	ldr	r3, [sp, #16]
	ldr	r2, [sp, #20]
	beq	.L51
	ldr	r1, .L60+56
	ldr	r0, [r5]
	ldr	r1, [r1]
	cmp	r0, r1
	beq	.L52
.L15:
	ldr	r1, .L60+60
	ldr	ip, [r1]
	cmp	ip, r0
	beq	.L53
.L25:
	cmp	r3, #0
	beq	.L9
	mov	r0, r2
	bl	dtype2str
	mov	r3, r6
	str	r0, [sp]
	mov	r1, #256
	ldr	r2, .L60+64
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L53:
	ldr	r0, [r5, #16]
	cmp	r0, #0
	beq	.L23
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	bl	proto_descriptor
	cmp	r0, r6
	ldr	r3, [sp, #16]
	ldr	r1, .L60+60
	ldr	r2, [sp, #20]
	beq	.L54
	ldr	ip, [r5]
	ldr	r0, [r1]
	cmp	ip, r0
	bne	.L25
.L23:
	ldr	r0, [r5, #12]
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	bl	proto_descriptor
	cmp	r0, r6
	ldr	r3, [sp, #16]
	ldr	r1, .L60+60
	ldr	r2, [sp, #20]
	beq	.L55
	ldr	r1, [r1]
	ldr	r0, [r5]
	cmp	r0, r1
	bne	.L25
	ldr	r0, [r5, #8]
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	bl	proto_descriptor
	cmp	r0, r6
	ldr	r3, [sp, #16]
	ldr	r2, [sp, #20]
	bne	.L25
	cmp	r3, #0
	beq	.L56
	mov	r0, r2
	str	r2, [sp, #16]
	bl	S_ISSOCK
	cmp	r0, #0
	ldr	r2, [sp, #16]
	bne	.L9
	mov	r0, r2
	bl	dtype2str
	ldr	r2, .L60+32
	mov	r4, r0
	ldr	r0, [r2]
	bl	dtype2str
	mov	r3, r6
	str	r0, [sp, #4]
	mov	r1, #256
	ldr	r2, .L60+68
	str	r4, [sp]
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L51:
	cmp	r3, #0
	beq	.L57
	mov	r0, r2
	str	r2, [sp, #16]
	bl	S_ISSOCK
	cmp	r0, #0
	ldr	r2, [sp, #16]
	bne	.L9
	mov	r0, r2
	bl	dtype2str
	ldr	r2, .L60+32
	mov	r4, r0
	ldr	r0, [r2]
	bl	dtype2str
	mov	r3, r6
	str	r0, [sp, #4]
	mov	r1, #256
	ldr	r2, .L60+72
	str	r4, [sp]
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L50:
	cmp	r1, r6
	beq	.L33
	ldr	r1, .L60+20
	ldr	r2, .L60+76
	ldr	r0, [r1]
	ldr	r1, .L60+80
	cmp	r0, r6
	movne	r2, r1
.L10:
	str	r2, [sp]
	mov	r3, r6
	mov	r1, #256
	ldr	r2, .L60+84
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L52:
	ldr	r0, [r5, #16]
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	bl	proto_descriptor
	cmp	r0, r6
	ldr	r3, [sp, #16]
	ldr	r2, [sp, #20]
	beq	.L16
	ldr	r0, [r5]
	b	.L15
.L33:
	ldr	r2, .L60+88
	b	.L10
.L16:
	cmp	r3, #0
	beq	.L58
	mov	r0, r2
	str	r2, [sp, #16]
	bl	S_ISSOCK
	cmp	r0, #0
	ldr	r2, [sp, #16]
	bne	.L9
	mov	r0, r2
	bl	dtype2str
	ldr	r2, .L60+32
	mov	r4, r0
	ldr	r0, [r2]
	bl	dtype2str
	mov	r3, r6
	str	r0, [sp, #4]
	mov	r1, #256
	ldr	r2, .L60+92
	str	r4, [sp]
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L55:
	cmp	r3, #0
	beq	.L59
	mov	r0, r2
	str	r2, [sp, #16]
	bl	S_ISSOCK
	cmp	r0, #0
	ldr	r2, [sp, #16]
	bne	.L9
	mov	r0, r2
	bl	dtype2str
	ldr	r2, .L60+32
	mov	r4, r0
	ldr	r0, [r2]
	bl	dtype2str
	mov	r3, r6
	str	r0, [sp, #4]
	mov	r1, #256
	ldr	r2, .L60+96
	str	r4, [sp]
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L54:
	cmp	r3, #0
	beq	.L9
	mov	r3, r6
	mov	r1, #256
	ldr	r2, .L60+100
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L49:
	mov	r3, r6
	mov	r1, #256
	ldr	r2, .L60+104
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L57:
	mov	r3, r6
	mov	r1, #256
	ldr	r2, .L60+108
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L48:
	bl	__stack_chk_fail
.L58:
	mov	r3, r6
	mov	r1, #256
	ldr	r2, .L60+112
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L59:
	mov	r3, r6
	mov	r1, #256
	ldr	r2, .L60+116
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L56:
	mov	r3, r6
	mov	r1, #256
	ldr	r2, .L60+120
	add	r0, sp, #28
	bl	snprintf
	b	.L4
.L61:
	.align	2
.L60:
	.word	_SC_OPEN_MAX
	.word	.LC20
	.word	errno
	.word	EBADF
	.word	STDIN_FILENO
	.word	STDOUT_FILENO
	.word	STDERR_FILENO
	.word	.LC5
	.word	S_IFSOCK
	.word	.LC8
	.word	.LC3
	.word	.LC19
	.word	LOG_WARNING
	.word	.LC4
	.word	HAST_ROLE_PRIMARY
	.word	HAST_ROLE_SECONDARY
	.word	.LC18
	.word	.LC17
	.word	.LC10
	.word	.LC1
	.word	.LC2
	.word	.LC6
	.word	.LC0
	.word	.LC12
	.word	.LC15
	.word	.LC13
	.word	.LC7
	.word	.LC9
	.word	.LC11
	.word	.LC14
	.word	.LC16
	.size	descriptors_assert, .-descriptors_assert
	.comm	errno,4,4
	.comm	_SC_OPEN_MAX,4,4
	.comm	S_IFSOCK,4,4
	.comm	STDOUT_FILENO,4,4
	.comm	STDIN_FILENO,4,4
	.comm	STDERR_FILENO,4,4
	.comm	LOG_WARNING,4,4
	.comm	HAST_ROLE_SECONDARY,4,4
	.comm	HAST_ROLE_PRIMARY,4,4
	.comm	EBADF,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
