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>
#include<stdlib.h>
#include<string.h>
#include<math.h>
typedef long long ll;


int main()
{
    int a[3][3],f[3][3];
    for(int i=0;i<3;i++)
    {
        scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
        for(int j=0;j<3;j++)
        {
            f[i][j]=0;
        }
    }
    int n;
    scanf("%d",&n);
    int b;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&b);

        for(int i=0;i<3;i++)
        {
            for(int j=0;j<3;j++)
            {
                if(b==a[i][j])
                {
                    f[i][j]=1;
                }
            }
        }
    }

    int flag=0;

    for(int i=0;i<3;i++)
    {
        if(f[i][0]+f[i][1]+f[i][2]==3)
        {
            flag=1;
        }
        if(f[0][i]+f[1][i]+f[2][i]==3)
        {
            flag=1;
        }
    }
    if(f[0][0]+f[1][1]+f[2][2]==3)
    {
        flag=1;
    }
    if(f[0][2]+f[1][1]+f[2][0]==3)
    {
        flag=1;
    }
        

    if(flag==1)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
        
    return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"%d %d %d"
.LC1:
	.string	"%d"
.LC2:
	.string	"Yes"
.LC3:
	.string	"No"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$144, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -124(%rbp)
	jmp	.L2
.L5:
	leaq	-96(%rbp), %rcx
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	$8, %rax
	addq	%rax, %rcx
	leaq	-96(%rbp), %rsi
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	$4, %rax
	leaq	(%rsi,%rax), %rdx
	leaq	-96(%rbp), %rdi
	movl	-124(%rbp), %eax
	movslq	%eax, %rsi
	movq	%rsi, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	salq	$2, %rax
	addq	%rdi, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -120(%rbp)
	jmp	.L3
.L4:
	movl	-120(%rbp), %eax
	movslq	%eax, %rcx
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	$0, -48(%rbp,%rax,4)
	addl	$1, -120(%rbp)
.L3:
	cmpl	$2, -120(%rbp)
	jle	.L4
	addl	$1, -124(%rbp)
.L2:
	cmpl	$2, -124(%rbp)
	jle	.L5
	leaq	-132(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -116(%rbp)
	jmp	.L6
.L12:
	leaq	-128(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -112(%rbp)
	jmp	.L7
.L11:
	movl	$0, -108(%rbp)
	jmp	.L8
.L10:
	movl	-108(%rbp), %eax
	movslq	%eax, %rcx
	movl	-112(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	-96(%rbp,%rax,4), %edx
	movl	-128(%rbp), %eax
	cmpl	%eax, %edx
	jne	.L9
	movl	-108(%rbp), %eax
	movslq	%eax, %rcx
	movl	-112(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	$1, -48(%rbp,%rax,4)
.L9:
	addl	$1, -108(%rbp)
.L8:
	cmpl	$2, -108(%rbp)
	jle	.L10
	addl	$1, -112(%rbp)
.L7:
	cmpl	$2, -112(%rbp)
	jle	.L11
	addl	$1, -116(%rbp)
.L6:
	movl	-132(%rbp), %eax
	cmpl	%eax, -116(%rbp)
	jl	.L12
	movl	$0, -104(%rbp)
	movl	$0, -100(%rbp)
	jmp	.L13
.L16:
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$48, %rax
	movl	(%rax), %ecx
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$44, %rax
	movl	(%rax), %eax
	addl	%eax, %ecx
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$40, %rax
	movl	(%rax), %eax
	addl	%ecx, %eax
	cmpl	$3, %eax
	jne	.L14
	movl	$1, -104(%rbp)
.L14:
	movl	-100(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %edx
	movl	-100(%rbp), %eax
	cltq
	addq	$3, %rax
	movl	-48(%rbp,%rax,4), %eax
	addl	%eax, %edx
	movl	-100(%rbp), %eax
	cltq
	addq	$6, %rax
	movl	-48(%rbp,%rax,4), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L15
	movl	$1, -104(%rbp)
.L15:
	addl	$1, -100(%rbp)
.L13:
	cmpl	$2, -100(%rbp)
	jle	.L16
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%eax, %edx
	movl	-16(%rbp), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L17
	movl	$1, -104(%rbp)
.L17:
	movl	-40(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%eax, %edx
	movl	-24(%rbp), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L18
	movl	$1, -104(%rbp)
.L18:
	cmpl	$1, -104(%rbp)
	jne	.L19
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L20
.L19:
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L20:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.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	"%d %d %d"
.LC1:
	.string	"%d"
.LC2:
	.string	"Yes"
.LC3:
	.string	"No"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB51:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rbx
	leaq	64(%rsp), %rbp
	leaq	52(%rsp), %r13
.L2:
	leaq	8(%rbx), %rcx
	leaq	4(%rbx), %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
	xorl	%eax, %eax
	addq	$12, %rbx
	addq	$12, %rbp
	call	__isoc99_scanf@PLT
	movq	$0, -12(%rbp)
	movl	$0, -4(%rbp)
	cmpq	%r13, %rbx
	jne	.L2
	leaq	.LC1(%rip), %rbp
	leaq	8(%rsp), %rsi
	xorl	%eax, %eax
	movq	%rbp, %rdi
	call	__isoc99_scanf@PLT
	movl	8(%rsp), %eax
	testl	%eax, %eax
	jle	.L3
	xorl	%ebx, %ebx
	leaq	12(%rsp), %r12
	movl	$1, %r13d
	.p2align 4,,10
	.p2align 3
.L15:
	movq	%r12, %rsi
	movq	%rbp, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movl	12(%rsp), %eax
	movl	$1, %edx
	cmpl	%eax, 16(%rsp)
	je	.L4
	movl	64(%rsp), %edx
.L4:
	movl	%edx, 64(%rsp)
	movl	$1, %ecx
	cmpl	20(%rsp), %eax
	je	.L5
	movl	68(%rsp), %ecx
.L5:
	movl	%ecx, 68(%rsp)
	movl	$1, %edi
	cmpl	24(%rsp), %eax
	je	.L6
	movl	72(%rsp), %edi
.L6:
	movl	%edi, 72(%rsp)
	movl	$1, %ecx
	cmpl	28(%rsp), %eax
	je	.L7
	movl	76(%rsp), %ecx
.L7:
	movl	%ecx, 76(%rsp)
	movl	$1, %ecx
	cmpl	32(%rsp), %eax
	je	.L8
	movl	80(%rsp), %ecx
.L8:
	movl	%ecx, 80(%rsp)
	movl	$1, %esi
	cmpl	36(%rsp), %eax
	je	.L9
	movl	84(%rsp), %esi
.L9:
	movl	%esi, 84(%rsp)
	movl	$1, %esi
	cmpl	40(%rsp), %eax
	je	.L10
	movl	88(%rsp), %esi
.L10:
	movl	%esi, 88(%rsp)
	movl	$1, %r8d
	cmpl	44(%rsp), %eax
	je	.L11
	movl	92(%rsp), %r8d
.L11:
	movl	%r8d, 92(%rsp)
	cmpl	48(%rsp), %eax
	je	.L12
	movl	96(%rsp), %r9d
	addl	$1, %ebx
	cmpl	8(%rsp), %ebx
	jl	.L15
	movl	64(%rsp), %r8d
	movl	80(%rsp), %ebp
	movl	%r9d, %r13d
	movl	72(%rsp), %eax
	movl	88(%rsp), %r10d
.L14:
	movl	68(%rsp), %r11d
	movl	$1, %ebx
	addl	%r8d, %r11d
	addl	%eax, %r11d
	cmpl	$3, %r11d
	sete	%r12b
	addl	76(%rsp), %r8d
	leal	(%r8,%r10), %r11d
	movzbl	%r12b, %r8d
	cmpl	$3, %r11d
	movl	76(%rsp), %r11d
	cmove	%ebx, %r8d
	addl	%ebp, %r11d
	addl	84(%rsp), %r11d
	cmpl	$3, %r11d
	movl	68(%rsp), %r11d
	cmove	%ebx, %r8d
	addl	%ebp, %r11d
	addl	92(%rsp), %r11d
	cmpl	$3, %r11d
	cmove	%ebx, %r8d
	addl	92(%rsp), %r10d
	addl	%r13d, %r10d
	cmpl	$3, %r10d
	cmove	%ebx, %r8d
	addl	84(%rsp), %eax
	addl	%r13d, %eax
	cmpl	$3, %eax
	je	.L20
	leal	(%rdx,%rcx), %eax
	addl	%r9d, %eax
	cmpl	$3, %eax
	je	.L20
	leal	(%rcx,%rdi), %eax
	addl	%esi, %eax
	cmpl	$3, %eax
	je	.L20
	testl	%r8d, %r8d
	jne	.L20
	leaq	.LC3(%rip), %rdi
	call	puts@PLT
	jmp	.L23
.L20:
	leaq	.LC2(%rip), %rdi
	call	puts@PLT
.L23:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L47
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	.cfi_restore_state
	movl	%r13d, 96(%rsp)
	addl	$1, %ebx
	cmpl	%ebx, 8(%rsp)
	jg	.L15
	movl	64(%rsp), %r8d
	movl	80(%rsp), %ebp
	movl	$1, %r9d
	movl	72(%rsp), %eax
	movl	88(%rsp), %r10d
	jmp	.L14
.L3:
	movl	64(%rsp), %r8d
	movl	80(%rsp), %ebp
	movl	96(%rsp), %r13d
	movl	72(%rsp), %eax
	movl	88(%rsp), %r10d
	movl	%r8d, %edx
	movl	%ebp, %ecx
	movl	%r13d, %r9d
	movl	%eax, %edi
	movl	%r10d, %esi
	jmp	.L14
.L47:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE51:
	.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	"%d %d %d"
.LC1:
	.string	"%d"
.LC2:
	.string	"Yes"
.LC3:
	.string	"No"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB51:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rbx
	leaq	64(%rsp), %rbp
	leaq	52(%rsp), %r13
.L2:
	leaq	8(%rbx), %rcx
	leaq	4(%rbx), %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
	xorl	%eax, %eax
	addq	$12, %rbx
	addq	$12, %rbp
	call	__isoc99_scanf@PLT
	movq	$0, -12(%rbp)
	movl	$0, -4(%rbp)
	cmpq	%r13, %rbx
	jne	.L2
	leaq	.LC1(%rip), %rbp
	leaq	8(%rsp), %rsi
	xorl	%eax, %eax
	movq	%rbp, %rdi
	call	__isoc99_scanf@PLT
	movl	8(%rsp), %eax
	testl	%eax, %eax
	jle	.L3
	xorl	%ebx, %ebx
	leaq	12(%rsp), %r12
	movl	$1, %r13d
	.p2align 4,,10
	.p2align 3
.L15:
	movq	%r12, %rsi
	movq	%rbp, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movl	12(%rsp), %eax
	movl	$1, %edx
	cmpl	%eax, 16(%rsp)
	je	.L4
	movl	64(%rsp), %edx
.L4:
	movl	%edx, 64(%rsp)
	movl	$1, %ecx
	cmpl	20(%rsp), %eax
	je	.L5
	movl	68(%rsp), %ecx
.L5:
	movl	%ecx, 68(%rsp)
	movl	$1, %edi
	cmpl	24(%rsp), %eax
	je	.L6
	movl	72(%rsp), %edi
.L6:
	movl	%edi, 72(%rsp)
	movl	$1, %ecx
	cmpl	28(%rsp), %eax
	je	.L7
	movl	76(%rsp), %ecx
.L7:
	movl	%ecx, 76(%rsp)
	movl	$1, %ecx
	cmpl	32(%rsp), %eax
	je	.L8
	movl	80(%rsp), %ecx
.L8:
	movl	%ecx, 80(%rsp)
	movl	$1, %esi
	cmpl	36(%rsp), %eax
	je	.L9
	movl	84(%rsp), %esi
.L9:
	movl	%esi, 84(%rsp)
	movl	$1, %esi
	cmpl	40(%rsp), %eax
	je	.L10
	movl	88(%rsp), %esi
.L10:
	movl	%esi, 88(%rsp)
	movl	$1, %r8d
	cmpl	44(%rsp), %eax
	je	.L11
	movl	92(%rsp), %r8d
.L11:
	movl	%r8d, 92(%rsp)
	cmpl	48(%rsp), %eax
	je	.L12
	movl	96(%rsp), %r9d
	addl	$1, %ebx
	cmpl	8(%rsp), %ebx
	jl	.L15
	movl	64(%rsp), %r8d
	movl	80(%rsp), %ebp
	movl	%r9d, %r13d
	movl	72(%rsp), %eax
	movl	88(%rsp), %r10d
.L14:
	movl	68(%rsp), %r11d
	movl	$1, %ebx
	addl	%r8d, %r11d
	addl	%eax, %r11d
	cmpl	$3, %r11d
	sete	%r12b
	addl	76(%rsp), %r8d
	leal	(%r8,%r10), %r11d
	movzbl	%r12b, %r8d
	cmpl	$3, %r11d
	movl	76(%rsp), %r11d
	cmove	%ebx, %r8d
	addl	%ebp, %r11d
	addl	84(%rsp), %r11d
	cmpl	$3, %r11d
	movl	68(%rsp), %r11d
	cmove	%ebx, %r8d
	addl	%ebp, %r11d
	addl	92(%rsp), %r11d
	cmpl	$3, %r11d
	cmove	%ebx, %r8d
	addl	92(%rsp), %r10d
	addl	%r13d, %r10d
	cmpl	$3, %r10d
	cmove	%ebx, %r8d
	addl	84(%rsp), %eax
	addl	%r13d, %eax
	cmpl	$3, %eax
	je	.L20
	leal	(%rdx,%rcx), %eax
	addl	%r9d, %eax
	cmpl	$3, %eax
	je	.L20
	leal	(%rcx,%rdi), %eax
	addl	%esi, %eax
	cmpl	$3, %eax
	je	.L20
	testl	%r8d, %r8d
	jne	.L20
	leaq	.LC3(%rip), %rdi
	call	puts@PLT
	jmp	.L23
.L20:
	leaq	.LC2(%rip), %rdi
	call	puts@PLT
.L23:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L47
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	.cfi_restore_state
	movl	%r13d, 96(%rsp)
	addl	$1, %ebx
	cmpl	%ebx, 8(%rsp)
	jg	.L15
	movl	64(%rsp), %r8d
	movl	80(%rsp), %ebp
	movl	$1, %r9d
	movl	72(%rsp), %eax
	movl	88(%rsp), %r10d
	jmp	.L14
.L3:
	movl	64(%rsp), %r8d
	movl	80(%rsp), %ebp
	movl	96(%rsp), %r13d
	movl	72(%rsp), %eax
	movl	88(%rsp), %r10d
	movl	%r8d, %edx
	movl	%ebp, %ecx
	movl	%r13d, %r9d
	movl	%eax, %edi
	movl	%r10d, %esi
	jmp	.L14
.L47:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE51:
	.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>
#include<stdlib.h>
#include<string.h>
#include<math.h>
typedef long long ll;


int main()
{
    int a[3][3],f[3][3];
    for(int i=0;i<3;i++)
    {
        scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
        for(int j=0;j<3;j++)
        {
            f[i][j]=0;
        }
    }
    int n;
    scanf("%d",&n);
    int b;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&b);

        for(int i=0;i<3;i++)
        {
            for(int j=0;j<3;j++)
            {
                if(b==a[i][j])
                {
                    f[i][j]=1;
                }
            }
        }
    }

    int flag=0;

    for(int i=0;i<3;i++)
    {
        if(f[i][0]+f[i][1]+f[i][2]==3)
        {
            flag=1;
        }
        if(f[0][i]+f[1][i]+f[2][i]==3)
        {
            flag=1;
        }
    }
    if(f[0][0]+f[1][1]+f[2][2]==3)
    {
        flag=1;
    }
    if(f[0][2]+f[1][1]+f[2][0]==3)
    {
        flag=1;
    }
        

    if(flag==1)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
        
    return 0;
}
60 88 34
92 41 43
39 73 48
10
60
43
88
11
48
73
65
41
92
34
 41 7 46
26 89 2
78 92 8
5
12
45
16
57
17
 84 97 66
79 89 11
61 59 7
7
89
7
146
79
24
84
30
 60 106 34
92 41 43
39 73 48
10
60
43
88
11
48
73
65
41
92
34
 84 97 66
79 89 11
61 59 7
7
95
7
146
79
24
84
30
 41 6 46
26 89 2
78 92 8
5
12
45
16
57
17
 60 68 34
92 41 43
39 73 48
10
60
43
88
11
48
73
65
41
92
34
 84 97 66
79 89 6
61 59 7
7
95
7
146
79
24
84
30
 41 6 46
1 89 2
78 92 8
5
12
45
16
57
17
 60 68 34
92 41 43
39 73 48
10
60
43
88
10
48
73
65
41
92
34

Yes
 No
 Yes
 Yes
 No
 No
 Yes
 No
 No
 Yes

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>
#include<stdlib.h>
#include<string.h>
#include<math.h>
typedef long long ll;


int main()
{
    int a[3][3],f[3][3];
    for(int i=0;i<3;i++)
    {
        scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
        for(int j=0;j<3;j++)
        {
            f[i][j]=0;
        }
    }
    int n;
    scanf("%d",&n);
    int b;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&b);

        for(int i=0;i<3;i++)
        {
            for(int j=0;j<3;j++)
            {
                if(b==a[i][j])
                {
                    f[i][j]=1;
                }
            }
        }
    }

    int flag=0;

    for(int i=0;i<3;i++)
    {
        if(f[i][0]+f[i][1]+f[i][2]==3)
        {
            flag=1;
        }
        if(f[0][i]+f[1][i]+f[2][i]==3)
        {
            flag=1;
        }
    }
    if(f[0][0]+f[1][1]+f[2][2]==3)
    {
        flag=1;
    }
    if(f[0][2]+f[1][1]+f[2][0]==3)
    {
        flag=1;
    }
        

    if(flag==1)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
        
    return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"%d %d %d"
.LC1:
	.string	"%d"
.LC2:
	.string	"Yes"
.LC3:
	.string	"No"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$144, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -124(%rbp)
	jmp	.L2
.L5:
	leaq	-96(%rbp), %rcx
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	$8, %rax
	addq	%rax, %rcx
	leaq	-96(%rbp), %rsi
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	$4, %rax
	leaq	(%rsi,%rax), %rdx
	leaq	-96(%rbp), %rdi
	movl	-124(%rbp), %eax
	movslq	%eax, %rsi
	movq	%rsi, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	salq	$2, %rax
	addq	%rdi, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -120(%rbp)
	jmp	.L3
.L4:
	movl	-120(%rbp), %eax
	movslq	%eax, %rcx
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	$0, -48(%rbp,%rax,4)
	addl	$1, -120(%rbp)
.L3:
	cmpl	$2, -120(%rbp)
	jle	.L4
	addl	$1, -124(%rbp)
.L2:
	cmpl	$2, -124(%rbp)
	jle	.L5
	leaq	-132(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -116(%rbp)
	jmp	.L6
.L12:
	leaq	-128(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -112(%rbp)
	jmp	.L7
.L11:
	movl	$0, -108(%rbp)
	jmp	.L8
.L10:
	movl	-108(%rbp), %eax
	movslq	%eax, %rcx
	movl	-112(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	-96(%rbp,%rax,4), %edx
	movl	-128(%rbp), %eax
	cmpl	%eax, %edx
	jne	.L9
	movl	-108(%rbp), %eax
	movslq	%eax, %rcx
	movl	-112(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	$1, -48(%rbp,%rax,4)
.L9:
	addl	$1, -108(%rbp)
.L8:
	cmpl	$2, -108(%rbp)
	jle	.L10
	addl	$1, -112(%rbp)
.L7:
	cmpl	$2, -112(%rbp)
	jle	.L11
	addl	$1, -116(%rbp)
.L6:
	movl	-132(%rbp), %eax
	cmpl	%eax, -116(%rbp)
	jl	.L12
	movl	$0, -104(%rbp)
	movl	$0, -100(%rbp)
	jmp	.L13
.L16:
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$48, %rax
	movl	(%rax), %ecx
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$44, %rax
	movl	(%rax), %eax
	addl	%eax, %ecx
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$40, %rax
	movl	(%rax), %eax
	addl	%ecx, %eax
	cmpl	$3, %eax
	jne	.L14
	movl	$1, -104(%rbp)
.L14:
	movl	-100(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %edx
	movl	-100(%rbp), %eax
	cltq
	addq	$3, %rax
	movl	-48(%rbp,%rax,4), %eax
	addl	%eax, %edx
	movl	-100(%rbp), %eax
	cltq
	addq	$6, %rax
	movl	-48(%rbp,%rax,4), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L15
	movl	$1, -104(%rbp)
.L15:
	addl	$1, -100(%rbp)
.L13:
	cmpl	$2, -100(%rbp)
	jle	.L16
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%eax, %edx
	movl	-16(%rbp), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L17
	movl	$1, -104(%rbp)
.L17:
	movl	-40(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%eax, %edx
	movl	-24(%rbp), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L18
	movl	$1, -104(%rbp)
.L18:
	cmpl	$1, -104(%rbp)
	jne	.L19
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L20
.L19:
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L20:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.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.
train
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"%d %d %d"
.LC1:
	.string	"%d"
.LC2:
	.string	"Yes"
.LC3:
	.string	"No"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$144, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -124(%rbp)
	jmp	.L2
.L5:
	leaq	-96(%rbp), %rcx
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	$8, %rax
	addq	%rax, %rcx
	leaq	-96(%rbp), %rsi
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	$4, %rax
	leaq	(%rsi,%rax), %rdx
	leaq	-96(%rbp), %rdi
	movl	-124(%rbp), %eax
	movslq	%eax, %rsi
	movq	%rsi, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	salq	$2, %rax
	addq	%rdi, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -120(%rbp)
	jmp	.L3
.L4:
	movl	-120(%rbp), %eax
	movslq	%eax, %rcx
	movl	-124(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	$0, -48(%rbp,%rax,4)
	addl	$1, -120(%rbp)
.L3:
	cmpl	$2, -120(%rbp)
	jle	.L4
	addl	$1, -124(%rbp)
.L2:
	cmpl	$2, -124(%rbp)
	jle	.L5
	leaq	-132(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -116(%rbp)
	jmp	.L6
.L12:
	leaq	-128(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -112(%rbp)
	jmp	.L7
.L11:
	movl	$0, -108(%rbp)
	jmp	.L8
.L10:
	movl	-108(%rbp), %eax
	movslq	%eax, %rcx
	movl	-112(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	-96(%rbp,%rax,4), %edx
	movl	-128(%rbp), %eax
	cmpl	%eax, %edx
	jne	.L9
	movl	-108(%rbp), %eax
	movslq	%eax, %rcx
	movl	-112(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rcx, %rax
	movl	$1, -48(%rbp,%rax,4)
.L9:
	addl	$1, -108(%rbp)
.L8:
	cmpl	$2, -108(%rbp)
	jle	.L10
	addl	$1, -112(%rbp)
.L7:
	cmpl	$2, -112(%rbp)
	jle	.L11
	addl	$1, -116(%rbp)
.L6:
	movl	-132(%rbp), %eax
	cmpl	%eax, -116(%rbp)
	jl	.L12
	movl	$0, -104(%rbp)
	movl	$0, -100(%rbp)
	jmp	.L13
.L16:
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$48, %rax
	movl	(%rax), %ecx
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$44, %rax
	movl	(%rax), %eax
	addl	%eax, %ecx
	movl	-100(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rbp, %rax
	subq	$40, %rax
	movl	(%rax), %eax
	addl	%ecx, %eax
	cmpl	$3, %eax
	jne	.L14
	movl	$1, -104(%rbp)
.L14:
	movl	-100(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %edx
	movl	-100(%rbp), %eax
	cltq
	addq	$3, %rax
	movl	-48(%rbp,%rax,4), %eax
	addl	%eax, %edx
	movl	-100(%rbp), %eax
	cltq
	addq	$6, %rax
	movl	-48(%rbp,%rax,4), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L15
	movl	$1, -104(%rbp)
.L15:
	addl	$1, -100(%rbp)
.L13:
	cmpl	$2, -100(%rbp)
	jle	.L16
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%eax, %edx
	movl	-16(%rbp), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L17
	movl	$1, -104(%rbp)
.L17:
	movl	-40(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%eax, %edx
	movl	-24(%rbp), %eax
	addl	%edx, %eax
	cmpl	$3, %eax
	jne	.L18
	movl	$1, -104(%rbp)
.L18:
	cmpl	$1, -104(%rbp)
	jne	.L19
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L20
.L19:
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L20:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.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:
