	.file	"extr_ibxm.c_channel_tick.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	channel_tick, @function
channel_tick:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rax, QWORD PTR [rdi]
	mov	rbp, rdi
	add	DWORD PTR 96[rdi], 1
	lea	rdx, 1[rax]
	mov	eax, DWORD PTR 40[rdi]
	mov	QWORD PTR 104[rdi], 0
	mov	QWORD PTR [rdi], rdx
	cmp	eax, 125
	je	.L87
	mov	ecx, DWORD PTR 56[rdi]
	mov	edx, ecx
	and	edx, 240
	cmp	edx, 208
	je	.L5
	jg	.L6
	cmp	edx, 112
	je	.L7
	cmp	edx, 176
	jne	.L88
.L8:
	mov	eax, DWORD PTR 32[rbp]
	add	DWORD PTR 36[rbp], eax
	xor	esi, esi
	mov	rdi, rbp
	call	channel_vibrato@PLT
	mov	eax, DWORD PTR 40[rbp]
	.p2align 4,,10
	.p2align 3
.L10:
	cmp	eax, 29
	jle	.L89
.L17:
	sub	eax, 121
	cmp	eax, 132
	ja	.L19
	lea	rdx, .L21[rip]
	movsx	rax, DWORD PTR [rdx+rax*4]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L21:
	.long	.L35-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L22-.L21
	.long	.L20-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L34-.L21
	.long	.L33-.L21
	.long	.L32-.L21
	.long	.L31-.L21
	.long	.L30-.L21
	.long	.L29-.L21
	.long	.L28-.L21
	.long	.L27-.L21
	.long	.L26-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L25-.L21
	.long	.L24-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L23-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L19-.L21
	.long	.L22-.L21
	.long	.L20-.L21
	.text
	.p2align 4,,10
	.p2align 3
.L6:
	cmp	edx, 224
	je	.L11
	cmp	edx, 240
	jne	.L10
.L12:
	mov	rdi, rbp
	call	channel_tone_porta@PLT
	mov	eax, DWORD PTR 40[rbp]
	cmp	eax, 29
	jg	.L17
	.p2align 4,,10
	.p2align 3
.L89:
	test	eax, eax
	jg	.L90
.L19:
	mov	rdi, rbp
	call	channel_auto_vibrato@PLT
	mov	rdi, rbp
	call	channel_calculate_freq@PLT
	mov	rdi, rbp
	call	channel_calculate_ampl@PLT
	mov	rdi, rbp
	pop	rbp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	channel_update_envelopes@PLT
	.p2align 4,,10
	.p2align 3
.L88:
	.cfi_restore_state
	cmp	edx, 96
	jne	.L10
.L9:
	mov	edx, DWORD PTR 8[rbp]
	and	ecx, 15
	sub	edx, ecx
	mov	ecx, 0
	cmovs	edx, ecx
	mov	DWORD PTR 8[rbp], edx
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L90:
	cmp	eax, 29
	ja	.L19
	lea	rdx, .L36[rip]
	movsx	rax, DWORD PTR [rdx+rax*4]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L36:
	.long	.L19-.L36
	.long	.L32-.L36
	.long	.L33-.L36
	.long	.L31-.L36
	.long	.L30-.L36
	.long	.L26-.L36
	.long	.L27-.L36
	.long	.L24-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L34-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L38-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L19-.L36
	.long	.L37-.L36
	.long	.L19-.L36
	.long	.L25-.L36
	.long	.L19-.L36
	.long	.L29-.L36
	.text
	.p2align 4,,10
	.p2align 3
.L87:
	mov	rcx, QWORD PTR 48[rdi]
	cmp	rdx, rcx
	jle	.L4
	mov	ecx, DWORD PTR 56[rdi]
	mov	edx, ecx
	and	edx, 240
	cmp	edx, 208
	je	.L5
	jg	.L47
	cmp	edx, 112
	je	.L7
	cmp	edx, 176
	je	.L8
	cmp	edx, 96
	je	.L9
	jmp	.L19
.L37:
	mov	edx, DWORD PTR 20[rbp]
	mov	eax, edx
	and	edx, 15
	sar	eax, 4
	add	eax, DWORD PTR 12[rbp]
	sub	eax, edx
	js	.L91
	cmp	eax, 255
	mov	edx, 255
	cmovg	eax, edx
	mov	DWORD PTR 12[rbp], eax
	jmp	.L19
.L35:
	mov	rax, QWORD PTR 48[rbp]
	cmp	QWORD PTR 0[rbp], rax
	jl	.L19
	mov	QWORD PTR 0[rbp], 0
	mov	QWORD PTR 64[rbp], 0
	jmp	.L19
.L22:
	mov	rax, QWORD PTR 0[rbp]
	cmp	QWORD PTR 48[rbp], rax
	jne	.L19
	mov	DWORD PTR 8[rbp], 0
	jmp	.L19
.L34:
	mov	rdi, rbp
	call	channel_volume_slide@PLT
	jmp	.L19
.L33:
	mov	esi, DWORD PTR 88[rbp]
	mov	rdi, rbp
	call	channel_porta_down@PLT
	jmp	.L19
.L32:
	mov	esi, DWORD PTR 92[rbp]
	mov	rdi, rbp
	call	channel_porta_up@PLT
	jmp	.L19
.L31:
	mov	rdi, rbp
	call	channel_tone_porta@PLT
	jmp	.L19
.L30:
	mov	eax, DWORD PTR 32[rbp]
	add	DWORD PTR 36[rbp], eax
	xor	esi, esi
	mov	rdi, rbp
	call	channel_vibrato@PLT
	jmp	.L19
.L29:
	mov	rdi, rbp
	call	channel_tremor@PLT
	jmp	.L19
.L28:
	mov	rax, QWORD PTR 0[rbp]
	cmp	rax, 1
	je	.L92
	cmp	rax, 2
	je	.L93
	mov	QWORD PTR 0[rbp], 0
	mov	DWORD PTR 24[rbp], 0
	jmp	.L19
.L27:
	mov	eax, DWORD PTR 32[rbp]
	add	DWORD PTR 36[rbp], eax
	mov	rdi, rbp
	xor	esi, esi
	call	channel_vibrato@PLT
	mov	rdi, rbp
	call	channel_volume_slide@PLT
	jmp	.L19
.L26:
	mov	rdi, rbp
	call	channel_tone_porta@PLT
	mov	rdi, rbp
	call	channel_volume_slide@PLT
	jmp	.L19
.L25:
	mov	rdi, rbp
	call	channel_retrig_vol_slide@PLT
	jmp	.L19
.L24:
	mov	eax, DWORD PTR 80[rbp]
	add	DWORD PTR 84[rbp], eax
	mov	rdi, rbp
	call	channel_tremolo@PLT
	jmp	.L19
.L23:
	mov	eax, DWORD PTR 32[rbp]
	add	DWORD PTR 36[rbp], eax
	mov	esi, 1
	mov	rdi, rbp
	call	channel_vibrato@PLT
	jmp	.L19
.L38:
	mov	edx, DWORD PTR 16[rbp]
	mov	rcx, QWORD PTR 72[rbp]
	mov	eax, edx
	and	edx, 15
	sar	eax, 4
	add	eax, DWORD PTR [rcx]
	sub	eax, edx
	js	.L94
	cmp	eax, 64
	mov	edx, 64
	cmovg	eax, edx
	mov	DWORD PTR [rcx], eax
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L11:
	and	ecx, 15
	add	ecx, DWORD PTR 12[rbp]
	mov	edx, 255
	cmp	ecx, 255
	cmovg	ecx, edx
	mov	DWORD PTR 12[rbp], ecx
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L7:
	and	ecx, 15
	add	ecx, DWORD PTR 8[rbp]
	mov	edx, 64
	cmp	ecx, 64
	cmovg	ecx, edx
	mov	DWORD PTR 8[rbp], ecx
	jmp	.L10
.L20:
	mov	rcx, QWORD PTR 48[rbp]
	mov	rdx, QWORD PTR 0[rbp]
	.p2align 4,,10
	.p2align 3
.L4:
	cmp	rdx, rcx
	jne	.L19
	mov	rdi, rbp
	call	channel_trigger@PLT
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L47:
	cmp	edx, 224
	je	.L11
	cmp	edx, 240
	je	.L12
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L5:
	mov	edx, DWORD PTR 12[rbp]
	and	ecx, 15
	sub	edx, ecx
	mov	ecx, 0
	cmovs	edx, ecx
	mov	DWORD PTR 12[rbp], edx
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L91:
	mov	DWORD PTR 12[rbp], 0
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L94:
	mov	DWORD PTR [rcx], 0
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L92:
	mov	eax, DWORD PTR 28[rbp]
	sar	eax, 4
	mov	DWORD PTR 24[rbp], eax
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L93:
	mov	eax, DWORD PTR 28[rbp]
	and	eax, 15
	mov	DWORD PTR 24[rbp], eax
	jmp	.L19
	.cfi_endproc
.LFE0:
	.size	channel_tick, .-channel_tick
	.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_ibxm.c_channel_tick.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	channel_tick, %function
channel_tick:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, lr}
	mov	r4, r0
	mov	r0, #0
	ldr	r1, [r4, #76]
	ldr	r2, [r4]
	ldr	r3, [r4, #36]
	add	r1, r1, #1
	add	r2, r2, #1
	cmp	r3, #125
	str	r0, [r4, #80]
	str	r1, [r4, #76]
	str	r2, [r4]
	beq	.L91
	ldr	r1, [r4, #44]
	and	r2, r1, #240
	cmp	r2, #208
	beq	.L5
	bgt	.L6
	cmp	r2, #112
	beq	.L7
	cmp	r2, #176
	bne	.L92
.L8:
	ldr	r3, [r4, #32]
	ldr	r2, [r4, #28]
	mov	r1, #0
	add	r3, r3, r2
	str	r3, [r4, #32]
	mov	r0, r4
	bl	channel_vibrato
	ldr	r3, [r4, #36]
.L10:
	cmp	r3, #29
	ble	.L93
.L17:
	sub	r3, r3, #121
	cmp	r3, #132
	bhi	.L19
	cmp	r3, #132
	ldrls	pc, [pc, r3, asl #2]
	b	.L19
.L21:
	.word	.L35
	.word	.L19
	.word	.L19
	.word	.L22
	.word	.L20
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L34
	.word	.L33
	.word	.L32
	.word	.L31
	.word	.L30
	.word	.L29
	.word	.L28
	.word	.L27
	.word	.L26
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L25
	.word	.L24
	.word	.L19
	.word	.L19
	.word	.L23
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L22
	.word	.L20
.L6:
	cmp	r2, #224
	beq	.L11
	cmp	r2, #240
	bne	.L10
.L12:
	mov	r0, r4
	bl	channel_tone_porta
	ldr	r3, [r4, #36]
	cmp	r3, #29
	bgt	.L17
.L93:
	cmp	r3, #0
	bgt	.L94
.L19:
	mov	r0, r4
	bl	channel_auto_vibrato
	mov	r0, r4
	bl	channel_calculate_freq
	mov	r0, r4
	bl	channel_calculate_ampl
	mov	r0, r4
	pop	{r4, lr}
	b	channel_update_envelopes
.L92:
	cmp	r2, #96
	bne	.L10
.L9:
	ldr	r2, [r4, #4]
	and	r1, r1, #15
	subs	r1, r2, r1
	movmi	r2, #0
	strmi	r2, [r4, #4]
	bmi	.L10
.L86:
	str	r1, [r4, #4]
	b	.L10
.L94:
	sub	r3, r3, #1
	cmp	r3, #28
	ldrls	pc, [pc, r3, asl #2]
	b	.L19
.L36:
	.word	.L32
	.word	.L33
	.word	.L31
	.word	.L30
	.word	.L26
	.word	.L27
	.word	.L24
	.word	.L19
	.word	.L19
	.word	.L34
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L38
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L19
	.word	.L37
	.word	.L19
	.word	.L25
	.word	.L19
	.word	.L29
.L91:
	ldr	r1, [r4, #40]
	cmp	r2, r1
	ble	.L4
	ldr	r1, [r4, #44]
	and	r2, r1, #240
	cmp	r2, #208
	beq	.L5
	bgt	.L47
	cmp	r2, #112
	beq	.L7
	cmp	r2, #176
	beq	.L8
	cmp	r2, #96
	beq	.L9
	b	.L19
.L37:
	ldr	r1, [r4, #16]
	ldr	r3, [r4, #8]
	and	r2, r1, #15
	add	r3, r3, r1, asr #4
	subs	r3, r3, r2
	movmi	r3, #0
	strmi	r3, [r4, #8]
	bmi	.L19
	cmp	r3, #255
	movgt	r3, #255
	str	r3, [r4, #8]
	b	.L19
.L35:
	ldr	r2, [r4]
	ldr	r3, [r4, #40]
	cmp	r2, r3
	movge	r3, #0
	strge	r3, [r4]
	strge	r3, [r4, #48]
	strge	r3, [r4, #52]
	b	.L19
.L22:
	ldr	r3, [r4]
	ldr	r2, [r4, #40]
	cmp	r2, r3
	moveq	r3, #0
	streq	r3, [r4, #4]
	b	.L19
.L34:
	mov	r0, r4
	bl	channel_volume_slide
	b	.L19
.L33:
	mov	r0, r4
	ldr	r1, [r4, #68]
	bl	channel_porta_down
	b	.L19
.L32:
	mov	r0, r4
	ldr	r1, [r4, #72]
	bl	channel_porta_up
	b	.L19
.L31:
	mov	r0, r4
	bl	channel_tone_porta
	b	.L19
.L30:
	ldr	r3, [r4, #32]
	ldr	r2, [r4, #28]
	mov	r1, #0
	add	r3, r3, r2
	mov	r0, r4
	str	r3, [r4, #32]
	bl	channel_vibrato
	b	.L19
.L29:
	mov	r0, r4
	bl	channel_tremor
	b	.L19
.L28:
	ldr	r3, [r4]
	cmp	r3, #1
	beq	.L95
	cmp	r3, #2
	movne	r3, #0
	ldreq	r3, [r4, #24]
	strne	r3, [r4]
	andeq	r3, r3, #15
	str	r3, [r4, #20]
	b	.L19
.L27:
	ldr	r3, [r4, #32]
	ldr	r2, [r4, #28]
	mov	r1, #0
	add	r3, r3, r2
	mov	r0, r4
	str	r3, [r4, #32]
	bl	channel_vibrato
	mov	r0, r4
	bl	channel_volume_slide
	b	.L19
.L26:
	mov	r0, r4
	bl	channel_tone_porta
	mov	r0, r4
	bl	channel_volume_slide
	b	.L19
.L25:
	mov	r0, r4
	bl	channel_retrig_vol_slide
	b	.L19
.L24:
	ldr	r3, [r4, #64]
	ldr	r2, [r4, #60]
	mov	r0, r4
	add	r3, r3, r2
	str	r3, [r4, #64]
	bl	channel_tremolo
	b	.L19
.L23:
	ldr	r3, [r4, #32]
	ldr	r2, [r4, #28]
	mov	r1, #1
	add	r3, r3, r2
	mov	r0, r4
	str	r3, [r4, #32]
	bl	channel_vibrato
	b	.L19
.L38:
	ldr	r0, [r4, #56]
	ldr	r1, [r4, #12]
	ldr	r3, [r0]
	and	r2, r1, #15
	add	r3, r3, r1, asr #4
	subs	r3, r3, r2
	movmi	r3, #0
	strmi	r3, [r0]
	bmi	.L19
	cmp	r3, #64
	movgt	r3, #64
	str	r3, [r0]
	b	.L19
.L11:
	ldr	r2, [r4, #8]
	and	r1, r1, #15
	add	r1, r1, r2
	cmp	r1, #255
	movgt	r2, #255
	strgt	r2, [r4, #8]
	bgt	.L10
.L87:
	str	r1, [r4, #8]
	b	.L10
.L7:
	ldr	r2, [r4, #4]
	and	r1, r1, #15
	add	r1, r1, r2
	cmp	r1, #64
	movgt	r2, #64
	strgt	r2, [r4, #4]
	bgt	.L10
	b	.L86
.L20:
	ldr	r1, [r4, #40]
	ldr	r2, [r4]
.L4:
	cmp	r2, r1
	bne	.L19
	mov	r0, r4
	bl	channel_trigger
	b	.L19
.L47:
	cmp	r2, #224
	beq	.L11
	cmp	r2, #240
	beq	.L12
	b	.L19
.L5:
	ldr	r2, [r4, #8]
	and	r1, r1, #15
	subs	r1, r2, r1
	movmi	r2, #0
	strmi	r2, [r4, #8]
	bpl	.L87
	b	.L10
.L95:
	ldr	r3, [r4, #24]
	asr	r3, r3, #4
	str	r3, [r4, #20]
	b	.L19
	.size	channel_tick, .-channel_tick
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
