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>

void reverse_array_int(int a[], int n)
{
    for (int i = 0; i < n / 2; i++) {
        int t = a[i];
        a[i] = a[n - 1 - i];
        a[n - 1 - i] = t;
    }
}

void reverse_array_char(char a[], int n)
{
    for (int i = 0; i < n / 2; i++) {
        char t = a[i];
        a[i] = a[n - 1 - i];
        a[n - 1 - i] = t;
    }
}

int main(void)
{
    char s[100001];
    scanf("%s", s);

    int s_len = strlen(s);
    int children_num[s_len];

    for (int i = 0; i < s_len; i++) {
        children_num[i] = 0;
    }

    for (int direction = 0; direction < 2; direction++) {
        int count = 0;
        for (int i = 0; i < s_len; i++) {
            if (s[i] == 'R') {
                count++;
            } else {
                children_num[i - 1] += (count + 1) / 2;
                children_num[i] += count / 2;
                count = 0;
            }
        }

        reverse_array_char(s, s_len);
        reverse_array_int(children_num, s_len);

        for (int i = 0; i < s_len; i++) {
            s[i] = (s[i] == 'R' ? 'L' : 'R');
        }
    }

    for (int i = 0; i < s_len; i++) {
        printf("%d ", children_num[i]);
    }
    putchar('\n');
    return 0;
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	reverse_array_int
	.type	reverse_array_int, @function
reverse_array_int:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -8(%rbp)
	jmp	.L2
.L3:
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movl	%eax, -4(%rbp)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-8(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rax, %rdx
	movl	-4(%rbp), %eax
	movl	%eax, (%rdx)
	addl	$1, -8(%rbp)
.L2:
	movl	-28(%rbp), %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	cmpl	%eax, -8(%rbp)
	jl	.L3
	nop
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	reverse_array_int, .-reverse_array_int
	.globl	reverse_array_char
	.type	reverse_array_char, @function
reverse_array_char:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L5
.L6:
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	movb	%al, -5(%rbp)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-4(%rbp), %edx
	movslq	%edx, %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movzbl	(%rax), %eax
	movb	%al, (%rdx)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rax, %rdx
	movzbl	-5(%rbp), %eax
	movb	%al, (%rdx)
	addl	$1, -4(%rbp)
.L5:
	movl	-28(%rbp), %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	cmpl	%eax, -4(%rbp)
	jl	.L6
	nop
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	reverse_array_char, .-reverse_array_char
	.section	.rodata
.LC0:
	.string	"%s"
.LC1:
	.string	"%d "
	.text
	.globl	main
	.type	main, @function
main:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	leaq	-98304(%rsp), %r11
.LPSRL0:
	subq	$4096, %rsp
	orq	$0, (%rsp)
	cmpq	%r11, %rsp
	jne	.LPSRL0
	subq	$1768, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rax, %rbx
	leaq	-100064(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-100064(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -100084(%rbp)
	movl	-100084(%rbp), %eax
	movslq	%eax, %rdx
	subq	$1, %rdx
	movq	%rdx, -100080(%rbp)
	movslq	%eax, %rdx
	movq	%rdx, %r14
	movl	$0, %r15d
	movslq	%eax, %rdx
	movq	%rdx, %r12
	movl	$0, %r13d
	cltq
	leaq	0(,%rax,4), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L8:
	cmpq	%rdx, %rsp
	je	.L9
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L8
.L9:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L10
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L10:
	movq	%rsp, %rax
	addq	$3, %rax
	shrq	$2, %rax
	salq	$2, %rax
	movq	%rax, -100072(%rbp)
	movl	$0, -100108(%rbp)
	jmp	.L11
.L12:
	movq	-100072(%rbp), %rax
	movl	-100108(%rbp), %edx
	movslq	%edx, %rdx
	movl	$0, (%rax,%rdx,4)
	addl	$1, -100108(%rbp)
.L11:
	movl	-100108(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L12
	movl	$0, -100104(%rbp)
	jmp	.L13
.L22:
	movl	$0, -100100(%rbp)
	movl	$0, -100096(%rbp)
	jmp	.L14
.L17:
	movl	-100096(%rbp), %eax
	cltq
	movzbl	-100064(%rbp,%rax), %eax
	cmpb	$82, %al
	jne	.L15
	addl	$1, -100100(%rbp)
	jmp	.L16
.L15:
	movl	-100096(%rbp), %eax
	leal	-1(%rax), %edx
	movq	-100072(%rbp), %rax
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %ecx
	movl	-100100(%rbp), %eax
	addl	$1, %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	movl	%eax, %esi
	movl	-100096(%rbp), %eax
	leal	-1(%rax), %edx
	addl	%esi, %ecx
	movq	-100072(%rbp), %rax
	movslq	%edx, %rdx
	movl	%ecx, (%rax,%rdx,4)
	movq	-100072(%rbp), %rax
	movl	-100096(%rbp), %edx
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %edx
	movl	-100100(%rbp), %eax
	movl	%eax, %ecx
	shrl	$31, %ecx
	addl	%ecx, %eax
	sarl	%eax
	leal	(%rdx,%rax), %ecx
	movq	-100072(%rbp), %rax
	movl	-100096(%rbp), %edx
	movslq	%edx, %rdx
	movl	%ecx, (%rax,%rdx,4)
	movl	$0, -100100(%rbp)
.L16:
	addl	$1, -100096(%rbp)
.L14:
	movl	-100096(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L17
	movl	-100084(%rbp), %edx
	leaq	-100064(%rbp), %rax
	movl	%edx, %esi
	movq	%rax, %rdi
	call	reverse_array_char
	movl	-100084(%rbp), %edx
	movq	-100072(%rbp), %rax
	movl	%edx, %esi
	movq	%rax, %rdi
	call	reverse_array_int
	movl	$0, -100092(%rbp)
	jmp	.L18
.L21:
	movl	-100092(%rbp), %eax
	cltq
	movzbl	-100064(%rbp,%rax), %eax
	cmpb	$82, %al
	jne	.L19
	movl	$76, %edx
	jmp	.L20
.L19:
	movl	$82, %edx
.L20:
	movl	-100092(%rbp), %eax
	cltq
	movb	%dl, -100064(%rbp,%rax)
	addl	$1, -100092(%rbp)
.L18:
	movl	-100092(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L21
	addl	$1, -100104(%rbp)
.L13:
	cmpl	$1, -100104(%rbp)
	jle	.L22
	movl	$0, -100088(%rbp)
	jmp	.L23
.L24:
	movq	-100072(%rbp), %rax
	movl	-100088(%rbp), %edx
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -100088(%rbp)
.L23:
	movl	-100088(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L24
	movl	$10, %edi
	call	putchar@PLT
	movl	$0, %eax
	movq	%rbx, %rsp
	movq	-56(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L26
	call	__stack_chk_fail@PLT
.L26:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.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	reverse_array_int
	.type	reverse_array_int, @function
reverse_array_int:
.LFB35:
	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	shrl	$31, %r8d
	addl	%esi, %r8d
	sarl	%r8d
	cmpl	$1, %esi
	jle	.L1
	movslq	%esi, %r9
	movl	%r8d, %eax
	leal	-1(%rsi), %ecx
	salq	$2, %r9
	salq	$2, %rax
	movq	%r9, %rdx
	subq	%rax, %rdx
	cmpq	%rdx, %rax
	jg	.L3
	cmpl	$3, %esi
	jle	.L3
	cmpl	$7, %esi
	jle	.L13
	movl	%r8d, %esi
	movq	%rdi, %rax
	leaq	-16(%rdi,%r9), %rdx
	shrl	$2, %esi
	subl	$1, %esi
	salq	$4, %rsi
	leaq	16(%rdi,%rsi), %rsi
	.p2align 4,,10
	.p2align 3
.L5:
	movdqu	(%rdx), %xmm2
	movdqu	(%rax), %xmm0
	addq	$16, %rax
	subq	$16, %rdx
	pshufd	$27, %xmm2, %xmm1
	pshufd	$27, %xmm0, %xmm0
	movups	%xmm1, -16(%rax)
	movups	%xmm0, 16(%rdx)
	cmpq	%rsi, %rax
	jne	.L5
	movl	%r8d, %eax
	andl	$-4, %eax
	movl	%eax, %r10d
	cmpl	%eax, %r8d
	je	.L26
.L4:
	subl	%eax, %r8d
	cmpl	$1, %r8d
	je	.L9
	salq	$2, %rax
	subq	$8, %r9
	subq	%rax, %r9
	leaq	(%rdi,%rax), %rdx
	movl	%r8d, %eax
	addq	%rdi, %r9
	movq	(%rdx), %xmm0
	andl	$-2, %eax
	movq	(%r9), %xmm1
	addl	%eax, %r10d
	pshufd	$225, %xmm0, %xmm0
	pshufd	$225, %xmm1, %xmm1
	movq	%xmm1, (%rdx)
	movq	%xmm0, (%r9)
	cmpl	%eax, %r8d
	je	.L1
.L9:
	movslq	%r10d, %rax
	leaq	(%rdi,%rax,4), %rdx
	movl	%ecx, %eax
	subl	%r10d, %eax
	movl	(%rdx), %esi
	cltq
	leaq	(%rdi,%rax,4), %rax
	movl	(%rax), %ecx
	movl	%ecx, (%rdx)
	movl	%esi, (%rax)
	ret
	.p2align 4,,10
	.p2align 3
.L3:
	movslq	%ecx, %rax
	leaq	(%rdi,%rax,4), %rdx
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L11:
	movl	(%rdx), %esi
	movl	(%rdi,%rax,4), %ecx
	subq	$4, %rdx
	movl	%esi, (%rdi,%rax,4)
	addq	$1, %rax
	movl	%ecx, 4(%rdx)
	cmpl	%eax, %r8d
	jg	.L11
.L1:
	ret
	.p2align 4,,10
	.p2align 3
.L26:
	ret
.L13:
	xorl	%eax, %eax
	xorl	%r10d, %r10d
	jmp	.L4
	.cfi_endproc
.LFE35:
	.size	reverse_array_int, .-reverse_array_int
	.p2align 4
	.globl	reverse_array_char
	.type	reverse_array_char, @function
reverse_array_char:
.LFB36:
	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	shrl	$31, %r8d
	addl	%esi, %r8d
	sarl	%r8d
	cmpl	$1, %esi
	jle	.L27
	leal	-1(%rsi), %eax
	xorl	%edx, %edx
	cltq
	addq	%rdi, %rax
	.p2align 4,,10
	.p2align 3
.L29:
	movzbl	(%rax), %esi
	movzbl	(%rdi,%rdx), %ecx
	subq	$1, %rax
	movb	%sil, (%rdi,%rdx)
	addq	$1, %rdx
	movb	%cl, 1(%rax)
	cmpl	%edx, %r8d
	jg	.L29
.L27:
	ret
	.cfi_endproc
.LFE36:
	.size	reverse_array_char, .-reverse_array_char
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
.LC3:
	.string	"%d "
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB37:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	leaq	-98304(%rsp), %r11
.LPSRL0:
	subq	$4096, %rsp
	orq	$0, (%rsp)
	cmpq	%r11, %rsp
	jne	.LPSRL0
	subq	$1832, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	leaq	.LC0(%rip), %rdi
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	leaq	-100064(%rbp), %r14
	movq	%r14, %rsi
	call	__isoc99_scanf@PLT
	movq	%r14, %rdi
	call	strlen@PLT
	movq	%rsp, %rcx
	movq	%rax, %r13
	movl	%eax, %r12d
	leaq	0(,%rax,4), %rax
	movq	%rax, -100088(%rbp)
	addq	$15, %rax
	movq	%rax, %rdx
	andq	$-4096, %rax
	subq	%rax, %rcx
	andq	$-16, %rdx
	cmpq	%rcx, %rsp
	je	.L34
.L119:
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	cmpq	%rcx, %rsp
	jne	.L119
.L34:
	andl	$4095, %edx
	subq	%rdx, %rsp
	testq	%rdx, %rdx
	jne	.L120
.L35:
	movq	%rsp, %rcx
	testq	%r13, %r13
	je	.L36
	movq	%rcx, %rdi
	leaq	0(,%r13,4), %rdx
	xorl	%esi, %esi
	call	memset@PLT
	movq	%rax, %rcx
.L36:
	movl	%r13d, %r10d
	movq	-100088(%rbp), %rdi
	leal	-1(%r13), %esi
	leal	-1(%r12), %r15d
	sarl	%r10d
	movl	%esi, -100148(%rbp)
	movdqa	.LC1(%rip), %xmm2
	movslq	%r10d, %rax
	movq	%rdi, %rdx
	movl	$2, -100068(%rbp)
	movdqa	.LC2(%rip), %xmm3
	salq	$2, %rax
	movq	%rcx, -100160(%rbp)
	subq	%rax, %rdx
	movq	%r13, -100080(%rbp)
	cmpq	%rdx, %rax
	setle	%al
	testq	%rdi, %rdi
	setle	%dl
	orl	%edx, %eax
	cmpl	$1, %r10d
	setne	%dl
	andl	%edx, %eax
	leal	-1(%r10), %edx
	movb	%al, -100090(%rbp)
	leaq	-16(%rcx,%rdi), %rax
	leaq	4(%rcx), %rdi
	movq	%rax, -100136(%rbp)
	movl	%r10d, %eax
	shrl	$2, %eax
	movq	%rdi, -100144(%rbp)
	subl	$1, %eax
	movl	%edx, -100124(%rbp)
	salq	$4, %rax
	leaq	16(%rcx,%rax), %r11
	movl	%r10d, %eax
	andl	$-4, %eax
	testl	%r13d, %r13d
	movl	%eax, -100128(%rbp)
	movslq	%esi, %rax
	leaq	(%rcx,%rax,4), %rax
	movq	%rax, -100176(%rbp)
	movl	%edx, %eax
	movq	%rax, -100104(%rbp)
	leaq	(%rdi,%rax,4), %rax
	movl	$1, %edi
	cmovg	%r13d, %edi
	cmpl	$14, %esi
	movq	%rax, -100168(%rbp)
	setbe	%dl
	testl	%r13d, %r13d
	movq	%r11, %r13
	setle	%al
	movl	%edi, -100096(%rbp)
	orl	%eax, %edx
	movl	%edi, %eax
	andl	$-16, %edi
	shrl	$4, %eax
	movb	%dl, -100089(%rbp)
	leaq	1(%r14), %rdx
	subl	$1, %eax
	movq	%rdx, -100120(%rbp)
	salq	$4, %rax
	movl	%edi, -100072(%rbp)
	movl	$76, %edi
	leaq	-100048(%rbp,%rax), %r9
	movslq	%r15d, %rax
	movq	%rax, -100112(%rbp)
	movl	%esi, %eax
	addq	%rdx, %rax
.L67:
	xorl	%r8d, %r8d
	cmpq	$0, -100080(%rbp)
	leaq	-4(%rcx), %rdx
	movq	%r14, %rsi
	jne	.L38
	jmp	.L121
	.p2align 4,,10
	.p2align 3
.L123:
	sarl	%r8d
	addq	$1, %rsi
	addl	%r8d, 4(%rdx)
	sarl	%r11d
	xorl	%r8d, %r8d
	addl	%r11d, (%rdx)
	addq	$4, %rdx
	cmpq	%rax, %rsi
	je	.L122
.L38:
	cmpb	$82, (%rsi)
	leal	1(%r8), %r11d
	jne	.L123
	addq	$1, %rsi
	movl	%r11d, %r8d
	addq	$4, %rdx
	cmpq	%rax, %rsi
	jne	.L38
.L122:
	testl	%r10d, %r10d
	je	.L74
.L73:
	movq	-100112(%rbp), %rbx
	movq	-100120(%rbp), %r11
	movq	%r14, %rdx
	addq	-100104(%rbp), %r11
	leaq	(%r14,%rbx), %rsi
	.p2align 4,,10
	.p2align 3
.L41:
	movzbl	(%rsi), %ebx
	movzbl	(%rdx), %r8d
	addq	$1, %rdx
	subq	$1, %rsi
	movb	%bl, -1(%rdx)
	movb	%r8b, 1(%rsi)
	cmpq	%r11, %rdx
	jne	.L41
	cmpb	$0, -100090(%rbp)
	je	.L77
	cmpl	$2, -100124(%rbp)
	jbe	.L78
	movq	-100136(%rbp), %rsi
	movq	%rcx, %rdx
	.p2align 4,,10
	.p2align 3
.L44:
	movdqu	(%rsi), %xmm4
	movdqu	(%rdx), %xmm0
	addq	$16, %rdx
	subq	$16, %rsi
	pshufd	$27, %xmm4, %xmm1
	pshufd	$27, %xmm0, %xmm0
	movups	%xmm1, -16(%rdx)
	movups	%xmm0, 16(%rsi)
	cmpq	%r13, %rdx
	jne	.L44
	movl	-100128(%rbp), %ebx
	cmpl	%ebx, %r10d
	je	.L74
	movl	%r10d, %r11d
	subl	%ebx, %r11d
	cmpl	$1, %r11d
	je	.L79
	movl	%ebx, %r8d
	movl	%ebx, %edx
.L43:
	movq	-100088(%rbp), %rsi
	salq	$2, %r8
	leaq	(%rcx,%r8), %rbx
	subq	$8, %rsi
	movq	(%rbx), %xmm0
	subq	%r8, %rsi
	addq	%rcx, %rsi
	pshufd	$225, %xmm0, %xmm0
	movq	(%rsi), %xmm1
	pshufd	$225, %xmm1, %xmm1
	movq	%xmm1, (%rbx)
	movq	%xmm0, (%rsi)
	movl	%r11d, %esi
	andl	$-2, %esi
	addl	%esi, %edx
	cmpl	%r11d, %esi
	je	.L74
.L46:
	movslq	%edx, %rsi
	leaq	(%rcx,%rsi,4), %r8
	movl	%r15d, %esi
	subl	%edx, %esi
	movl	(%r8), %r11d
	movslq	%esi, %rsi
	leaq	(%rcx,%rsi,4), %rdx
	movl	(%rdx), %esi
	movl	%esi, (%r8)
	movl	%r11d, (%rdx)
.L74:
	cmpb	$0, -100089(%rbp)
	jne	.L80
	movq	%r14, %rdx
	.p2align 4,,10
	.p2align 3
.L50:
	movdqa	%xmm2, %xmm0
	movdqa	%xmm3, %xmm1
	addq	$16, %rdx
	pcmpeqb	-16(%rdx), %xmm0
	pand	%xmm0, %xmm1
	pandn	%xmm2, %xmm0
	por	%xmm1, %xmm0
	movaps	%xmm0, -16(%rdx)
	cmpq	%r9, %rdx
	jne	.L50
	movl	-100072(%rbp), %ebx
	movl	-100096(%rbp), %edx
	cmpl	%edx, %ebx
	je	.L40
	movl	%ebx, %edx
.L49:
	movslq	%edx, %r8
	movl	$82, %esi
	cmpb	$82, -100064(%rbp,%r8)
	movl	%esi, %r11d
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	1(%rdx), %r8d
	cmpl	%r12d, %r8d
	jge	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	2(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	3(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	4(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	5(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	6(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	7(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	8(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	9(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %esi
	movb	%sil, -100064(%rbp,%r8)
	leal	10(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	$82, %esi
	cmpb	$82, -100064(%rbp,%r8)
	movl	%esi, %r11d
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	11(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	12(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	13(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	addl	$14, %edx
	movb	%r11b, -100064(%rbp,%r8)
	cmpl	%edx, %r12d
	jle	.L40
	movslq	%edx, %rdx
	cmpb	$82, -100064(%rbp,%rdx)
	cmove	%edi, %esi
	movb	%sil, -100064(%rbp,%rdx)
	.p2align 4,,10
	.p2align 3
.L40:
	cmpl	$1, -100068(%rbp)
	jne	.L96
	movl	-100148(%rbp), %eax
	movq	-100144(%rbp), %rdi
	leaq	.LC3(%rip), %r12
	movq	-100080(%rbp), %r13
	movq	-100160(%rbp), %rbx
	leaq	(%rdi,%rax,4), %r14
	testq	%r13, %r13
	je	.L72
	.p2align 4,,10
	.p2align 3
.L71:
	movl	(%rbx), %edx
	movq	%r12, %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	addq	$4, %rbx
	call	__printf_chk@PLT
	cmpq	%rbx, %r14
	jne	.L71
.L72:
	movq	stdout(%rip), %rsi
	movl	$10, %edi
	call	putc@PLT
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L124
	leaq	-40(%rbp), %rsp
	xorl	%eax, %eax
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_remember_state
	.cfi_def_cfa 7, 8
	ret
	.p2align 4,,10
	.p2align 3
.L96:
	.cfi_restore_state
	movl	$1, -100068(%rbp)
	jmp	.L67
.L77:
	movq	-100176(%rbp), %rsi
	movq	-100168(%rbp), %rbx
	movq	%rcx, %rdx
	.p2align 4,,10
	.p2align 3
.L42:
	movl	(%rsi), %r11d
	movl	(%rdx), %r8d
	addq	$4, %rdx
	subq	$4, %rsi
	movl	%r11d, -4(%rdx)
	movl	%r8d, 4(%rsi)
	cmpq	%rbx, %rdx
	jne	.L42
	jmp	.L74
.L121:
	testl	%r10d, %r10d
	je	.L40
	jmp	.L73
.L120:
	orq	$0, -8(%rsp,%rdx)
	jmp	.L35
.L80:
	xorl	%edx, %edx
	jmp	.L49
.L78:
	movl	%r10d, %r11d
	xorl	%r8d, %r8d
	xorl	%edx, %edx
	jmp	.L43
.L79:
	movl	-100128(%rbp), %edx
	jmp	.L46
.L124:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE37:
	.size	main, .-main
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC1:
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.align 16
.LC2:
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.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	reverse_array_int
	.type	reverse_array_int, @function
reverse_array_int:
.LFB35:
	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	shrl	$31, %r8d
	addl	%esi, %r8d
	sarl	%r8d
	cmpl	$1, %esi
	jle	.L1
	movslq	%esi, %r9
	movl	%r8d, %eax
	leal	-1(%rsi), %ecx
	salq	$2, %r9
	salq	$2, %rax
	movq	%r9, %rdx
	subq	%rax, %rdx
	cmpq	%rdx, %rax
	jg	.L3
	cmpl	$3, %esi
	jle	.L3
	cmpl	$7, %esi
	jle	.L13
	movl	%r8d, %esi
	movq	%rdi, %rax
	leaq	-16(%rdi,%r9), %rdx
	shrl	$2, %esi
	subl	$1, %esi
	salq	$4, %rsi
	leaq	16(%rdi,%rsi), %rsi
	.p2align 4,,10
	.p2align 3
.L5:
	movdqu	(%rdx), %xmm2
	movdqu	(%rax), %xmm0
	addq	$16, %rax
	subq	$16, %rdx
	pshufd	$27, %xmm2, %xmm1
	pshufd	$27, %xmm0, %xmm0
	movups	%xmm1, -16(%rax)
	movups	%xmm0, 16(%rdx)
	cmpq	%rsi, %rax
	jne	.L5
	movl	%r8d, %eax
	andl	$-4, %eax
	movl	%eax, %r10d
	cmpl	%eax, %r8d
	je	.L26
.L4:
	subl	%eax, %r8d
	cmpl	$1, %r8d
	je	.L9
	salq	$2, %rax
	subq	$8, %r9
	subq	%rax, %r9
	leaq	(%rdi,%rax), %rdx
	movl	%r8d, %eax
	addq	%rdi, %r9
	movq	(%rdx), %xmm0
	andl	$-2, %eax
	movq	(%r9), %xmm1
	addl	%eax, %r10d
	pshufd	$225, %xmm0, %xmm0
	pshufd	$225, %xmm1, %xmm1
	movq	%xmm1, (%rdx)
	movq	%xmm0, (%r9)
	cmpl	%eax, %r8d
	je	.L1
.L9:
	movslq	%r10d, %rax
	leaq	(%rdi,%rax,4), %rdx
	movl	%ecx, %eax
	subl	%r10d, %eax
	movl	(%rdx), %esi
	cltq
	leaq	(%rdi,%rax,4), %rax
	movl	(%rax), %ecx
	movl	%ecx, (%rdx)
	movl	%esi, (%rax)
	ret
	.p2align 4,,10
	.p2align 3
.L3:
	movslq	%ecx, %rax
	leaq	(%rdi,%rax,4), %rdx
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L11:
	movl	(%rdx), %esi
	movl	(%rdi,%rax,4), %ecx
	subq	$4, %rdx
	movl	%esi, (%rdi,%rax,4)
	addq	$1, %rax
	movl	%ecx, 4(%rdx)
	cmpl	%eax, %r8d
	jg	.L11
.L1:
	ret
	.p2align 4,,10
	.p2align 3
.L26:
	ret
.L13:
	xorl	%eax, %eax
	xorl	%r10d, %r10d
	jmp	.L4
	.cfi_endproc
.LFE35:
	.size	reverse_array_int, .-reverse_array_int
	.p2align 4
	.globl	reverse_array_char
	.type	reverse_array_char, @function
reverse_array_char:
.LFB36:
	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	shrl	$31, %r8d
	addl	%esi, %r8d
	sarl	%r8d
	cmpl	$1, %esi
	jle	.L27
	leal	-1(%rsi), %eax
	xorl	%edx, %edx
	cltq
	addq	%rdi, %rax
	.p2align 4,,10
	.p2align 3
.L29:
	movzbl	(%rax), %esi
	movzbl	(%rdi,%rdx), %ecx
	subq	$1, %rax
	movb	%sil, (%rdi,%rdx)
	addq	$1, %rdx
	movb	%cl, 1(%rax)
	cmpl	%edx, %r8d
	jg	.L29
.L27:
	ret
	.cfi_endproc
.LFE36:
	.size	reverse_array_char, .-reverse_array_char
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
.LC3:
	.string	"%d "
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB37:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	leaq	-98304(%rsp), %r11
.LPSRL0:
	subq	$4096, %rsp
	orq	$0, (%rsp)
	cmpq	%r11, %rsp
	jne	.LPSRL0
	subq	$1832, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	leaq	.LC0(%rip), %rdi
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	leaq	-100064(%rbp), %r14
	movq	%r14, %rsi
	call	__isoc99_scanf@PLT
	movq	%r14, %rdi
	call	strlen@PLT
	movq	%rsp, %rcx
	movq	%rax, %r13
	movl	%eax, %r12d
	leaq	0(,%rax,4), %rax
	movq	%rax, -100088(%rbp)
	addq	$15, %rax
	movq	%rax, %rdx
	andq	$-4096, %rax
	subq	%rax, %rcx
	andq	$-16, %rdx
	cmpq	%rcx, %rsp
	je	.L34
.L119:
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	cmpq	%rcx, %rsp
	jne	.L119
.L34:
	andl	$4095, %edx
	subq	%rdx, %rsp
	testq	%rdx, %rdx
	jne	.L120
.L35:
	movq	%rsp, %rcx
	testq	%r13, %r13
	je	.L36
	movq	%rcx, %rdi
	leaq	0(,%r13,4), %rdx
	xorl	%esi, %esi
	call	memset@PLT
	movq	%rax, %rcx
.L36:
	movl	%r13d, %r10d
	movq	-100088(%rbp), %rdi
	leal	-1(%r13), %esi
	leal	-1(%r12), %r15d
	sarl	%r10d
	movl	%esi, -100148(%rbp)
	movdqa	.LC1(%rip), %xmm2
	movslq	%r10d, %rax
	movq	%rdi, %rdx
	movl	$2, -100068(%rbp)
	movdqa	.LC2(%rip), %xmm3
	salq	$2, %rax
	movq	%rcx, -100160(%rbp)
	subq	%rax, %rdx
	movq	%r13, -100080(%rbp)
	cmpq	%rdx, %rax
	setle	%al
	testq	%rdi, %rdi
	setle	%dl
	orl	%edx, %eax
	cmpl	$1, %r10d
	setne	%dl
	andl	%edx, %eax
	leal	-1(%r10), %edx
	movb	%al, -100090(%rbp)
	leaq	-16(%rcx,%rdi), %rax
	leaq	4(%rcx), %rdi
	movq	%rax, -100136(%rbp)
	movl	%r10d, %eax
	shrl	$2, %eax
	movq	%rdi, -100144(%rbp)
	subl	$1, %eax
	movl	%edx, -100124(%rbp)
	salq	$4, %rax
	leaq	16(%rcx,%rax), %r11
	movl	%r10d, %eax
	andl	$-4, %eax
	testl	%r13d, %r13d
	movl	%eax, -100128(%rbp)
	movslq	%esi, %rax
	leaq	(%rcx,%rax,4), %rax
	movq	%rax, -100176(%rbp)
	movl	%edx, %eax
	movq	%rax, -100104(%rbp)
	leaq	(%rdi,%rax,4), %rax
	movl	$1, %edi
	cmovg	%r13d, %edi
	cmpl	$14, %esi
	movq	%rax, -100168(%rbp)
	setbe	%dl
	testl	%r13d, %r13d
	movq	%r11, %r13
	setle	%al
	movl	%edi, -100096(%rbp)
	orl	%eax, %edx
	movl	%edi, %eax
	andl	$-16, %edi
	shrl	$4, %eax
	movb	%dl, -100089(%rbp)
	leaq	1(%r14), %rdx
	subl	$1, %eax
	movq	%rdx, -100120(%rbp)
	salq	$4, %rax
	movl	%edi, -100072(%rbp)
	movl	$76, %edi
	leaq	-100048(%rbp,%rax), %r9
	movslq	%r15d, %rax
	movq	%rax, -100112(%rbp)
	movl	%esi, %eax
	addq	%rdx, %rax
.L67:
	xorl	%r8d, %r8d
	cmpq	$0, -100080(%rbp)
	leaq	-4(%rcx), %rdx
	movq	%r14, %rsi
	jne	.L38
	jmp	.L121
	.p2align 4,,10
	.p2align 3
.L123:
	sarl	%r8d
	addq	$1, %rsi
	addl	%r8d, 4(%rdx)
	sarl	%r11d
	xorl	%r8d, %r8d
	addl	%r11d, (%rdx)
	addq	$4, %rdx
	cmpq	%rax, %rsi
	je	.L122
.L38:
	cmpb	$82, (%rsi)
	leal	1(%r8), %r11d
	jne	.L123
	addq	$1, %rsi
	movl	%r11d, %r8d
	addq	$4, %rdx
	cmpq	%rax, %rsi
	jne	.L38
.L122:
	testl	%r10d, %r10d
	je	.L74
.L73:
	movq	-100112(%rbp), %rbx
	movq	-100120(%rbp), %r11
	movq	%r14, %rdx
	addq	-100104(%rbp), %r11
	leaq	(%r14,%rbx), %rsi
	.p2align 4,,10
	.p2align 3
.L41:
	movzbl	(%rsi), %ebx
	movzbl	(%rdx), %r8d
	addq	$1, %rdx
	subq	$1, %rsi
	movb	%bl, -1(%rdx)
	movb	%r8b, 1(%rsi)
	cmpq	%r11, %rdx
	jne	.L41
	cmpb	$0, -100090(%rbp)
	je	.L77
	cmpl	$2, -100124(%rbp)
	jbe	.L78
	movq	-100136(%rbp), %rsi
	movq	%rcx, %rdx
	.p2align 4,,10
	.p2align 3
.L44:
	movdqu	(%rsi), %xmm4
	movdqu	(%rdx), %xmm0
	addq	$16, %rdx
	subq	$16, %rsi
	pshufd	$27, %xmm4, %xmm1
	pshufd	$27, %xmm0, %xmm0
	movups	%xmm1, -16(%rdx)
	movups	%xmm0, 16(%rsi)
	cmpq	%r13, %rdx
	jne	.L44
	movl	-100128(%rbp), %ebx
	cmpl	%ebx, %r10d
	je	.L74
	movl	%r10d, %r11d
	subl	%ebx, %r11d
	cmpl	$1, %r11d
	je	.L79
	movl	%ebx, %r8d
	movl	%ebx, %edx
.L43:
	movq	-100088(%rbp), %rsi
	salq	$2, %r8
	leaq	(%rcx,%r8), %rbx
	subq	$8, %rsi
	movq	(%rbx), %xmm0
	subq	%r8, %rsi
	addq	%rcx, %rsi
	pshufd	$225, %xmm0, %xmm0
	movq	(%rsi), %xmm1
	pshufd	$225, %xmm1, %xmm1
	movq	%xmm1, (%rbx)
	movq	%xmm0, (%rsi)
	movl	%r11d, %esi
	andl	$-2, %esi
	addl	%esi, %edx
	cmpl	%r11d, %esi
	je	.L74
.L46:
	movslq	%edx, %rsi
	leaq	(%rcx,%rsi,4), %r8
	movl	%r15d, %esi
	subl	%edx, %esi
	movl	(%r8), %r11d
	movslq	%esi, %rsi
	leaq	(%rcx,%rsi,4), %rdx
	movl	(%rdx), %esi
	movl	%esi, (%r8)
	movl	%r11d, (%rdx)
.L74:
	cmpb	$0, -100089(%rbp)
	jne	.L80
	movq	%r14, %rdx
	.p2align 4,,10
	.p2align 3
.L50:
	movdqa	%xmm2, %xmm0
	movdqa	%xmm3, %xmm1
	addq	$16, %rdx
	pcmpeqb	-16(%rdx), %xmm0
	pand	%xmm0, %xmm1
	pandn	%xmm2, %xmm0
	por	%xmm1, %xmm0
	movaps	%xmm0, -16(%rdx)
	cmpq	%r9, %rdx
	jne	.L50
	movl	-100072(%rbp), %ebx
	movl	-100096(%rbp), %edx
	cmpl	%edx, %ebx
	je	.L40
	movl	%ebx, %edx
.L49:
	movslq	%edx, %r8
	movl	$82, %esi
	cmpb	$82, -100064(%rbp,%r8)
	movl	%esi, %r11d
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	1(%rdx), %r8d
	cmpl	%r12d, %r8d
	jge	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	2(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	3(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	4(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	5(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	6(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	7(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	8(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	9(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %esi
	movb	%sil, -100064(%rbp,%r8)
	leal	10(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	$82, %esi
	cmpb	$82, -100064(%rbp,%r8)
	movl	%esi, %r11d
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	11(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	12(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	movb	%r11b, -100064(%rbp,%r8)
	leal	13(%rdx), %r8d
	cmpl	%r8d, %r12d
	jle	.L40
	movslq	%r8d, %r8
	movl	%esi, %r11d
	cmpb	$82, -100064(%rbp,%r8)
	cmove	%edi, %r11d
	addl	$14, %edx
	movb	%r11b, -100064(%rbp,%r8)
	cmpl	%edx, %r12d
	jle	.L40
	movslq	%edx, %rdx
	cmpb	$82, -100064(%rbp,%rdx)
	cmove	%edi, %esi
	movb	%sil, -100064(%rbp,%rdx)
	.p2align 4,,10
	.p2align 3
.L40:
	cmpl	$1, -100068(%rbp)
	jne	.L96
	movl	-100148(%rbp), %eax
	movq	-100144(%rbp), %rdi
	leaq	.LC3(%rip), %r12
	movq	-100080(%rbp), %r13
	movq	-100160(%rbp), %rbx
	leaq	(%rdi,%rax,4), %r14
	testq	%r13, %r13
	je	.L72
	.p2align 4,,10
	.p2align 3
.L71:
	movl	(%rbx), %edx
	movq	%r12, %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	addq	$4, %rbx
	call	__printf_chk@PLT
	cmpq	%rbx, %r14
	jne	.L71
.L72:
	movq	stdout(%rip), %rsi
	movl	$10, %edi
	call	putc@PLT
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L124
	leaq	-40(%rbp), %rsp
	xorl	%eax, %eax
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_remember_state
	.cfi_def_cfa 7, 8
	ret
	.p2align 4,,10
	.p2align 3
.L96:
	.cfi_restore_state
	movl	$1, -100068(%rbp)
	jmp	.L67
.L77:
	movq	-100176(%rbp), %rsi
	movq	-100168(%rbp), %rbx
	movq	%rcx, %rdx
	.p2align 4,,10
	.p2align 3
.L42:
	movl	(%rsi), %r11d
	movl	(%rdx), %r8d
	addq	$4, %rdx
	subq	$4, %rsi
	movl	%r11d, -4(%rdx)
	movl	%r8d, 4(%rsi)
	cmpq	%rbx, %rdx
	jne	.L42
	jmp	.L74
.L121:
	testl	%r10d, %r10d
	je	.L40
	jmp	.L73
.L120:
	orq	$0, -8(%rsp,%rdx)
	jmp	.L35
.L80:
	xorl	%edx, %edx
	jmp	.L49
.L78:
	movl	%r10d, %r11d
	xorl	%r8d, %r8d
	xorl	%edx, %edx
	jmp	.L43
.L79:
	movl	-100128(%rbp), %edx
	jmp	.L46
.L124:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE37:
	.size	main, .-main
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC1:
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.byte	82
	.align 16
.LC2:
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.byte	76
	.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>

void reverse_array_int(int a[], int n)
{
    for (int i = 0; i < n / 2; i++) {
        int t = a[i];
        a[i] = a[n - 1 - i];
        a[n - 1 - i] = t;
    }
}

void reverse_array_char(char a[], int n)
{
    for (int i = 0; i < n / 2; i++) {
        char t = a[i];
        a[i] = a[n - 1 - i];
        a[n - 1 - i] = t;
    }
}

int main(void)
{
    char s[100001];
    scanf("%s", s);

    int s_len = strlen(s);
    int children_num[s_len];

    for (int i = 0; i < s_len; i++) {
        children_num[i] = 0;
    }

    for (int direction = 0; direction < 2; direction++) {
        int count = 0;
        for (int i = 0; i < s_len; i++) {
            if (s[i] == 'R') {
                count++;
            } else {
                children_num[i - 1] += (count + 1) / 2;
                children_num[i] += count / 2;
                count = 0;
            }
        }

        reverse_array_char(s, s_len);
        reverse_array_int(children_num, s_len);

        for (int i = 0; i < s_len; i++) {
            s[i] = (s[i] == 'R' ? 'L' : 'R');
        }
    }

    for (int i = 0; i < s_len; i++) {
        printf("%d ", children_num[i]);
    }
    putchar('\n');
    return 0;
}

RRLLRLRLLRLL
 RLRLLRLRRRRLLLLL
 RRLLLLRLRLRL
 RRRLLRLLRRLRLLLL
 RRLRLLRLLLRL
 RRLRLLRLLRLL
 RRLLLLRRLRLL
 RRRLLRLLLRRLLRLL
 RRLRRLLLLLRL
 RRRLLRLLRLRLLRLL

0 2 2 0 1 1 2 1 0 2 1 0 
 1 1 2 1 0 1 1 0 0 0 4 5 0 0 0 0 
 0 3 3 0 0 0 1 1 1 1 1 1 
 0 0 3 2 0 2 1 0 0 1 2 3 2 0 0 0 
 0 1 2 2 1 0 2 2 0 0 1 1 
 0 1 2 2 1 0 2 1 0 2 1 0 
 0 3 3 0 0 0 0 1 2 2 1 0 
 0 0 3 2 0 2 2 0 0 0 2 2 0 2 1 0 
 0 1 2 0 3 4 0 0 0 0 1 1 
 0 0 3 2 0 2 1 0 1 1 2 1 0 2 1 0 

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>

void reverse_array_int(int a[], int n)
{
    for (int i = 0; i < n / 2; i++) {
        int t = a[i];
        a[i] = a[n - 1 - i];
        a[n - 1 - i] = t;
    }
}

void reverse_array_char(char a[], int n)
{
    for (int i = 0; i < n / 2; i++) {
        char t = a[i];
        a[i] = a[n - 1 - i];
        a[n - 1 - i] = t;
    }
}

int main(void)
{
    char s[100001];
    scanf("%s", s);

    int s_len = strlen(s);
    int children_num[s_len];

    for (int i = 0; i < s_len; i++) {
        children_num[i] = 0;
    }

    for (int direction = 0; direction < 2; direction++) {
        int count = 0;
        for (int i = 0; i < s_len; i++) {
            if (s[i] == 'R') {
                count++;
            } else {
                children_num[i - 1] += (count + 1) / 2;
                children_num[i] += count / 2;
                count = 0;
            }
        }

        reverse_array_char(s, s_len);
        reverse_array_int(children_num, s_len);

        for (int i = 0; i < s_len; i++) {
            s[i] = (s[i] == 'R' ? 'L' : 'R');
        }
    }

    for (int i = 0; i < s_len; i++) {
        printf("%d ", children_num[i]);
    }
    putchar('\n');
    return 0;
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	reverse_array_int
	.type	reverse_array_int, @function
reverse_array_int:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -8(%rbp)
	jmp	.L2
.L3:
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movl	%eax, -4(%rbp)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-8(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rax, %rdx
	movl	-4(%rbp), %eax
	movl	%eax, (%rdx)
	addl	$1, -8(%rbp)
.L2:
	movl	-28(%rbp), %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	cmpl	%eax, -8(%rbp)
	jl	.L3
	nop
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	reverse_array_int, .-reverse_array_int
	.globl	reverse_array_char
	.type	reverse_array_char, @function
reverse_array_char:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L5
.L6:
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	movb	%al, -5(%rbp)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-4(%rbp), %edx
	movslq	%edx, %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movzbl	(%rax), %eax
	movb	%al, (%rdx)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rax, %rdx
	movzbl	-5(%rbp), %eax
	movb	%al, (%rdx)
	addl	$1, -4(%rbp)
.L5:
	movl	-28(%rbp), %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	cmpl	%eax, -4(%rbp)
	jl	.L6
	nop
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	reverse_array_char, .-reverse_array_char
	.section	.rodata
.LC0:
	.string	"%s"
.LC1:
	.string	"%d "
	.text
	.globl	main
	.type	main, @function
main:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	leaq	-98304(%rsp), %r11
.LPSRL0:
	subq	$4096, %rsp
	orq	$0, (%rsp)
	cmpq	%r11, %rsp
	jne	.LPSRL0
	subq	$1768, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rax, %rbx
	leaq	-100064(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-100064(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -100084(%rbp)
	movl	-100084(%rbp), %eax
	movslq	%eax, %rdx
	subq	$1, %rdx
	movq	%rdx, -100080(%rbp)
	movslq	%eax, %rdx
	movq	%rdx, %r14
	movl	$0, %r15d
	movslq	%eax, %rdx
	movq	%rdx, %r12
	movl	$0, %r13d
	cltq
	leaq	0(,%rax,4), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L8:
	cmpq	%rdx, %rsp
	je	.L9
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L8
.L9:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L10
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L10:
	movq	%rsp, %rax
	addq	$3, %rax
	shrq	$2, %rax
	salq	$2, %rax
	movq	%rax, -100072(%rbp)
	movl	$0, -100108(%rbp)
	jmp	.L11
.L12:
	movq	-100072(%rbp), %rax
	movl	-100108(%rbp), %edx
	movslq	%edx, %rdx
	movl	$0, (%rax,%rdx,4)
	addl	$1, -100108(%rbp)
.L11:
	movl	-100108(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L12
	movl	$0, -100104(%rbp)
	jmp	.L13
.L22:
	movl	$0, -100100(%rbp)
	movl	$0, -100096(%rbp)
	jmp	.L14
.L17:
	movl	-100096(%rbp), %eax
	cltq
	movzbl	-100064(%rbp,%rax), %eax
	cmpb	$82, %al
	jne	.L15
	addl	$1, -100100(%rbp)
	jmp	.L16
.L15:
	movl	-100096(%rbp), %eax
	leal	-1(%rax), %edx
	movq	-100072(%rbp), %rax
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %ecx
	movl	-100100(%rbp), %eax
	addl	$1, %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	movl	%eax, %esi
	movl	-100096(%rbp), %eax
	leal	-1(%rax), %edx
	addl	%esi, %ecx
	movq	-100072(%rbp), %rax
	movslq	%edx, %rdx
	movl	%ecx, (%rax,%rdx,4)
	movq	-100072(%rbp), %rax
	movl	-100096(%rbp), %edx
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %edx
	movl	-100100(%rbp), %eax
	movl	%eax, %ecx
	shrl	$31, %ecx
	addl	%ecx, %eax
	sarl	%eax
	leal	(%rdx,%rax), %ecx
	movq	-100072(%rbp), %rax
	movl	-100096(%rbp), %edx
	movslq	%edx, %rdx
	movl	%ecx, (%rax,%rdx,4)
	movl	$0, -100100(%rbp)
.L16:
	addl	$1, -100096(%rbp)
.L14:
	movl	-100096(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L17
	movl	-100084(%rbp), %edx
	leaq	-100064(%rbp), %rax
	movl	%edx, %esi
	movq	%rax, %rdi
	call	reverse_array_char
	movl	-100084(%rbp), %edx
	movq	-100072(%rbp), %rax
	movl	%edx, %esi
	movq	%rax, %rdi
	call	reverse_array_int
	movl	$0, -100092(%rbp)
	jmp	.L18
.L21:
	movl	-100092(%rbp), %eax
	cltq
	movzbl	-100064(%rbp,%rax), %eax
	cmpb	$82, %al
	jne	.L19
	movl	$76, %edx
	jmp	.L20
.L19:
	movl	$82, %edx
.L20:
	movl	-100092(%rbp), %eax
	cltq
	movb	%dl, -100064(%rbp,%rax)
	addl	$1, -100092(%rbp)
.L18:
	movl	-100092(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L21
	addl	$1, -100104(%rbp)
.L13:
	cmpl	$1, -100104(%rbp)
	jle	.L22
	movl	$0, -100088(%rbp)
	jmp	.L23
.L24:
	movq	-100072(%rbp), %rax
	movl	-100088(%rbp), %edx
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -100088(%rbp)
.L23:
	movl	-100088(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L24
	movl	$10, %edi
	call	putchar@PLT
	movl	$0, %eax
	movq	%rbx, %rsp
	movq	-56(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L26
	call	__stack_chk_fail@PLT
.L26:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.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	reverse_array_int
	.type	reverse_array_int, @function
reverse_array_int:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -8(%rbp)
	jmp	.L2
.L3:
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movl	%eax, -4(%rbp)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-8(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rax, %rdx
	movl	-4(%rbp), %eax
	movl	%eax, (%rdx)
	addl	$1, -8(%rbp)
.L2:
	movl	-28(%rbp), %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	cmpl	%eax, -8(%rbp)
	jl	.L3
	nop
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	reverse_array_int, .-reverse_array_int
	.globl	reverse_array_char
	.type	reverse_array_char, @function
reverse_array_char:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L5
.L6:
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	movb	%al, -5(%rbp)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-4(%rbp), %edx
	movslq	%edx, %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movzbl	(%rax), %eax
	movb	%al, (%rdx)
	movl	-28(%rbp), %eax
	subl	$1, %eax
	subl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rax, %rdx
	movzbl	-5(%rbp), %eax
	movb	%al, (%rdx)
	addl	$1, -4(%rbp)
.L5:
	movl	-28(%rbp), %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	cmpl	%eax, -4(%rbp)
	jl	.L6
	nop
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	reverse_array_char, .-reverse_array_char
	.section	.rodata
.LC0:
	.string	"%s"
.LC1:
	.string	"%d "
	.text
	.globl	main
	.type	main, @function
main:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	leaq	-98304(%rsp), %r11
.LPSRL0:
	subq	$4096, %rsp
	orq	$0, (%rsp)
	cmpq	%r11, %rsp
	jne	.LPSRL0
	subq	$1768, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rax, %rbx
	leaq	-100064(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-100064(%rbp), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -100084(%rbp)
	movl	-100084(%rbp), %eax
	movslq	%eax, %rdx
	subq	$1, %rdx
	movq	%rdx, -100080(%rbp)
	movslq	%eax, %rdx
	movq	%rdx, %r14
	movl	$0, %r15d
	movslq	%eax, %rdx
	movq	%rdx, %r12
	movl	$0, %r13d
	cltq
	leaq	0(,%rax,4), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L8:
	cmpq	%rdx, %rsp
	je	.L9
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L8
.L9:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L10
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L10:
	movq	%rsp, %rax
	addq	$3, %rax
	shrq	$2, %rax
	salq	$2, %rax
	movq	%rax, -100072(%rbp)
	movl	$0, -100108(%rbp)
	jmp	.L11
.L12:
	movq	-100072(%rbp), %rax
	movl	-100108(%rbp), %edx
	movslq	%edx, %rdx
	movl	$0, (%rax,%rdx,4)
	addl	$1, -100108(%rbp)
.L11:
	movl	-100108(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L12
	movl	$0, -100104(%rbp)
	jmp	.L13
.L22:
	movl	$0, -100100(%rbp)
	movl	$0, -100096(%rbp)
	jmp	.L14
.L17:
	movl	-100096(%rbp), %eax
	cltq
	movzbl	-100064(%rbp,%rax), %eax
	cmpb	$82, %al
	jne	.L15
	addl	$1, -100100(%rbp)
	jmp	.L16
.L15:
	movl	-100096(%rbp), %eax
	leal	-1(%rax), %edx
	movq	-100072(%rbp), %rax
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %ecx
	movl	-100100(%rbp), %eax
	addl	$1, %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%edx, %eax
	sarl	%eax
	movl	%eax, %esi
	movl	-100096(%rbp), %eax
	leal	-1(%rax), %edx
	addl	%esi, %ecx
	movq	-100072(%rbp), %rax
	movslq	%edx, %rdx
	movl	%ecx, (%rax,%rdx,4)
	movq	-100072(%rbp), %rax
	movl	-100096(%rbp), %edx
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %edx
	movl	-100100(%rbp), %eax
	movl	%eax, %ecx
	shrl	$31, %ecx
	addl	%ecx, %eax
	sarl	%eax
	leal	(%rdx,%rax), %ecx
	movq	-100072(%rbp), %rax
	movl	-100096(%rbp), %edx
	movslq	%edx, %rdx
	movl	%ecx, (%rax,%rdx,4)
	movl	$0, -100100(%rbp)
.L16:
	addl	$1, -100096(%rbp)
.L14:
	movl	-100096(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L17
	movl	-100084(%rbp), %edx
	leaq	-100064(%rbp), %rax
	movl	%edx, %esi
	movq	%rax, %rdi
	call	reverse_array_char
	movl	-100084(%rbp), %edx
	movq	-100072(%rbp), %rax
	movl	%edx, %esi
	movq	%rax, %rdi
	call	reverse_array_int
	movl	$0, -100092(%rbp)
	jmp	.L18
.L21:
	movl	-100092(%rbp), %eax
	cltq
	movzbl	-100064(%rbp,%rax), %eax
	cmpb	$82, %al
	jne	.L19
	movl	$76, %edx
	jmp	.L20
.L19:
	movl	$82, %edx
.L20:
	movl	-100092(%rbp), %eax
	cltq
	movb	%dl, -100064(%rbp,%rax)
	addl	$1, -100092(%rbp)
.L18:
	movl	-100092(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L21
	addl	$1, -100104(%rbp)
.L13:
	cmpl	$1, -100104(%rbp)
	jle	.L22
	movl	$0, -100088(%rbp)
	jmp	.L23
.L24:
	movq	-100072(%rbp), %rax
	movl	-100088(%rbp), %edx
	movslq	%edx, %rdx
	movl	(%rax,%rdx,4), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	addl	$1, -100088(%rbp)
.L23:
	movl	-100088(%rbp), %eax
	cmpl	-100084(%rbp), %eax
	jl	.L24
	movl	$10, %edi
	call	putchar@PLT
	movl	$0, %eax
	movq	%rbx, %rsp
	movq	-56(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L26
	call	__stack_chk_fail@PLT
.L26:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.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:
