	.file	"extr_daemon.c_daemon_fork.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC0:
	.string	"Could not create views: out of memory"
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC1:
	.string	"Could not set up views"
	.section	.rodata.str1.8
	.align 8
.LC2:
	.string	"Could not setup access control list"
	.align 8
.LC3:
	.string	"Could not setup TCP connection limits"
	.align 8
.LC4:
	.string	"dnscrypt enabled in config but unbound was not built with dnscrypt support"
	.align 8
.LC5:
	.string	"Could not create local zones: out of memory"
	.section	.rodata.str1.1
.LC6:
	.string	"Could not set up local zones"
	.section	.rodata.str1.8
	.align 8
.LC7:
	.string	"Could not create response IP set"
	.align 8
.LC8:
	.string	"Could not set up response IP set"
	.align 8
.LC9:
	.string	"Could not set up per-view response IP sets"
	.section	.rodata.str1.1
.LC10:
	.string	"auth_zones could not be setup"
.LC11:
	.string	"respip"
	.section	.rodata.str1.8
	.align 8
.LC12:
	.string	"response-ip options require respip module"
	.align 8
.LC13:
	.string	"Could not initialize main thread"
	.section	.rodata.str1.1
.LC14:
	.string	"SHM has failed"
.LC15:
	.string	"start of service (%s)."
.LC16:
	.string	"service stopped (%s)."
	.text
	.p2align 4
	.globl	daemon_fork
	.type	daemon_fork, @function
daemon_fork:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	mov	rbx, rdi
	sub	rsp, 16
	.cfi_def_cfa_offset 32
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 8[rsp], rax
	xor	eax, eax
	mov	DWORD PTR 4[rsp], 0
	call	log_assert@PLT
	xor	eax, eax
	call	views_create@PLT
	mov	DWORD PTR 60[rbx], eax
	mov	edi, eax
	test	eax, eax
	je	.L25
	mov	rsi, QWORD PTR 32[rbx]
	call	views_apply_cfg@PLT
	test	eax, eax
	je	.L26
.L3:
	mov	edx, DWORD PTR 60[rbx]
	mov	rsi, QWORD PTR 32[rbx]
	mov	edi, DWORD PTR 76[rbx]
	call	acl_list_apply_cfg@PLT
	test	eax, eax
	je	.L27
.L4:
	mov	rsi, QWORD PTR 32[rbx]
	mov	edi, DWORD PTR 72[rbx]
	call	tcl_list_apply_cfg@PLT
	test	eax, eax
	je	.L28
.L5:
	mov	rax, QWORD PTR 32[rbx]
	cmp	QWORD PTR [rax], 0
	jne	.L29
.L6:
	xor	eax, eax
	call	local_zones_create@PLT
	mov	DWORD PTR 64[rbx], eax
	mov	edi, eax
	test	eax, eax
	je	.L30
.L7:
	mov	rsi, QWORD PTR 32[rbx]
	call	local_zones_apply_cfg@PLT
	test	eax, eax
	je	.L31
.L8:
	xor	eax, eax
	call	respip_set_create@PLT
	mov	DWORD PTR 56[rbx], eax
	mov	edi, eax
	test	eax, eax
	je	.L32
.L9:
	mov	rsi, QWORD PTR 32[rbx]
	call	respip_global_apply_cfg@PLT
	test	eax, eax
	je	.L33
.L10:
	mov	rsi, QWORD PTR 32[rbx]
	mov	edi, DWORD PTR 60[rbx]
	lea	rdx, 4[rsp]
	call	respip_views_apply_cfg@PLT
	test	eax, eax
	je	.L34
.L11:
	mov	edi, DWORD PTR 56[rbx]
	call	respip_set_is_empty@PLT
	mov	r8d, eax
	mov	eax, 1
	test	r8d, r8d
	je	.L12
	mov	edx, DWORD PTR 4[rsp]
	xor	eax, eax
	test	edx, edx
	setne	al
.L12:
	mov	DWORD PTR [rbx], eax
	mov	rax, QWORD PTR 48[rbx]
	mov	edx, 1
	mov	rsi, QWORD PTR 32[rbx]
	mov	edi, DWORD PTR [rax]
	call	auth_zones_apply_cfg@PLT
	test	eax, eax
	je	.L35
.L13:
	mov	rdi, rbx
	call	daemon_setup_modules@PLT
	mov	eax, DWORD PTR [rbx]
	test	eax, eax
	jne	.L36
.L15:
	mov	rdi, rbx
	call	daemon_create_workers@PLT
	mov	rdi, rbx
	call	daemon_start_others@PLT
	mov	rdx, QWORD PTR 24[rbx]
	mov	rax, QWORD PTR 8[rbx]
	mov	ecx, 1
	mov	rsi, QWORD PTR 32[rbx]
	mov	edx, DWORD PTR [rdx]
	mov	rdi, QWORD PTR [rax]
	call	worker_init@PLT
	test	eax, eax
	je	.L37
.L17:
	mov	rax, QWORD PTR 8[rbx]
	mov	rdi, QWORD PTR [rax]
	call	signal_handling_playback@PLT
	mov	rdi, rbx
	call	shm_main_init@PLT
	test	eax, eax
	je	.L38
