	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function dyn_tick
_dyn_tick:                              ## @dyn_tick
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r14
	pushq	%rbx
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	movq	%rdi, %r14
	callq	_CURVNET_SET
	movq	_V_layer3_chain@GOTPCREL(%rip), %rbx
	movq	%rbx, %rdi
	callq	_dyn_free_states
	movq	%rbx, %rdi
	callq	_IPFW_UH_WLOCK
	movq	%rbx, %rdi
	xorl	%esi, %esi
	callq	_dyn_expire_states
	movq	%rbx, %rdi
	callq	_IPFW_UH_WUNLOCK
	movq	_V_dyn_keepalive@GOTPCREL(%rip), %rax
	cmpq	$0, (%rax)
	je	LBB0_3
## %bb.1:
	movq	_V_dyn_keepalive_last@GOTPCREL(%rip), %rax
	movq	_V_dyn_keepalive_period@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rdx
	addq	(%rax), %rdx
	movq	_time_uptime@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	cmpq	%rcx, %rdx
	jg	LBB0_3
## %bb.2:
	movq	%rcx, (%rax)
	movq	_V_layer3_chain@GOTPCREL(%rip), %rdi
	callq	_dyn_send_keepalive_ipv4
LBB0_3:
	movq	_V_curr_dyn_buckets@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	_V_dyn_buckets_max@GOTPCREL(%rip), %rbx
	cmpl	(%rbx), %eax
	jge	LBB0_8
## %bb.4:
	movq	_V_dyn_count@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edi
	movl	%edi, %ecx
	shrl	$31, %ecx
	addl	%edi, %ecx
	sarl	%ecx
	cmpl	%ecx, %eax
	jl	LBB0_7
## %bb.5:
	cmpl	%edi, %eax
	jge	LBB0_8
## %bb.6:
	movq	_V_curr_max_length@GOTPCREL(%rip), %rax
	cmpl	$9, (%rax)
	jl	LBB0_8
LBB0_7:
	callq	_fls
	movl	$1, %esi
	movl	%eax, %ecx
	shll	%cl, %esi
	movl	(%rbx), %eax
	cmpl	%eax, %esi
	cmovgel	%eax, %esi
	movq	_V_layer3_chain@GOTPCREL(%rip), %rdi
	callq	_dyn_grow_hashtable
LBB0_8:
	movq	_hz@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_V_dyn_timeout@GOTPCREL(%rip), %rdi
	leaq	_dyn_tick(%rip), %rdx
	movq	%r14, %rcx
	xorl	%r8d, %r8d
	callq	_callout_reset_on
	xorl	%eax, %eax
	popq	%rbx
	popq	%r14
	popq	%rbp
	jmp	_CURVNET_RESTORE                ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_V_layer3_chain,4,2             ## @V_layer3_chain
	.comm	_V_dyn_keepalive,8,3            ## @V_dyn_keepalive
	.comm	_V_dyn_keepalive_last,8,3       ## @V_dyn_keepalive_last
	.comm	_V_dyn_keepalive_period,8,3     ## @V_dyn_keepalive_period
	.comm	_time_uptime,8,3                ## @time_uptime
	.comm	_V_curr_dyn_buckets,4,2         ## @V_curr_dyn_buckets
	.comm	_V_dyn_buckets_max,4,2          ## @V_dyn_buckets_max
	.comm	_V_dyn_count,4,2                ## @V_dyn_count
	.comm	_V_curr_max_length,4,2          ## @V_curr_max_length
	.comm	_V_dyn_timeout,4,2              ## @V_dyn_timeout
	.comm	_hz,4,2                         ## @hz
	.no_dead_strip	_dyn_tick
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function dyn_tick
_dyn_tick:                              ; @dyn_tick
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x29, x30, [sp, #16]             ; 16-byte Folded Spill
	add	x29, sp, #16
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	mov	x19, x0
	bl	_CURVNET_SET
Lloh0:
	adrp	x20, _V_layer3_chain@GOTPAGE
Lloh1:
	ldr	x20, [x20, _V_layer3_chain@GOTPAGEOFF]
	mov	x0, x20
	bl	_dyn_free_states
	mov	x0, x20
	bl	_IPFW_UH_WLOCK
	mov	x0, x20
	mov	x1, #0
	bl	_dyn_expire_states
	mov	x0, x20
	bl	_IPFW_UH_WUNLOCK
Lloh2:
	adrp	x8, _V_dyn_keepalive@GOTPAGE
Lloh3:
	ldr	x8, [x8, _V_dyn_keepalive@GOTPAGEOFF]
Lloh4:
	ldr	x8, [x8]
	cbz	x8, LBB0_3
; %bb.1:
Lloh5:
	adrp	x8, _V_dyn_keepalive_last@GOTPAGE
Lloh6:
	ldr	x8, [x8, _V_dyn_keepalive_last@GOTPAGEOFF]
	ldr	x10, [x8]
Lloh7:
	adrp	x9, _V_dyn_keepalive_period@GOTPAGE
Lloh8:
	ldr	x9, [x9, _V_dyn_keepalive_period@GOTPAGEOFF]
Lloh9:
	ldr	x11, [x9]
Lloh10:
	adrp	x9, _time_uptime@GOTPAGE
Lloh11:
	ldr	x9, [x9, _time_uptime@GOTPAGEOFF]
Lloh12:
	ldr	x9, [x9]
	add	x10, x11, x10
	cmp	x10, x9
	b.gt	LBB0_3
; %bb.2:
	str	x9, [x8]
Lloh13:
	adrp	x0, _V_layer3_chain@GOTPAGE
Lloh14:
	ldr	x0, [x0, _V_layer3_chain@GOTPAGEOFF]
	bl	_dyn_send_keepalive_ipv4
LBB0_3:
Lloh15:
	adrp	x8, _V_curr_dyn_buckets@GOTPAGE
Lloh16:
	ldr	x8, [x8, _V_curr_dyn_buckets@GOTPAGEOFF]
Lloh17:
	ldr	w8, [x8]
Lloh18:
	adrp	x20, _V_dyn_buckets_max@GOTPAGE
Lloh19:
	ldr	x20, [x20, _V_dyn_buckets_max@GOTPAGEOFF]
	ldr	w9, [x20]
	cmp	w8, w9
	b.ge	LBB0_7
; %bb.4:
Lloh20:
	adrp	x9, _V_dyn_count@GOTPAGE
Lloh21:
	ldr	x9, [x9, _V_dyn_count@GOTPAGEOFF]
Lloh22:
	ldr	w0, [x9]
	cmp	w0, #0
	cinc	w9, w0, lt
	cmp	w8, w9, asr #1
	b.lt	LBB0_6
; %bb.5:
Lloh23:
	adrp	x9, _V_curr_max_length@GOTPAGE
Lloh24:
	ldr	x9, [x9, _V_curr_max_length@GOTPAGEOFF]
Lloh25:
	ldr	w9, [x9]
	cmp	w8, w0
	ccmp	w9, #9, #8, lt
	b.lt	LBB0_7
LBB0_6:
	bl	_fls
	mov	w8, #1
	lsl	w8, w8, w0
	ldr	w9, [x20]
	cmp	w8, w9
	csel	w1, w8, w9, lt
Lloh26:
	adrp	x0, _V_layer3_chain@GOTPAGE
Lloh27:
	ldr	x0, [x0, _V_layer3_chain@GOTPAGEOFF]
	bl	_dyn_grow_hashtable
LBB0_7:
Lloh28:
	adrp	x8, _hz@GOTPAGE
Lloh29:
	ldr	x8, [x8, _hz@GOTPAGEOFF]
Lloh30:
	ldr	w1, [x8]
Lloh31:
	adrp	x0, _V_dyn_timeout@GOTPAGE
Lloh32:
	ldr	x0, [x0, _V_dyn_timeout@GOTPAGEOFF]
Lloh33:
	adrp	x2, _dyn_tick@PAGE
Lloh34:
	add	x2, x2, _dyn_tick@PAGEOFF
	mov	x3, x19
	mov	w4, #0
	bl	_callout_reset_on
	ldp	x29, x30, [sp, #16]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp], #32             ; 16-byte Folded Reload
	b	_CURVNET_RESTORE
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpLdrGot	Lloh26, Lloh27
	.loh AdrpAdd	Lloh33, Lloh34
	.loh AdrpLdrGot	Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh28, Lloh29, Lloh30
	.cfi_endproc
                                        ; -- End function
	.comm	_V_layer3_chain,4,2             ; @V_layer3_chain
	.comm	_V_dyn_keepalive,8,3            ; @V_dyn_keepalive
	.comm	_V_dyn_keepalive_last,8,3       ; @V_dyn_keepalive_last
	.comm	_V_dyn_keepalive_period,8,3     ; @V_dyn_keepalive_period
	.comm	_time_uptime,8,3                ; @time_uptime
	.comm	_V_curr_dyn_buckets,4,2         ; @V_curr_dyn_buckets
	.comm	_V_dyn_buckets_max,4,2          ; @V_dyn_buckets_max
	.comm	_V_dyn_count,4,2                ; @V_dyn_count
	.comm	_V_curr_max_length,4,2          ; @V_curr_max_length
	.comm	_V_dyn_timeout,4,2              ; @V_dyn_timeout
	.comm	_hz,4,2                         ; @hz
	.no_dead_strip	_dyn_tick
.subsections_via_symbols
