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>

int main(void)
{
	float time_500, time_1000;
	
	while (scanf("%f %f", &time_500, &time_1000) != EOF){
	
		if (time_500 < 35.50 && time_1000 < 71.00){
			printf("AAA\n");
		}
		else if (time_500 < 37.50 && time_1000 < 77.00){
			printf("AA\n");
		}
		else if (time_500 < 40.00 && time_1000 < 83.00){
			printf("A\n");
		}
		else if (time_500 < 43.00 && time_1000 < 89.00){
			printf("B\n");
		}
		else if (time_500 < 50.00 && time_1000 < 105.00){
			printf("C\n");
		}
		else if (time_500 < 55.00 && time_1000 < 116.00){
			printf("D\n");
		}
		else if (time_500 < 70.00 && time_1000 < 148.00){
			printf("E\n");
		}
		else {
			printf("NA\n");
		}
	}
	
	return (0);
}```

Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC2:
	.string	"AAA"
.LC5:
	.string	"AA"
.LC8:
	.string	"A"
.LC11:
	.string	"B"
.LC14:
	.string	"C"
.LC17:
	.string	"D"
.LC20:
	.string	"E"
.LC21:
	.string	"NA"
.LC22:
	.string	"%f %f"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC22(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %r12
	movq	%rsp, %rbp
	.p2align 4,,10
	.p2align 3
.L2:
	xorl	%eax, %eax
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L43
	movss	(%rsp), %xmm0
	movss	.LC0(%rip), %xmm2
	comiss	%xmm0, %xmm2
	jbe	.L3
	movss	.LC1(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L44
.L3:
	movss	.LC3(%rip), %xmm3
	comiss	%xmm0, %xmm3
	jbe	.L7
	movss	.LC4(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L45
.L7:
	movss	.LC6(%rip), %xmm4
	comiss	%xmm0, %xmm4
	jbe	.L10
	movss	.LC7(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L46
.L10:
	movss	.LC9(%rip), %xmm5
	comiss	%xmm0, %xmm5
	jbe	.L13
	movss	.LC10(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L47
.L13:
	movss	.LC12(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L16
	movss	.LC13(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L48
.L16:
	movss	.LC15(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L19
	movss	.LC16(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L49
.L19:
	movss	.LC18(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L22
	movss	.LC19(%rip), %xmm0
	comiss	4(%rsp), %xmm0
	ja	.L50
.L22:
	leaq	.LC21(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L44:
	leaq	.LC2(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L45:
	leaq	.LC5(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L43:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L51
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L46:
	.cfi_restore_state
	leaq	.LC8(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L47:
	leaq	.LC11(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L48:
	leaq	.LC14(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L50:
	leaq	.LC20(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L49:
	leaq	.LC17(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L51:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC0:
	.long	1108213760
	.align 4
.LC1:
	.long	1116602368
	.align 4
.LC3:
	.long	1108738048
	.align 4
.LC4:
	.long	1117388800
	.align 4
.LC6:
	.long	1109393408
	.align 4
.LC7:
	.long	1118175232
	.align 4
.LC9:
	.long	1110179840
	.align 4
.LC10:
	.long	1118961664
	.align 4
.LC12:
	.long	1112014848
	.align 4
.LC13:
	.long	1121058816
	.align 4
.LC15:
	.long	1113325568
	.align 4
.LC16:
	.long	1122500608
	.align 4
.LC18:
	.long	1116471296
	.align 4
.LC19:
	.long	1125384192
	.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
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC2:
	.string	"AAA"
.LC5:
	.string	"AA"
.LC8:
	.string	"A"
.LC11:
	.string	"B"
.LC14:
	.string	"C"
.LC17:
	.string	"D"
.LC20:
	.string	"E"
.LC21:
	.string	"NA"
.LC22:
	.string	"%f %f"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC22(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %r12
	movq	%rsp, %rbp
	.p2align 4,,10
	.p2align 3
.L2:
	xorl	%eax, %eax
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L43
	movss	(%rsp), %xmm0
	movss	.LC0(%rip), %xmm2
	comiss	%xmm0, %xmm2
	jbe	.L3
	movss	.LC1(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L44
.L3:
	movss	.LC3(%rip), %xmm3
	comiss	%xmm0, %xmm3
	jbe	.L7
	movss	.LC4(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L45
.L7:
	movss	.LC6(%rip), %xmm4
	comiss	%xmm0, %xmm4
	jbe	.L10
	movss	.LC7(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L46
.L10:
	movss	.LC9(%rip), %xmm5
	comiss	%xmm0, %xmm5
	jbe	.L13
	movss	.LC10(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L47
.L13:
	movss	.LC12(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L16
	movss	.LC13(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L48
.L16:
	movss	.LC15(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L19
	movss	.LC16(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L49
.L19:
	movss	.LC18(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L22
	movss	.LC19(%rip), %xmm0
	comiss	4(%rsp), %xmm0
	ja	.L50
.L22:
	leaq	.LC21(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L44:
	leaq	.LC2(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L45:
	leaq	.LC5(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L43:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L51
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L46:
	.cfi_restore_state
	leaq	.LC8(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L47:
	leaq	.LC11(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L48:
	leaq	.LC14(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L50:
	leaq	.LC20(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L49:
	leaq	.LC17(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L51:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC0:
	.long	1108213760
	.align 4
.LC1:
	.long	1116602368
	.align 4
.LC3:
	.long	1108738048
	.align 4
.LC4:
	.long	1117388800
	.align 4
.LC6:
	.long	1109393408
	.align 4
.LC7:
	.long	1118175232
	.align 4
.LC9:
	.long	1110179840
	.align 4
.LC10:
	.long	1118961664
	.align 4
.LC12:
	.long	1112014848
	.align 4
.LC13:
	.long	1121058816
	.align 4
.LC15:
	.long	1113325568
	.align 4
.LC16:
	.long	1122500608
	.align 4
.LC18:
	.long	1116471296
	.align 4
.LC19:
	.long	1125384192
	.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
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC2:
	.string	"AAA"
.LC5:
	.string	"AA"
.LC8:
	.string	"A"
.LC11:
	.string	"B"
.LC14:
	.string	"C"
.LC17:
	.string	"D"
.LC20:
	.string	"E"
.LC21:
	.string	"NA"
.LC22:
	.string	"%f %f"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC22(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %r12
	movq	%rsp, %rbp
	.p2align 4,,10
	.p2align 3
.L2:
	xorl	%eax, %eax
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L43
	movss	(%rsp), %xmm0
	movss	.LC0(%rip), %xmm2
	comiss	%xmm0, %xmm2
	jbe	.L3
	movss	.LC1(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L44
.L3:
	movss	.LC3(%rip), %xmm3
	comiss	%xmm0, %xmm3
	jbe	.L7
	movss	.LC4(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L45
.L7:
	movss	.LC6(%rip), %xmm4
	comiss	%xmm0, %xmm4
	jbe	.L10
	movss	.LC7(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L46
.L10:
	movss	.LC9(%rip), %xmm5
	comiss	%xmm0, %xmm5
	jbe	.L13
	movss	.LC10(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L47
.L13:
	movss	.LC12(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L16
	movss	.LC13(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L48
.L16:
	movss	.LC15(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L19
	movss	.LC16(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L49
.L19:
	movss	.LC18(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L22
	movss	.LC19(%rip), %xmm0
	comiss	4(%rsp), %xmm0
	ja	.L50
.L22:
	leaq	.LC21(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L44:
	leaq	.LC2(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L45:
	leaq	.LC5(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L43:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L51
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L46:
	.cfi_restore_state
	leaq	.LC8(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L47:
	leaq	.LC11(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L48:
	leaq	.LC14(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L50:
	leaq	.LC20(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L49:
	leaq	.LC17(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L51:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC0:
	.long	1108213760
	.align 4
.LC1:
	.long	1116602368
	.align 4
.LC3:
	.long	1108738048
	.align 4
.LC4:
	.long	1117388800
	.align 4
.LC6:
	.long	1109393408
	.align 4
.LC7:
	.long	1118175232
	.align 4
.LC9:
	.long	1110179840
	.align 4
.LC10:
	.long	1118961664
	.align 4
.LC12:
	.long	1112014848
	.align 4
.LC13:
	.long	1121058816
	.align 4
.LC15:
	.long	1113325568
	.align 4
.LC16:
	.long	1122500608
	.align 4
.LC18:
	.long	1116471296
	.align 4
.LC19:
	.long	1125384192
	.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>

int main(void)
{
	float time_500, time_1000;
	
	while (scanf("%f %f", &time_500, &time_1000) != EOF){
	
		if (time_500 < 35.50 && time_1000 < 71.00){
			printf("AAA\n");
		}
		else if (time_500 < 37.50 && time_1000 < 77.00){
			printf("AA\n");
		}
		else if (time_500 < 40.00 && time_1000 < 83.00){
			printf("A\n");
		}
		else if (time_500 < 43.00 && time_1000 < 89.00){
			printf("B\n");
		}
		else if (time_500 < 50.00 && time_1000 < 105.00){
			printf("C\n");
		}
		else if (time_500 < 55.00 && time_1000 < 116.00){
			printf("D\n");
		}
		else if (time_500 < 70.00 && time_1000 < 148.00){
			printf("E\n");
		}
		else {
			printf("NA\n");
		}
	}
	
	return (0);
}```
Given the following C code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
#include <stdio.h>

int main(void)
{
	float time_500, time_1000;
	
	while (scanf("%f %f", &time_500, &time_1000) != EOF){
	
		if (time_500 < 35.50 && time_1000 < 71.00){
			printf("AAA\n");
		}
		else if (time_500 < 37.50 && time_1000 < 77.00){
			printf("AA\n");
		}
		else if (time_500 < 40.00 && time_1000 < 83.00){
			printf("A\n");
		}
		else if (time_500 < 43.00 && time_1000 < 89.00){
			printf("B\n");
		}
		else if (time_500 < 50.00 && time_1000 < 105.00){
			printf("C\n");
		}
		else if (time_500 < 55.00 && time_1000 < 116.00){
			printf("D\n");
		}
		else if (time_500 < 70.00 && time_1000 < 148.00){
			printf("E\n");
		}
		else {
			printf("NA\n");
		}
	}
	
	return (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:

40.0 70.15273874709118
72.5 140.51
 43.236780306897465 72.47791800727414
76.48007184592961 143.3245253779178
 50.825010742906116 75.69989732783311
82.26479437960049 146.33206365267094
 55.48794721361476 79.14473639758064
86.53074549795734 149.70848351203585
 70.02963720383003 94.72312922368101
103.91489947609344 168.84078141503855
 40.0 70.15273874709118
73.39358812211353 140.51
 40.0 70.26540141125885
73.39358812211353 140.51
 40.991466890252646 70.26540141125885
73.39358812211353 140.51
 40.991466890252646 70.71729331330802
73.39358812211353 140.51
 40.991466890252646 70.71729331330802
73.89035215619808 140.51

B
NA
 C
NA
 D
NA
 E
NA
 NA
NA
 B
NA
 B
NA
 B
NA
 B
NA
 B
NA

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>

int main(void)
{
	float time_500, time_1000;
	
	while (scanf("%f %f", &time_500, &time_1000) != EOF){
	
		if (time_500 < 35.50 && time_1000 < 71.00){
			printf("AAA\n");
		}
		else if (time_500 < 37.50 && time_1000 < 77.00){
			printf("AA\n");
		}
		else if (time_500 < 40.00 && time_1000 < 83.00){
			printf("A\n");
		}
		else if (time_500 < 43.00 && time_1000 < 89.00){
			printf("B\n");
		}
		else if (time_500 < 50.00 && time_1000 < 105.00){
			printf("C\n");
		}
		else if (time_500 < 55.00 && time_1000 < 116.00){
			printf("D\n");
		}
		else if (time_500 < 70.00 && time_1000 < 148.00){
			printf("E\n");
		}
		else {
			printf("NA\n");
		}
	}
	
	return (0);
}```

Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC2:
	.string	"AAA"
.LC5:
	.string	"AA"
.LC8:
	.string	"A"
.LC11:
	.string	"B"
.LC14:
	.string	"C"
.LC17:
	.string	"D"
.LC20:
	.string	"E"
.LC21:
	.string	"NA"
.LC22:
	.string	"%f %f"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC22(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %r12
	movq	%rsp, %rbp
	.p2align 4,,10
	.p2align 3
.L2:
	xorl	%eax, %eax
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L43
	movss	(%rsp), %xmm0
	movss	.LC0(%rip), %xmm2
	comiss	%xmm0, %xmm2
	jbe	.L3
	movss	.LC1(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L44
.L3:
	movss	.LC3(%rip), %xmm3
	comiss	%xmm0, %xmm3
	jbe	.L7
	movss	.LC4(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L45
.L7:
	movss	.LC6(%rip), %xmm4
	comiss	%xmm0, %xmm4
	jbe	.L10
	movss	.LC7(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L46
.L10:
	movss	.LC9(%rip), %xmm5
	comiss	%xmm0, %xmm5
	jbe	.L13
	movss	.LC10(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L47
.L13:
	movss	.LC12(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L16
	movss	.LC13(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L48
.L16:
	movss	.LC15(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L19
	movss	.LC16(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L49
.L19:
	movss	.LC18(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L22
	movss	.LC19(%rip), %xmm0
	comiss	4(%rsp), %xmm0
	ja	.L50
.L22:
	leaq	.LC21(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L44:
	leaq	.LC2(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L45:
	leaq	.LC5(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L43:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L51
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L46:
	.cfi_restore_state
	leaq	.LC8(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L47:
	leaq	.LC11(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L48:
	leaq	.LC14(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L50:
	leaq	.LC20(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L49:
	leaq	.LC17(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L51:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC0:
	.long	1108213760
	.align 4
.LC1:
	.long	1116602368
	.align 4
.LC3:
	.long	1108738048
	.align 4
.LC4:
	.long	1117388800
	.align 4
.LC6:
	.long	1109393408
	.align 4
.LC7:
	.long	1118175232
	.align 4
.LC9:
	.long	1110179840
	.align 4
.LC10:
	.long	1118961664
	.align 4
.LC12:
	.long	1112014848
	.align 4
.LC13:
	.long	1121058816
	.align 4
.LC15:
	.long	1113325568
	.align 4
.LC16:
	.long	1122500608
	.align 4
.LC18:
	.long	1116471296
	.align 4
.LC19:
	.long	1125384192
	.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
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC2:
	.string	"AAA"
.LC5:
	.string	"AA"
.LC8:
	.string	"A"
.LC11:
	.string	"B"
.LC14:
	.string	"C"
.LC17:
	.string	"D"
.LC20:
	.string	"E"
.LC21:
	.string	"NA"
.LC22:
	.string	"%f %f"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC22(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %r12
	movq	%rsp, %rbp
	.p2align 4,,10
	.p2align 3
.L2:
	xorl	%eax, %eax
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L43
	movss	(%rsp), %xmm0
	movss	.LC0(%rip), %xmm2
	comiss	%xmm0, %xmm2
	jbe	.L3
	movss	.LC1(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L44
.L3:
	movss	.LC3(%rip), %xmm3
	comiss	%xmm0, %xmm3
	jbe	.L7
	movss	.LC4(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L45
.L7:
	movss	.LC6(%rip), %xmm4
	comiss	%xmm0, %xmm4
	jbe	.L10
	movss	.LC7(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L46
.L10:
	movss	.LC9(%rip), %xmm5
	comiss	%xmm0, %xmm5
	jbe	.L13
	movss	.LC10(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L47
.L13:
	movss	.LC12(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L16
	movss	.LC13(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L48
.L16:
	movss	.LC15(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L19
	movss	.LC16(%rip), %xmm1
	comiss	4(%rsp), %xmm1
	ja	.L49
.L19:
	movss	.LC18(%rip), %xmm1
	comiss	%xmm0, %xmm1
	jbe	.L22
	movss	.LC19(%rip), %xmm0
	comiss	4(%rsp), %xmm0
	ja	.L50
.L22:
	leaq	.LC21(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L44:
	leaq	.LC2(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L45:
	leaq	.LC5(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L43:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L51
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L46:
	.cfi_restore_state
	leaq	.LC8(%rip), %rdi
	call	puts@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L47:
	leaq	.LC11(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L48:
	leaq	.LC14(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L50:
	leaq	.LC20(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L49:
	leaq	.LC17(%rip), %rdi
	call	puts@PLT
	jmp	.L2
.L51:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC0:
	.long	1108213760
	.align 4
.LC1:
	.long	1116602368
	.align 4
.LC3:
	.long	1108738048
	.align 4
.LC4:
	.long	1117388800
	.align 4
.LC6:
	.long	1109393408
	.align 4
.LC7:
	.long	1118175232
	.align 4
.LC9:
	.long	1110179840
	.align 4
.LC10:
	.long	1118961664
	.align 4
.LC12:
	.long	1112014848
	.align 4
.LC13:
	.long	1121058816
	.align 4
.LC15:
	.long	1113325568
	.align 4
.LC16:
	.long	1122500608
	.align 4
.LC18:
	.long	1116471296
	.align 4
.LC19:
	.long	1125384192
	.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:
```