	.file	"546039.c"
	.intel_syntax noprefix
	.text
	.globl	CTAB
	.data
	.align 32
	.type	CTAB, @object
	.size	CTAB, 128
CTAB:
	.long	843314856
	.long	497837829
	.long	263043836
	.long	133525158
	.long	67021686
	.long	33543515
	.long	16775850
	.long	8388437
	.long	4194282
	.long	2097149
	.long	1048575
	.long	524287
	.long	262143
	.long	131071
	.long	65535
	.long	32767
	.long	16383
	.long	8191
	.long	4095
	.long	2047
	.long	1023
	.long	511
	.long	255
	.long	127
	.long	63
	.long	31
	.long	15
	.long	8
	.long	4
	.long	2
	.long	1
	.long	0
	.text
	.globl	cordic
	.type	cordic, @function
cordic:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -32[rbp], 652032874
	mov	DWORD PTR -28[rbp], 0
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -24[rbp], eax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L2
.L5:
	cmp	DWORD PTR -24[rbp], 0
	js	.L3
	mov	eax, 0
	jmp	.L4
.L3:
	mov	eax, -1
.L4:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	xor	eax, DWORD PTR -16[rbp]
	sub	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	xor	eax, DWORD PTR -16[rbp]
	sub	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, CTAB[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	eax, DWORD PTR -16[rbp]
	sub	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	sub	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -24[rbp], eax
	add	DWORD PTR -20[rbp], 1
.L2:
	cmp	DWORD PTR -20[rbp], 31
	jle	.L5
	mov	eax, DWORD PTR -28[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	cordic, .-cordic
	.section	.rodata
	.align 8
.LC1:
	.string	"input: %d,\toutput: %d,\tcordic: %f,\tsin: %f\n"
	.text
	.globl	test
	.type	test, @function
test:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 16
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	movsd	QWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	movq	xmm0, rax
	call	sin@PLT
	movq	r12, xmm0
	movsd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR .LC0[rip]
	mulsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	mov	edi, eax
	call	cordic
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	movsd	xmm1, QWORD PTR .LC0[rip]
	divsd	xmm0, xmm1
	movq	rbx, xmm0
	movsd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR .LC0[rip]
	mulsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	mov	edi, eax
	call	cordic
	movsd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR .LC0[rip]
	mulsd	xmm0, xmm1
	cvttsd2si	rdx, xmm0
	mov	ecx, edx
	movq	xmm1, r12
	movq	xmm0, rbx
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC1[rip]
	mov	eax, 2
	call	printf@PLT
	nop
	add	rsp, 16
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	test, .-test
	.globl	main
	.type	main, @function
main:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	pxor	xmm0, xmm0
	call	test
	mov	rax, QWORD PTR .LC3[rip]
	movq	xmm0, rax
	call	test
	mov	rax, QWORD PTR .LC4[rip]
	movq	xmm0, rax
	call	test
	mov	rax, QWORD PTR .LC5[rip]
	movq	xmm0, rax
	call	test
	mov	rax, QWORD PTR .LC6[rip]
	movq	xmm0, rax
	call	test
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC0:
	.long	0
	.long	1104150528
	.align 8
.LC3:
	.long	942502757
	.long	1071694162
	.align 8
.LC4:
	.long	1413754136
	.long	1072243195
	.align 8
.LC5:
	.long	942502757
	.long	1072742738
	.align 8
.LC6:
	.long	1413754136
	.long	1073291771
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.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, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"546039.c"
	.text
	.global	CTAB
	.data
	.align	2
	.type	CTAB, %object
	.size	CTAB, 128
CTAB:
	.word	843314856
	.word	497837829
	.word	263043836
	.word	133525158
	.word	67021686
	.word	33543515
	.word	16775850
	.word	8388437
	.word	4194282
	.word	2097149
	.word	1048575
	.word	524287
	.word	262143
	.word	131071
	.word	65535
	.word	32767
	.word	16383
	.word	8191
	.word	4095
	.word	2047
	.word	1023
	.word	511
	.word	255
	.word	127
	.word	63
	.word	31
	.word	15
	.word	8
	.word	4
	.word	2
	.word	1
	.word	0
	.text
	.align	2
	.global	cordic
	.syntax unified
	.arm
	.fpu softvfp
	.type	cordic, %function
cordic:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #44
	str	r0, [fp, #-40]
	ldr	r3, .L7
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L2
.L5:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	blt	.L3
	mov	r3, #0
	b	.L4
.L3:
	mvn	r3, #0
.L4:
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	asr	r2, r2, r3
	ldr	r3, [fp, #-20]
	eor	r2, r2, r3
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	ldr	r2, [fp, #-36]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-24]
	asr	r2, r2, r3
	ldr	r3, [fp, #-20]
	eor	r2, r2, r3
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r2, .L7+4
	ldr	r3, [fp, #-24]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-20]
	eor	r2, r2, r3
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L2:
	ldr	r3, [fp, #-24]
	cmp	r3, #31
	ble	.L5
	ldr	r3, [fp, #-32]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L8:
	.align	2
.L7:
	.word	652032874
	.word	CTAB
	.size	cordic, .-cordic
	.global	__aeabi_dmul
	.global	__aeabi_d2uiz
	.global	__aeabi_d2iz
	.global	__aeabi_i2d
	.global	__aeabi_ddiv
	.section	.rodata
	.align	2
.LC0:
	.ascii	"input: %d,\011output: %d,\011cordic: %f,\011sin: %f"
	.ascii	"\012\000"
	.text
	.align	2
	.global	test
	.syntax unified
	.arm
	.fpu softvfp
	.type	test, %function
test:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #24
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	mov	r2, #0
	ldr	r3, .L10
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2uiz
	mov	r6, r0
	mov	r2, #0
	ldr	r3, .L10
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	mov	r0, r3
	bl	cordic
	mov	r7, r0
	mov	r2, #0
	ldr	r3, .L10
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	mov	r0, r3
	bl	cordic
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L10
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	sin
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, r7
	mov	r1, r6
	ldr	r0, .L10+4
	bl	printf
	nop
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L11:
	.align	2
.L10:
	.word	1104150528
	.word	.LC0
	.size	test, .-test
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #0
	mov	r1, #0
	bl	test
	ldr	r0, .L14
	ldr	r1, .L14+4
	bl	test
	ldr	r0, .L14+8
	ldr	r1, .L14+12
	bl	test
	ldr	r0, .L14
	ldr	r1, .L14+16
	bl	test
	ldr	r0, .L14+8
	ldr	r1, .L14+20
	bl	test
	mov	r3, #0
	mov	r0, r3
	pop	{fp, pc}
.L15:
	.align	2
.L14:
	.word	942502757
	.word	1071694162
	.word	1413754136
	.word	1072243195
	.word	1072742738
	.word	1073291771
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
