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>

int main(void)
{
	int n, m, i, sum_n[9], sum_m[9];
	char c[9][15];
	
	for (i = 0; i < 9; i++){
		scanf("%s %d %d", c[i], &n, &m);
		sum_n[i] = n + m;
		sum_m[i] = n * 200 + m * 300;
	}
	
	for (i = 0; i < 9; i++){
		printf("%s %d %d\n", c[i], sum_n[i], sum_m[i]);
	}
	
	return (0);
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"%s %d %d"
.LC1:
	.string	"%s %d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$256, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -244(%rbp)
	jmp	.L2
.L3:
	leaq	-144(%rbp), %rcx
	movl	-244(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$4, %rax
	subq	%rdx, %rax
	leaq	(%rcx,%rax), %rsi
	leaq	-248(%rbp), %rdx
	leaq	-252(%rbp), %rax
	movq	%rdx, %rcx
	movq	%rax, %rdx
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-252(%rbp), %edx
	movl	-248(%rbp), %eax
	addl	%eax, %edx
	movl	-244(%rbp), %eax
	cltq
	movl	%edx, -240(%rbp,%rax,4)
	movl	-252(%rbp), %eax
	imull	$200, %eax, %edx
	movl	-248(%rbp), %eax
	imull	$300, %eax, %eax
	addl	%eax, %edx
	movl	-244(%rbp), %eax
	cltq
	movl	%edx, -192(%rbp,%rax,4)
	addl	$1, -244(%rbp)
.L2:
	cmpl	$8, -244(%rbp)
	jle	.L3
	movl	$0, -244(%rbp)
	jmp	.L4
.L5:
	movl	-244(%rbp), %eax
	cltq
	movl	-192(%rbp,%rax,4), %ecx
	movl	-244(%rbp), %eax
	cltq
	movl	-240(%rbp,%rax,4), %edx
	leaq	-144(%rbp), %rdi
	movl	-244(%rbp), %eax
	movslq	%eax, %rsi
	movq	%rsi, %rax
	salq	$4, %rax
	subq	%rsi, %rax
	addq	%rdi, %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -244(%rbp)
.L4:
	cmpl	$8, -244(%rbp)
	jle	.L5
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L7
	call	__stack_chk_fail@PLT
.L7:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.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
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s %d %d"
.LC1:
	.string	"%s %d %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	xorl	%r13d, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	xorl	%eax, %eax
	leaq	28(%rsp), %r15
	leaq	32(%rsp), %r12
	leaq	263(%rsp), %rax
	leaq	128(%rsp), %rbx
	movq	%rax, (%rsp)
	leaq	24(%rsp), %rax
	movq	%rbx, %r14
	leaq	80(%rsp), %rbp
	movq	%rax, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L2:
	movq	8(%rsp), %rdx
	movq	%r15, %rcx
	movq	%r14, %rsi
	xorl	%eax, %eax
	leaq	.LC0(%rip), %rdi
	addq	$15, %r14
	call	__isoc99_scanf@PLT
	movl	24(%rsp), %eax
	movl	28(%rsp), %edx
	leal	(%rax,%rdx), %ecx
	imull	$200, %eax, %eax
	movl	%ecx, (%r12,%r13)
	imull	$300, %edx, %edx
	addl	%edx, %eax
	movl	%eax, 0(%rbp,%r13)
	addq	$4, %r13
	cmpq	(%rsp), %r14
	jne	.L2
	xorl	%r13d, %r13d
	leaq	.LC1(%rip), %r14
	.p2align 4,,10
	.p2align 3
.L3:
	movl	(%r12,%r13), %ecx
	movl	0(%rbp,%r13), %r8d
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	addq	$15, %rbx
	addq	$4, %r13
	call	__printf_chk@PLT
	cmpq	(%rsp), %rbx
	jne	.L3
	movq	264(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9:
	.cfi_restore_state
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.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
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s %d %d"
.LC1:
	.string	"%s %d %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	xorl	%r13d, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	xorl	%eax, %eax
	leaq	28(%rsp), %r15
	leaq	32(%rsp), %r12
	leaq	263(%rsp), %rax
	leaq	128(%rsp), %rbx
	movq	%rax, (%rsp)
	leaq	24(%rsp), %rax
	movq	%rbx, %r14
	leaq	80(%rsp), %rbp
	movq	%rax, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L2:
	movq	8(%rsp), %rdx
	movq	%r15, %rcx
	movq	%r14, %rsi
	xorl	%eax, %eax
	leaq	.LC0(%rip), %rdi
	addq	$15, %r14
	call	__isoc99_scanf@PLT
	movl	24(%rsp), %eax
	movl	28(%rsp), %edx
	leal	(%rax,%rdx), %ecx
	imull	$200, %eax, %eax
	movl	%ecx, (%r12,%r13)
	imull	$300, %edx, %edx
	addl	%edx, %eax
	movl	%eax, 0(%rbp,%r13)
	addq	$4, %r13
	cmpq	(%rsp), %r14
	jne	.L2
	xorl	%r13d, %r13d
	leaq	.LC1(%rip), %r14
	.p2align 4,,10
	.p2align 3
.L3:
	movl	(%r12,%r13), %ecx
	movl	0(%rbp,%r13), %r8d
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	addq	$15, %rbx
	addq	$4, %r13
	call	__printf_chk@PLT
	cmpq	(%rsp), %rbx
	jne	.L3
	movq	264(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9:
	.cfi_restore_state
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.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>

int main(void)
{
	int n, m, i, sum_n[9], sum_m[9];
	char c[9][15];
	
	for (i = 0; i < 9; i++){
		scanf("%s %d %d", c[i], &n, &m);
		sum_n[i] = n + m;
		sum_m[i] = n * 200 + m * 300;
	}
	
	for (i = 0; i < 9; i++){
		printf("%s %d %d\n", c[i], sum_n[i], sum_m[i]);
	}
	
	return (0);
}
1a 132 243
1c 324 183
1f 93 199
2b 372 163
2c 229 346
2e 391 206
3a 118 168
3b 263 293
3d 281 102
 1a 132 243
1c 324 183
1f 93 199
3b 372 163
2c 229 346
2e 391 206
3a 118 168
3b 263 293
3d 281 102
 1a 132 243
1c 324 183
1f 93 199
3b 372 163
2c 229 346
2e 12 206
3a 118 168
3b 263 293
3d 281 102
 1a 132 243
1c 324 183
1f 93 199
3b 372 163
2c 229 346
2e 12 206
3a 118 168
3b 263 103
3d 281 102
 1a 132 243
1c 324 122
1f 93 199
3b 372 163
2c 229 346
2e 12 206
3a 118 168
3b 263 103
3d 281 102
 1a 132 243
1c 324 122
1e 93 199
3b 372 163
2c 229 346
2e 12 206
3a 118 168
3b 263 103
3d 281 102
 1a 132 243
1c 324 122
1e 93 199
3b 372 163
2c 229 346
2e 12 206
3a 228 168
3b 263 103
3d 281 102
 1a 132 243
1c 324 122
1e 168 199
3b 372 163
2c 229 346
2e 12 206
3a 228 168
3b 263 103
3d 281 102
 1a 132 243
c1 324 122
1e 168 199
3b 372 163
2c 229 346
2e 12 206
3a 228 168
3b 263 103
3d 281 102
 1a 132 426
c1 324 122
1e 168 199
3b 372 163
2c 229 346
2e 12 206
3a 228 168
3b 263 103
3d 281 102

1a 375 99300
1c 507 119700
1f 292 78300
2b 535 123300
2c 575 149600
2e 597 140000
3a 286 74000
3b 556 140500
3d 383 86800
 1a 375 99300
1c 507 119700
1f 292 78300
3b 535 123300
2c 575 149600
2e 597 140000
3a 286 74000
3b 556 140500
3d 383 86800
 1a 375 99300
1c 507 119700
1f 292 78300
3b 535 123300
2c 575 149600
2e 218 64200
3a 286 74000
3b 556 140500
3d 383 86800
 1a 375 99300
1c 507 119700
1f 292 78300
3b 535 123300
2c 575 149600
2e 218 64200
3a 286 74000
3b 366 83500
3d 383 86800
 1a 375 99300
1c 446 101400
1f 292 78300
3b 535 123300
2c 575 149600
2e 218 64200
3a 286 74000
3b 366 83500
3d 383 86800
 1a 375 99300
1c 446 101400
1e 292 78300
3b 535 123300
2c 575 149600
2e 218 64200
3a 286 74000
3b 366 83500
3d 383 86800
 1a 375 99300
1c 446 101400
1e 292 78300
3b 535 123300
2c 575 149600
2e 218 64200
3a 396 96000
3b 366 83500
3d 383 86800
 1a 375 99300
1c 446 101400
1e 367 93300
3b 535 123300
2c 575 149600
2e 218 64200
3a 396 96000
3b 366 83500
3d 383 86800
 1a 375 99300
c1 446 101400
1e 367 93300
3b 535 123300
2c 575 149600
2e 218 64200
3a 396 96000
3b 366 83500
3d 383 86800
 1a 558 154200
c1 446 101400
1e 367 93300
3b 535 123300
2c 575 149600
2e 218 64200
3a 396 96000
3b 366 83500
3d 383 86800

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>

int main(void)
{
	int n, m, i, sum_n[9], sum_m[9];
	char c[9][15];
	
	for (i = 0; i < 9; i++){
		scanf("%s %d %d", c[i], &n, &m);
		sum_n[i] = n + m;
		sum_m[i] = n * 200 + m * 300;
	}
	
	for (i = 0; i < 9; i++){
		printf("%s %d %d\n", c[i], sum_n[i], sum_m[i]);
	}
	
	return (0);
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"%s %d %d"
.LC1:
	.string	"%s %d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$256, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -244(%rbp)
	jmp	.L2
.L3:
	leaq	-144(%rbp), %rcx
	movl	-244(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$4, %rax
	subq	%rdx, %rax
	leaq	(%rcx,%rax), %rsi
	leaq	-248(%rbp), %rdx
	leaq	-252(%rbp), %rax
	movq	%rdx, %rcx
	movq	%rax, %rdx
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-252(%rbp), %edx
	movl	-248(%rbp), %eax
	addl	%eax, %edx
	movl	-244(%rbp), %eax
	cltq
	movl	%edx, -240(%rbp,%rax,4)
	movl	-252(%rbp), %eax
	imull	$200, %eax, %edx
	movl	-248(%rbp), %eax
	imull	$300, %eax, %eax
	addl	%eax, %edx
	movl	-244(%rbp), %eax
	cltq
	movl	%edx, -192(%rbp,%rax,4)
	addl	$1, -244(%rbp)
.L2:
	cmpl	$8, -244(%rbp)
	jle	.L3
	movl	$0, -244(%rbp)
	jmp	.L4
.L5:
	movl	-244(%rbp), %eax
	cltq
	movl	-192(%rbp,%rax,4), %ecx
	movl	-244(%rbp), %eax
	cltq
	movl	-240(%rbp,%rax,4), %edx
	leaq	-144(%rbp), %rdi
	movl	-244(%rbp), %eax
	movslq	%eax, %rsi
	movq	%rsi, %rax
	salq	$4, %rax
	subq	%rsi, %rax
	addq	%rdi, %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -244(%rbp)
.L4:
	cmpl	$8, -244(%rbp)
	jle	.L5
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L7
	call	__stack_chk_fail@PLT
.L7:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.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.
val
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"%s %d %d"
.LC1:
	.string	"%s %d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$256, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -244(%rbp)
	jmp	.L2
.L3:
	leaq	-144(%rbp), %rcx
	movl	-244(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$4, %rax
	subq	%rdx, %rax
	leaq	(%rcx,%rax), %rsi
	leaq	-248(%rbp), %rdx
	leaq	-252(%rbp), %rax
	movq	%rdx, %rcx
	movq	%rax, %rdx
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-252(%rbp), %edx
	movl	-248(%rbp), %eax
	addl	%eax, %edx
	movl	-244(%rbp), %eax
	cltq
	movl	%edx, -240(%rbp,%rax,4)
	movl	-252(%rbp), %eax
	imull	$200, %eax, %edx
	movl	-248(%rbp), %eax
	imull	$300, %eax, %eax
	addl	%eax, %edx
	movl	-244(%rbp), %eax
	cltq
	movl	%edx, -192(%rbp,%rax,4)
	addl	$1, -244(%rbp)
.L2:
	cmpl	$8, -244(%rbp)
	jle	.L3
	movl	$0, -244(%rbp)
	jmp	.L4
.L5:
	movl	-244(%rbp), %eax
	cltq
	movl	-192(%rbp,%rax,4), %ecx
	movl	-244(%rbp), %eax
	cltq
	movl	-240(%rbp,%rax,4), %edx
	leaq	-144(%rbp), %rdi
	movl	-244(%rbp), %eax
	movslq	%eax, %rsi
	movq	%rsi, %rax
	salq	$4, %rax
	subq	%rsi, %rax
	addq	%rdi, %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -244(%rbp)
.L4:
	cmpl	$8, -244(%rbp)
	jle	.L5
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L7
	call	__stack_chk_fail@PLT
.L7:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.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:
