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>

char s[100005];

int alphabet[26];
char alphabet2[55];

int main() {

	int K;

	scanf("%s",s);
	scanf("%d",&K);

	int len = strlen(s);

	int i;

	for (i = 25; i >= 0; i--) {
		alphabet[i] = 26 - i;
	}

	for (i = 0; i < len; i++) {
		if (s[i] == 'a') { continue; }
		if (alphabet[s[i] - 'a'] <= K) { K -= alphabet[s[i] - 'a']; s[i] = 'a'; }
	}
	if (K > 0) {
		for (i = 0; i < 26; i++) {
			alphabet2[i] = 'a' + i;
		}
		for (i = 26; i < 52; i++) {
			alphabet2[i] = 'a' + i;
		}

		s[len - 1] = alphabet2[(s[len - 1] - 'a') + (K % 26)];
	}
	printf("%s\n",s);
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	s
	.bss
	.align 32
	.type	s, @object
	.size	s, 100005
s:
	.zero	100005
	.globl	alphabet
	.align 32
	.type	alphabet, @object
	.size	alphabet, 104
alphabet:
	.zero	104
	.globl	alphabet2
	.align 32
	.type	alphabet2, @object
	.size	alphabet2, 55
alphabet2:
	.zero	55
	.section	.rodata
.LC0:
	.string	"%s"
.LC1:
	.string	"%d"
	.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	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	leaq	s(%rip), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-20(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	s(%rip), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -12(%rbp)
	movl	$25, -16(%rbp)
	jmp	.L2
.L3:
	movl	$26, %eax
	subl	-16(%rbp), %eax
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	alphabet(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	subl	$1, -16(%rbp)
.L2:
	cmpl	$0, -16(%rbp)
	jns	.L3
	movl	$0, -16(%rbp)
	jmp	.L4
.L7:
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	cmpb	$97, %al
	je	.L15
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	alphabet(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-20(%rbp), %eax
	cmpl	%eax, %edx
	jg	.L6
	movl	-20(%rbp), %edx
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rcx
	movzbl	(%rax,%rcx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	alphabet(%rip), %rax
	movl	(%rcx,%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	movl	%eax, -20(%rbp)
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movb	$97, (%rax,%rdx)
	jmp	.L6
.L15:
	nop
.L6:
	addl	$1, -16(%rbp)
.L4:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jl	.L7
	movl	-20(%rbp), %eax
	testl	%eax, %eax
	jle	.L8
	movl	$0, -16(%rbp)
	jmp	.L9
.L10:
	movl	-16(%rbp), %eax
	addl	$97, %eax
	movl	%eax, %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	alphabet2(%rip), %rdx
	movb	%cl, (%rax,%rdx)
	addl	$1, -16(%rbp)
.L9:
	cmpl	$25, -16(%rbp)
	jle	.L10
	movl	$26, -16(%rbp)
	jmp	.L11
.L12:
	movl	-16(%rbp), %eax
	addl	$97, %eax
	movl	%eax, %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	alphabet2(%rip), %rdx
	movb	%cl, (%rax,%rdx)
	addl	$1, -16(%rbp)
.L11:
	cmpl	$51, -16(%rbp)
	jle	.L12
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	leal	-97(%rax), %esi
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	imulq	$1321528399, %rdx, %rdx
	shrq	$32, %rdx
	sarl	$3, %edx
	movl	%eax, %ecx
	sarl	$31, %ecx
	subl	%ecx, %edx
	imull	$26, %edx, %ecx
	subl	%ecx, %eax
	movl	%eax, %edx
	addl	%esi, %edx
	movl	-12(%rbp), %eax
	leal	-1(%rax), %ecx
	movslq	%edx, %rax
	leaq	alphabet2(%rip), %rdx
	movzbl	(%rax,%rdx), %edx
	movslq	%ecx, %rax
	leaq	s(%rip), %rcx
	movb	%dl, (%rax,%rcx)
.L8:
	leaq	s(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
user
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
.LC1:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	s(%rip), %rbp
	leaq	.LC0(%rip), %rdi
	movq	%rbp, %rsi
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	leaq	4(%rsp), %rsi
	leaq	.LC1(%rip), %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movq	%rbp, %rdi
	call	strlen@PLT
	movdqa	.LC2(%rip), %xmm0
	movl	4(%rsp), %edi
	movq	%rax, %rsi
	movq	.LC8(%rip), %rax
	movups	%xmm0, 88+alphabet(%rip)
	movdqa	.LC3(%rip), %xmm0
	movq	%rax, alphabet(%rip)
	movups	%xmm0, 72+alphabet(%rip)
	movdqa	.LC4(%rip), %xmm0
	movups	%xmm0, 56+alphabet(%rip)
	movdqa	.LC5(%rip), %xmm0
	movups	%xmm0, 40+alphabet(%rip)
	movdqa	.LC6(%rip), %xmm0
	movups	%xmm0, 24+alphabet(%rip)
	movdqa	.LC7(%rip), %xmm0
	movups	%xmm0, 8+alphabet(%rip)
	testq	%rsi, %rsi
	je	.L3
	leal	-1(%rsi), %eax
	leaq	1(%rbp), %r8
	movl	%edi, %ecx
	movq	%rbp, %rdx
	addq	%rax, %r8
	xorl	%r10d, %r10d
	leaq	alphabet(%rip), %r9
	.p2align 4,,10
	.p2align 3
.L5:
	movsbl	(%rdx), %eax
	cmpb	$97, %al
	je	.L4
	subl	$97, %eax
	cltq
	movl	(%r9,%rax,4), %eax
	cmpl	%ecx, %eax
	jg	.L4
	movb	$97, (%rdx)
	subl	%eax, %ecx
	movl	$1, %r10d
.L4:
	addq	$1, %rdx
	cmpq	%rdx, %r8
	jne	.L5
	testb	%r10b, %r10b
	je	.L3
	movl	%ecx, 4(%rsp)
	movl	%ecx, %edi
.L3:
	testl	%edi, %edi
	jle	.L7
	movq	.LC10(%rip), %rax
	movl	%edi, %ecx
	subl	$1, %esi
	movl	$-27501, %edx
	sarl	$31, %ecx
	movslq	%esi, %rsi
	movw	%dx, 50+alphabet2(%rip)
	movdqa	.LC9(%rip), %xmm0
	movq	%rax, 16+alphabet2(%rip)
	movl	$31353, %eax
	movsbl	0(%rbp,%rsi), %edx
	movw	%ax, 24+alphabet2(%rip)
	movq	.LC12(%rip), %rax
	movaps	%xmm0, alphabet2(%rip)
	movdqa	.LC11(%rip), %xmm0
	movq	%rax, 42+alphabet2(%rip)
	movslq	%edi, %rax
	imulq	$1321528399, %rax, %rax
	movups	%xmm0, 26+alphabet2(%rip)
	sarq	$35, %rax
	subl	%ecx, %eax
	imull	$26, %eax, %eax
	subl	%eax, %edi
	leal	-97(%rdx,%rdi), %eax
	leaq	alphabet2(%rip), %rdx
	cltq
	movzbl	(%rdx,%rax), %eax
	movb	%al, 0(%rbp,%rsi)
.L7:
	movq	%rbp, %rdi
	call	puts@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L18:
	.cfi_restore_state
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.globl	alphabet2
	.bss
	.align 32
	.type	alphabet2, @object
	.size	alphabet2, 55
alphabet2:
	.zero	55
	.globl	alphabet
	.align 32
	.type	alphabet, @object
	.size	alphabet, 104
alphabet:
	.zero	104
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 100005
s:
	.zero	100005
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC2:
	.long	4
	.long	3
	.long	2
	.long	1
	.align 16
.LC3:
	.long	8
	.long	7
	.long	6
	.long	5
	.align 16
.LC4:
	.long	12
	.long	11
	.long	10
	.long	9
	.align 16
.LC5:
	.long	16
	.long	15
	.long	14
	.long	13
	.align 16
.LC6:
	.long	20
	.long	19
	.long	18
	.long	17
	.align 16
.LC7:
	.long	24
	.long	23
	.long	22
	.long	21
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC8:
	.long	26
	.long	25
	.section	.rodata.cst16
	.align 16
.LC9:
	.byte	97
	.byte	98
	.byte	99
	.byte	100
	.byte	101
	.byte	102
	.byte	103
	.byte	104
	.byte	105
	.byte	106
	.byte	107
	.byte	108
	.byte	109
	.byte	110
	.byte	111
	.byte	112
	.section	.rodata.cst8
	.align 8
.LC10:
	.byte	113
	.byte	114
	.byte	115
	.byte	116
	.byte	117
	.byte	118
	.byte	119
	.byte	120
	.section	.rodata.cst16
	.align 16
.LC11:
	.byte	123
	.byte	124
	.byte	125
	.byte	126
	.byte	127
	.byte	-128
	.byte	-127
	.byte	-126
	.byte	-125
	.byte	-124
	.byte	-123
	.byte	-122
	.byte	-121
	.byte	-120
	.byte	-119
	.byte	-118
	.section	.rodata.cst8
	.align 8
.LC12:
	.byte	-117
	.byte	-116
	.byte	-115
	.byte	-114
	.byte	-113
	.byte	-112
	.byte	-111
	.byte	-110
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

rule
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
.LC1:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	s(%rip), %rbp
	leaq	.LC0(%rip), %rdi
	movq	%rbp, %rsi
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	leaq	4(%rsp), %rsi
	leaq	.LC1(%rip), %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movq	%rbp, %rdi
	call	strlen@PLT
	movdqa	.LC2(%rip), %xmm0
	movl	4(%rsp), %edi
	movq	%rax, %rsi
	movq	.LC8(%rip), %rax
	movups	%xmm0, 88+alphabet(%rip)
	movdqa	.LC3(%rip), %xmm0
	movq	%rax, alphabet(%rip)
	movups	%xmm0, 72+alphabet(%rip)
	movdqa	.LC4(%rip), %xmm0
	movups	%xmm0, 56+alphabet(%rip)
	movdqa	.LC5(%rip), %xmm0
	movups	%xmm0, 40+alphabet(%rip)
	movdqa	.LC6(%rip), %xmm0
	movups	%xmm0, 24+alphabet(%rip)
	movdqa	.LC7(%rip), %xmm0
	movups	%xmm0, 8+alphabet(%rip)
	testq	%rsi, %rsi
	je	.L3
	leal	-1(%rsi), %eax
	leaq	1(%rbp), %r8
	movl	%edi, %ecx
	movq	%rbp, %rdx
	addq	%rax, %r8
	xorl	%r10d, %r10d
	leaq	alphabet(%rip), %r9
	.p2align 4,,10
	.p2align 3
.L5:
	movsbl	(%rdx), %eax
	cmpb	$97, %al
	je	.L4
	subl	$97, %eax
	cltq
	movl	(%r9,%rax,4), %eax
	cmpl	%ecx, %eax
	jg	.L4
	movb	$97, (%rdx)
	subl	%eax, %ecx
	movl	$1, %r10d
.L4:
	addq	$1, %rdx
	cmpq	%rdx, %r8
	jne	.L5
	testb	%r10b, %r10b
	je	.L3
	movl	%ecx, 4(%rsp)
	movl	%ecx, %edi
.L3:
	testl	%edi, %edi
	jle	.L7
	movq	.LC10(%rip), %rax
	movl	%edi, %ecx
	subl	$1, %esi
	movl	$-27501, %edx
	sarl	$31, %ecx
	movslq	%esi, %rsi
	movw	%dx, 50+alphabet2(%rip)
	movdqa	.LC9(%rip), %xmm0
	movq	%rax, 16+alphabet2(%rip)
	movl	$31353, %eax
	movsbl	0(%rbp,%rsi), %edx
	movw	%ax, 24+alphabet2(%rip)
	movq	.LC12(%rip), %rax
	movaps	%xmm0, alphabet2(%rip)
	movdqa	.LC11(%rip), %xmm0
	movq	%rax, 42+alphabet2(%rip)
	movslq	%edi, %rax
	imulq	$1321528399, %rax, %rax
	movups	%xmm0, 26+alphabet2(%rip)
	sarq	$35, %rax
	subl	%ecx, %eax
	imull	$26, %eax, %eax
	subl	%eax, %edi
	leal	-97(%rdx,%rdi), %eax
	leaq	alphabet2(%rip), %rdx
	cltq
	movzbl	(%rdx,%rax), %eax
	movb	%al, 0(%rbp,%rsi)
.L7:
	movq	%rbp, %rdi
	call	puts@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L18:
	.cfi_restore_state
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.globl	alphabet2
	.bss
	.align 32
	.type	alphabet2, @object
	.size	alphabet2, 55
alphabet2:
	.zero	55
	.globl	alphabet
	.align 32
	.type	alphabet, @object
	.size	alphabet, 104
alphabet:
	.zero	104
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 100005
s:
	.zero	100005
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC2:
	.long	4
	.long	3
	.long	2
	.long	1
	.align 16
.LC3:
	.long	8
	.long	7
	.long	6
	.long	5
	.align 16
.LC4:
	.long	12
	.long	11
	.long	10
	.long	9
	.align 16
.LC5:
	.long	16
	.long	15
	.long	14
	.long	13
	.align 16
.LC6:
	.long	20
	.long	19
	.long	18
	.long	17
	.align 16
.LC7:
	.long	24
	.long	23
	.long	22
	.long	21
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC8:
	.long	26
	.long	25
	.section	.rodata.cst16
	.align 16
.LC9:
	.byte	97
	.byte	98
	.byte	99
	.byte	100
	.byte	101
	.byte	102
	.byte	103
	.byte	104
	.byte	105
	.byte	106
	.byte	107
	.byte	108
	.byte	109
	.byte	110
	.byte	111
	.byte	112
	.section	.rodata.cst8
	.align 8
.LC10:
	.byte	113
	.byte	114
	.byte	115
	.byte	116
	.byte	117
	.byte	118
	.byte	119
	.byte	120
	.section	.rodata.cst16
	.align 16
.LC11:
	.byte	123
	.byte	124
	.byte	125
	.byte	126
	.byte	127
	.byte	-128
	.byte	-127
	.byte	-126
	.byte	-125
	.byte	-124
	.byte	-123
	.byte	-122
	.byte	-121
	.byte	-120
	.byte	-119
	.byte	-118
	.section	.rodata.cst8
	.align 8
.LC12:
	.byte	-117
	.byte	-116
	.byte	-115
	.byte	-114
	.byte	-113
	.byte	-112
	.byte	-111
	.byte	-110
	.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>

char s[100005];

int alphabet[26];
char alphabet2[55];

int main() {

	int K;

	scanf("%s",s);
	scanf("%d",&K);

	int len = strlen(s);

	int i;

	for (i = 25; i >= 0; i--) {
		alphabet[i] = 26 - i;
	}

	for (i = 0; i < len; i++) {
		if (s[i] == 'a') { continue; }
		if (alphabet[s[i] - 'a'] <= K) { K -= alphabet[s[i] - 'a']; s[i] = 'a'; }
	}
	if (K > 0) {
		for (i = 0; i < 26; i++) {
			alphabet2[i] = 'a' + i;
		}
		for (i = 26; i < 52; i++) {
			alphabet2[i] = 'a' + i;
		}

		s[len - 1] = alphabet2[(s[len - 1] - 'a') + (K % 26)];
	}
	printf("%s\n",s);
	return 0;
}
codefestival
101
 xyz
1
 zyx
1
 cdoeffstival
101
 zyx
2
 cdoeffstival
111
 zyx
3
 lavitsffeodc
111
 xyz
2
 caoeffstivdl
111

aaaafeaaiaal
 xya
 ayx
 aaaaffaaiaal
 ayy
 aaaaafativam
 aax
 aaaaaaaaeadg
 xaz
 aaaaaaativdo

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>

char s[100005];

int alphabet[26];
char alphabet2[55];

int main() {

	int K;

	scanf("%s",s);
	scanf("%d",&K);

	int len = strlen(s);

	int i;

	for (i = 25; i >= 0; i--) {
		alphabet[i] = 26 - i;
	}

	for (i = 0; i < len; i++) {
		if (s[i] == 'a') { continue; }
		if (alphabet[s[i] - 'a'] <= K) { K -= alphabet[s[i] - 'a']; s[i] = 'a'; }
	}
	if (K > 0) {
		for (i = 0; i < 26; i++) {
			alphabet2[i] = 'a' + i;
		}
		for (i = 26; i < 52; i++) {
			alphabet2[i] = 'a' + i;
		}

		s[len - 1] = alphabet2[(s[len - 1] - 'a') + (K % 26)];
	}
	printf("%s\n",s);
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	s
	.bss
	.align 32
	.type	s, @object
	.size	s, 100005
s:
	.zero	100005
	.globl	alphabet
	.align 32
	.type	alphabet, @object
	.size	alphabet, 104
alphabet:
	.zero	104
	.globl	alphabet2
	.align 32
	.type	alphabet2, @object
	.size	alphabet2, 55
alphabet2:
	.zero	55
	.section	.rodata
.LC0:
	.string	"%s"
.LC1:
	.string	"%d"
	.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	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	leaq	s(%rip), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-20(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	s(%rip), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -12(%rbp)
	movl	$25, -16(%rbp)
	jmp	.L2
.L3:
	movl	$26, %eax
	subl	-16(%rbp), %eax
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	alphabet(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	subl	$1, -16(%rbp)
.L2:
	cmpl	$0, -16(%rbp)
	jns	.L3
	movl	$0, -16(%rbp)
	jmp	.L4
.L7:
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	cmpb	$97, %al
	je	.L15
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	alphabet(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-20(%rbp), %eax
	cmpl	%eax, %edx
	jg	.L6
	movl	-20(%rbp), %edx
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rcx
	movzbl	(%rax,%rcx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	alphabet(%rip), %rax
	movl	(%rcx,%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	movl	%eax, -20(%rbp)
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movb	$97, (%rax,%rdx)
	jmp	.L6
.L15:
	nop
.L6:
	addl	$1, -16(%rbp)
.L4:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jl	.L7
	movl	-20(%rbp), %eax
	testl	%eax, %eax
	jle	.L8
	movl	$0, -16(%rbp)
	jmp	.L9
.L10:
	movl	-16(%rbp), %eax
	addl	$97, %eax
	movl	%eax, %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	alphabet2(%rip), %rdx
	movb	%cl, (%rax,%rdx)
	addl	$1, -16(%rbp)
.L9:
	cmpl	$25, -16(%rbp)
	jle	.L10
	movl	$26, -16(%rbp)
	jmp	.L11
.L12:
	movl	-16(%rbp), %eax
	addl	$97, %eax
	movl	%eax, %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	alphabet2(%rip), %rdx
	movb	%cl, (%rax,%rdx)
	addl	$1, -16(%rbp)
.L11:
	cmpl	$51, -16(%rbp)
	jle	.L12
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	leal	-97(%rax), %esi
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	imulq	$1321528399, %rdx, %rdx
	shrq	$32, %rdx
	sarl	$3, %edx
	movl	%eax, %ecx
	sarl	$31, %ecx
	subl	%ecx, %edx
	imull	$26, %edx, %ecx
	subl	%ecx, %eax
	movl	%eax, %edx
	addl	%esi, %edx
	movl	-12(%rbp), %eax
	leal	-1(%rax), %ecx
	movslq	%edx, %rax
	leaq	alphabet2(%rip), %rdx
	movzbl	(%rax,%rdx), %edx
	movslq	%ecx, %rax
	leaq	s(%rip), %rcx
	movb	%dl, (%rax,%rcx)
.L8:
	leaq	s(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	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
	.globl	s
	.bss
	.align 32
	.type	s, @object
	.size	s, 100005
s:
	.zero	100005
	.globl	alphabet
	.align 32
	.type	alphabet, @object
	.size	alphabet, 104
alphabet:
	.zero	104
	.globl	alphabet2
	.align 32
	.type	alphabet2, @object
	.size	alphabet2, 55
alphabet2:
	.zero	55
	.section	.rodata
.LC0:
	.string	"%s"
.LC1:
	.string	"%d"
	.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	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	leaq	s(%rip), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-20(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	s(%rip), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -12(%rbp)
	movl	$25, -16(%rbp)
	jmp	.L2
.L3:
	movl	$26, %eax
	subl	-16(%rbp), %eax
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	alphabet(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	subl	$1, -16(%rbp)
.L2:
	cmpl	$0, -16(%rbp)
	jns	.L3
	movl	$0, -16(%rbp)
	jmp	.L4
.L7:
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	cmpb	$97, %al
	je	.L15
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	alphabet(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-20(%rbp), %eax
	cmpl	%eax, %edx
	jg	.L6
	movl	-20(%rbp), %edx
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rcx
	movzbl	(%rax,%rcx), %eax
	movsbl	%al, %eax
	subl	$97, %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	alphabet(%rip), %rax
	movl	(%rcx,%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	movl	%eax, -20(%rbp)
	movl	-16(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movb	$97, (%rax,%rdx)
	jmp	.L6
.L15:
	nop
.L6:
	addl	$1, -16(%rbp)
.L4:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jl	.L7
	movl	-20(%rbp), %eax
	testl	%eax, %eax
	jle	.L8
	movl	$0, -16(%rbp)
	jmp	.L9
.L10:
	movl	-16(%rbp), %eax
	addl	$97, %eax
	movl	%eax, %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	alphabet2(%rip), %rdx
	movb	%cl, (%rax,%rdx)
	addl	$1, -16(%rbp)
.L9:
	cmpl	$25, -16(%rbp)
	jle	.L10
	movl	$26, -16(%rbp)
	jmp	.L11
.L12:
	movl	-16(%rbp), %eax
	addl	$97, %eax
	movl	%eax, %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	alphabet2(%rip), %rdx
	movb	%cl, (%rax,%rdx)
	addl	$1, -16(%rbp)
.L11:
	cmpl	$51, -16(%rbp)
	jle	.L12
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	leal	-97(%rax), %esi
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	imulq	$1321528399, %rdx, %rdx
	shrq	$32, %rdx
	sarl	$3, %edx
	movl	%eax, %ecx
	sarl	$31, %ecx
	subl	%ecx, %edx
	imull	$26, %edx, %ecx
	subl	%ecx, %eax
	movl	%eax, %edx
	addl	%esi, %edx
	movl	-12(%rbp), %eax
	leal	-1(%rax), %ecx
	movslq	%edx, %rax
	leaq	alphabet2(%rip), %rdx
	movzbl	(%rax,%rdx), %edx
	movslq	%ecx, %rax
	leaq	s(%rip), %rcx
	movb	%dl, (%rax,%rcx)
.L8:
	leaq	s(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	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:
