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 moji(char x){
  if(x=='T') x='a';
  if(x=='L') x='i';
  if(x=='U') x='u';
  if(x=='R') x='e';
  if(x=='D') x='o';
  return x;
}


int main(){
  char a[1000],b[1000];
  int i,j,len,t=0;


    scanf("%s",a);
  
  len=strlen(a);

  for(i=0;i<len;i++){
    if(a[i]=='0'){
        if(a[i+1]!='U' && a[i+1]!='L' && a[i+1]!='R'){
      b[t]='w';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      }
	
      if(a[i+1]=='U'){
	b[t]='n';
	t++;
	b[t]='n';
	t++;
      }
    }
    else if(a[i]=='1'){
      b[t]=moji(a[i+1]);
      t++;
    }

    else if(a[i]=='2'){
	b[t]='k';
	t++;
	b[t]=moji(a[i+1]);
	t++;
      }
    else if(a[i]=='3'){
      b[t]='s';
      t++;
	b[t]=moji(a[i+1]);
      t++;
    }

    else if(a[i]=='4'){
      b[t]='t';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='5'){
      b[t]='n';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='6'){
      b[t]='h';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      
    }
    else if(a[i]=='7'){
      b[t]='m';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='8'){
      if(a[i+1]!='L' && a[i+1]!='R'){
      b[t]='y';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      }
    }

    else if(a[i]=='9'){
      b[t]='r';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
  }
  for(i=0;i<t;i++){
    printf("%c",b[i]);
  }
  printf("\n");

  return 0;
}

    ```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	moji
	.type	moji, @function
moji:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$84, -4(%rbp)
	jne	.L2
	movb	$97, -4(%rbp)
.L2:
	cmpb	$76, -4(%rbp)
	jne	.L3
	movb	$105, -4(%rbp)
.L3:
	cmpb	$85, -4(%rbp)
	jne	.L4
	movb	$117, -4(%rbp)
.L4:
	cmpb	$82, -4(%rbp)
	jne	.L5
	movb	$101, -4(%rbp)
.L5:
	cmpb	$68, -4(%rbp)
	jne	.L6
	movb	$111, -4(%rbp)
.L6:
	movzbl	-4(%rbp), %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	moji, .-moji
	.section	.rodata
.LC0:
	.string	"%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$2032, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -2024(%rbp)
	leaq	-2016(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-2016(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -2020(%rbp)
	movl	$0, -2028(%rbp)
	jmp	.L9
.L21:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$48, %al
	jne	.L10
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$85, %al
	je	.L11
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$76, %al
	je	.L11
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$82, %al
	je	.L11
	movl	-2024(%rbp), %eax
	cltq
	movb	$119, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
.L11:
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$85, %al
	jne	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L10:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$49, %al
	jne	.L13
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L13:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$50, %al
	jne	.L14
	movl	-2024(%rbp), %eax
	cltq
	movb	$107, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L14:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$51, %al
	jne	.L15
	movl	-2024(%rbp), %eax
	cltq
	movb	$115, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L15:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$52, %al
	jne	.L16
	movl	-2024(%rbp), %eax
	cltq
	movb	$116, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L16:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$53, %al
	jne	.L17
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L17:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$54, %al
	jne	.L18
	movl	-2024(%rbp), %eax
	cltq
	movb	$104, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L18:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$55, %al
	jne	.L19
	movl	-2024(%rbp), %eax
	cltq
	movb	$109, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L19:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$56, %al
	jne	.L20
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$76, %al
	je	.L12
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$82, %al
	je	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$121, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L20:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$57, %al
	jne	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$114, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
.L12:
	addl	$1, -2028(%rbp)
.L9:
	movl	-2028(%rbp), %eax
	cmpl	-2020(%rbp), %eax
	jl	.L21
	movl	$0, -2028(%rbp)
	jmp	.L22
.L23:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-1008(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	putchar@PLT
	addl	$1, -2028(%rbp)
.L22:
	movl	-2028(%rbp), %eax
	cmpl	-2024(%rbp), %eax
	jl	.L23
	movl	$10, %edi
	call	putchar@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L25
	call	__stack_chk_fail@PLT
.L25:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.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	moji
	.type	moji, @function
moji:
.LFB35:
	.cfi_startproc
	endbr64
	movl	$97, %eax
	cmpb	$84, %dil
	je	.L1
	movl	$105, %eax
	cmpb	$76, %dil
	je	.L1
	movl	$117, %eax
	cmpb	$85, %dil
	jne	.L10
.L1:
	ret
	.p2align 4,,10
	.p2align 3
.L10:
	movl	$101, %eax
	cmpb	$82, %dil
	je	.L1
	cmpb	$68, %dil
	movl	$111, %eax
	cmovne	%edi, %eax
	ret
	.cfi_endproc
.LFE35:
	.size	moji, .-moji
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB36:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	.LC0(%rip), %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$2024, %rsp
	.cfi_def_cfa_offset 2048
	movq	%fs:40, %rax
	movq	%rax, 2008(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movq	%rbp, %rsi
	call	__isoc99_scanf@PLT
	movq	%rbp, %rdi
	call	strlen@PLT
	testq	%rax, %rax
	je	.L39
	subl	$1, %eax
	leaq	1(%rsp), %rdx
	xorl	%ecx, %ecx
	movl	$111, %r10d
	leaq	2(%rsp,%rax), %rdi
	leaq	.L20(%rip), %rsi
	movq	$-578, %r9
	.p2align 4,,10
	.p2align 3
.L38:
	movzbl	-1(%rdx), %eax
	cmpb	$48, %al
	je	.L109
	subl	$49, %eax
	cmpb	$8, %al
	ja	.L18
	movzbl	%al, %eax
	movslq	(%rsi,%rax,4), %rax
	addq	%rsi, %rax
	notrack jmp	*%rax
	.section	.rodata
	.align 4
	.align 4
.L20:
	.long	.L28-.L20
	.long	.L27-.L20
	.long	.L26-.L20
	.long	.L25-.L20
	.long	.L24-.L20
	.long	.L23-.L20
	.long	.L22-.L20
	.long	.L21-.L20
	.long	.L19-.L20
	.section	.text.startup
.L21:
	movzbl	(%rdx), %eax
	cmpb	$76, %al
	je	.L18
	cmpb	$82, %al
	je	.L18
	movslq	%ecx, %r8
	movb	$121, 1008(%rsp,%r8)
	leal	1(%rcx), %r8d
	cmpb	$84, %al
	je	.L74
	cmpb	$85, %al
	je	.L76
	.p2align 4,,10
	.p2align 3
.L93:
	cmpb	$68, %al
	jne	.L37
	movl	$111, %eax
	jmp	.L37
.L22:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$109, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	je	.L74
	.p2align 4,,10
	.p2align 3
.L108:
	cmpb	$76, %al
	je	.L75
	cmpb	$85, %al
	je	.L76
	cmpb	$82, %al
	jne	.L93
	movl	$101, %eax
	.p2align 4,,10
	.p2align 3
.L37:
	movslq	%r8d, %r8
	addl	$2, %ecx
	movb	%al, 1008(%rsp,%r8)
.L18:
	addq	$1, %rdx
	cmpq	%rdx, %rdi
	jne	.L38
	testl	%ecx, %ecx
	je	.L39
	leal	-1(%rcx), %eax
	leaq	1008(%rsp), %rbx
	leaq	1009(%rsp,%rax), %rbp
	.p2align 4,,10
	.p2align 3
.L40:
	movsbl	(%rbx), %edi
	addq	$1, %rbx
	call	putchar@PLT
	cmpq	%rbx, %rbp
	jne	.L40
.L39:
	movl	$10, %edi
	call	putchar@PLT
	movq	2008(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L110
	addq	$2024, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L23:
	.cfi_restore_state
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$104, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	.p2align 4,,10
	.p2align 3
.L74:
	movl	$97, %eax
	jmp	.L37
.L24:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$110, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
.L25:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$116, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
.L26:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$115, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
.L27:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$107, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
.L28:
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	je	.L44
	cmpb	$76, %al
	je	.L45
	cmpb	$85, %al
	je	.L46
	cmpb	$82, %al
	jne	.L111
	movl	$101, %eax
	jmp	.L29
.L19:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$114, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
	.p2align 4,,10
	.p2align 3
.L109:
	movzbl	(%rdx), %eax
	leal	-76(%rax), %r8d
	cmpb	$9, %r8b
	jbe	.L14
	movslq	%ecx, %r8
	cmpb	$68, %al
	movb	$119, 1008(%rsp,%r8)
	cmove	%r10d, %eax
	leal	1(%rcx), %r8d
	jmp	.L37
	.p2align 4,,10
	.p2align 3
.L14:
	btq	%r8, %r9
	jc	.L112
	cmpb	$85, %al
	jne	.L18
	movslq	%ecx, %rax
	movb	$110, 1008(%rsp,%rax)
	leal	1(%rcx), %eax
	addl	$2, %ecx
	cltq
	movb	$110, 1008(%rsp,%rax)
	jmp	.L18
	.p2align 4,,10
	.p2align 3
.L75:
	movl	$105, %eax
	jmp	.L37
.L76:
	movl	$117, %eax
	jmp	.L37
.L112:
	movslq	%ecx, %r8
	movb	$119, 1008(%rsp,%r8)
	leal	1(%rcx), %r8d
	cmpb	$84, %al
	je	.L74
	jmp	.L37
.L44:
	movl	$97, %eax
.L29:
	movslq	%ecx, %r8
	addl	$1, %ecx
	movb	%al, 1008(%rsp,%r8)
	jmp	.L18
.L46:
	movl	$117, %eax
	jmp	.L29
.L45:
	movl	$105, %eax
	jmp	.L29
.L111:
	cmpb	$68, %al
	jne	.L29
	movl	$111, %eax
	jmp	.L29
.L110:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE36:
	.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
	.p2align 4
	.globl	moji
	.type	moji, @function
moji:
.LFB35:
	.cfi_startproc
	endbr64
	movl	$97, %eax
	cmpb	$84, %dil
	je	.L1
	movl	$105, %eax
	cmpb	$76, %dil
	je	.L1
	movl	$117, %eax
	cmpb	$85, %dil
	jne	.L10
.L1:
	ret
	.p2align 4,,10
	.p2align 3
.L10:
	movl	$101, %eax
	cmpb	$82, %dil
	je	.L1
	cmpb	$68, %dil
	movl	$111, %eax
	cmovne	%edi, %eax
	ret
	.cfi_endproc
.LFE35:
	.size	moji, .-moji
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB36:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	.LC0(%rip), %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$2024, %rsp
	.cfi_def_cfa_offset 2048
	movq	%fs:40, %rax
	movq	%rax, 2008(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movq	%rbp, %rsi
	call	__isoc99_scanf@PLT
	movq	%rbp, %rdi
	call	strlen@PLT
	testq	%rax, %rax
	je	.L39
	subl	$1, %eax
	leaq	1(%rsp), %rdx
	xorl	%ecx, %ecx
	movl	$111, %r10d
	leaq	2(%rsp,%rax), %rdi
	leaq	.L20(%rip), %rsi
	movq	$-578, %r9
	.p2align 4,,10
	.p2align 3
.L38:
	movzbl	-1(%rdx), %eax
	cmpb	$48, %al
	je	.L109
	subl	$49, %eax
	cmpb	$8, %al
	ja	.L18
	movzbl	%al, %eax
	movslq	(%rsi,%rax,4), %rax
	addq	%rsi, %rax
	notrack jmp	*%rax
	.section	.rodata
	.align 4
	.align 4
.L20:
	.long	.L28-.L20
	.long	.L27-.L20
	.long	.L26-.L20
	.long	.L25-.L20
	.long	.L24-.L20
	.long	.L23-.L20
	.long	.L22-.L20
	.long	.L21-.L20
	.long	.L19-.L20
	.section	.text.startup
.L21:
	movzbl	(%rdx), %eax
	cmpb	$76, %al
	je	.L18
	cmpb	$82, %al
	je	.L18
	movslq	%ecx, %r8
	movb	$121, 1008(%rsp,%r8)
	leal	1(%rcx), %r8d
	cmpb	$84, %al
	je	.L74
	cmpb	$85, %al
	je	.L76
	.p2align 4,,10
	.p2align 3
.L93:
	cmpb	$68, %al
	jne	.L37
	movl	$111, %eax
	jmp	.L37
.L22:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$109, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	je	.L74
	.p2align 4,,10
	.p2align 3
.L108:
	cmpb	$76, %al
	je	.L75
	cmpb	$85, %al
	je	.L76
	cmpb	$82, %al
	jne	.L93
	movl	$101, %eax
	.p2align 4,,10
	.p2align 3
.L37:
	movslq	%r8d, %r8
	addl	$2, %ecx
	movb	%al, 1008(%rsp,%r8)
.L18:
	addq	$1, %rdx
	cmpq	%rdx, %rdi
	jne	.L38
	testl	%ecx, %ecx
	je	.L39
	leal	-1(%rcx), %eax
	leaq	1008(%rsp), %rbx
	leaq	1009(%rsp,%rax), %rbp
	.p2align 4,,10
	.p2align 3
.L40:
	movsbl	(%rbx), %edi
	addq	$1, %rbx
	call	putchar@PLT
	cmpq	%rbx, %rbp
	jne	.L40
.L39:
	movl	$10, %edi
	call	putchar@PLT
	movq	2008(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L110
	addq	$2024, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L23:
	.cfi_restore_state
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$104, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	.p2align 4,,10
	.p2align 3
.L74:
	movl	$97, %eax
	jmp	.L37
.L24:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$110, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
.L25:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$116, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
.L26:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$115, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
.L27:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$107, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
.L28:
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	je	.L44
	cmpb	$76, %al
	je	.L45
	cmpb	$85, %al
	je	.L46
	cmpb	$82, %al
	jne	.L111
	movl	$101, %eax
	jmp	.L29
.L19:
	movslq	%ecx, %rax
	leal	1(%rcx), %r8d
	movb	$114, 1008(%rsp,%rax)
	movzbl	(%rdx), %eax
	cmpb	$84, %al
	jne	.L108
	jmp	.L74
	.p2align 4,,10
	.p2align 3
.L109:
	movzbl	(%rdx), %eax
	leal	-76(%rax), %r8d
	cmpb	$9, %r8b
	jbe	.L14
	movslq	%ecx, %r8
	cmpb	$68, %al
	movb	$119, 1008(%rsp,%r8)
	cmove	%r10d, %eax
	leal	1(%rcx), %r8d
	jmp	.L37
	.p2align 4,,10
	.p2align 3
.L14:
	btq	%r8, %r9
	jc	.L112
	cmpb	$85, %al
	jne	.L18
	movslq	%ecx, %rax
	movb	$110, 1008(%rsp,%rax)
	leal	1(%rcx), %eax
	addl	$2, %ecx
	cltq
	movb	$110, 1008(%rsp,%rax)
	jmp	.L18
	.p2align 4,,10
	.p2align 3
.L75:
	movl	$105, %eax
	jmp	.L37
.L76:
	movl	$117, %eax
	jmp	.L37
.L112:
	movslq	%ecx, %r8
	movb	$119, 1008(%rsp,%r8)
	leal	1(%rcx), %r8d
	cmpb	$84, %al
	je	.L74
	jmp	.L37
.L44:
	movl	$97, %eax
.L29:
	movslq	%ecx, %r8
	addl	$1, %ecx
	movb	%al, 1008(%rsp,%r8)
	jmp	.L18
.L46:
	movl	$117, %eax
	jmp	.L29
.L45:
	movl	$105, %eax
	jmp	.L29
.L111:
	cmpb	$68, %al
	jne	.L29
	movl	$111, %eax
	jmp	.L29
.L110:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE36:
	.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<string.h>

char moji(char x){
  if(x=='T') x='a';
  if(x=='L') x='i';
  if(x=='U') x='u';
  if(x=='R') x='e';
  if(x=='D') x='o';
  return x;
}


int main(){
  char a[1000],b[1000];
  int i,j,len,t=0;


    scanf("%s",a);
  
  len=strlen(a);

  for(i=0;i<len;i++){
    if(a[i]=='0'){
        if(a[i+1]!='U' && a[i+1]!='L' && a[i+1]!='R'){
      b[t]='w';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      }
	
      if(a[i+1]=='U'){
	b[t]='n';
	t++;
	b[t]='n';
	t++;
      }
    }
    else if(a[i]=='1'){
      b[t]=moji(a[i+1]);
      t++;
    }

    else if(a[i]=='2'){
	b[t]='k';
	t++;
	b[t]=moji(a[i+1]);
	t++;
      }
    else if(a[i]=='3'){
      b[t]='s';
      t++;
	b[t]=moji(a[i+1]);
      t++;
    }

    else if(a[i]=='4'){
      b[t]='t';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='5'){
      b[t]='n';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='6'){
      b[t]='h';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      
    }
    else if(a[i]=='7'){
      b[t]='m';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='8'){
      if(a[i+1]!='L' && a[i+1]!='R'){
      b[t]='y';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      }
    }

    else if(a[i]=='9'){
      b[t]='r';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
  }
  for(i=0;i<t;i++){
    printf("%c",b[i]);
  }
  printf("\n");

  return 0;
}

    
5R3D
 5D2R
 5T2D
 5D3R
 5U2D
 4D2R
 6T2D
 3R5D
 4R2D
 6D2T

neso
 noke
 nako
 nose
 nuko
 toke
 hako
 seno
 teko
 hoka

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 moji(char x){
  if(x=='T') x='a';
  if(x=='L') x='i';
  if(x=='U') x='u';
  if(x=='R') x='e';
  if(x=='D') x='o';
  return x;
}


int main(){
  char a[1000],b[1000];
  int i,j,len,t=0;


    scanf("%s",a);
  
  len=strlen(a);

  for(i=0;i<len;i++){
    if(a[i]=='0'){
        if(a[i+1]!='U' && a[i+1]!='L' && a[i+1]!='R'){
      b[t]='w';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      }
	
      if(a[i+1]=='U'){
	b[t]='n';
	t++;
	b[t]='n';
	t++;
      }
    }
    else if(a[i]=='1'){
      b[t]=moji(a[i+1]);
      t++;
    }

    else if(a[i]=='2'){
	b[t]='k';
	t++;
	b[t]=moji(a[i+1]);
	t++;
      }
    else if(a[i]=='3'){
      b[t]='s';
      t++;
	b[t]=moji(a[i+1]);
      t++;
    }

    else if(a[i]=='4'){
      b[t]='t';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='5'){
      b[t]='n';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='6'){
      b[t]='h';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      
    }
    else if(a[i]=='7'){
      b[t]='m';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
    else if(a[i]=='8'){
      if(a[i+1]!='L' && a[i+1]!='R'){
      b[t]='y';
      t++;
      b[t]=moji(a[i+1]);
      t++;
      }
    }

    else if(a[i]=='9'){
      b[t]='r';
      t++;
      b[t]=moji(a[i+1]);
      t++;
    }
  }
  for(i=0;i<t;i++){
    printf("%c",b[i]);
  }
  printf("\n");

  return 0;
}

    ```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	moji
	.type	moji, @function
moji:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$84, -4(%rbp)
	jne	.L2
	movb	$97, -4(%rbp)
.L2:
	cmpb	$76, -4(%rbp)
	jne	.L3
	movb	$105, -4(%rbp)
.L3:
	cmpb	$85, -4(%rbp)
	jne	.L4
	movb	$117, -4(%rbp)
.L4:
	cmpb	$82, -4(%rbp)
	jne	.L5
	movb	$101, -4(%rbp)
.L5:
	cmpb	$68, -4(%rbp)
	jne	.L6
	movb	$111, -4(%rbp)
.L6:
	movzbl	-4(%rbp), %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	moji, .-moji
	.section	.rodata
.LC0:
	.string	"%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$2032, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -2024(%rbp)
	leaq	-2016(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-2016(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -2020(%rbp)
	movl	$0, -2028(%rbp)
	jmp	.L9
.L21:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$48, %al
	jne	.L10
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$85, %al
	je	.L11
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$76, %al
	je	.L11
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$82, %al
	je	.L11
	movl	-2024(%rbp), %eax
	cltq
	movb	$119, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
.L11:
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$85, %al
	jne	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L10:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$49, %al
	jne	.L13
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L13:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$50, %al
	jne	.L14
	movl	-2024(%rbp), %eax
	cltq
	movb	$107, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L14:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$51, %al
	jne	.L15
	movl	-2024(%rbp), %eax
	cltq
	movb	$115, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L15:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$52, %al
	jne	.L16
	movl	-2024(%rbp), %eax
	cltq
	movb	$116, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L16:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$53, %al
	jne	.L17
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L17:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$54, %al
	jne	.L18
	movl	-2024(%rbp), %eax
	cltq
	movb	$104, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L18:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$55, %al
	jne	.L19
	movl	-2024(%rbp), %eax
	cltq
	movb	$109, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L19:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$56, %al
	jne	.L20
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$76, %al
	je	.L12
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$82, %al
	je	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$121, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L20:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$57, %al
	jne	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$114, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
.L12:
	addl	$1, -2028(%rbp)
.L9:
	movl	-2028(%rbp), %eax
	cmpl	-2020(%rbp), %eax
	jl	.L21
	movl	$0, -2028(%rbp)
	jmp	.L22
.L23:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-1008(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	putchar@PLT
	addl	$1, -2028(%rbp)
.L22:
	movl	-2028(%rbp), %eax
	cmpl	-2024(%rbp), %eax
	jl	.L23
	movl	$10, %edi
	call	putchar@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L25
	call	__stack_chk_fail@PLT
.L25:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.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	moji
	.type	moji, @function
moji:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$84, -4(%rbp)
	jne	.L2
	movb	$97, -4(%rbp)
.L2:
	cmpb	$76, -4(%rbp)
	jne	.L3
	movb	$105, -4(%rbp)
.L3:
	cmpb	$85, -4(%rbp)
	jne	.L4
	movb	$117, -4(%rbp)
.L4:
	cmpb	$82, -4(%rbp)
	jne	.L5
	movb	$101, -4(%rbp)
.L5:
	cmpb	$68, -4(%rbp)
	jne	.L6
	movb	$111, -4(%rbp)
.L6:
	movzbl	-4(%rbp), %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	moji, .-moji
	.section	.rodata
.LC0:
	.string	"%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$2032, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -2024(%rbp)
	leaq	-2016(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-2016(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -2020(%rbp)
	movl	$0, -2028(%rbp)
	jmp	.L9
.L21:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$48, %al
	jne	.L10
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$85, %al
	je	.L11
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$76, %al
	je	.L11
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$82, %al
	je	.L11
	movl	-2024(%rbp), %eax
	cltq
	movb	$119, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
.L11:
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$85, %al
	jne	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L10:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$49, %al
	jne	.L13
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L13:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$50, %al
	jne	.L14
	movl	-2024(%rbp), %eax
	cltq
	movb	$107, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L14:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$51, %al
	jne	.L15
	movl	-2024(%rbp), %eax
	cltq
	movb	$115, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L15:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$52, %al
	jne	.L16
	movl	-2024(%rbp), %eax
	cltq
	movb	$116, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L16:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$53, %al
	jne	.L17
	movl	-2024(%rbp), %eax
	cltq
	movb	$110, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L17:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$54, %al
	jne	.L18
	movl	-2024(%rbp), %eax
	cltq
	movb	$104, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L18:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$55, %al
	jne	.L19
	movl	-2024(%rbp), %eax
	cltq
	movb	$109, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L19:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$56, %al
	jne	.L20
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$76, %al
	je	.L12
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$82, %al
	je	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$121, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
	jmp	.L12
.L20:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	cmpb	$57, %al
	jne	.L12
	movl	-2024(%rbp), %eax
	cltq
	movb	$114, -1008(%rbp,%rax)
	addl	$1, -2024(%rbp)
	movl	-2028(%rbp), %eax
	addl	$1, %eax
	cltq
	movzbl	-2016(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	moji
	movl	-2024(%rbp), %edx
	movslq	%edx, %rdx
	movb	%al, -1008(%rbp,%rdx)
	addl	$1, -2024(%rbp)
.L12:
	addl	$1, -2028(%rbp)
.L9:
	movl	-2028(%rbp), %eax
	cmpl	-2020(%rbp), %eax
	jl	.L21
	movl	$0, -2028(%rbp)
	jmp	.L22
.L23:
	movl	-2028(%rbp), %eax
	cltq
	movzbl	-1008(%rbp,%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %edi
	call	putchar@PLT
	addl	$1, -2028(%rbp)
.L22:
	movl	-2028(%rbp), %eax
	cmpl	-2024(%rbp), %eax
	jl	.L23
	movl	$10, %edi
	call	putchar@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L25
	call	__stack_chk_fail@PLT
.L25:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.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:
