Given the following C code and unoptimized assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
#include<stdio.h>
eye[4][2];
void check(double n,int w){
	if(n>=1.1)eye[0][w]++;
	else if(n>=0.6)eye[1][w]++;
	else if(n>=0.2)eye[2][w]++;
	else eye[3][w]++;
}
int main(){
	int i=0,j=0;
	double r,l;
	for(;scanf("%lf %lf",&l,&r)!=EOF;){check(l,0);check(r,1);}
	for(;i<4;i++){printf("%d %d\n",eye[i][0],eye[i][1]);}
	exit(0);
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	eye
	.bss
	.align 32
	.type	eye, @object
	.size	eye, 32
eye:
	.zero	32
	.text
	.globl	check
	.type	check, @function
check:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movsd	%xmm0, -8(%rbp)
	movl	%edi, -12(%rbp)
	movsd	-8(%rbp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jb	.L12
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L12:
	movsd	-8(%rbp), %xmm0
	comisd	.LC1(%rip), %xmm0
	jb	.L13
	movl	-12(%rbp), %eax
	cltq
	addq	$2, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$2, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L13:
	movsd	-8(%rbp), %xmm0
	comisd	.LC2(%rip), %xmm0
	jb	.L14
	movl	-12(%rbp), %eax
	cltq
	addq	$4, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$4, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L14:
	movl	-12(%rbp), %eax
	cltq
	addq	$6, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$6, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L15:
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	check, .-check
	.section	.rodata
.LC3:
	.string	"%lf %lf"
.LC4:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -32(%rbp)
	movl	$0, -28(%rbp)
	jmp	.L17
.L18:
	movq	-16(%rbp), %rax
	movl	$0, %edi
	movq	%rax, %xmm0
	call	check
	movq	-24(%rbp), %rax
	movl	$1, %edi
	movq	%rax, %xmm0
	call	check
.L17:
	leaq	-24(%rbp), %rdx
	leaq	-16(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	jne	.L18
	jmp	.L19
.L20:
	movl	-32(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+eye(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-32(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	leaq	eye(%rip), %rax
	movl	(%rcx,%rax), %eax
	movl	%eax, %esi
	leaq	.LC4(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -32(%rbp)
.L19:
	cmpl	$3, -32(%rbp)
	jle	.L20
	movl	$0, %edi
	call	exit@PLT
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC0:
	.long	-1717986918
	.long	1072798105
	.align 8
.LC1:
	.long	858993459
	.long	1071854387
	.align 8
.LC2:
	.long	-1717986918
	.long	1070176665
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.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:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
user
	.file	"temp.c"
	.text
	.p2align 4
	.globl	check
	.type	check, @function
check:
.LFB23:
	.cfi_startproc
	endbr64
	comisd	.LC0(%rip), %xmm0
	leaq	eye(%rip), %rax
	movslq	%edi, %rdi
	jb	.L12
	addl	$1, (%rax,%rdi,4)
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	comisd	.LC1(%rip), %xmm0
	jb	.L13
	addl	$1, 8(%rax,%rdi,4)
	ret
	.p2align 4,,10
	.p2align 3
.L13:
	comisd	.LC2(%rip), %xmm0
	jb	.L14
	addl	$1, 16(%rax,%rdi,4)
	ret
	.p2align 4,,10
	.p2align 3
.L14:
	addl	$1, 24(%rax,%rdi,4)
	ret
	.cfi_endproc
.LFE23:
	.size	check, .-check
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC3:
	.string	"%lf %lf"
.LC4:
	.string	"%d %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB24:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	eye(%rip), %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	leaq	.LC3(%rip), %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %r12
	leaq	16(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L17:
	xorl	%eax, %eax
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L49
	movsd	16(%rsp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jb	.L42
	addl	$1, 0(%r13)
.L20:
	movsd	8(%rsp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jb	.L45
.L50:
	addl	$1, 4+eye(%rip)
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L42:
	comisd	.LC1(%rip), %xmm0
	jb	.L43
	addl	$1, 8+eye(%rip)
	movsd	8(%rsp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jnb	.L50
.L45:
	comisd	.LC1(%rip), %xmm0
	jb	.L46
	addl	$1, 12+eye(%rip)
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L43:
	comisd	.LC2(%rip), %xmm0
	jb	.L44
	addl	$1, 16+eye(%rip)
	jmp	.L20
	.p2align 4,,10
	.p2align 3
.L46:
	comisd	.LC2(%rip), %xmm0
	jb	.L47
	addl	$1, 20+eye(%rip)
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L44:
	addl	$1, 24+eye(%rip)
	jmp	.L20
	.p2align 4,,10
	.p2align 3
.L47:
	addl	$1, 28+eye(%rip)
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L49:
	leaq	eye(%rip), %rbx
	leaq	.LC4(%rip), %rbp
	leaq	32(%rbx), %r12
.L33:
	movl	4(%rbx), %ecx
	movl	(%rbx), %edx
	movq	%rbp, %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	addq	$8, %rbx
	call	__printf_chk@PLT
	cmpq	%r12, %rbx
	jne	.L33
	xorl	%edi, %edi
	call	exit@PLT
	.cfi_endproc
.LFE24:
	.size	main, .-main
	.globl	eye
	.bss
	.align 32
	.type	eye, @object
	.size	eye, 32
eye:
	.zero	32
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC0:
	.long	-1717986918
	.long	1072798105
	.align 8
.LC1:
	.long	858993459
	.long	1071854387
	.align 8
.LC2:
	.long	-1717986918
	.long	1070176665
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.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:

rule
	.file	"temp.c"
	.text
	.p2align 4
	.globl	check
	.type	check, @function
check:
.LFB23:
	.cfi_startproc
	endbr64
	comisd	.LC0(%rip), %xmm0
	leaq	eye(%rip), %rax
	movslq	%edi, %rdi
	jb	.L12
	addl	$1, (%rax,%rdi,4)
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	comisd	.LC1(%rip), %xmm0
	jb	.L13
	addl	$1, 8(%rax,%rdi,4)
	ret
	.p2align 4,,10
	.p2align 3
.L13:
	comisd	.LC2(%rip), %xmm0
	jb	.L14
	addl	$1, 16(%rax,%rdi,4)
	ret
	.p2align 4,,10
	.p2align 3
.L14:
	addl	$1, 24(%rax,%rdi,4)
	ret
	.cfi_endproc
.LFE23:
	.size	check, .-check
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC3:
	.string	"%lf %lf"
.LC4:
	.string	"%d %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB24:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	eye(%rip), %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	leaq	.LC3(%rip), %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %r12
	leaq	16(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L17:
	xorl	%eax, %eax
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L49
	movsd	16(%rsp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jb	.L42
	addl	$1, 0(%r13)
.L20:
	movsd	8(%rsp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jb	.L45
.L50:
	addl	$1, 4+eye(%rip)
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L42:
	comisd	.LC1(%rip), %xmm0
	jb	.L43
	addl	$1, 8+eye(%rip)
	movsd	8(%rsp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jnb	.L50
.L45:
	comisd	.LC1(%rip), %xmm0
	jb	.L46
	addl	$1, 12+eye(%rip)
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L43:
	comisd	.LC2(%rip), %xmm0
	jb	.L44
	addl	$1, 16+eye(%rip)
	jmp	.L20
	.p2align 4,,10
	.p2align 3
.L46:
	comisd	.LC2(%rip), %xmm0
	jb	.L47
	addl	$1, 20+eye(%rip)
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L44:
	addl	$1, 24+eye(%rip)
	jmp	.L20
	.p2align 4,,10
	.p2align 3
.L47:
	addl	$1, 28+eye(%rip)
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L49:
	leaq	eye(%rip), %rbx
	leaq	.LC4(%rip), %rbp
	leaq	32(%rbx), %r12
.L33:
	movl	4(%rbx), %ecx
	movl	(%rbx), %edx
	movq	%rbp, %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	addq	$8, %rbx
	call	__printf_chk@PLT
	cmpq	%r12, %rbx
	jne	.L33
	xorl	%edi, %edi
	call	exit@PLT
	.cfi_endproc
.LFE24:
	.size	main, .-main
	.globl	eye
	.bss
	.align 32
	.type	eye, @object
	.size	eye, 32
eye:
	.zero	32
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC0:
	.long	-1717986918
	.long	1072798105
	.align 8
.LC1:
	.long	858993459
	.long	1071854387
	.align 8
.LC2:
	.long	-1717986918
	.long	1070176665
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.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:

#include<stdio.h>
eye[4][2];
void check(double n,int w){
	if(n>=1.1)eye[0][w]++;
	else if(n>=0.6)eye[1][w]++;
	else if(n>=0.2)eye[2][w]++;
	else eye[3][w]++;
}
int main(){
	int i=0,j=0;
	double r,l;
	for(;scanf("%lf %lf",&l,&r)!=EOF;){check(l,0);check(r,1);}
	for(;i<4;i++){printf("%d %d\n",eye[i][0],eye[i][1]);}
	exit(0);
}
1.0 1.2
0.8 1.5
1.2 0.7
2.0 2.1903643288076555
 1.0 1.6960573379527397
1.4596389610615816 1.5471720124202895
1.2 0.7
2.751284804693524 2.1903643288076555
 1.4450818768746183 1.6960573379527397
2.61268179406582 1.5471720124202895
2.573217216239934 0.7
4.9346769267643475 2.1903643288076555
 3.074377310282718 3.408310358864073
4.365908554441974 2.7842928577123516
2.573217216239934 1.750655805377047
6.112015344915439 2.378616543190681
 1.0 1.2
0.8 1.5
1.2 0.7
2.751284804693524 2.1903643288076555
 1.0 1.2
0.8 1.5471720124202895
1.2 0.7
2.751284804693524 2.1903643288076555
 1.0 1.6960573379527397
0.8 1.5471720124202895
1.2 0.7
2.751284804693524 2.1903643288076555
 1.0 1.6960573379527397
0.8413834025534568 1.5471720124202895
1.2 0.7
2.751284804693524 2.1903643288076555
 1.0 1.6960573379527397
1.4596389610615816 1.5471720124202895
1.2 0.7
3.619100269325771 2.1903643288076555
 1.0 1.6960573379527397
1.4596389610615816 1.5471720124202895
1.2 0.7
4.285760834475757 2.1903643288076555

2 3
2 1
0 0
0 0
 3 3
1 1
0 0
0 0
 4 3
0 1
0 0
0 0
 4 4
0 0
0 0
0 0
 2 3
2 1
0 0
0 0
 2 3
2 1
0 0
0 0
 2 3
2 1
0 0
0 0
 2 3
2 1
0 0
0 0
 3 3
1 1
0 0
0 0
 3 3
1 1
0 0
0 0

Given the following C code and unoptimized assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
#include<stdio.h>
eye[4][2];
void check(double n,int w){
	if(n>=1.1)eye[0][w]++;
	else if(n>=0.6)eye[1][w]++;
	else if(n>=0.2)eye[2][w]++;
	else eye[3][w]++;
}
int main(){
	int i=0,j=0;
	double r,l;
	for(;scanf("%lf %lf",&l,&r)!=EOF;){check(l,0);check(r,1);}
	for(;i<4;i++){printf("%d %d\n",eye[i][0],eye[i][1]);}
	exit(0);
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	eye
	.bss
	.align 32
	.type	eye, @object
	.size	eye, 32
eye:
	.zero	32
	.text
	.globl	check
	.type	check, @function
check:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movsd	%xmm0, -8(%rbp)
	movl	%edi, -12(%rbp)
	movsd	-8(%rbp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jb	.L12
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L12:
	movsd	-8(%rbp), %xmm0
	comisd	.LC1(%rip), %xmm0
	jb	.L13
	movl	-12(%rbp), %eax
	cltq
	addq	$2, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$2, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L13:
	movsd	-8(%rbp), %xmm0
	comisd	.LC2(%rip), %xmm0
	jb	.L14
	movl	-12(%rbp), %eax
	cltq
	addq	$4, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$4, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L14:
	movl	-12(%rbp), %eax
	cltq
	addq	$6, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$6, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L15:
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	check, .-check
	.section	.rodata
.LC3:
	.string	"%lf %lf"
.LC4:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -32(%rbp)
	movl	$0, -28(%rbp)
	jmp	.L17
.L18:
	movq	-16(%rbp), %rax
	movl	$0, %edi
	movq	%rax, %xmm0
	call	check
	movq	-24(%rbp), %rax
	movl	$1, %edi
	movq	%rax, %xmm0
	call	check
.L17:
	leaq	-24(%rbp), %rdx
	leaq	-16(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	jne	.L18
	jmp	.L19
.L20:
	movl	-32(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+eye(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-32(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	leaq	eye(%rip), %rax
	movl	(%rcx,%rax), %eax
	movl	%eax, %esi
	leaq	.LC4(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -32(%rbp)
.L19:
	cmpl	$3, -32(%rbp)
	jle	.L20
	movl	$0, %edi
	call	exit@PLT
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC0:
	.long	-1717986918
	.long	1072798105
	.align 8
.LC1:
	.long	858993459
	.long	1071854387
	.align 8
.LC2:
	.long	-1717986918
	.long	1070176665
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.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:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
train
	.file	"temp.c"
	.text
	.globl	eye
	.bss
	.align 32
	.type	eye, @object
	.size	eye, 32
eye:
	.zero	32
	.text
	.globl	check
	.type	check, @function
check:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movsd	%xmm0, -8(%rbp)
	movl	%edi, -12(%rbp)
	movsd	-8(%rbp), %xmm0
	comisd	.LC0(%rip), %xmm0
	jb	.L12
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L12:
	movsd	-8(%rbp), %xmm0
	comisd	.LC1(%rip), %xmm0
	jb	.L13
	movl	-12(%rbp), %eax
	cltq
	addq	$2, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$2, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L13:
	movsd	-8(%rbp), %xmm0
	comisd	.LC2(%rip), %xmm0
	jb	.L14
	movl	-12(%rbp), %eax
	cltq
	addq	$4, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$4, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L15
.L14:
	movl	-12(%rbp), %eax
	cltq
	addq	$6, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-12(%rbp), %eax
	cltq
	addq	$6, %rax
	leaq	0(,%rax,4), %rdx
	leaq	eye(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L15:
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	check, .-check
	.section	.rodata
.LC3:
	.string	"%lf %lf"
.LC4:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -32(%rbp)
	movl	$0, -28(%rbp)
	jmp	.L17
.L18:
	movq	-16(%rbp), %rax
	movl	$0, %edi
	movq	%rax, %xmm0
	call	check
	movq	-24(%rbp), %rax
	movl	$1, %edi
	movq	%rax, %xmm0
	call	check
.L17:
	leaq	-24(%rbp), %rdx
	leaq	-16(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	jne	.L18
	jmp	.L19
.L20:
	movl	-32(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+eye(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-32(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	leaq	eye(%rip), %rax
	movl	(%rcx,%rax), %eax
	movl	%eax, %esi
	leaq	.LC4(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -32(%rbp)
.L19:
	cmpl	$3, -32(%rbp)
	jle	.L20
	movl	$0, %edi
	call	exit@PLT
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC0:
	.long	-1717986918
	.long	1072798105
	.align 8
.LC1:
	.long	858993459
	.long	1071854387
	.align 8
.LC2:
	.long	-1717986918
	.long	1070176665
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.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:
