	.file	"extr_tuner-core.c_set_radio_freq.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"tuner type not set\n"
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC1:
	.string	"tuner has no way to set radio frequency\n"
	.align 8
.LC2:
	.string	"radio freq (%d.%02d) out of range (%d-%d)\n"
	.section	.rodata.str1.1
.LC3:
	.string	"radio freq set to %d.%02d\n"
	.text
	.p2align 4
	.type	set_radio_freq, @function
set_radio_freq:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	ebp, esi
	push	rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	sub	rsp, 40
	.cfi_def_cfa_offset 64
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 24[rsp], rax
	xor	eax, eax
	call	i2c_get_clientdata@PLT
	mov	edi, eax
	call	to_tuner@PLT
	mov	DWORD PTR [rsp], 0
	mov	rbx, rax
	mov	eax, DWORD PTR 24[rax]
	mov	DWORD PTR 4[rsp], eax
	mov	rax, QWORD PTR 28[rbx]
	mov	QWORD PTR 8[rsp], rax
	mov	rax, QWORD PTR UNSET[rip]
	cmp	QWORD PTR [rbx], rax
	je	.L12
	cmp	QWORD PTR 16[rbx], 0
	je	.L13
	mov	rax, QWORD PTR radio_range[rip]
	mov	ecx, DWORD PTR [rax]
	mov	r8d, DWORD PTR 4[rax]
	imul	eax, ecx, 16000
	cmp	eax, ebp
	ja	.L5
	imul	eax, r8d, 16000
	cmp	eax, ebp
	jb	.L5
.L6:
	mov	esi, ebp
	mov	edx, ebp
	lea	rdi, .LC3[rip]
	mov	DWORD PTR [rsp], ebp
	imul	rsi, rsi, 274877907
	shr	rsi, 42
	imul	eax, esi, 16000
	sub	edx, eax
	xor	eax, eax
	imul	edx, edx, 100
	imul	rdx, rdx, 274877907
	shr	rdx, 42
	call	tuner_dbg@PLT
	mov	DWORD PTR 8[rbx], ebp
	mov	rsi, rsp
	lea	rdi, 16[rbx]
	mov	DWORD PTR 12[rbx], 0
	call	[QWORD PTR 16[rbx]]
.L1:
	mov	rax, QWORD PTR 24[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L14
	add	rsp, 40
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5:
	.cfi_restore_state
	mov	esi, ebp
	mov	edx, ebp
	lea	rdi, .LC2[rip]
	imul	rsi, rsi, 274877907
	shr	rsi, 42
	imul	eax, esi, 16000
	sub	edx, eax
	xor	eax, eax
	imul	edx, edx, 100
	imul	rdx, rdx, 274877907
	shr	rdx, 42
	call	tuner_dbg@PLT
	mov	rdx, QWORD PTR radio_range[rip]
	imul	eax, DWORD PTR [rdx], 16000
	cmp	eax, ebp
	jbe	.L15
	mov	ebp, eax
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L15:
	imul	ebp, DWORD PTR 4[rdx], 16000
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L12:
	lea	rdi, .LC0[rip]
	call	tuner_warn@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L13:
	lea	rdi, .LC1[rip]
	call	tuner_warn@PLT
	jmp	.L1
.L14:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	set_radio_freq, .-set_radio_freq
	.comm	radio_range,8,8
	.comm	UNSET,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_tuner-core.c_set_radio_freq.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"tuner type not set\012\000"
	.align	2
.LC1:
	.ascii	"tuner has no way to set radio frequency\012\000"
	.align	2
.LC2:
	.ascii	"radio freq (%d.%02d) out of range (%d-%d)\012\000"
	.align	2
.LC3:
	.ascii	"radio freq set to %d.%02d\012\000"
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_radio_freq, %function
set_radio_freq:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, lr}
	ldr	r3, .L15
	sub	sp, sp, #32
	ldr	r3, [r3]
	str	r3, [sp, #28]
	mov	r3,#0
	mov	r4, r1
	bl	i2c_get_clientdata
	bl	to_tuner
	mov	r5, r0
	mov	r3, #0
	ldr	r2, .L15+4
	ldr	r1, [r0]
	ldr	r2, [r2]
	ldr	r0, [r0, #16]
	cmp	r1, r2
	ldr	r1, [r5, #20]
	ldr	r2, [r5, #24]
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	str	r2, [sp, #24]
	str	r3, [sp, #12]
	beq	.L12
	ldr	r3, [r5, #12]
	cmp	r3, #0
	beq	.L13
	ldr	r6, .L15+8
	ldr	r2, [r6]
	ldr	r3, [r2]
	ldr	r1, [r2, #4]
	rsb	r2, r3, r3, lsl #5
	add	r2, r3, r2, lsl #2
	cmp	r4, r2, lsl #7
	bcc	.L5
	rsb	r2, r1, r1, lsl #5
	add	r2, r1, r2, lsl #2
	cmp	r4, r2, lsl #7
	bhi	.L5
.L6:
	ldr	r0, .L15+12
	str	r4, [sp, #12]
	umull	r3, r1, r0, r4
	lsr	r1, r1, #10
	rsb	r3, r1, r1, lsl #5
	add	r3, r1, r3, lsl #2
	sub	r3, r4, r3, lsl #7
	add	r3, r3, r3, lsl #2
	add	r2, r3, r3, lsl #2
	lsl	r2, r2, #2
	umull	r3, r2, r0, r2
	ldr	r0, .L15+16
	lsr	r2, r2, #10
	bl	tuner_dbg
	mov	r3, #0
	str	r4, [r5, #4]
	str	r3, [r5, #8]
	add	r0, r5, #12
	ldr	r3, [r5, #12]
	add	r1, sp, #12
	blx	r3
.L1:
	ldr	r3, .L15
	ldr	r2, [r3]
	ldr	r3, [sp, #28]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L14
	add	sp, sp, #32
	@ sp needed
	pop	{r4, r5, r6, pc}
.L5:
	ldr	ip, .L15+12
	str	r1, [sp]
	umull	r2, r1, ip, r4
	lsr	r1, r1, #10
	rsb	r0, r1, r1, lsl #5
	add	r0, r1, r0, lsl #2
	sub	r0, r4, r0, lsl #7
	add	r0, r0, r0, lsl #2
	add	r2, r0, r0, lsl #2
	lsl	r2, r2, #2
	umull	r0, r2, ip, r2
	ldr	r0, .L15+20
	lsr	r2, r2, #10
	bl	tuner_dbg
	ldr	r3, [r6]
	ldr	r1, [r3]
	rsb	r2, r1, r1, lsl #5
	add	r1, r1, r2, lsl #2
	cmp	r4, r1, lsl #7
	lsl	r4, r1, #7
	ldrcs	r4, [r3, #4]
	rsbcs	r1, r4, r4, lsl #5
	addcs	r4, r4, r1, lsl #2
	lslcs	r4, r4, #7
	b	.L6
.L12:
	ldr	r0, .L15+24
	bl	tuner_warn
	b	.L1
.L13:
	ldr	r0, .L15+28
	bl	tuner_warn
	b	.L1
.L14:
	bl	__stack_chk_fail
.L16:
	.align	2
.L15:
	.word	.LC4
	.word	UNSET
	.word	radio_range
	.word	274877907
	.word	.LC3
	.word	.LC2
	.word	.LC0
	.word	.LC1
	.size	set_radio_freq, .-set_radio_freq
	.comm	radio_range,4,4
	.comm	UNSET,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