.L18:
	mov	esi, DWORD PTR PACKAGE_STRING[rip]
	lea	rdi, .LC15[rip]
	call	log_info@PLT
	mov	rax, QWORD PTR 8[rbx]
	mov	rdi, QWORD PTR [rax]
	call	worker_work@PLT
	mov	esi, DWORD PTR PACKAGE_STRING[rip]
	lea	rdi, .LC16[rip]
	call	log_info@PLT
	mov	rdi, rbx
	call	daemon_stop_others@PLT
	mov	rdi, rbx
	call	shm_main_shutdown@PLT
	mov	rax, QWORD PTR 8[rbx]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 16[rbx], rax
	mov	rax, QWORD PTR 8[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L39
	add	rsp, 16
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	pop	rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L25:
	.cfi_restore_state
	lea	rdi, .LC0[rip]
	call	fatal_exit@PLT
	mov	edi, DWORD PTR 60[rbx]
	mov	rsi, QWORD PTR 32[rbx]
	call	views_apply_cfg@PLT
	test	eax, eax
	jne	.L3
.L26:
	lea	rdi, .LC1[rip]
	call	fatal_exit@PLT
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L38:
	lea	rdi, .LC14[rip]
	call	log_warn@PLT
	jmp	.L18
	.p2align 4,,10
	.p2align 3
.L37:
	lea	rdi, .LC13[rip]
	call	fatal_exit@PLT
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L36:
	lea	rdi, 40[rbx]
	lea	rsi, .LC11[rip]
	call	modstack_find@PLT
	test	rax, rax
	jns	.L15
	lea	rdi, .LC12[rip]
	call	fatal_exit@PLT
	jmp	.L15
	.p2align 4,,10
	.p2align 3
.L35:
	lea	rdi, .LC10[rip]
	call	fatal_exit@PLT
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L34:
	lea	rdi, .LC9[rip]
	call	fatal_exit@PLT
	jmp	.L11
	.p2align 4,,10
	.p2align 3
.L33:
	lea	rdi, .LC8[rip]
	call	fatal_exit@PLT
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L32:
	lea	rdi, .LC7[rip]
	call	fatal_exit@PLT
	mov	edi, DWORD PTR 56[rbx]
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L31:
	lea	rdi, .LC6[rip]
	call	fatal_exit@PLT
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L30:
	lea	rdi, .LC5[rip]
	call	fatal_exit@PLT
	mov	edi, DWORD PTR 64[rbx]
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L29:
	lea	rdi, .LC4[rip]
	call	fatal_exit@PLT
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L28:
	lea	rdi, .LC3[rip]
	call	fatal_exit@PLT
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L27:
	lea	rdi, .LC2[rip]
	call	fatal_exit@PLT
	jmp	.L4
.L39:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	daemon_fork, .-daemon_fork
	.comm	PACKAGE_STRING,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_daemon.c_daemon_fork.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"Could not create views: out of memory\000"
	.align	2
.LC1:
	.ascii	"Could not set up views\000"
	.align	2
.LC2:
	.ascii	"Could not setup access control list\000"
	.align	2
.LC3:
	.ascii	"Could not setup TCP connection limits\000"
	.align	2
.LC4:
	.ascii	"dnscrypt enabled in config but unbound was not buil"
	.ascii	"t with dnscrypt support\000"
	.align	2
.LC5:
	.ascii	"Could not create local zones: out of memory\000"
	.align	2
.LC6:
	.ascii	"Could not set up local zones\000"
	.align	2
.LC7:
	.ascii	"Could not create response IP set\000"
	.align	2
.LC8:
	.ascii	"Could not set up response IP set\000"
	.align	2
.LC9:
	.ascii	"Could not set up per-view response IP sets\000"
	.align	2
.LC10:
	.ascii	"auth_zones could not be setup\000"
	.align	2
.LC11:
	.ascii	"respip\000"
	.align	2
.LC12:
	.ascii	"response-ip options require respip module\000"
	.align	2
.LC13:
	.ascii	"Could not initialize main thread\000"
	.align	2
.LC14:
	.ascii	"SHM has failed\000"
	.align	2
.LC15:
	.ascii	"start of service (%s).\000"
	.align	2
.LC16:
	.ascii	"service stopped (%s).\000"
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC17:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	daemon_fork
	.syntax unified
	.arm
	.fpu softvfp
	.type	daemon_fork, %function
daemon_fork:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r3, #0
	push	{r4, r5, lr}
	ldr	r2, .L41
	sub	sp, sp, #12
	ldr	r2, [r2]
	str	r2, [sp, #4]
	mov	r2,#0
	mov	r4, r0
	str	r3, [sp]
	bl	log_assert
	bl	views_create
	cmp	r0, #0
	str	r0, [r4, #32]
	beq	.L26
	ldr	r1, [r4, #16]
	bl	views_apply_cfg
	cmp	r0, #0
	beq	.L27
.L3:
	ldr	r2, [r4, #32]
	ldr	r1, [r4, #16]
	ldr	r0, [r4, #48]
	bl	acl_list_apply_cfg
	cmp	r0, #0
	beq	.L28
.L4:
	ldr	r1, [r4, #16]
	ldr	r0, [r4, #44]
	bl	tcl_list_apply_cfg
	cmp	r0, #0
	beq	.L29
.L5:
	ldr	r3, [r4, #16]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L30
.L6:
	bl	local_zones_create
	cmp	r0, #0
	str	r0, [r4, #36]
	beq	.L31
.L7:
	ldr	r1, [r4, #16]
	bl	local_zones_apply_cfg
	cmp	r0, #0
	beq	.L32
.L8:
	bl	respip_set_create
	cmp	r0, #0
	str	r0, [r4, #28]
	beq	.L33
.L9:
	ldr	r1, [r4, #16]
	bl	respip_global_apply_cfg
	cmp	r0, #0
	beq	.L34
.L10:
	mov	r2, sp
	ldr	r1, [r4, #16]
	ldr	r0, [r4, #32]
	bl	respip_views_apply_cfg
	cmp	r0, #0
	beq	.L35
.L11:
	ldr	r0, [r4, #28]
	bl	respip_set_is_empty
	cmp	r0, #0
	moveq	r3, #1
	beq	.L12
	ldr	r3, [sp]
	subs	r3, r3, #0
	movne	r3, #1
.L12:
	ldr	r2, [r4, #24]
	ldr	r1, [r4, #16]
	ldr	r0, [r2]
	str	r3, [r4]
	mov	r2, #1
	bl	auth_zones_apply_cfg
	cmp	r0, #0
	beq	.L36
.L13:
	mov	r0, r4
	bl	daemon_setup_modules
	ldr	r3, [r4]
	cmp	r3, #0
	bne	.L37
.L15:
	mov	r0, r4
	bl	daemon_create_workers
	mov	r0, r4
	bl	daemon_start_others
	ldr	r3, [r4, #4]
	ldr	r2, [r4, #12]
	ldr	r0, [r3]
	ldr	r2, [r2]
	mov	r3, #1
	ldr	r1, [r4, #16]
	bl	worker_init
	cmp	r0, #0
	beq	.L38
.L17:
	ldr	r3, [r4, #4]
	ldr	r0, [r3]
	bl	signal_handling_playback
	mov	r0, r4
	bl	shm_main_init
	cmp	r0, #0
	beq	.L39
.L18:
	ldr	r5, .L41+4
	ldr	r0, .L41+8
	ldr	r1, [r5]
	bl	log_info
	ldr	r3, [r4, #4]
	ldr	r0, [r3]
	bl	worker_work
	ldr	r1, [r5]
	ldr	r0, .L41+12
	bl	log_info
	mov	r0, r4
	bl	daemon_stop_others
	mov	r0, r4
	bl	shm_main_shutdown
	ldr	r3, [r4, #4]
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [r4, #8]
	ldr	r3, .L41
	ldr	r2, [r3]
	ldr	r3, [sp, #4]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L40
	add	sp, sp, #12
	@ sp needed
	pop	{r4, r5, pc}
.L26:
	ldr	r0, .L41+16
	bl	fatal_exit
	ldr	r0, [r4, #32]
	ldr	r1, [r4, #16]
	bl	views_apply_cfg
	cmp	r0, #0
	bne	.L3
.L27:
	ldr	r0, .L41+20
	bl	fatal_exit
	b	.L3
.L39:
	ldr	r0, .L41+24
	bl	log_warn
	b	.L18
.L38:
	ldr	r0, .L41+28
	bl	fatal_exit
	b	.L17
.L37:
	ldr	r1, .L41+32
	add	r0, r4, #20
	bl	modstack_find
	cmp	r0, #0
	bge	.L15
	ldr	r0, .L41+36
	bl	fatal_exit
	b	.L15
.L36:
	ldr	r0, .L41+40
	bl	fatal_exit
	b	.L13
.L35:
	ldr	r0, .L41+44
	bl	fatal_exit
	b	.L11
.L34:
	ldr	r0, .L41+48
	bl	fatal_exit
	b	.L10
.L33:
	ldr	r0, .L41+52
	bl	fatal_exit
	ldr	r0, [r4, #28]
	b	.L9
.L32:
	ldr	r0, .L41+56
	bl	fatal_exit
	b	.L8
.L31:
	ldr	r0, .L41+60
	bl	fatal_exit
	ldr	r0, [r4, #36]
	b	.L7
.L30:
	ldr	r0, .L41+64
	bl	fatal_exit
	b	.L6
.L29:
	ldr	r0, .L41+68
	bl	fatal_exit
	b	.L5
.L28:
	ldr	r0, .L41+72
	bl	fatal_exit
	b	.L4
.L40:
	bl	__stack_chk_fail
.L42:
	.align	2
.L41:
	.word	.LC17
	.word	PACKAGE_STRING
	.word	.LC15
	.word	.LC16
	.word	.LC0
	.word	.LC1
	.word	.LC14
	.word	.LC13
	.word	.LC11
	.word	.LC12
	.word	.LC10
	.word	.LC9
	.word	.LC8
	.word	.LC7
	.word	.LC6
	.word	.LC5
	.word	.LC4
	.word	.LC3
	.word	.LC2
	.size	daemon_fork, .-daemon_fork
	.comm	PACKAGE_STRING,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
