	.file	"23574509.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 8
	.type	DoubleBoundDenormal, @object
	.size	DoubleBoundDenormal, 8
DoubleBoundDenormal:
	.long	0
	.long	1048576
	.align 8
	.type	DoubleBoundTrivialSin, @object
	.size	DoubleBoundTrivialSin, 8
DoubleBoundTrivialSin:
	.long	1225932535
	.long	1045894004
	.align 8
	.type	DoubleBoundTrivialCos, @object
	.size	DoubleBoundTrivialCos, 8
DoubleBoundTrivialCos:
	.long	1719614413
	.long	1044816030
	.align 8
	.type	DoubleBoundTrivialTan, @object
	.size	DoubleBoundTrivialTan, 8
DoubleBoundTrivialTan:
	.long	-508525835
	.long	1045582015
	.align 8
	.type	DoubleBoundPolynomial, @object
	.size	DoubleBoundPolynomial, 8
DoubleBoundPolynomial:
	.long	1413754136
	.long	1072243195
	.align 8
	.type	DoubleBoundMedium, @object
	.size	DoubleBoundMedium, 8
DoubleBoundMedium:
	.long	1004894784
	.long	1092616193
	.align 8
	.type	DoubleBoundFull, @object
	.size	DoubleBoundFull, 8
DoubleBoundFull:
	.long	-536870912
	.long	1206910975
	.text
	.type	Key, @function
Key:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	movabs	rax, 9223372036854775807
	and	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	Key, .-Key
	.type	ReduceFull, @function
ReduceFull:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	movsd	QWORD PTR -184[rbp], xmm0
	movsd	xmm0, QWORD PTR -184[rbp]
	movsd	QWORD PTR -136[rbp], xmm0
	movzx	eax, WORD PTR -130[rbp]
	shr	ax, 4
	and	ax, 2047
	movzx	eax, ax
	sub	eax, 1056
	mov	DWORD PTR -152[rbp], eax
	mov	eax, DWORD PTR -152[rbp]
	add	eax, 26
	imul	eax, eax, 2428
	sar	eax, 16
	mov	DWORD PTR -148[rbp], eax
	mov	edx, DWORD PTR -148[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	lea	edx, 0[0+rax*8]
	add	eax, edx
	sub	eax, DWORD PTR -152[rbp]
	mov	DWORD PTR -144[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	sar	eax, 3
	mov	DWORD PTR -140[rbp], eax
	movsd	xmm1, QWORD PTR -184[rbp]
	movsd	xmm0, QWORD PTR .LC0[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -184[rbp], xmm0
	movsd	xmm1, QWORD PTR -184[rbp]
	movsd	xmm0, QWORD PTR .LC1[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -120[rbp]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -184[rbp]
	movsd	xmm0, QWORD PTR -120[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -112[rbp], xmm0
	movsd	xmm0, QWORD PTR -184[rbp]
	subsd	xmm0, QWORD PTR -112[rbp]
	movsd	QWORD PTR -104[rbp], xmm0
	mov	eax, DWORD PTR -148[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -140[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	mov	rdx, rax
	sal	rdx, 4
	sub	rdx, rax
	lea	rax, [rcx+rdx]
	lea	rdx, 0[0+rax*8]
	lea	rax, TwoOverPiWithOffset.6[rip]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -88[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR 8[rax]
	movsd	QWORD PTR -80[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR 16[rax]
	movsd	QWORD PTR -72[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	movsd	QWORD PTR -64[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR -80[rbp]
	mulsd	xmm0, QWORD PTR -112[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR -72[rbp]
	mulsd	xmm0, QWORD PTR -112[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -56[rbp]
	addsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR IntegerBias.5[rip]
	addsd	xmm0, QWORD PTR -40[rbp]
	movsd	QWORD PTR -128[rbp], xmm0
	movzx	eax, BYTE PTR -128[rbp]
	and	eax, 3
	movzx	edx, al
	mov	rax, QWORD PTR -176[rbp]
	mov	DWORD PTR [rax], edx
	movsd	xmm0, QWORD PTR -128[rbp]
	movsd	xmm1, QWORD PTR IntegerBias.5[rip]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR 32[rax]
	movsd	QWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR 40[rax]
	movsd	QWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR 48[rax]
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -56[rbp]
	subsd	xmm0, QWORD PTR -32[rbp]
	movsd	xmm1, QWORD PTR -48[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -72[rbp]
	movsd	xmm0, QWORD PTR -64[rbp]
	mulsd	xmm0, QWORD PTR -112[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -48[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -64[rbp]
	movsd	xmm0, QWORD PTR -24[rbp]
	mulsd	xmm0, QWORD PTR -112[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -48[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR -16[rbp]
	mulsd	xmm0, QWORD PTR -112[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -48[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR -8[rbp]
	mulsd	xmm0, QWORD PTR -112[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -48[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm1, QWORD PTR -48[rbp]
	movsd	xmm0, QWORD PTR .LC2[rip]
	mulsd	xmm0, xmm1
	mov	rax, QWORD PTR -168[rbp]
	movsd	QWORD PTR [rax], xmm0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	ReduceFull, .-ReduceFull
	.type	ReduceMedium, @function
ReduceMedium:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	movsd	QWORD PTR -104[rbp], xmm0
	movsd	xmm0, QWORD PTR InversePeriod.4[rip]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -104[rbp]
	movsd	xmm0, QWORD PTR .LC3[rip]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC3[rip]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	xmm0, QWORD PTR -72[rbp]
	cvttsd2si	eax, xmm0
	and	eax, 3
	mov	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR [rax], edx
	movsd	xmm0, QWORD PTR Period.3[rip]
	movsd	xmm1, QWORD PTR -72[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -64[rbp], xmm0
	movsd	xmm0, QWORD PTR Period.3[rip+8]
	movsd	xmm1, QWORD PTR -72[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR Period.3[rip+16]
	movsd	xmm1, QWORD PTR -72[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	subsd	xmm0, QWORD PTR -64[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	subsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	subsd	xmm0, QWORD PTR -32[rbp]
	subsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	subsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	rax, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR [rax], xmm0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	ReduceMedium, .-ReduceMedium
	.type	sinp, @function
sinp:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	mulsd	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm2, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	mulsd	xmm0, xmm2
	movsd	xmm2, QWORD PTR .LC5[rip]
	subsd	xmm0, xmm2
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC6[rip]
	addsd	xmm0, xmm2
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	xmm2, QWORD PTR .LC7[rip]
	subsd	xmm0, xmm2
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC8[rip]
	addsd	xmm0, xmm2
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	xmm2, QWORD PTR .LC9[rip]
	subsd	xmm0, xmm2
	mulsd	xmm0, xmm1
	addsd	xmm0, QWORD PTR -24[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	sinp, .-sinp
	.type	cosp, @function
cosp:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	mulsd	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC10[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC11[rip]
	addsd	xmm0, xmm1
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	xmm1, QWORD PTR .LC12[rip]
	subsd	xmm0, xmm1
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC13[rip]
	addsd	xmm0, xmm1
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	xmm1, QWORD PTR .LC14[rip]
	subsd	xmm0, xmm1
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC15[rip]
	addsd	xmm0, xmm1
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	xmm1, QWORD PTR .LC16[rip]
	subsd	xmm0, xmm1
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC17[rip]
	addsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	cosp, .-cosp
	.globl	sin
	.type	sin, @function
sin:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	movsd	QWORD PTR -56[rbp], xmm0
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	movq	xmm0, rax
	call	Key
	mov	QWORD PTR -24[rbp], rax
	movabs	rax, 4503599627370496
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L10
	movsd	xmm1, QWORD PTR -56[rbp]
	movsd	xmm0, QWORD PTR .LC18[rip]
	mulsd	xmm1, xmm0
	movq	rax, xmm1
	jmp	.L21
.L10:
	movabs	rax, 4492080543488425719
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L12
	movsd	xmm0, QWORD PTR t0.2[rip]
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	mulsd	xmm0, xmm0
	mov	rax, QWORD PTR -56[rbp]
	jmp	.L21
.L12:
	movabs	rax, 4605249457297304856
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L13
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR -32[rbp], xmm0
	mov	DWORD PTR -36[rbp], 0
	jmp	.L14
.L13:
	movabs	rax, 4692750817019918912
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L15
	mov	rcx, QWORD PTR -56[rbp]
	lea	rdx, -36[rbp]
	lea	rax, -32[rbp]
	movq	xmm0, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	ReduceMedium
	jmp	.L14
.L15:
	movabs	rax, 5183643170566569984
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L16
	mov	rcx, QWORD PTR -56[rbp]
	lea	rdx, -36[rbp]
	lea	rax, -32[rbp]
	movq	xmm0, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	ReduceFull
	jmp	.L14
.L16:
	movsd	xmm0, QWORD PTR -56[rbp]
	subsd	xmm0, xmm0
	movq	rax, xmm0
	jmp	.L21
.L14:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, 3
	je	.L17
	cmp	eax, 3
	jg	.L18
	cmp	eax, 1
	je	.L19
	cmp	eax, 2
	je	.L20
.L18:
	mov	rax, QWORD PTR -32[rbp]
	movq	xmm0, rax
	call	sinp
	movq	rax, xmm0
	jmp	.L21
.L19:
	mov	rax, QWORD PTR -32[rbp]
	movq	xmm0, rax
	call	cosp
	movq	rax, xmm0
	jmp	.L21
.L20:
	mov	rax, QWORD PTR -32[rbp]
	movq	xmm0, rax
	call	sinp
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC19[rip]
	movq	xmm2, rax
	xorpd	xmm2, xmm0
	movq	rax, xmm2
	jmp	.L21
.L17:
	mov	rax, QWORD PTR -32[rbp]
	movq	xmm0, rax
	call	cosp
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC19[rip]
	movq	xmm3, rax
	xorpd	xmm3, xmm0
	movq	rax, xmm3
.L21:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	sin, .-sin
	.globl	cos
	.type	cos, @function
cos:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	movsd	QWORD PTR -56[rbp], xmm0
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	movq	xmm0, rax
	call	Key
	mov	QWORD PTR -24[rbp], rax
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -56[rbp]
	jp	.L24
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -56[rbp]
	jne	.L24
	mov	rax, QWORD PTR .LC17[rip]
	jmp	.L36
.L24:
	movabs	rax, 4487450680906169293
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L27
	movsd	xmm0, QWORD PTR t0.1[rip]
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	mulsd	xmm0, xmm0
	mov	rax, QWORD PTR .LC17[rip]
	jmp	.L36
.L27:
	movabs	rax, 4605249457297304856
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L28
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR -32[rbp], xmm0
	mov	DWORD PTR -36[rbp], 0
	jmp	.L29
.L28:
	movabs	rax, 4692750817019918912
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L30
	mov	rcx, QWORD PTR -56[rbp]
	lea	rdx, -36[rbp]
	lea	rax, -32[rbp]
	movq	xmm0, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	ReduceMedium
	jmp	.L29
.L30:
	movabs	rax, 5183643170566569984
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L31
	mov	rcx, QWORD PTR -56[rbp]
	lea	rdx, -36[rbp]
	lea	rax, -32[rbp]
	movq	xmm0, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	ReduceFull
	jmp	.L29
.L31:
	movsd	xmm0, QWORD PTR -56[rbp]
	subsd	xmm0, xmm0
	movq	rax, xmm0
	jmp	.L36
.L29:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, 3
	je	.L32
	cmp	eax, 3
	jg	.L33
	cmp	eax, 1
	je	.L34
	cmp	eax, 2
	je	.L35
.L33:
	mov	rax, QWORD PTR -32[rbp]
	movq	xmm0, rax
	call	cosp
	movq	rax, xmm0
	jmp	.L36
.L34:
	mov	rax, QWORD PTR -32[rbp]
	movq	xmm0, rax
	call	sinp
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC19[rip]
	movq	xmm1, rax
	xorpd	xmm1, xmm0
	movq	rax, xmm1
	jmp	.L36
.L35:
	mov	rax, QWORD PTR -32[rbp]
	movq	xmm0, rax
	call	cosp
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC19[rip]
	movq	xmm2, rax
	xorpd	xmm2, xmm0
	movq	rax, xmm2
	jmp	.L36
.L32:
	mov	rax, QWORD PTR -32[rbp]
	movq	xmm0, rax
	call	sinp
	movq	rax, xmm0
.L36:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L37
	call	__stack_chk_fail@PLT
.L37:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	cos, .-cos
	.globl	tan
	.type	tan, @function
tan:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	movsd	QWORD PTR -72[rbp], xmm0
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	movq	xmm0, rax
	call	Key
	mov	QWORD PTR -40[rbp], rax
	movabs	rax, 4503599627370496
	cmp	QWORD PTR -40[rbp], rax
	jnb	.L40
	movsd	xmm1, QWORD PTR -72[rbp]
	movsd	xmm0, QWORD PTR .LC18[rip]
	mulsd	xmm0, xmm1
	jmp	.L48
.L40:
	movabs	rax, 4490740563497222901
	cmp	QWORD PTR -40[rbp], rax
	jnb	.L42
	movsd	xmm0, QWORD PTR t0.0[rip]
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -32[rbp]
	mulsd	xmm0, xmm0
	movsd	xmm0, QWORD PTR -72[rbp]
	jmp	.L48
.L42:
	movabs	rax, 4605249457297304856
	cmp	QWORD PTR -40[rbp], rax
	jnb	.L43
	movsd	xmm0, QWORD PTR -72[rbp]
	movsd	QWORD PTR -48[rbp], xmm0
	mov	DWORD PTR -52[rbp], 0
	jmp	.L44
.L43:
	movabs	rax, 4692750817019918912
	cmp	QWORD PTR -40[rbp], rax
	jnb	.L45
	mov	rcx, QWORD PTR -72[rbp]
	lea	rdx, -52[rbp]
	lea	rax, -48[rbp]
	movq	xmm0, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	ReduceMedium
	jmp	.L44
.L45:
	movabs	rax, 5183643170566569984
	cmp	QWORD PTR -40[rbp], rax
	jnb	.L46
	mov	rcx, QWORD PTR -72[rbp]
	lea	rdx, -52[rbp]
	lea	rax, -48[rbp]
	movq	xmm0, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	ReduceFull
	jmp	.L44
.L46:
	movsd	xmm0, QWORD PTR -72[rbp]
	subsd	xmm0, xmm0
	jmp	.L48
.L44:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, 1
	je	.L47
	cmp	eax, 3
	je	.L47
	mov	rax, QWORD PTR -48[rbp]
	movq	xmm0, rax
	call	sinp
	movq	rbx, xmm0
	mov	rax, QWORD PTR -48[rbp]
	movq	xmm0, rax
	call	cosp
	movapd	xmm1, xmm0
	movq	xmm0, rbx
	divsd	xmm0, xmm1
	jmp	.L48
.L47:
	mov	rax, QWORD PTR -48[rbp]
	movq	xmm0, rax
	call	cosp
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC19[rip]
	movq	xmm2, rax
	xorpd	xmm2, xmm0
	movsd	QWORD PTR -80[rbp], xmm2
	mov	rax, QWORD PTR -48[rbp]
	movq	xmm0, rax
	call	sinp
	movapd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	divsd	xmm0, xmm1
.L48:
	movq	rax, xmm0
	mov	rsi, QWORD PTR -24[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L49
	call	__stack_chk_fail@PLT
.L49:
	movq	xmm0, rax
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	tan, .-tan
	.section	.rodata
	.align 32
	.type	TwoOverPiWithOffset.6, @object
	.size	TwoOverPiWithOffset.6, 1440
TwoOverPiWithOffset.6:
	.long	0
	.long	0
	.long	1879048192
	.long	1491361584
	.long	-402653184
	.long	-684609093
	.long	-939524096
	.long	-712593378
	.long	1342177280
	.long	1406530685
	.long	1207959552
	.long	-769244034
	.long	-536870912
	.long	-798773940
	.long	536870912
	.long	1322131912
	.long	1073741824
	.long	1291838742
	.long	268435456
	.long	-883619759
	.long	-1610612736
	.long	1234536156
	.long	-268435456
	.long	-938701267
	.long	0
	.long	1179874488
	.long	-1342177280
	.long	1150887099
	.long	-536870912
	.long	-1023450394
	.long	-268435456
	.long	1094516253
	.long	1476395008
	.long	-1080849093
	.long	-536870912
	.long	-1110036411
	.long	-2147483648
	.long	1006743465
	.long	-1342177280
	.long	-1166783561
	.long	-536870912
	.long	-1196006513
	.long	0
	.long	924504446
	.long	-536870912
	.long	-1250169754
	.long	1476395008
	.long	-1278942402
	.long	-536870912
	.long	839503780
	.long	2013265920
	.long	811633649
	.long	1073741824
	.long	-1367329090
	.long	-1073741824
	.long	755564484
	.long	0
	.long	-1430192848
	.long	1073741824
	.long	-1449148349
	.long	-1073741824
	.long	-1477587308
	.long	-536870912
	.long	639949374
	.long	-2147483648
	.long	-1534702583
	.long	-939524096
	.long	-1561655650
	.long	-2147483648
	.long	-1591647885
	.long	0
	.long	-1620890572
	.long	-536870912
	.long	-1649028470
	.long	-1342177280
	.long	471788319
	.long	0
	.long	-1707471227
	.long	-134217728
	.long	416187292
	.long	1207959552
	.long	387852618
	.long	1744830464
	.long	359484799
	.long	-1879048192
	.long	331329823
	.long	1342177280
	.long	-1845160003
	.long	0
	.long	269058616
	.long	0
	.long	0
	.long	0
	.long	1491361584
	.long	1073741824
	.long	1468756594
	.long	536870912
	.long	-703637840
	.long	0
	.long	1413721065
	.long	-2147483648
	.long	-760900028
	.long	-1342177280
	.long	1357605970
	.long	-1879048192
	.long	1329151043
	.long	-2147483648
	.long	1297121172
	.long	671088640
	.long	-874280316
	.long	536870912
	.long	-904861063
	.long	-1073741824
	.long	-932482504
	.long	-1207959552
	.long	1188074356
	.long	0
	.long	1150887104
	.long	-402653184
	.long	-1015980190
	.long	536870912
	.long	1102191870
	.long	1879048192
	.long	-1073699046
	.long	536870912
	.long	-1100297448
	.long	134217728
	.long	-1128825398
	.long	-671088640
	.long	-1157199323
	.long	-536870912
	.long	-1184971368
	.long	1073741824
	.long	-1213222249
	.long	-805306368
	.long	-1243596840
	.long	-2147483648
	.long	875681337
	.long	-1610612736
	.long	847944143
	.long	-268435456
	.long	820220043
	.long	1342177280
	.long	791116786
	.long	-2147483648
	.long	760057852
	.long	-2147483648
	.long	-1411776504
	.long	-1073741824
	.long	706109503
	.long	-1879048192
	.long	-1469440562
	.long	1879048192
	.long	-1497171255
	.long	1073741824
	.long	-1528669904
	.long	1610612736
	.long	594142457
	.long	-1879048192
	.long	564358814
	.long	536870912
	.long	-1610872426
	.long	1610612736
	.long	509082251
	.long	1879048192
	.long	-1666862966
	.long	-2147483648
	.long	-1699472882
	.long	0
	.long	-1726805021
	.long	-1207959552
	.long	-1751637546
	.long	-2147483648
	.long	367156557
	.long	-2147483648
	.long	-1810726597
	.long	0
	.long	-1839421250
	.long	268435456
	.long	282427596
	.long	0
	.long	0
	.long	0
	.long	1491361792
	.long	-1073741824
	.long	-669388218
	.long	1610612736
	.long	-696533331
	.long	0
	.long	-728840895
	.long	1207959552
	.long	-752085610
	.long	671088640
	.long	1367084470
	.long	1073741824
	.long	1337301308
	.long	-268435456
	.long	1309442575
	.long	-268435456
	.long	1280596202
	.long	1610612736
	.long	1254013893
	.long	-536870912
	.long	1224438342
	.long	-268435456
	.long	1196237094
	.long	1879048192
	.long	-978698253
	.long	-1610612736
	.long	1139994272
	.long	-2147483648
	.long	-1035520271
	.long	1073741824
	.long	-1065475762
	.long	-402653184
	.long	1055270196
	.long	-2147483648
	.long	-1125025828
	.long	671088640
	.long	-1149217142
	.long	1744830464
	.long	970006842
	.long	1610612736
	.long	-1207140662
	.long	1073741824
	.long	911728528
	.long	536870912
	.long	885836011
	.long	402653184
	.long	-1290145101
	.long	-2147483648
	.long	-1322858761
	.long	-134217728
	.long	801082301
	.long	0
	.long	770868146
	.long	-2147483648
	.long	-1407344640
	.long	0
	.long	-1434474881
	.long	-2147483648
	.long	-1464807186
	.long	-536870912
	.long	656847892
	.long	1342177280
	.long	-1517878122
	.long	-268435456
	.long	601863113
	.long	-1610612736
	.long	572920686
	.long	536870912
	.long	-1603848173
	.long	2013265920
	.long	-1629984763
	.long	2013265920
	.long	489351759
	.long	-1610612736
	.long	-1686929087
	.long	0
	.long	-1716713082
	.long	671088640
	.long	404547550
	.long	-1610612736
	.long	374645946
	.long	1342177280
	.long	-1800141664
	.long	-805306368
	.long	317847765
	.long	-2147483648
	.long	287353862
	.long	0
	.long	0
	.long	0
	.long	1491599360
	.long	-1879048192
	.long	-658700676
	.long	-1342177280
	.long	-688186434
	.long	-1342177280
	.long	1430584851
	.long	-1744830464
	.long	-744465387
	.long	1879048192
	.long	1374402587
	.long	-1073741824
	.long	-801281434
	.long	-268435456
	.long	-829561987
	.long	0
	.long	-864359996
	.long	939524096
	.long	-885776060
	.long	-536870912
	.long	-914034106
	.long	-1879048192
	.long	1205571216
	.long	268435456
	.long	1177265600
	.long	1610612736
	.long	-998544111
	.long	1073741824
	.long	1118020388
	.long	-1610612736
	.long	-1056436464
	.long	-939524096
	.long	-1083414054
	.long	-2147483648
	.long	-1111965417
	.long	2013265920
	.long	1006743465
	.long	-939524096
	.long	-1169084706
	.long	1342177280
	.long	950221024
	.long	402653184
	.long	-1225475576
	.long	402653184
	.long	-1253088457
	.long	1342177280
	.long	865658381
	.long	1879048192
	.long	-1310146196
	.long	0
	.long	806452783
	.long	671088640
	.long	-1367329090
	.long	0
	.long	750778520
	.long	0
	.long	-1430192844
	.long	0
	.long	691002974
	.long	268435456
	.long	665946970
	.long	1207959552
	.long	-1508488318
	.long	402653184
	.long	-1536610266
	.long	1207959552
	.long	-1564986122
	.long	536870912
	.long	-1595533512
	.long	-134217728
	.long	525969303
	.long	1342177280
	.long	497310442
	.long	0
	.long	-1680781819
	.long	-1073741824
	.long	-1707471228
	.long	1073741824
	.long	-1735932368
	.long	1073741824
	.long	-1763873957
	.long	-1610612736
	.long	-1791650812
	.long	-1073741824
	.long	-1823229924
	.long	-2147483648
	.long	299319829
	.align 8
	.type	IntegerBias.5, @object
	.size	IntegerBias.5, 8
IntegerBias.5:
	.long	0
	.long	1127743488
	.align 8
	.type	InversePeriod.4, @object
	.size	InversePeriod.4, 8
InversePeriod.4:
	.long	1841940611
	.long	1071931184
	.align 16
	.type	Period.3, @object
	.size	Period.3, 24
Period.3:
	.long	1413742592
	.long	1073291771
	.long	1280049152
	.long	1032227875
	.long	57701189
	.long	992578094
	.data
	.align 8
	.type	t0.2, @object
	.size	t0.2, 8
t0.2:
	.long	1431655765
	.long	1070945621
	.align 8
	.type	t0.1, @object
	.size	t0.1, 8
t0.1:
	.long	1431655765
	.long	1070945621
	.align 8
	.type	t0.0, @object
	.size	t0.0, 8
t0.0:
	.long	1431655765
	.long	1070945621
	.section	.rodata
	.align 8
.LC0:
	.long	0
	.long	653262848
	.align 8
.LC1:
	.long	33554432
	.long	1101004800
	.align 8
.LC2:
	.long	1413754136
	.long	1073291771
	.align 8
.LC3:
	.long	0
	.long	1127743488
	.align 8
.LC4:
	.long	533830861
	.long	1038473469
	.align 8
.LC5:
	.long	-1456922787
	.long	1046144485
	.align 8
.LC6:
	.long	1451051169
	.long	1053236707
	.align 8
.LC7:
	.long	432004867
	.long	1059717536
	.align 8
.LC8:
	.long	286324688
	.long	1065423121
	.align 8
.LC9:
	.long	1431655752
	.long	1069897045
	.align 8
.LC10:
	.long	-1601824101
	.long	-1112999351
	.align 8
.LC11:
	.long	2068725509
	.long	1042411165
	.align 8
.LC12:
	.long	2125220806
	.long	1049787983
	.align 8
.LC13:
	.long	432555253
	.long	1056571808
	.align 8
.LC14:
	.long	381767569
	.long	1062650220
	.align 8
.LC15:
	.long	1431655755
	.long	1067799893
	.align 8
.LC16:
	.long	0
	.long	1071644672
	.align 8
.LC17:
	.long	0
	.long	1072693248
	.align 8
.LC18:
	.long	-1
	.long	1072693247
	.align 16
.LC19:
	.long	0
	.long	-2147483648
	.long	0
	.long	0
	.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	"23574509.c"
	.text
	.global	__aeabi_dcmplt
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	Key, %function
Key:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #8
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L7
	ldr	r4, [fp, #-20]
	ldr	r3, [fp, #-16]
	eor	r5, r3, #-2147483648
	b	.L5
.L7:
	sub	r5, fp, #20
	ldmia	r5, {r4-r5}
.L5:
	mov	r2, r4
	mov	r3, r5
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	Key, .-Key
	.global	__aeabi_dmul
	.global	__aeabi_dsub
	.global	__aeabi_dadd
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReduceFull, %function
ReduceFull:
	@ args = 0, pretend = 0, frame = 168
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #168
	str	r0, [fp, #-168]
	str	r1, [fp, #-172]
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	ldrh	r3, [fp, #-134]
	lsr	r3, r3, #4
	lsl	r3, r3, #21
	lsr	r3, r3, #21
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #1056
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r2, r3, #26
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	asr	r3, r3, #16
	str	r3, [fp, #-156]
	ldr	r2, [fp, #-156]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	add	r2, r3, r2
	ldr	r3, [fp, #-160]
	sub	r3, r2, r3
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	asr	r3, r3, #3
	str	r3, [fp, #-148]
	mov	r2, #0
	ldr	r3, .L9
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	mov	r2, #33554432
	ldr	r3, .L9+4
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, .L9+8
	add	r3, r3, r2
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-144]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-144]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-144]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, .L9+12
	ldmia	r3, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldrb	r3, [fp, #-132]
	and	r3, r3, #3
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-172]
	str	r2, [r3]
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	ldr	r3, .L9+12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-144]
	add	r3, r3, #32
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-144]
	add	r3, r3, #40
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-144]
	add	r3, r3, #48
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r2, .L9+16
	ldr	r3, .L9+20
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-168]
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L10:
	.align	2
.L9:
	.word	653262848
	.word	1101004800
	.word	TwoOverPiWithOffset.4307
	.word	IntegerBias.4324
	.word	1413754136
	.word	1073291771
	.size	ReduceFull, .-ReduceFull
	.global	__aeabi_d2iz
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReduceMedium, %function
ReduceMedium:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, .L12
	ldmia	r3, {r0-r1}
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L12+4
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L12+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2iz
	mov	r3, r0
	and	r2, r3, #3
	ldr	r3, [fp, #-84]
	str	r2, [r3]
	ldr	r3, .L12+8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, .L12+8
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, .L12+8
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-80]
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L13:
	.align	2
.L12:
	.word	InversePeriod.4335
	.word	1127743488
	.word	Period.4336
	.size	ReduceMedium, .-ReduceMedium
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sinp, %function
sinp:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, .L16
	ldr	r3, .L16+4
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L16+8
	ldr	r3, .L16+12
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L16+16
	ldr	r3, .L16+20
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L16+24
	ldr	r3, .L16+28
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L16+32
	ldr	r3, .L16+36
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L16+40
	ldr	r3, .L16+44
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L17:
	.align	2
.L16:
	.word	533830861
	.word	1038473469
	.word	-1456922787
	.word	1046144485
	.word	1451051169
	.word	1053236707
	.word	432004867
	.word	1059717536
	.word	286324688
	.word	1065423121
	.word	1431655752
	.word	1069897045
	.size	sinp, .-sinp
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cosp, %function
cosp:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, .L20
	ldr	r3, .L20+4
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L20+8
	ldr	r3, .L20+12
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L20+16
	ldr	r3, .L20+20
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L20+24
	ldr	r3, .L20+28
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L20+32
	ldr	r3, .L20+36
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L20+40
	ldr	r3, .L20+44
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L20+48
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L20+52
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L21:
	.align	2
.L20:
	.word	-1601824101
	.word	-1112999351
	.word	2068725509
	.word	1042411165
	.word	2125220806
	.word	1049787983
	.word	432555253
	.word	1056571808
	.word	381767569
	.word	1062650220
	.word	1431655755
	.word	1067799893
	.word	1071644672
	.word	1072693248
	.size	cosp, .-cosp
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	sin
	.syntax unified
	.arm
	.fpu softvfp
	.type	sin, %function
sin:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #48
	str	r0, [fp, #-60]
	str	r1, [fp, #-56]
	ldr	r3, .L51
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	Key
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	mov	r2, #0
	mov	r3, #1048576
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L46
	mvn	r2, #0
	ldr	r3, .L51+4
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	b	.L39
.L46:
	ldr	r2, .L51+8
	ldr	r3, .L51+12
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L47
	ldr	r3, .L51+16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r5, fp, #60
	ldmia	r5, {r4-r5}
	b	.L39
.L47:
	ldr	r2, .L51+20
	ldr	r3, .L51+24
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L48
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L30
.L48:
	ldr	r2, .L51+28
	ldr	r3, .L51+32
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L49
	sub	r1, fp, #48
	sub	r0, fp, #44
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	ReduceMedium
	b	.L30
.L49:
	mov	r2, #-536870912
	ldr	r3, .L51+36
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L50
	sub	r1, fp, #48
	sub	r0, fp, #44
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	ReduceFull
	b	.L30
.L50:
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	b	.L39
.L30:
	ldr	r3, [fp, #-48]
	cmp	r3, #3
	beq	.L35
	cmp	r3, #3
	bgt	.L36
	cmp	r3, #1
	beq	.L37
	cmp	r3, #2
	beq	.L38
.L36:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sinp
	mov	r4, r0
	mov	r5, r1
	b	.L39
.L37:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	cosp
	mov	r4, r0
	mov	r5, r1
	b	.L39
.L38:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sinp
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
	b	.L39
.L35:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	cosp
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
.L39:
	mov	r2, r4
	mov	r3, r5
	ldr	r1, .L51
	ldr	r0, [r1]
	ldr	r1, [fp, #-16]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L40
	bl	__stack_chk_fail
.L40:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L52:
	.align	2
.L51:
	.word	.LC0
	.word	1072693247
	.word	1225932535
	.word	1045894004
	.word	t0.4360
	.word	1413754136
	.word	1072243195
	.word	1004894784
	.word	1092616193
	.word	1206910975
	.size	sin, .-sin
	.global	__aeabi_dcmpeq
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	cos
	.syntax unified
	.arm
	.fpu softvfp
	.type	cos, %function
cos:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #48
	str	r0, [fp, #-60]
	str	r1, [fp, #-56]
	ldr	r3, .L82
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	Key
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L77
	mov	r4, #0
	ldr	r5, .L82+4
	b	.L70
.L77:
	ldr	r2, .L82+8
	ldr	r3, .L82+12
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L78
	ldr	r3, .L82+16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, #0
	ldr	r5, .L82+4
	b	.L70
.L78:
	ldr	r2, .L82+20
	ldr	r3, .L82+24
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L79
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L61
.L79:
	ldr	r2, .L82+28
	ldr	r3, .L82+32
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L80
	sub	r1, fp, #48
	sub	r0, fp, #44
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	ReduceMedium
	b	.L61
.L80:
	mov	r2, #-536870912
	ldr	r3, .L82+36
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L81
	sub	r1, fp, #48
	sub	r0, fp, #44
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	ReduceFull
	b	.L61
.L81:
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	b	.L70
.L61:
	ldr	r3, [fp, #-48]
	cmp	r3, #3
	beq	.L66
	cmp	r3, #3
	bgt	.L67
	cmp	r3, #1
	beq	.L68
	cmp	r3, #2
	beq	.L69
.L67:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	cosp
	mov	r4, r0
	mov	r5, r1
	b	.L70
.L68:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sinp
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
	b	.L70
.L69:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	cosp
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
	b	.L70
.L66:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sinp
	mov	r4, r0
	mov	r5, r1
.L70:
	mov	r2, r4
	mov	r3, r5
	ldr	r1, .L82
	ldr	r0, [r1]
	ldr	r1, [fp, #-16]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L71
	bl	__stack_chk_fail
.L71:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L83:
	.align	2
.L82:
	.word	.LC1
	.word	1072693248
	.word	1719614413
	.word	1044816030
	.word	t0.4373
	.word	1413754136
	.word	1072243195
	.word	1004894784
	.word	1092616193
	.word	1206910975
	.size	cos, .-cos
	.global	__aeabi_ddiv
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	tan
	.syntax unified
	.arm
	.fpu softvfp
	.type	tan, %function
tan:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #48
	str	r0, [fp, #-60]
	str	r1, [fp, #-56]
	ldr	r3, .L110
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	Key
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	mov	r2, #0
	mov	r3, #1048576
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L105
	mvn	r2, #0
	ldr	r3, .L110+4
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	b	.L98
.L105:
	ldr	r2, .L110+8
	ldr	r3, .L110+12
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L106
	ldr	r3, .L110+16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	b	.L98
.L106:
	ldr	r2, .L110+20
	ldr	r3, .L110+24
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L107
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L92
.L107:
	ldr	r2, .L110+28
	ldr	r3, .L110+32
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L108
	sub	r1, fp, #48
	sub	r0, fp, #44
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	ReduceMedium
	b	.L92
.L108:
	mov	r2, #-536870912
	ldr	r3, .L110+36
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L109
	sub	r1, fp, #48
	sub	r0, fp, #44
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	ReduceFull
	b	.L92
.L109:
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	b	.L98
.L92:
	ldr	r3, [fp, #-48]
	cmp	r3, #1
	beq	.L97
	cmp	r3, #3
	beq	.L97
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sinp
	mov	r4, r0
	mov	r5, r1
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	cosp
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	b	.L98
.L97:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	cosp
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sinp
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
.L98:
	ldr	r1, .L110
	ldr	r0, [r1]
	ldr	r1, [fp, #-16]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L99
	bl	__stack_chk_fail
.L99:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L111:
	.align	2
.L110:
	.word	.LC2
	.word	1072693247
	.word	-508525835
	.word	1045582015
	.word	t0.4386
	.word	1413754136
	.word	1072243195
	.word	1004894784
	.word	1092616193
	.word	1206910975
	.size	tan, .-tan
	.section	.rodata
	.align	3
	.type	TwoOverPiWithOffset.4307, %object
	.size	TwoOverPiWithOffset.4307, 1440
TwoOverPiWithOffset.4307:
	.word	0
	.word	0
	.word	1879048192
	.word	1491361584
	.word	3892314112
	.word	-684609093
	.word	3355443200
	.word	-712593378
	.word	1342177280
	.word	1406530685
	.word	1207959552
	.word	-769244034
	.word	3758096384
	.word	-798773940
	.word	536870912
	.word	1322131912
	.word	1073741824
	.word	1291838742
	.word	268435456
	.word	-883619759
	.word	2684354560
	.word	1234536156
	.word	4026531840
	.word	-938701267
	.word	0
	.word	1179874488
	.word	2952790016
	.word	1150887099
	.word	3758096384
	.word	-1023450394
	.word	4026531840
	.word	1094516253
	.word	1476395008
	.word	-1080849093
	.word	3758096384
	.word	-1110036411
	.word	2147483648
	.word	1006743465
	.word	2952790016
	.word	-1166783561
	.word	3758096384
	.word	-1196006513
	.word	0
	.word	924504446
	.word	3758096384
	.word	-1250169754
	.word	1476395008
	.word	-1278942402
	.word	3758096384
	.word	839503780
	.word	2013265920
	.word	811633649
	.word	1073741824
	.word	-1367329090
	.word	3221225472
	.word	755564484
	.word	0
	.word	-1430192848
	.word	1073741824
	.word	-1449148349
	.word	3221225472
	.word	-1477587308
	.word	3758096384
	.word	639949374
	.word	2147483648
	.word	-1534702583
	.word	3355443200
	.word	-1561655650
	.word	2147483648
	.word	-1591647885
	.word	0
	.word	-1620890572
	.word	3758096384
	.word	-1649028470
	.word	2952790016
	.word	471788319
	.word	0
	.word	-1707471227
	.word	4160749568
	.word	416187292
	.word	1207959552
	.word	387852618
	.word	1744830464
	.word	359484799
	.word	2415919104
	.word	331329823
	.word	1342177280
	.word	-1845160003
	.word	0
	.word	269058616
	.word	0
	.word	0
	.word	0
	.word	1491361584
	.word	1073741824
	.word	1468756594
	.word	536870912
	.word	-703637840
	.word	0
	.word	1413721065
	.word	2147483648
	.word	-760900028
	.word	2952790016
	.word	1357605970
	.word	2415919104
	.word	1329151043
	.word	2147483648
	.word	1297121172
	.word	671088640
	.word	-874280316
	.word	536870912
	.word	-904861063
	.word	3221225472
	.word	-932482504
	.word	3087007744
	.word	1188074356
	.word	0
	.word	1150887104
	.word	3892314112
	.word	-1015980190
	.word	536870912
	.word	1102191870
	.word	1879048192
	.word	-1073699046
	.word	536870912
	.word	-1100297448
	.word	134217728
	.word	-1128825398
	.word	3623878656
	.word	-1157199323
	.word	3758096384
	.word	-1184971368
	.word	1073741824
	.word	-1213222249
	.word	3489660928
	.word	-1243596840
	.word	2147483648
	.word	875681337
	.word	2684354560
	.word	847944143
	.word	4026531840
	.word	820220043
	.word	1342177280
	.word	791116786
	.word	2147483648
	.word	760057852
	.word	2147483648
	.word	-1411776504
	.word	3221225472
	.word	706109503
	.word	2415919104
	.word	-1469440562
	.word	1879048192
	.word	-1497171255
	.word	1073741824
	.word	-1528669904
	.word	1610612736
	.word	594142457
	.word	2415919104
	.word	564358814
	.word	536870912
	.word	-1610872426
	.word	1610612736
	.word	509082251
	.word	1879048192
	.word	-1666862966
	.word	2147483648
	.word	-1699472882
	.word	0
	.word	-1726805021
	.word	3087007744
	.word	-1751637546
	.word	2147483648
	.word	367156557
	.word	2147483648
	.word	-1810726597
	.word	0
	.word	-1839421250
	.word	268435456
	.word	282427596
	.word	0
	.word	0
	.word	0
	.word	1491361792
	.word	3221225472
	.word	-669388218
	.word	1610612736
	.word	-696533331
	.word	0
	.word	-728840895
	.word	1207959552
	.word	-752085610
	.word	671088640
	.word	1367084470
	.word	1073741824
	.word	1337301308
	.word	4026531840
	.word	1309442575
	.word	4026531840
	.word	1280596202
	.word	1610612736
	.word	1254013893
	.word	3758096384
	.word	1224438342
	.word	4026531840
	.word	1196237094
	.word	1879048192
	.word	-978698253
	.word	2684354560
	.word	1139994272
	.word	2147483648
	.word	-1035520271
	.word	1073741824
	.word	-1065475762
	.word	3892314112
	.word	1055270196
	.word	2147483648
	.word	-1125025828
	.word	671088640
	.word	-1149217142
	.word	1744830464
	.word	970006842
	.word	1610612736
	.word	-1207140662
	.word	1073741824
	.word	911728528
	.word	536870912
	.word	885836011
	.word	402653184
	.word	-1290145101
	.word	2147483648
	.word	-1322858761
	.word	4160749568
	.word	801082301
	.word	0
	.word	770868146
	.word	2147483648
	.word	-1407344640
	.word	0
	.word	-1434474881
	.word	2147483648
	.word	-1464807186
	.word	3758096384
	.word	656847892
	.word	1342177280
	.word	-1517878122
	.word	4026531840
	.word	601863113
	.word	2684354560
	.word	572920686
	.word	536870912
	.word	-1603848173
	.word	2013265920
	.word	-1629984763
	.word	2013265920
	.word	489351759
	.word	2684354560
	.word	-1686929087
	.word	0
	.word	-1716713082
	.word	671088640
	.word	404547550
	.word	2684354560
	.word	374645946
	.word	1342177280
	.word	-1800141664
	.word	3489660928
	.word	317847765
	.word	2147483648
	.word	287353862
	.word	0
	.word	0
	.word	0
	.word	1491599360
	.word	2415919104
	.word	-658700676
	.word	2952790016
	.word	-688186434
	.word	2952790016
	.word	1430584851
	.word	2550136832
	.word	-744465387
	.word	1879048192
	.word	1374402587
	.word	3221225472
	.word	-801281434
	.word	4026531840
	.word	-829561987
	.word	0
	.word	-864359996
	.word	939524096
	.word	-885776060
	.word	3758096384
	.word	-914034106
	.word	2415919104
	.word	1205571216
	.word	268435456
	.word	1177265600
	.word	1610612736
	.word	-998544111
	.word	1073741824
	.word	1118020388
	.word	2684354560
	.word	-1056436464
	.word	3355443200
	.word	-1083414054
	.word	2147483648
	.word	-1111965417
	.word	2013265920
	.word	1006743465
	.word	3355443200
	.word	-1169084706
	.word	1342177280
	.word	950221024
	.word	402653184
	.word	-1225475576
	.word	402653184
	.word	-1253088457
	.word	1342177280
	.word	865658381
	.word	1879048192
	.word	-1310146196
	.word	0
	.word	806452783
	.word	671088640
	.word	-1367329090
	.word	0
	.word	750778520
	.word	0
	.word	-1430192844
	.word	0
	.word	691002974
	.word	268435456
	.word	665946970
	.word	1207959552
	.word	-1508488318
	.word	402653184
	.word	-1536610266
	.word	1207959552
	.word	-1564986122
	.word	536870912
	.word	-1595533512
	.word	4160749568
	.word	525969303
	.word	1342177280
	.word	497310442
	.word	0
	.word	-1680781819
	.word	3221225472
	.word	-1707471228
	.word	1073741824
	.word	-1735932368
	.word	1073741824
	.word	-1763873957
	.word	2684354560
	.word	-1791650812
	.word	3221225472
	.word	-1823229924
	.word	2147483648
	.word	299319829
	.align	3
	.type	IntegerBias.4324, %object
	.size	IntegerBias.4324, 8
IntegerBias.4324:
	.word	0
	.word	1127743488
	.align	3
	.type	InversePeriod.4335, %object
	.size	InversePeriod.4335, 8
InversePeriod.4335:
	.word	1841940611
	.word	1071931184
	.align	3
	.type	Period.4336, %object
	.size	Period.4336, 24
Period.4336:
	.word	1413742592
	.word	1073291771
	.word	1280049152
	.word	1032227875
	.word	57701189
	.word	992578094
	.data
	.align	3
	.type	t0.4360, %object
	.size	t0.4360, 8
t0.4360:
	.word	1431655765
	.word	1070945621
	.align	3
	.type	t0.4373, %object
	.size	t0.4373, 8
t0.4373:
	.word	1431655765
	.word	1070945621
	.align	3
	.type	t0.4386, %object
	.size	t0.4386, 8
t0.4386:
	.word	1431655765
	.word	1070945621
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
