Given the following C code and unoptimized assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
// AtCoder ABC109: C - String Transformation
// 2019.9.12 bal4u

#include <stdio.h>
#include <stdlib.h>

#if 0
int getchar_unlocked(void);
#define gc() getchar_unlocked()
#else
#define gc() getchar()
#endif

int ins(char *s) { // 文字列の入力　スペース以下の文字で入力終了
	char *p = s--;
	do *++s = gc();
	while (*s > ' ');
	*s = 0;
	return s - p;
}

char S[200005], T[200005];
int a[26], b[26];

int cmp(const void *u, const void *v) { return *(int *)u - *(int *)v; }

int main()
{
	int i, w;
	
	w = ins(S), ins(T);
	for (i = 0; i < w; i++) a[S[i] - 'a']++;
	for (i = 0; i < w; i++) b[T[i] - 'a']++;
	qsort(a, 26, sizeof(int), cmp);
	qsort(b, 26, sizeof(int), cmp);
	for (i = 0; i < 26; i++) {
		if (a[i] != b[i]) { puts("No"); return 0; }
	}
	puts("Yes");
	return 0;
}

```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	ins
	.type	ins, @function
ins:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	movq	-24(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movq	%rax, -8(%rbp)
.L2:
	call	getchar@PLT
	addq	$1, -24(%rbp)
	movl	%eax, %edx
	movq	-24(%rbp), %rax
	movb	%dl, (%rax)
	movq	-24(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$32, %al
	jg	.L2
	movq	-24(%rbp), %rax
	movb	$0, (%rax)
	movq	-24(%rbp), %rax
	subq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	ins, .-ins
	.globl	S
	.bss
	.align 32
	.type	S, @object
	.size	S, 200005
S:
	.zero	200005
	.globl	T
	.align 32
	.type	T, @object
	.size	T, 200005
T:
	.zero	200005
	.globl	a
	.align 32
	.type	a, @object
	.size	a, 104
a:
	.zero	104
	.globl	b
	.align 32
	.type	b, @object
	.size	b, 104
b:
	.zero	104
	.text
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	cmp, .-cmp
	.section	.rodata
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	leaq	S(%rip), %rax
	movq	%rax, %rdi
	call	ins
	movl	%eax, -4(%rbp)
	leaq	T(%rip), %rax
	movq	%rax, %rdi
	call	ins
	movl	$0, -8(%rbp)
	jmp	.L7
.L8:
	movl	-8(%rbp), %eax
	cltq
	leaq	S(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	a(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	addl	$1, -8(%rbp)
.L7:
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	jl	.L8
	movl	$0, -8(%rbp)
	jmp	.L9
.L10:
	movl	-8(%rbp), %eax
	cltq
	leaq	T(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	addl	$1, -8(%rbp)
.L9:
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	jl	.L10
	leaq	cmp(%rip), %rax
	movq	%rax, %rcx
	movl	$4, %edx
	movl	$26, %esi
	leaq	a(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	leaq	cmp(%rip), %rax
	movq	%rax, %rcx
	movl	$4, %edx
	movl	$26, %esi
	leaq	b(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	movl	$0, -8(%rbp)
	jmp	.L11
.L14:
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	b(%rip), %rax
	movl	(%rcx,%rax), %eax
	cmpl	%eax, %edx
	je	.L12
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	jmp	.L13
.L12:
	addl	$1, -8(%rbp)
.L11:
	cmpl	$25, -8(%rbp)
	jle	.L14
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
.L13:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.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
	.p2align 4
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB40:
	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	subl	(%rsi), %eax
	ret
	.cfi_endproc
.LFE40:
	.size	cmp, .-cmp
	.p2align 4
	.globl	ins
	.type	ins, @function
ins:
.LFB39:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	leaq	-1(%rdi), %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	.p2align 4,,10
	.p2align 3
.L4:
	movq	stdin(%rip), %rdi
	addq	$1, %rbx
	call	getc@PLT
	movb	%al, (%rbx)
	cmpb	$32, %al
	jg	.L4
	movb	$0, (%rbx)
	movl	%ebx, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	subl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE39:
	.size	ins, .-ins
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB41:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	leaq	-1+S(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	.p2align 4,,10
	.p2align 3
.L8:
	movq	stdin(%rip), %rdi
	addq	$1, %rbp
	call	getc@PLT
	movb	%al, 0(%rbp)
	cmpb	$32, %al
	jg	.L8
	movb	$0, 0(%rbp)
	leaq	S(%rip), %rbx
	leaq	T(%rip), %rdi
	subq	%rbx, %rbp
	leaq	a(%rip), %r12
	leaq	b(%rip), %r13
	call	ins
	testl	%ebp, %ebp
	jle	.L9
	leal	-1(%rbp), %esi
	leaq	1(%rbx), %rcx
	movq	%rbx, %rdx
	addq	%rsi, %rcx
	.p2align 4,,10
	.p2align 3
.L10:
	movsbl	(%rdx), %eax
	addq	$1, %rdx
	subl	$97, %eax
	cltq
	addl	$1, (%r12,%rax,4)
	cmpq	%rdx, %rcx
	jne	.L10
	leaq	T(%rip), %rdx
	leaq	b(%rip), %r13
	leaq	1(%rdx), %rcx
	addq	%rsi, %rcx
	.p2align 4,,10
	.p2align 3
.L11:
	movsbl	(%rdx), %eax
	addq	$1, %rdx
	subl	$97, %eax
	cltq
	addl	$1, 0(%r13,%rax,4)
	cmpq	%rdx, %rcx
	jne	.L11
.L9:
	leaq	cmp(%rip), %r14
	movl	$4, %edx
	movl	$26, %esi
	movq	%r12, %rdi
	movq	%r14, %rcx
	call	qsort@PLT
	movq	%r14, %rcx
	movl	$4, %edx
	movq	%r13, %rdi
	movl	$26, %esi
	call	qsort@PLT
	xorl	%eax, %eax
	jmp	.L14
	.p2align 4,,10
	.p2align 3
.L12:
	addq	$4, %rax
	cmpq	$104, %rax
	je	.L21
.L14:
	movl	0(%r13,%rax), %ebx
	cmpl	%ebx, (%r12,%rax)
	je	.L12
	leaq	.LC0(%rip), %rdi
	call	puts@PLT
.L13:
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21:
	.cfi_restore_state
	leaq	.LC1(%rip), %rdi
	call	puts@PLT
	jmp	.L13
	.cfi_endproc
.LFE41:
	.size	main, .-main
	.globl	b
	.bss
	.align 32
	.type	b, @object
	.size	b, 104
b:
	.zero	104
	.globl	a
	.align 32
	.type	a, @object
	.size	a, 104
a:
	.zero	104
	.globl	T
	.align 32
	.type	T, @object
	.size	T, 200005
T:
	.zero	200005
	.globl	S
	.align 32
	.type	S, @object
	.size	S, 200005
S:
	.zero	200005
	.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
	.p2align 4
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB40:
	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	subl	(%rsi), %eax
	ret
	.cfi_endproc
.LFE40:
	.size	cmp, .-cmp
	.p2align 4
	.globl	ins
	.type	ins, @function
ins:
.LFB39:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	leaq	-1(%rdi), %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	.p2align 4,,10
	.p2align 3
.L4:
	movq	stdin(%rip), %rdi
	addq	$1, %rbx
	call	getc@PLT
	movb	%al, (%rbx)
	cmpb	$32, %al
	jg	.L4
	movb	$0, (%rbx)
	movl	%ebx, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	subl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE39:
	.size	ins, .-ins
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB41:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	leaq	-1+S(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	.p2align 4,,10
	.p2align 3
.L8:
	movq	stdin(%rip), %rdi
	addq	$1, %rbp
	call	getc@PLT
	movb	%al, 0(%rbp)
	cmpb	$32, %al
	jg	.L8
	movb	$0, 0(%rbp)
	leaq	S(%rip), %rbx
	leaq	T(%rip), %rdi
	subq	%rbx, %rbp
	leaq	a(%rip), %r12
	leaq	b(%rip), %r13
	call	ins
	testl	%ebp, %ebp
	jle	.L9
	leal	-1(%rbp), %esi
	leaq	1(%rbx), %rcx
	movq	%rbx, %rdx
	addq	%rsi, %rcx
	.p2align 4,,10
	.p2align 3
.L10:
	movsbl	(%rdx), %eax
	addq	$1, %rdx
	subl	$97, %eax
	cltq
	addl	$1, (%r12,%rax,4)
	cmpq	%rdx, %rcx
	jne	.L10
	leaq	T(%rip), %rdx
	leaq	b(%rip), %r13
	leaq	1(%rdx), %rcx
	addq	%rsi, %rcx
	.p2align 4,,10
	.p2align 3
.L11:
	movsbl	(%rdx), %eax
	addq	$1, %rdx
	subl	$97, %eax
	cltq
	addl	$1, 0(%r13,%rax,4)
	cmpq	%rdx, %rcx
	jne	.L11
.L9:
	leaq	cmp(%rip), %r14
	movl	$4, %edx
	movl	$26, %esi
	movq	%r12, %rdi
	movq	%r14, %rcx
	call	qsort@PLT
	movq	%r14, %rcx
	movl	$4, %edx
	movq	%r13, %rdi
	movl	$26, %esi
	call	qsort@PLT
	xorl	%eax, %eax
	jmp	.L14
	.p2align 4,,10
	.p2align 3
.L12:
	addq	$4, %rax
	cmpq	$104, %rax
	je	.L21
.L14:
	movl	0(%r13,%rax), %ebx
	cmpl	%ebx, (%r12,%rax)
	je	.L12
	leaq	.LC0(%rip), %rdi
	call	puts@PLT
.L13:
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21:
	.cfi_restore_state
	leaq	.LC1(%rip), %rdi
	call	puts@PLT
	jmp	.L13
	.cfi_endproc
.LFE41:
	.size	main, .-main
	.globl	b
	.bss
	.align 32
	.type	b, @object
	.size	b, 104
b:
	.zero	104
	.globl	a
	.align 32
	.type	a, @object
	.size	a, 104
a:
	.zero	104
	.globl	T
	.align 32
	.type	T, @object
	.size	T, 200005
T:
	.zero	200005
	.globl	S
	.align 32
	.type	S, @object
	.size	S, 200005
S:
	.zero	200005
	.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:

// AtCoder ABC109: C - String Transformation
// 2019.9.12 bal4u

#include <stdio.h>
#include <stdlib.h>

#if 0
int getchar_unlocked(void);
#define gc() getchar_unlocked()
#else
#define gc() getchar()
#endif

int ins(char *s) { // 文字列の入力　スペース以下の文字で入力終了
	char *p = s--;
	do *++s = gc();
	while (*s > ' ');
	*s = 0;
	return s - p;
}

char S[200005], T[200005];
int a[26], b[26];

int cmp(const void *u, const void *v) { return *(int *)u - *(int *)v; }

int main()
{
	int i, w;
	
	w = ins(S), ins(T);
	for (i = 0; i < w; i++) a[S[i] - 'a']++;
	for (i = 0; i < w; i++) b[T[i] - 'a']++;
	qsort(a, 26, sizeof(int), cmp);
	qsort(b, 26, sizeof(int), cmp);
	for (i = 0; i < 26; i++) {
		if (a[i] != b[i]) { puts("No"); return 0; }
	}
	puts("Yes");
	return 0;
}


azzel
apqle
 abcdefghijklmnopqrstuvwxyz
unomzpgwdtsjxlcvakerfqhybi
 ihokudac
redcoder
 azzle
apqle
 zyxwvutsrqponmlkjihgfedcba
unomzpgwdtsjxlcvakerfqhybi
 cadukohi
redcoder
 azzle
apqld
 zyxwvutsrqponmlkjihgfedcba
unonzpgwdtsjxlcvakerfqhybi
 ihojudac
redcoder
 azzle
dlqpa

No
 Yes
 No
 No
 Yes
 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
// AtCoder ABC109: C - String Transformation
// 2019.9.12 bal4u

#include <stdio.h>
#include <stdlib.h>

#if 0
int getchar_unlocked(void);
#define gc() getchar_unlocked()
#else
#define gc() getchar()
#endif

int ins(char *s) { // 文字列の入力　スペース以下の文字で入力終了
	char *p = s--;
	do *++s = gc();
	while (*s > ' ');
	*s = 0;
	return s - p;
}

char S[200005], T[200005];
int a[26], b[26];

int cmp(const void *u, const void *v) { return *(int *)u - *(int *)v; }

int main()
{
	int i, w;
	
	w = ins(S), ins(T);
	for (i = 0; i < w; i++) a[S[i] - 'a']++;
	for (i = 0; i < w; i++) b[T[i] - 'a']++;
	qsort(a, 26, sizeof(int), cmp);
	qsort(b, 26, sizeof(int), cmp);
	for (i = 0; i < 26; i++) {
		if (a[i] != b[i]) { puts("No"); return 0; }
	}
	puts("Yes");
	return 0;
}

```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	ins
	.type	ins, @function
ins:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	movq	-24(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movq	%rax, -8(%rbp)
.L2:
	call	getchar@PLT
	addq	$1, -24(%rbp)
	movl	%eax, %edx
	movq	-24(%rbp), %rax
	movb	%dl, (%rax)
	movq	-24(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$32, %al
	jg	.L2
	movq	-24(%rbp), %rax
	movb	$0, (%rax)
	movq	-24(%rbp), %rax
	subq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	ins, .-ins
	.globl	S
	.bss
	.align 32
	.type	S, @object
	.size	S, 200005
S:
	.zero	200005
	.globl	T
	.align 32
	.type	T, @object
	.size	T, 200005
T:
	.zero	200005
	.globl	a
	.align 32
	.type	a, @object
	.size	a, 104
a:
	.zero	104
	.globl	b
	.align 32
	.type	b, @object
	.size	b, 104
b:
	.zero	104
	.text
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	cmp, .-cmp
	.section	.rodata
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	leaq	S(%rip), %rax
	movq	%rax, %rdi
	call	ins
	movl	%eax, -4(%rbp)
	leaq	T(%rip), %rax
	movq	%rax, %rdi
	call	ins
	movl	$0, -8(%rbp)
	jmp	.L7
.L8:
	movl	-8(%rbp), %eax
	cltq
	leaq	S(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	a(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	addl	$1, -8(%rbp)
.L7:
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	jl	.L8
	movl	$0, -8(%rbp)
	jmp	.L9
.L10:
	movl	-8(%rbp), %eax
	cltq
	leaq	T(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	addl	$1, -8(%rbp)
.L9:
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	jl	.L10
	leaq	cmp(%rip), %rax
	movq	%rax, %rcx
	movl	$4, %edx
	movl	$26, %esi
	leaq	a(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	leaq	cmp(%rip), %rax
	movq	%rax, %rcx
	movl	$4, %edx
	movl	$26, %esi
	leaq	b(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	movl	$0, -8(%rbp)
	jmp	.L11
.L14:
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	b(%rip), %rax
	movl	(%rcx,%rax), %eax
	cmpl	%eax, %edx
	je	.L12
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	jmp	.L13
.L12:
	addl	$1, -8(%rbp)
.L11:
	cmpl	$25, -8(%rbp)
	jle	.L14
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
.L13:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.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
	.globl	ins
	.type	ins, @function
ins:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	movq	-24(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movq	%rax, -8(%rbp)
.L2:
	call	getchar@PLT
	addq	$1, -24(%rbp)
	movl	%eax, %edx
	movq	-24(%rbp), %rax
	movb	%dl, (%rax)
	movq	-24(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$32, %al
	jg	.L2
	movq	-24(%rbp), %rax
	movb	$0, (%rax)
	movq	-24(%rbp), %rax
	subq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	ins, .-ins
	.globl	S
	.bss
	.align 32
	.type	S, @object
	.size	S, 200005
S:
	.zero	200005
	.globl	T
	.align 32
	.type	T, @object
	.size	T, 200005
T:
	.zero	200005
	.globl	a
	.align 32
	.type	a, @object
	.size	a, 104
a:
	.zero	104
	.globl	b
	.align 32
	.type	b, @object
	.size	b, 104
b:
	.zero	104
	.text
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	cmp, .-cmp
	.section	.rodata
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	leaq	S(%rip), %rax
	movq	%rax, %rdi
	call	ins
	movl	%eax, -4(%rbp)
	leaq	T(%rip), %rax
	movq	%rax, %rdi
	call	ins
	movl	$0, -8(%rbp)
	jmp	.L7
.L8:
	movl	-8(%rbp), %eax
	cltq
	leaq	S(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	a(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	addl	$1, -8(%rbp)
.L7:
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	jl	.L8
	movl	$0, -8(%rbp)
	jmp	.L9
.L10:
	movl	-8(%rbp), %eax
	cltq
	leaq	T(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	addl	$1, -8(%rbp)
.L9:
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	jl	.L10
	leaq	cmp(%rip), %rax
	movq	%rax, %rcx
	movl	$4, %edx
	movl	$26, %esi
	leaq	a(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	leaq	cmp(%rip), %rax
	movq	%rax, %rcx
	movl	$4, %edx
	movl	$26, %esi
	leaq	b(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	movl	$0, -8(%rbp)
	jmp	.L11
.L14:
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	b(%rip), %rax
	movl	(%rcx,%rax), %eax
	cmpl	%eax, %edx
	je	.L12
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	jmp	.L13
.L12:
	addl	$1, -8(%rbp)
.L11:
	cmpl	$25, -8(%rbp)
	jle	.L14
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
.L13:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.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:
