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<string.h>
int main()
{
    int a,b,i,j,c=0,t,x[101];
    char ch1[101],ch2[101],l,m,n;
    gets(ch1);
    gets(ch2);
    l=strlen(ch1);
    for(i=0;i<l;i++)
    {
        if(ch1[i]==ch2[i])
            c++;
            else break;
    }
    if(c==l)
        printf("Yes\n");
    else
    {
        for(i=0;i<=l;i++)
        {
            t=0;
            x[0]=ch1[l-1];
            for(j=1;j<l;j++)
            {
                x[j]=ch1[j-1];
            }
            for(j=0;j<l;j++)
            {
                ch1[j]=x[j];
            }
            for(j=0;j<l;j++)
            {
                if(ch1[j]==ch2[j])
                    t++;
            }
            if(t==l)
            {
                printf("Yes\n");
                break;
            }
            else if(i==l)
                printf("No\n");
        }
    }
    return 0;
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"Yes"
.LC1:
	.string	"No"
	.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	$672, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -648(%rbp)
	leaq	-224(%rbp), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	gets@PLT
	leaq	-112(%rbp), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	gets@PLT
	leaq	-224(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movb	%al, -657(%rbp)
	movl	$0, -656(%rbp)
	jmp	.L2
.L6:
	movl	-656(%rbp), %eax
	cltq
	movzbl	-224(%rbp,%rax), %edx
	movl	-656(%rbp), %eax
	cltq
	movzbl	-112(%rbp,%rax), %eax
	cmpb	%al, %dl
	jne	.L22
	addl	$1, -648(%rbp)
	addl	$1, -656(%rbp)
.L2:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jl	.L6
	jmp	.L5
.L22:
	nop
.L5:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -648(%rbp)
	jne	.L7
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L8
.L7:
	movl	$0, -656(%rbp)
	jmp	.L9
.L19:
	movl	$0, -644(%rbp)
	movsbl	-657(%rbp), %eax
	subl	$1, %eax
	cltq
	movzbl	-224(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, -640(%rbp)
	movl	$1, -652(%rbp)
	jmp	.L10
.L11:
	movl	-652(%rbp), %eax
	subl	$1, %eax
	cltq
	movzbl	-224(%rbp,%rax), %eax
	movsbl	%al, %edx
	movl	-652(%rbp), %eax
	cltq
	movl	%edx, -640(%rbp,%rax,4)
	addl	$1, -652(%rbp)
.L10:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L11
	movl	$0, -652(%rbp)
	jmp	.L12
.L13:
	movl	-652(%rbp), %eax
	cltq
	movl	-640(%rbp,%rax,4), %eax
	movl	%eax, %edx
	movl	-652(%rbp), %eax
	cltq
	movb	%dl, -224(%rbp,%rax)
	addl	$1, -652(%rbp)
.L12:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L13
	movl	$0, -652(%rbp)
	jmp	.L14
.L16:
	movl	-652(%rbp), %eax
	cltq
	movzbl	-224(%rbp,%rax), %edx
	movl	-652(%rbp), %eax
	cltq
	movzbl	-112(%rbp,%rax), %eax
	cmpb	%al, %dl
	jne	.L15
	addl	$1, -644(%rbp)
.L15:
	addl	$1, -652(%rbp)
.L14:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L16
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -644(%rbp)
	jne	.L17
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L8
.L17:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jne	.L18
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L18:
	addl	$1, -656(%rbp)
.L9:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jle	.L19
.L8:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L21
	call	__stack_chk_fail@PLT
.L21:
	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	"Yes"
.LC3:
	.string	"No"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.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
	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	$680, %rsp
	.cfi_def_cfa_offset 736
	movq	%fs:40, %rax
	movq	%rax, 664(%rsp)
	xorl	%eax, %eax
	leaq	448(%rsp), %rbp
	movq	%rbp, %rdi
	call	gets@PLT
	leaq	560(%rsp), %rdi
	xorl	%eax, %eax
	call	gets@PLT
	movq	%rbp, %rdi
	call	strlen@PLT
	testq	%rax, %rax
	je	.L2
	movq	%rax, %r14
	leal	1(%rax), %esi
	leaq	447(%rsp), %rcx
	movl	%eax, %ebx
	leaq	559(%rsp), %rdx
	movl	$1, %eax
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L94:
	movl	%eax, %edi
	addq	$1, %rax
	cmpq	%rsi, %rax
	je	.L93
.L4:
	movzbl	(%rdx,%rax), %edi
	cmpb	%dil, (%rcx,%rax)
	je	.L94
.L3:
	leal	-1(%r14), %ecx
	movl	$1, %r15d
	leal	-2(%r14), %r9d
	movdqa	.LC2(%rip), %xmm3
	movl	%ecx, %r13d
	movl	%ecx, %r8d
	movl	%ecx, 4(%rsp)
	movslq	%ecx, %rsi
	andl	$-16, %r8d
	shrl	$4, %r13d
	testl	%r14d, %r14d
	movdqa	.LC1(%rip), %xmm2
	cmovg	%r14d, %r15d
	leal	1(%r8), %eax
	setle	%dl
	cmpl	$14, %ecx
	movl	%eax, 8(%rsp)
	setbe	%al
	xorl	%r10d, %r10d
	movl	%r15d, %ebp
	movl	%r15d, %r12d
	orl	%eax, %edx
	shrl	$4, %ebp
	andl	$-16, %r12d
	.p2align 4,,10
	.p2align 3
.L40:
	movsbl	448(%rsp,%rsi), %eax
	movl	%eax, 32(%rsp)
	cmpq	$1, %r14
	jbe	.L6
	cmpl	$14, %r9d
	jbe	.L45
	movdqa	448(%rsp), %xmm1
	pxor	%xmm4, %xmm4
	movdqa	%xmm4, %xmm0
	pcmpgtb	%xmm1, %xmm0
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm0, %xmm5
	punpckhbw	%xmm0, %xmm1
	pxor	%xmm0, %xmm0
	movdqa	%xmm0, %xmm6
	movdqa	%xmm5, %xmm7
	pcmpgtw	%xmm5, %xmm6
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 52(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 36(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 68(%rsp)
	movups	%xmm1, 84(%rsp)
	cmpl	$1, %r13d
	jbe	.L8
	movdqa	464(%rsp), %xmm1
	movdqa	%xmm4, %xmm6
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm6, %xmm5
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm0, %xmm6
	pcmpgtw	%xmm5, %xmm6
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 116(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 100(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 132(%rsp)
	movups	%xmm1, 148(%rsp)
	cmpl	$2, %r13d
	je	.L8
	movdqa	480(%rsp), %xmm1
	movdqa	%xmm4, %xmm6
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm6, %xmm5
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm0, %xmm6
	pcmpgtw	%xmm5, %xmm6
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 180(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 164(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 196(%rsp)
	movups	%xmm1, 212(%rsp)
	cmpl	$3, %r13d
	je	.L8
	movdqa	496(%rsp), %xmm1
	movdqa	%xmm4, %xmm6
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm6, %xmm5
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm0, %xmm6
	pcmpgtw	%xmm5, %xmm6
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 244(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 228(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 260(%rsp)
	movups	%xmm1, 276(%rsp)
	cmpl	$4, %r13d
	je	.L8
	movdqa	512(%rsp), %xmm1
	movdqa	%xmm4, %xmm6
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm6, %xmm5
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm0, %xmm6
	pcmpgtw	%xmm5, %xmm6
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 308(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 292(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 324(%rsp)
	movups	%xmm1, 340(%rsp)
	cmpl	$5, %r13d
	je	.L8
	movdqa	528(%rsp), %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm4, %xmm5
	punpckhbw	%xmm4, %xmm1
	movdqa	%xmm0, %xmm4
	pcmpgtw	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm0
	movdqa	%xmm5, %xmm6
	punpcklwd	%xmm4, %xmm6
	punpckhwd	%xmm4, %xmm5
	movdqa	%xmm1, %xmm4
	punpcklwd	%xmm0, %xmm4
	punpckhwd	%xmm0, %xmm1
	movups	%xmm6, 356(%rsp)
	movups	%xmm5, 372(%rsp)
	movups	%xmm4, 388(%rsp)
	movups	%xmm1, 404(%rsp)
.L8:
	cmpl	%r8d, 4(%rsp)
	je	.L13
	movl	8(%rsp), %eax
.L7:
	leal	-1(%rax), %edi
	movslq	%eax, %r11
	movslq	%edi, %rdi
	movsbl	448(%rsp,%rdi), %edi
	movl	%edi, 32(%rsp,%r11,4)
	leal	1(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	2(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	3(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	4(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	5(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	6(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	7(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	8(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	9(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	10(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	11(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	12(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	13(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	addl	$14, %eax
	movl	%r11d, 32(%rsp,%rdi,4)
	cmpl	%eax, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	cltq
	movl	%edi, 32(%rsp,%rax,4)
	.p2align 4,,10
	.p2align 3
.L13:
	testb	%dl, %dl
	jne	.L10
	movdqa	32(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	48(%rsp), %xmm0
	punpckhwd	48(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	64(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	punpcklwd	80(%rsp), %xmm1
	punpckhwd	80(%rsp), %xmm4
	pand	%xmm2, %xmm0
	movdqa	%xmm1, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 448(%rsp)
	cmpl	$1, %ebp
	jbe	.L11
	movdqa	96(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	112(%rsp), %xmm0
	punpckhwd	112(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	128(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	144(%rsp), %xmm1
	punpckhwd	144(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 464(%rsp)
	cmpl	$2, %ebp
	je	.L11
	movdqa	160(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	176(%rsp), %xmm0
	punpckhwd	176(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	192(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	208(%rsp), %xmm1
	punpckhwd	208(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 480(%rsp)
	cmpl	$3, %ebp
	je	.L11
	movdqa	224(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	240(%rsp), %xmm0
	punpckhwd	240(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	256(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	272(%rsp), %xmm1
	punpckhwd	272(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 496(%rsp)
	cmpl	$4, %ebp
	je	.L11
	movdqa	288(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	304(%rsp), %xmm0
	punpckhwd	304(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	320(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	336(%rsp), %xmm1
	punpckhwd	336(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 512(%rsp)
	cmpl	$6, %ebp
	jne	.L11
	movdqa	352(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	368(%rsp), %xmm0
	punpckhwd	368(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	384(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	400(%rsp), %xmm1
	punpckhwd	400(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 528(%rsp)
.L11:
	cmpl	%r12d, %r15d
	je	.L15
	movslq	%r12d, %rax
	movl	32(%rsp,%rax,4), %edi
	movb	%dil, 448(%rsp,%rax)
	leal	1(%r12), %eax
	cmpl	%eax, %ebx
	jle	.L15
.L41:
	movslq	%eax, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	1(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	2(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	3(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	4(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	5(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	6(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	7(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	8(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	9(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	10(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	11(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	12(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	addl	$13, %eax
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	cmpl	%eax, %ebx
	jle	.L17
	cltq
	movl	32(%rsp,%rax,4), %edi
	movb	%dil, 448(%rsp,%rax)
.L17:
	testb	%dl, %dl
	jne	.L46
.L15:
	movdqa	448(%rsp), %xmm1
	pxor	%xmm6, %xmm6
	pxor	%xmm5, %xmm5
	movdqa	%xmm6, %xmm0
	movdqa	%xmm5, %xmm7
	pcmpeqb	560(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm0
	movdqa	%xmm1, %xmm4
	punpcklbw	%xmm0, %xmm4
	punpckhbw	%xmm0, %xmm1
	pcmpgtw	%xmm4, %xmm7
	movdqa	%xmm4, %xmm8
	movdqa	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	punpcklwd	%xmm7, %xmm8
	punpckhwd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	paddd	%xmm8, %xmm0
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$1, %ebp
	jbe	.L19
	movdqa	464(%rsp), %xmm1
	movdqa	%xmm6, %xmm4
	movdqa	%xmm5, %xmm8
	pcmpeqb	576(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm4, %xmm7
	punpckhbw	%xmm4, %xmm1
	pcmpgtw	%xmm7, %xmm8
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	paddd	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	paddd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$2, %ebp
	je	.L19
	movdqa	480(%rsp), %xmm1
	movdqa	%xmm6, %xmm4
	movdqa	%xmm5, %xmm8
	pcmpeqb	592(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm4, %xmm7
	punpckhbw	%xmm4, %xmm1
	pcmpgtw	%xmm7, %xmm8
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	paddd	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	paddd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$3, %ebp
	je	.L19
	movdqa	496(%rsp), %xmm1
	movdqa	%xmm6, %xmm4
	movdqa	%xmm5, %xmm8
	pcmpeqb	608(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm4, %xmm7
	punpckhbw	%xmm4, %xmm1
	pcmpgtw	%xmm7, %xmm8
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	paddd	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	paddd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$4, %ebp
	je	.L19
	movdqa	512(%rsp), %xmm1
	movdqa	%xmm6, %xmm4
	movdqa	%xmm5, %xmm8
	pcmpeqb	624(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm4, %xmm7
	punpckhbw	%xmm4, %xmm1
	pcmpgtw	%xmm7, %xmm8
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	paddd	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	paddd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$6, %ebp
	jne	.L19
	movdqa	528(%rsp), %xmm1
	pcmpeqb	640(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm6, %xmm7
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm5, %xmm6
	pcmpgtw	%xmm7, %xmm6
	pcmpgtw	%xmm1, %xmm5
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm6, %xmm4
	punpckhwd	%xmm6, %xmm7
	paddd	%xmm0, %xmm4
	movdqa	%xmm5, %xmm0
	movdqa	%xmm1, %xmm5
	punpcklwd	%xmm0, %xmm5
	paddd	%xmm7, %xmm4
	punpckhwd	%xmm0, %xmm1
	paddd	%xmm5, %xmm4
	movdqa	%xmm4, %xmm0
	paddd	%xmm1, %xmm0
.L19:
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	paddd	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	paddd	%xmm1, %xmm0
	movd	%xmm0, %edi
	cmpl	%r12d, %r15d
	je	.L14
	movl	%r12d, %eax
.L18:
	movslq	%eax, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	je	.L42
.L21:
	leal	1(%rax), %r11d
	cmpl	%ebx, %r11d
	jge	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L23
	addl	$1, %edi
.L23:
	leal	2(%rax), %r11d
	cmpl	%ebx, %r11d
	jge	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L24
	addl	$1, %edi
.L24:
	leal	3(%rax), %r11d
	cmpl	%ebx, %r11d
	jge	.L14
	movslq	%r11d, %r11
	movzbl	448(%rsp,%r11), %ecx
	cmpb	%cl, 560(%rsp,%r11)
	jne	.L25
	addl	$1, %edi
.L25:
	leal	4(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	448(%rsp,%r11), %ecx
	cmpb	%cl, 560(%rsp,%r11)
	jne	.L26
	addl	$1, %edi
.L26:
	leal	5(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L27
	addl	$1, %edi
.L27:
	leal	6(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L28
	addl	$1, %edi
.L28:
	leal	7(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L29
	addl	$1, %edi
.L29:
	leal	8(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L30
	addl	$1, %edi
.L30:
	leal	9(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L31
	addl	$1, %edi
.L31:
	leal	10(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L32
	addl	$1, %edi
.L32:
	leal	11(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L33
	addl	$1, %edi
.L33:
	leal	12(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L34
	addl	$1, %edi
.L34:
	leal	13(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L35
	addl	$1, %edi
.L35:
	addl	$14, %eax
	cmpl	%eax, %ebx
	jle	.L14
	cltq
	movzbl	560(%rsp,%rax), %ecx
	cmpb	%cl, 448(%rsp,%rax)
	jne	.L14
	addl	$1, %edi
	.p2align 4,,10
	.p2align 3
.L14:
	cmpl	%edi, %ebx
	je	.L2
.L97:
	cmpl	%r10d, %ebx
	je	.L95
	addl	$1, %r10d
	cmpl	%r10d, %ebx
	jge	.L40
.L5:
	movq	664(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L96
	addq	$680, %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
.L10:
	.cfi_restore_state
	movl	32(%rsp), %edi
	movl	$1, %eax
	movb	%dil, 448(%rsp)
	cmpq	$1, %r14
	ja	.L41
	cmpb	560(%rsp), %dil
	jne	.L91
	xorl	%edi, %edi
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L42:
	addl	$1, %edi
	jmp	.L21
	.p2align 4,,10
	.p2align 3
.L95:
	leaq	.LC3(%rip), %rdi
	movq	%rsi, 24(%rsp)
	movl	%r8d, 20(%rsp)
	movl	%r9d, 16(%rsp)
	movb	%dl, 15(%rsp)
	call	puts@PLT
	leal	1(%rbx), %r10d
	movzbl	15(%rsp), %edx
	movdqa	.LC2(%rip), %xmm3
	cmpl	%r10d, %ebx
	movl	16(%rsp), %r9d
	movl	20(%rsp), %r8d
	movdqa	.LC1(%rip), %xmm2
	movq	24(%rsp), %rsi
	jge	.L40
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L6:
	cmpl	$1, %ebx
	je	.L13
.L91:
	xorl	%edi, %edi
	cmpl	%edi, %ebx
	jne	.L97
.L2:
	leaq	.LC0(%rip), %rdi
	call	puts@PLT
	jmp	.L5
.L45:
	movl	$1, %eax
	jmp	.L7
.L46:
	xorl	%edi, %edi
	xorl	%eax, %eax
	jmp	.L18
.L93:
	cmpl	%edi, %r14d
	jne	.L3
	jmp	.L2
.L96:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC1:
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.align 16
.LC2:
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.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	"Yes"
.LC3:
	.string	"No"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.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
	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	$680, %rsp
	.cfi_def_cfa_offset 736
	movq	%fs:40, %rax
	movq	%rax, 664(%rsp)
	xorl	%eax, %eax
	leaq	448(%rsp), %rbp
	movq	%rbp, %rdi
	call	gets@PLT
	leaq	560(%rsp), %rdi
	xorl	%eax, %eax
	call	gets@PLT
	movq	%rbp, %rdi
	call	strlen@PLT
	testq	%rax, %rax
	je	.L2
	movq	%rax, %r14
	leal	1(%rax), %esi
	leaq	447(%rsp), %rcx
	movl	%eax, %ebx
	leaq	559(%rsp), %rdx
	movl	$1, %eax
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L94:
	movl	%eax, %edi
	addq	$1, %rax
	cmpq	%rsi, %rax
	je	.L93
.L4:
	movzbl	(%rdx,%rax), %edi
	cmpb	%dil, (%rcx,%rax)
	je	.L94
.L3:
	leal	-1(%r14), %ecx
	movl	$1, %r15d
	leal	-2(%r14), %r9d
	movdqa	.LC2(%rip), %xmm3
	movl	%ecx, %r13d
	movl	%ecx, %r8d
	movl	%ecx, 4(%rsp)
	movslq	%ecx, %rsi
	andl	$-16, %r8d
	shrl	$4, %r13d
	testl	%r14d, %r14d
	movdqa	.LC1(%rip), %xmm2
	cmovg	%r14d, %r15d
	leal	1(%r8), %eax
	setle	%dl
	cmpl	$14, %ecx
	movl	%eax, 8(%rsp)
	setbe	%al
	xorl	%r10d, %r10d
	movl	%r15d, %ebp
	movl	%r15d, %r12d
	orl	%eax, %edx
	shrl	$4, %ebp
	andl	$-16, %r12d
	.p2align 4,,10
	.p2align 3
.L40:
	movsbl	448(%rsp,%rsi), %eax
	movl	%eax, 32(%rsp)
	cmpq	$1, %r14
	jbe	.L6
	cmpl	$14, %r9d
	jbe	.L45
	movdqa	448(%rsp), %xmm1
	pxor	%xmm4, %xmm4
	movdqa	%xmm4, %xmm0
	pcmpgtb	%xmm1, %xmm0
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm0, %xmm5
	punpckhbw	%xmm0, %xmm1
	pxor	%xmm0, %xmm0
	movdqa	%xmm0, %xmm6
	movdqa	%xmm5, %xmm7
	pcmpgtw	%xmm5, %xmm6
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 52(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 36(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 68(%rsp)
	movups	%xmm1, 84(%rsp)
	cmpl	$1, %r13d
	jbe	.L8
	movdqa	464(%rsp), %xmm1
	movdqa	%xmm4, %xmm6
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm6, %xmm5
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm0, %xmm6
	pcmpgtw	%xmm5, %xmm6
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 116(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 100(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 132(%rsp)
	movups	%xmm1, 148(%rsp)
	cmpl	$2, %r13d
	je	.L8
	movdqa	480(%rsp), %xmm1
	movdqa	%xmm4, %xmm6
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm6, %xmm5
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm0, %xmm6
	pcmpgtw	%xmm5, %xmm6
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 180(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 164(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 196(%rsp)
	movups	%xmm1, 212(%rsp)
	cmpl	$3, %r13d
	je	.L8
	movdqa	496(%rsp), %xmm1
	movdqa	%xmm4, %xmm6
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm6, %xmm5
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm0, %xmm6
	pcmpgtw	%xmm5, %xmm6
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 244(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 228(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 260(%rsp)
	movups	%xmm1, 276(%rsp)
	cmpl	$4, %r13d
	je	.L8
	movdqa	512(%rsp), %xmm1
	movdqa	%xmm4, %xmm6
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm6, %xmm5
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm0, %xmm6
	pcmpgtw	%xmm5, %xmm6
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqa	%xmm1, %xmm6
	movups	%xmm5, 308(%rsp)
	movdqa	%xmm0, %xmm5
	pcmpgtw	%xmm1, %xmm5
	movups	%xmm7, 292(%rsp)
	punpcklwd	%xmm5, %xmm6
	punpckhwd	%xmm5, %xmm1
	movups	%xmm6, 324(%rsp)
	movups	%xmm1, 340(%rsp)
	cmpl	$5, %r13d
	je	.L8
	movdqa	528(%rsp), %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm5
	punpcklbw	%xmm4, %xmm5
	punpckhbw	%xmm4, %xmm1
	movdqa	%xmm0, %xmm4
	pcmpgtw	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm0
	movdqa	%xmm5, %xmm6
	punpcklwd	%xmm4, %xmm6
	punpckhwd	%xmm4, %xmm5
	movdqa	%xmm1, %xmm4
	punpcklwd	%xmm0, %xmm4
	punpckhwd	%xmm0, %xmm1
	movups	%xmm6, 356(%rsp)
	movups	%xmm5, 372(%rsp)
	movups	%xmm4, 388(%rsp)
	movups	%xmm1, 404(%rsp)
.L8:
	cmpl	%r8d, 4(%rsp)
	je	.L13
	movl	8(%rsp), %eax
.L7:
	leal	-1(%rax), %edi
	movslq	%eax, %r11
	movslq	%edi, %rdi
	movsbl	448(%rsp,%rdi), %edi
	movl	%edi, 32(%rsp,%r11,4)
	leal	1(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	2(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	3(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	4(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	5(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	6(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	7(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	8(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	9(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	10(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	11(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	movl	%r11d, 32(%rsp,%rdi,4)
	leal	12(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	movslq	%r11d, %r11
	movl	%edi, 32(%rsp,%r11,4)
	leal	13(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L13
	movsbl	448(%rsp,%r11), %r11d
	movslq	%edi, %rdi
	addl	$14, %eax
	movl	%r11d, 32(%rsp,%rdi,4)
	cmpl	%eax, %ebx
	jle	.L13
	movsbl	448(%rsp,%rdi), %edi
	cltq
	movl	%edi, 32(%rsp,%rax,4)
	.p2align 4,,10
	.p2align 3
.L13:
	testb	%dl, %dl
	jne	.L10
	movdqa	32(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	48(%rsp), %xmm0
	punpckhwd	48(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	64(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	punpcklwd	80(%rsp), %xmm1
	punpckhwd	80(%rsp), %xmm4
	pand	%xmm2, %xmm0
	movdqa	%xmm1, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 448(%rsp)
	cmpl	$1, %ebp
	jbe	.L11
	movdqa	96(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	112(%rsp), %xmm0
	punpckhwd	112(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	128(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	144(%rsp), %xmm1
	punpckhwd	144(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 464(%rsp)
	cmpl	$2, %ebp
	je	.L11
	movdqa	160(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	176(%rsp), %xmm0
	punpckhwd	176(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	192(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	208(%rsp), %xmm1
	punpckhwd	208(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 480(%rsp)
	cmpl	$3, %ebp
	je	.L11
	movdqa	224(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	240(%rsp), %xmm0
	punpckhwd	240(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	256(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	272(%rsp), %xmm1
	punpckhwd	272(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 496(%rsp)
	cmpl	$4, %ebp
	je	.L11
	movdqa	288(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	304(%rsp), %xmm0
	punpckhwd	304(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	320(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	336(%rsp), %xmm1
	punpckhwd	336(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 512(%rsp)
	cmpl	$6, %ebp
	jne	.L11
	movdqa	352(%rsp), %xmm0
	movdqa	%xmm0, %xmm1
	punpcklwd	368(%rsp), %xmm0
	punpckhwd	368(%rsp), %xmm1
	movdqa	%xmm0, %xmm4
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm4
	movdqa	384(%rsp), %xmm1
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm1, %xmm4
	pand	%xmm2, %xmm0
	punpcklwd	400(%rsp), %xmm1
	punpckhwd	400(%rsp), %xmm4
	movdqa	%xmm1, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm1
	punpcklwd	%xmm5, %xmm1
	pand	%xmm2, %xmm1
	packuswb	%xmm1, %xmm0
	movaps	%xmm0, 528(%rsp)
.L11:
	cmpl	%r12d, %r15d
	je	.L15
	movslq	%r12d, %rax
	movl	32(%rsp,%rax,4), %edi
	movb	%dil, 448(%rsp,%rax)
	leal	1(%r12), %eax
	cmpl	%eax, %ebx
	jle	.L15
.L41:
	movslq	%eax, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	1(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	2(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	3(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	4(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	5(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	6(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	7(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	8(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	9(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	10(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	11(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	leal	12(%rax), %edi
	cmpl	%edi, %ebx
	jle	.L17
	movslq	%edi, %rdi
	addl	$13, %eax
	movl	32(%rsp,%rdi,4), %r11d
	movb	%r11b, 448(%rsp,%rdi)
	cmpl	%eax, %ebx
	jle	.L17
	cltq
	movl	32(%rsp,%rax,4), %edi
	movb	%dil, 448(%rsp,%rax)
.L17:
	testb	%dl, %dl
	jne	.L46
.L15:
	movdqa	448(%rsp), %xmm1
	pxor	%xmm6, %xmm6
	pxor	%xmm5, %xmm5
	movdqa	%xmm6, %xmm0
	movdqa	%xmm5, %xmm7
	pcmpeqb	560(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm0
	movdqa	%xmm1, %xmm4
	punpcklbw	%xmm0, %xmm4
	punpckhbw	%xmm0, %xmm1
	pcmpgtw	%xmm4, %xmm7
	movdqa	%xmm4, %xmm8
	movdqa	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	punpcklwd	%xmm7, %xmm8
	punpckhwd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	paddd	%xmm8, %xmm0
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$1, %ebp
	jbe	.L19
	movdqa	464(%rsp), %xmm1
	movdqa	%xmm6, %xmm4
	movdqa	%xmm5, %xmm8
	pcmpeqb	576(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm4, %xmm7
	punpckhbw	%xmm4, %xmm1
	pcmpgtw	%xmm7, %xmm8
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	paddd	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	paddd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$2, %ebp
	je	.L19
	movdqa	480(%rsp), %xmm1
	movdqa	%xmm6, %xmm4
	movdqa	%xmm5, %xmm8
	pcmpeqb	592(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm4, %xmm7
	punpckhbw	%xmm4, %xmm1
	pcmpgtw	%xmm7, %xmm8
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	paddd	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	paddd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$3, %ebp
	je	.L19
	movdqa	496(%rsp), %xmm1
	movdqa	%xmm6, %xmm4
	movdqa	%xmm5, %xmm8
	pcmpeqb	608(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm4, %xmm7
	punpckhbw	%xmm4, %xmm1
	pcmpgtw	%xmm7, %xmm8
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	paddd	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	paddd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$4, %ebp
	je	.L19
	movdqa	512(%rsp), %xmm1
	movdqa	%xmm6, %xmm4
	movdqa	%xmm5, %xmm8
	pcmpeqb	624(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm4
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm4, %xmm7
	punpckhbw	%xmm4, %xmm1
	pcmpgtw	%xmm7, %xmm8
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	paddd	%xmm4, %xmm0
	movdqa	%xmm5, %xmm4
	pcmpgtw	%xmm1, %xmm4
	paddd	%xmm7, %xmm0
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm1, %xmm0
	cmpl	$6, %ebp
	jne	.L19
	movdqa	528(%rsp), %xmm1
	pcmpeqb	640(%rsp), %xmm1
	pand	%xmm3, %xmm1
	pcmpgtb	%xmm1, %xmm6
	movdqa	%xmm1, %xmm7
	punpcklbw	%xmm6, %xmm7
	punpckhbw	%xmm6, %xmm1
	movdqa	%xmm5, %xmm6
	pcmpgtw	%xmm7, %xmm6
	pcmpgtw	%xmm1, %xmm5
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm6, %xmm4
	punpckhwd	%xmm6, %xmm7
	paddd	%xmm0, %xmm4
	movdqa	%xmm5, %xmm0
	movdqa	%xmm1, %xmm5
	punpcklwd	%xmm0, %xmm5
	paddd	%xmm7, %xmm4
	punpckhwd	%xmm0, %xmm1
	paddd	%xmm5, %xmm4
	movdqa	%xmm4, %xmm0
	paddd	%xmm1, %xmm0
.L19:
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	paddd	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	paddd	%xmm1, %xmm0
	movd	%xmm0, %edi
	cmpl	%r12d, %r15d
	je	.L14
	movl	%r12d, %eax
.L18:
	movslq	%eax, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	je	.L42
.L21:
	leal	1(%rax), %r11d
	cmpl	%ebx, %r11d
	jge	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L23
	addl	$1, %edi
.L23:
	leal	2(%rax), %r11d
	cmpl	%ebx, %r11d
	jge	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L24
	addl	$1, %edi
.L24:
	leal	3(%rax), %r11d
	cmpl	%ebx, %r11d
	jge	.L14
	movslq	%r11d, %r11
	movzbl	448(%rsp,%r11), %ecx
	cmpb	%cl, 560(%rsp,%r11)
	jne	.L25
	addl	$1, %edi
.L25:
	leal	4(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	448(%rsp,%r11), %ecx
	cmpb	%cl, 560(%rsp,%r11)
	jne	.L26
	addl	$1, %edi
.L26:
	leal	5(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L27
	addl	$1, %edi
.L27:
	leal	6(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L28
	addl	$1, %edi
.L28:
	leal	7(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L29
	addl	$1, %edi
.L29:
	leal	8(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L30
	addl	$1, %edi
.L30:
	leal	9(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L31
	addl	$1, %edi
.L31:
	leal	10(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L32
	addl	$1, %edi
.L32:
	leal	11(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L33
	addl	$1, %edi
.L33:
	leal	12(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L34
	addl	$1, %edi
.L34:
	leal	13(%rax), %r11d
	cmpl	%r11d, %ebx
	jle	.L14
	movslq	%r11d, %r11
	movzbl	560(%rsp,%r11), %ecx
	cmpb	%cl, 448(%rsp,%r11)
	jne	.L35
	addl	$1, %edi
.L35:
	addl	$14, %eax
	cmpl	%eax, %ebx
	jle	.L14
	cltq
	movzbl	560(%rsp,%rax), %ecx
	cmpb	%cl, 448(%rsp,%rax)
	jne	.L14
	addl	$1, %edi
	.p2align 4,,10
	.p2align 3
.L14:
	cmpl	%edi, %ebx
	je	.L2
.L97:
	cmpl	%r10d, %ebx
	je	.L95
	addl	$1, %r10d
	cmpl	%r10d, %ebx
	jge	.L40
.L5:
	movq	664(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L96
	addq	$680, %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
.L10:
	.cfi_restore_state
	movl	32(%rsp), %edi
	movl	$1, %eax
	movb	%dil, 448(%rsp)
	cmpq	$1, %r14
	ja	.L41
	cmpb	560(%rsp), %dil
	jne	.L91
	xorl	%edi, %edi
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L42:
	addl	$1, %edi
	jmp	.L21
	.p2align 4,,10
	.p2align 3
.L95:
	leaq	.LC3(%rip), %rdi
	movq	%rsi, 24(%rsp)
	movl	%r8d, 20(%rsp)
	movl	%r9d, 16(%rsp)
	movb	%dl, 15(%rsp)
	call	puts@PLT
	leal	1(%rbx), %r10d
	movzbl	15(%rsp), %edx
	movdqa	.LC2(%rip), %xmm3
	cmpl	%r10d, %ebx
	movl	16(%rsp), %r9d
	movl	20(%rsp), %r8d
	movdqa	.LC1(%rip), %xmm2
	movq	24(%rsp), %rsi
	jge	.L40
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L6:
	cmpl	$1, %ebx
	je	.L13
.L91:
	xorl	%edi, %edi
	cmpl	%edi, %ebx
	jne	.L97
.L2:
	leaq	.LC0(%rip), %rdi
	call	puts@PLT
	jmp	.L5
.L45:
	movl	$1, %eax
	jmp	.L7
.L46:
	xorl	%edi, %edi
	xorl	%eax, %eax
	jmp	.L18
.L93:
	cmpl	%edi, %r14d
	jne	.L3
	jmp	.L2
.L96:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC1:
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.align 16
.LC2:
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.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<string.h>
int main()
{
    int a,b,i,j,c=0,t,x[101];
    char ch1[101],ch2[101],l,m,n;
    gets(ch1);
    gets(ch2);
    l=strlen(ch1);
    for(i=0;i<l;i++)
    {
        if(ch1[i]==ch2[i])
            c++;
            else break;
    }
    if(c==l)
        printf("Yes\n");
    else
    {
        for(i=0;i<=l;i++)
        {
            t=0;
            x[0]=ch1[l-1];
            for(j=1;j<l;j++)
            {
                x[j]=ch1[j-1];
            }
            for(j=0;j<l;j++)
            {
                ch1[j]=x[j];
            }
            for(j=0;j<l;j++)
            {
                if(ch1[j]==ch2[j])
                    t++;
            }
            if(t==l)
            {
                printf("Yes\n");
                break;
            }
            else if(i==l)
                printf("No\n");
        }
    }
    return 0;
}

aaaaaaaaaaaaaaab
aaaabaaaaaaaaaaa
 kyoto
tnkyo
 cba
arc
 aaaaaabaaaaaaaab
aaaabaaaaaaaaaaa
 kyoto
tmkyo
 cba
cra
 aaaaaabaaaaaaaab
aaaaaaaaaaabaaaa
 kyoso
tmkyo
 bca
cra
 baaaaaaaabaaaaaa
aaaaaaaaaaabaaaa

Yes
 No
 No
 No
 No
 No
 No
 No
 No
 No

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<string.h>
int main()
{
    int a,b,i,j,c=0,t,x[101];
    char ch1[101],ch2[101],l,m,n;
    gets(ch1);
    gets(ch2);
    l=strlen(ch1);
    for(i=0;i<l;i++)
    {
        if(ch1[i]==ch2[i])
            c++;
            else break;
    }
    if(c==l)
        printf("Yes\n");
    else
    {
        for(i=0;i<=l;i++)
        {
            t=0;
            x[0]=ch1[l-1];
            for(j=1;j<l;j++)
            {
                x[j]=ch1[j-1];
            }
            for(j=0;j<l;j++)
            {
                ch1[j]=x[j];
            }
            for(j=0;j<l;j++)
            {
                if(ch1[j]==ch2[j])
                    t++;
            }
            if(t==l)
            {
                printf("Yes\n");
                break;
            }
            else if(i==l)
                printf("No\n");
        }
    }
    return 0;
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"Yes"
.LC1:
	.string	"No"
	.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	$672, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -648(%rbp)
	leaq	-224(%rbp), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	gets@PLT
	leaq	-112(%rbp), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	gets@PLT
	leaq	-224(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movb	%al, -657(%rbp)
	movl	$0, -656(%rbp)
	jmp	.L2
.L6:
	movl	-656(%rbp), %eax
	cltq
	movzbl	-224(%rbp,%rax), %edx
	movl	-656(%rbp), %eax
	cltq
	movzbl	-112(%rbp,%rax), %eax
	cmpb	%al, %dl
	jne	.L22
	addl	$1, -648(%rbp)
	addl	$1, -656(%rbp)
.L2:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jl	.L6
	jmp	.L5
.L22:
	nop
.L5:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -648(%rbp)
	jne	.L7
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L8
.L7:
	movl	$0, -656(%rbp)
	jmp	.L9
.L19:
	movl	$0, -644(%rbp)
	movsbl	-657(%rbp), %eax
	subl	$1, %eax
	cltq
	movzbl	-224(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, -640(%rbp)
	movl	$1, -652(%rbp)
	jmp	.L10
.L11:
	movl	-652(%rbp), %eax
	subl	$1, %eax
	cltq
	movzbl	-224(%rbp,%rax), %eax
	movsbl	%al, %edx
	movl	-652(%rbp), %eax
	cltq
	movl	%edx, -640(%rbp,%rax,4)
	addl	$1, -652(%rbp)
.L10:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L11
	movl	$0, -652(%rbp)
	jmp	.L12
.L13:
	movl	-652(%rbp), %eax
	cltq
	movl	-640(%rbp,%rax,4), %eax
	movl	%eax, %edx
	movl	-652(%rbp), %eax
	cltq
	movb	%dl, -224(%rbp,%rax)
	addl	$1, -652(%rbp)
.L12:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L13
	movl	$0, -652(%rbp)
	jmp	.L14
.L16:
	movl	-652(%rbp), %eax
	cltq
	movzbl	-224(%rbp,%rax), %edx
	movl	-652(%rbp), %eax
	cltq
	movzbl	-112(%rbp,%rax), %eax
	cmpb	%al, %dl
	jne	.L15
	addl	$1, -644(%rbp)
.L15:
	addl	$1, -652(%rbp)
.L14:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L16
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -644(%rbp)
	jne	.L17
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L8
.L17:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jne	.L18
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L18:
	addl	$1, -656(%rbp)
.L9:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jle	.L19
.L8:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L21
	call	__stack_chk_fail@PLT
.L21:
	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.
train
	.file	"temp.c"
	.text
	.section	.rodata
.LC0:
	.string	"Yes"
.LC1:
	.string	"No"
	.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	$672, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -648(%rbp)
	leaq	-224(%rbp), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	gets@PLT
	leaq	-112(%rbp), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	gets@PLT
	leaq	-224(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movb	%al, -657(%rbp)
	movl	$0, -656(%rbp)
	jmp	.L2
.L6:
	movl	-656(%rbp), %eax
	cltq
	movzbl	-224(%rbp,%rax), %edx
	movl	-656(%rbp), %eax
	cltq
	movzbl	-112(%rbp,%rax), %eax
	cmpb	%al, %dl
	jne	.L22
	addl	$1, -648(%rbp)
	addl	$1, -656(%rbp)
.L2:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jl	.L6
	jmp	.L5
.L22:
	nop
.L5:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -648(%rbp)
	jne	.L7
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L8
.L7:
	movl	$0, -656(%rbp)
	jmp	.L9
.L19:
	movl	$0, -644(%rbp)
	movsbl	-657(%rbp), %eax
	subl	$1, %eax
	cltq
	movzbl	-224(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, -640(%rbp)
	movl	$1, -652(%rbp)
	jmp	.L10
.L11:
	movl	-652(%rbp), %eax
	subl	$1, %eax
	cltq
	movzbl	-224(%rbp,%rax), %eax
	movsbl	%al, %edx
	movl	-652(%rbp), %eax
	cltq
	movl	%edx, -640(%rbp,%rax,4)
	addl	$1, -652(%rbp)
.L10:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L11
	movl	$0, -652(%rbp)
	jmp	.L12
.L13:
	movl	-652(%rbp), %eax
	cltq
	movl	-640(%rbp,%rax,4), %eax
	movl	%eax, %edx
	movl	-652(%rbp), %eax
	cltq
	movb	%dl, -224(%rbp,%rax)
	addl	$1, -652(%rbp)
.L12:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L13
	movl	$0, -652(%rbp)
	jmp	.L14
.L16:
	movl	-652(%rbp), %eax
	cltq
	movzbl	-224(%rbp,%rax), %edx
	movl	-652(%rbp), %eax
	cltq
	movzbl	-112(%rbp,%rax), %eax
	cmpb	%al, %dl
	jne	.L15
	addl	$1, -644(%rbp)
.L15:
	addl	$1, -652(%rbp)
.L14:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -652(%rbp)
	jl	.L16
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -644(%rbp)
	jne	.L17
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L8
.L17:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jne	.L18
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L18:
	addl	$1, -656(%rbp)
.L9:
	movsbl	-657(%rbp), %eax
	cmpl	%eax, -656(%rbp)
	jle	.L19
.L8:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L21
	call	__stack_chk_fail@PLT
.L21:
	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:
