Given the following C code and 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);
}```

Assembly Code:

```assembly
	.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:
```

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.
Optimized Assembly Code:

user
```assembly
	.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
```assembly
	.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:
```
```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);
}```
Given the following C 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);
}```

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.
Optimized Assembly Code:

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 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);
}```

Assembly Code:

```assembly
	.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:
```

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.
Optimized Assembly Code:

train
```assembly
	.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:
```