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

```c
// AOJ 2584: Broken Cipher Generator
// 2017.10.5 bal4u@uu

#include <stdio.h>
#include <string.h>
#include <ctype.h>

char buf[85];
char ans[85];

char *parse(char *q, char *p);
char *reverse(char *q, int *w, char *p)
{
	char c, *t;

	p = parse(q, p);
	if (*p == ']') p++;
	t = q; while (*t) t++;
	*w = t-- -q;
	while (q < t) c = *q, *q = *t, *t = c, q++, t--; 
	return p;
}

char *parse(char *q, char *p)
{
	int k;

	while (*p) {
		k = 0;
		while (*p == '+' || *p == '-') {
			if (*p == '+') k++;	else k--;
			p++;
		}
		if (*p == '?') *q++ = 'A', p++;
		else if (isalpha(*p)) {
			k += (*p++ - 'A');
			if (k < 0) k = 26 + (k % 26);
			else k %= 26;
			*q++ = 'A' + k;
		} else if (*p == '[') {
			p = reverse(q, &k, p+1);
			q += k;
		} else break;      // ']'
	}
	*q = 0;
	return p;
}

int main()
{
	while (scanf("%s", buf) && *buf != '.') {
		parse(ans, buf);
		puts(ans);
	}
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	buf
	.bss
	.align 32
	.type	buf, @object
	.size	buf, 85
buf:
	.zero	85
	.globl	ans
	.align 32
	.type	ans, @object
	.size	ans, 85
ans:
	.zero	85
	.text
	.globl	reverse
	.type	reverse, @function
reverse:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%rdx, -40(%rbp)
	movq	-40(%rbp), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	parse
	movq	%rax, -40(%rbp)
	movq	-40(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$93, %al
	jne	.L2
	addq	$1, -40(%rbp)
.L2:
	movq	-24(%rbp), %rax
	movq	%rax, -8(%rbp)
	jmp	.L3
.L4:
	addq	$1, -8(%rbp)
.L3:
	movq	-8(%rbp), %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L4
	movq	-8(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -8(%rbp)
	subq	-24(%rbp), %rax
	movl	%eax, %edx
	movq	-32(%rbp), %rax
	movl	%edx, (%rax)
	jmp	.L5
.L6:
	movq	-24(%rbp), %rax
	movzbl	(%rax), %eax
	movb	%al, -9(%rbp)
	movq	-8(%rbp), %rax
	movzbl	(%rax), %edx
	movq	-24(%rbp), %rax
	movb	%dl, (%rax)
	movq	-8(%rbp), %rax
	movzbl	-9(%rbp), %edx
	movb	%dl, (%rax)
	addq	$1, -24(%rbp)
	subq	$1, -8(%rbp)
.L5:
	movq	-24(%rbp), %rax
	cmpq	-8(%rbp), %rax
	jb	.L6
	movq	-40(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	reverse, .-reverse
	.globl	parse
	.type	parse, @function
parse:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L9
.L20:
	movl	$0, -12(%rbp)
	jmp	.L10
.L13:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$43, %al
	jne	.L11
	movl	-12(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -12(%rbp)
	jmp	.L12
.L11:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -12(%rbp)
.L12:
	addq	$1, -32(%rbp)
.L10:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$43, %al
	je	.L13
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$45, %al
	je	.L13
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$63, %al
	jne	.L14
	movq	-24(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movb	$65, (%rax)
	addq	$1, -32(%rbp)
	jmp	.L9
.L14:
	call	__ctype_b_loc@PLT
	movq	(%rax), %rdx
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	movsbq	%al, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	movzwl	(%rax), %eax
	movzwl	%ax, %eax
	andl	$1024, %eax
	testl	%eax, %eax
	je	.L15
	movq	-32(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -32(%rbp)
	movzbl	(%rax), %eax
	movsbl	%al, %eax
	leal	-65(%rax), %edx
	movl	-12(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -12(%rbp)
	movl	-12(%rbp), %eax
	testl	%eax, %eax
	jns	.L16
	movl	-12(%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
	leal	26(%rdx), %eax
	movl	%eax, -12(%rbp)
	jmp	.L17
.L16:
	movl	-12(%rbp), %edx
	movslq	%edx, %rax
	imulq	$1321528399, %rax, %rax
	shrq	$32, %rax
	sarl	$3, %eax
	movl	%edx, %ecx
	sarl	$31, %ecx
	subl	%ecx, %eax
	imull	$26, %eax, %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	movl	%eax, -12(%rbp)
.L17:
	movl	-12(%rbp), %eax
	leal	65(%rax), %ecx
	movq	-24(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movl	%ecx, %edx
	movb	%dl, (%rax)
	jmp	.L9
.L15:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$91, %al
	jne	.L23
	movq	-32(%rbp), %rax
	leaq	1(%rax), %rdx
	leaq	-12(%rbp), %rcx
	movq	-24(%rbp), %rax
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	reverse
	movq	%rax, -32(%rbp)
	movl	-12(%rbp), %eax
	cltq
	addq	%rax, -24(%rbp)
.L9:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L20
	jmp	.L19
.L23:
	nop
.L19:
	movq	-24(%rbp), %rax
	movb	$0, (%rax)
	movq	-32(%rbp), %rax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	parse, .-parse
	.section	.rodata
.LC0:
	.string	"%s"
	.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
	jmp	.L25
.L27:
	leaq	buf(%rip), %rax
	movq	%rax, %rsi
	leaq	ans(%rip), %rax
	movq	%rax, %rdi
	call	parse
	leaq	ans(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L25:
	leaq	buf(%rip), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	testl	%eax, %eax
	je	.L26
	movzbl	buf(%rip), %eax
	cmpb	$46, %al
	jne	.L27
.L26:
	movl	$0, %eax
	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	parse
	.type	parse, @function
parse:
.LFB38:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movsbl	(%rsi), %ebp
	testb	%bpl, %bpl
	je	.L3
	.p2align 4,,10
	.p2align 3
.L2:
	leal	-43(%rbp), %eax
	xorl	%ebx, %ebx
	testb	$-3, %al
	jne	.L17
	.p2align 4,,10
	.p2align 3
.L6:
	leal	1(%rbx), %eax
	subl	$1, %ebx
	cmpb	$43, %bpl
	cmove	%eax, %ebx
	movsbl	1(%r12), %ebp
	addq	$1, %r12
	leal	-43(%rbp), %eax
	testb	$-3, %al
	je	.L6
.L17:
	cmpb	$63, %bpl
	je	.L33
	call	__ctype_b_loc@PLT
	movq	%rax, %r8
	movsbq	%bpl, %rax
	movq	(%r8), %rdx
	testb	$4, 1(%rdx,%rax,2)
	je	.L9
	leal	-65(%rbx,%rbp), %edx
	addq	$1, %r12
	movslq	%edx, %rax
	movl	%edx, %ecx
	imulq	$1321528399, %rax, %rax
	sarl	$31, %ecx
	sarq	$35, %rax
	subl	%ecx, %eax
	imull	$26, %eax, %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	testl	%edx, %edx
	leal	26(%rax), %ecx
	cmovs	%ecx, %eax
	addq	$1, %r13
	addl	$65, %eax
	movb	%al, -1(%r13)
.L8:
	movsbl	(%r12), %ebp
	testb	%bpl, %bpl
	jne	.L2
.L3:
	movb	$0, 0(%r13)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r12, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L33:
	.cfi_restore_state
	movb	$65, 0(%r13)
	addq	$1, %r12
	addq	$1, %r13
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L9:
	cmpb	$91, %bpl
	jne	.L3
	leaq	1(%r12), %rsi
	movq	%r13, %rdi
	call	parse
	movq	%rax, %r12
	xorl	%eax, %eax
	cmpb	$93, (%r12)
	sete	%al
	addq	%rax, %r12
	cmpb	$0, 0(%r13)
	je	.L12
	movq	%r13, %rdx
	.p2align 4,,10
	.p2align 3
.L13:
	movq	%rdx, %rax
	leaq	1(%rdx), %rdx
	cmpb	$0, 1(%rax)
	jne	.L13
	subq	%r13, %rdx
	movslq	%edx, %rdx
	addq	%r13, %rdx
	jmp	.L31
	.p2align 4,,10
	.p2align 3
.L15:
	movzbl	0(%r13), %ecx
	movzbl	(%rax), %esi
	addq	$1, %r13
	subq	$1, %rax
	movb	%sil, -1(%r13)
	movb	%cl, 1(%rax)
.L31:
	cmpq	%rax, %r13
	jb	.L15
	movq	%rdx, %r13
	jmp	.L8
.L12:
	leaq	-1(%r13), %rax
	movq	%r13, %rdx
	jmp	.L31
	.cfi_endproc
.LFE38:
	.size	parse, .-parse
	.p2align 4
	.globl	reverse
	.type	reverse, @function
reverse:
.LFB37:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	movq	%rdx, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	call	parse
	xorl	%edx, %edx
	cmpb	$93, (%rax)
	sete	%dl
	addq	%rdx, %rax
	cmpb	$0, (%rbx)
	je	.L36
	movq	%rbx, %rcx
	.p2align 4,,10
	.p2align 3
.L37:
	movq	%rcx, %rdx
	leaq	1(%rcx), %rcx
	cmpb	$0, 1(%rdx)
	jne	.L37
	subl	%ebx, %ecx
.L38:
	movl	%ecx, 0(%rbp)
	cmpq	%rdx, %rbx
	jnb	.L34
	.p2align 4,,10
	.p2align 3
.L39:
	movzbl	(%rbx), %ecx
	movzbl	(%rdx), %esi
	addq	$1, %rbx
	subq	$1, %rdx
	movb	%sil, -1(%rbx)
	movb	%cl, 1(%rdx)
	cmpq	%rdx, %rbx
	jb	.L39
.L34:
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L36:
	.cfi_restore_state
	leaq	-1(%rbx), %rdx
	xorl	%ecx, %ecx
	jmp	.L38
	.cfi_endproc
.LFE37:
	.size	reverse, .-reverse
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB39:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	ans(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	buf(%rip), %rbx
	jmp	.L46
	.p2align 4,,10
	.p2align 3
.L53:
	cmpb	$46, (%rbx)
	je	.L47
	movq	%rbp, %rdi
	movq	%rbx, %rsi
	call	parse
	movq	%rbp, %rdi
	call	puts@PLT
.L46:
	xorl	%eax, %eax
	movq	%rbx, %rsi
	movq	%r12, %rdi
	call	__isoc99_scanf@PLT
	testl	%eax, %eax
	jne	.L53
.L47:
	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE39:
	.size	main, .-main
	.globl	ans
	.bss
	.align 32
	.type	ans, @object
	.size	ans, 85
ans:
	.zero	85
	.globl	buf
	.align 32
	.type	buf, @object
	.size	buf, 85
buf:
	.zero	85
	.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	parse
	.type	parse, @function
parse:
.LFB38:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movsbl	(%rsi), %ebp
	testb	%bpl, %bpl
	je	.L3
	.p2align 4,,10
	.p2align 3
.L2:
	leal	-43(%rbp), %eax
	xorl	%ebx, %ebx
	testb	$-3, %al
	jne	.L17
	.p2align 4,,10
	.p2align 3
.L6:
	leal	1(%rbx), %eax
	subl	$1, %ebx
	cmpb	$43, %bpl
	cmove	%eax, %ebx
	movsbl	1(%r12), %ebp
	addq	$1, %r12
	leal	-43(%rbp), %eax
	testb	$-3, %al
	je	.L6
.L17:
	cmpb	$63, %bpl
	je	.L33
	call	__ctype_b_loc@PLT
	movq	%rax, %r8
	movsbq	%bpl, %rax
	movq	(%r8), %rdx
	testb	$4, 1(%rdx,%rax,2)
	je	.L9
	leal	-65(%rbx,%rbp), %edx
	addq	$1, %r12
	movslq	%edx, %rax
	movl	%edx, %ecx
	imulq	$1321528399, %rax, %rax
	sarl	$31, %ecx
	sarq	$35, %rax
	subl	%ecx, %eax
	imull	$26, %eax, %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	testl	%edx, %edx
	leal	26(%rax), %ecx
	cmovs	%ecx, %eax
	addq	$1, %r13
	addl	$65, %eax
	movb	%al, -1(%r13)
.L8:
	movsbl	(%r12), %ebp
	testb	%bpl, %bpl
	jne	.L2
.L3:
	movb	$0, 0(%r13)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r12, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L33:
	.cfi_restore_state
	movb	$65, 0(%r13)
	addq	$1, %r12
	addq	$1, %r13
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L9:
	cmpb	$91, %bpl
	jne	.L3
	leaq	1(%r12), %rsi
	movq	%r13, %rdi
	call	parse
	movq	%rax, %r12
	xorl	%eax, %eax
	cmpb	$93, (%r12)
	sete	%al
	addq	%rax, %r12
	cmpb	$0, 0(%r13)
	je	.L12
	movq	%r13, %rdx
	.p2align 4,,10
	.p2align 3
.L13:
	movq	%rdx, %rax
	leaq	1(%rdx), %rdx
	cmpb	$0, 1(%rax)
	jne	.L13
	subq	%r13, %rdx
	movslq	%edx, %rdx
	addq	%r13, %rdx
	jmp	.L31
	.p2align 4,,10
	.p2align 3
.L15:
	movzbl	0(%r13), %ecx
	movzbl	(%rax), %esi
	addq	$1, %r13
	subq	$1, %rax
	movb	%sil, -1(%r13)
	movb	%cl, 1(%rax)
.L31:
	cmpq	%rax, %r13
	jb	.L15
	movq	%rdx, %r13
	jmp	.L8
.L12:
	leaq	-1(%r13), %rax
	movq	%r13, %rdx
	jmp	.L31
	.cfi_endproc
.LFE38:
	.size	parse, .-parse
	.p2align 4
	.globl	reverse
	.type	reverse, @function
reverse:
.LFB37:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	movq	%rdx, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	call	parse
	xorl	%edx, %edx
	cmpb	$93, (%rax)
	sete	%dl
	addq	%rdx, %rax
	cmpb	$0, (%rbx)
	je	.L36
	movq	%rbx, %rcx
	.p2align 4,,10
	.p2align 3
.L37:
	movq	%rcx, %rdx
	leaq	1(%rcx), %rcx
	cmpb	$0, 1(%rdx)
	jne	.L37
	subl	%ebx, %ecx
.L38:
	movl	%ecx, 0(%rbp)
	cmpq	%rdx, %rbx
	jnb	.L34
	.p2align 4,,10
	.p2align 3
.L39:
	movzbl	(%rbx), %ecx
	movzbl	(%rdx), %esi
	addq	$1, %rbx
	subq	$1, %rdx
	movb	%sil, -1(%rbx)
	movb	%cl, 1(%rdx)
	cmpq	%rdx, %rbx
	jb	.L39
.L34:
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L36:
	.cfi_restore_state
	leaq	-1(%rbx), %rdx
	xorl	%ecx, %ecx
	jmp	.L38
	.cfi_endproc
.LFE37:
	.size	reverse, .-reverse
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB39:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	ans(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	buf(%rip), %rbx
	jmp	.L46
	.p2align 4,,10
	.p2align 3
.L53:
	cmpb	$46, (%rbx)
	je	.L47
	movq	%rbp, %rdi
	movq	%rbx, %rsi
	call	parse
	movq	%rbp, %rdi
	call	puts@PLT
.L46:
	xorl	%eax, %eax
	movq	%rbx, %rsi
	movq	%r12, %rdi
	call	__isoc99_scanf@PLT
	testl	%eax, %eax
	jne	.L53
.L47:
	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE39:
	.size	main, .-main
	.globl	ans
	.bss
	.align 32
	.type	ans, @object
	.size	ans, 85
ans:
	.zero	85
	.globl	buf
	.align 32
	.type	buf, @object
	.size	buf, 85
buf:
	.zero	85
	.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:

// AOJ 2584: Broken Cipher Generator
// 2017.10.5 bal4u@uu

#include <stdio.h>
#include <string.h>
#include <ctype.h>

char buf[85];
char ans[85];

char *parse(char *q, char *p);
char *reverse(char *q, int *w, char *p)
{
	char c, *t;

	p = parse(q, p);
	if (*p == ']') p++;
	t = q; while (*t) t++;
	*w = t-- -q;
	while (q < t) c = *q, *q = *t, *t = c, q++, t--; 
	return p;
}

char *parse(char *q, char *p)
{
	int k;

	while (*p) {
		k = 0;
		while (*p == '+' || *p == '-') {
			if (*p == '+') k++;	else k--;
			p++;
		}
		if (*p == '?') *q++ = 'A', p++;
		else if (isalpha(*p)) {
			k += (*p++ - 'A');
			if (k < 0) k = 26 + (k % 26);
			else k %= 26;
			*q++ = 'A' + k;
		} else if (*p == '[') {
			p = reverse(q, &k, p+1);
			q += k;
		} else break;      // ']'
	}
	*q = 0;
	return p;
}

int main()
{
	while (scanf("%s", buf) && *buf != '.') {
		parse(ans, buf);
		puts(ans);
	}
	return 0;
}
A+A++A
Z-Z--Z+-Z
[ESRVEER]
J---?---J
++++++++A+++Z-----------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A+A++A
Z-ZZ--+-Z
[ESRVEER]
J---?---J
++++++++A+++Z-----------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A+A++A
Z-Z--Z+-Z
[ESRVEER]
J---?---J
+++-++++A+++Z-+---------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A+A++A
Z-Z--Z+-Z
[ESQVEER]
J---?---J
+++-++++A+++Z-+---------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A+A++A
Z-Z--Z+-Z
[ESREVER]
J---J---?
++++++++A+++Z-----------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A+A++A
Z-+Z--Z-Z
[ESREVER]
J---J---?
++++++++A+++Z-----------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A+A++B
Z-Z--Z+-Z
[ESREVER]
J---?---J
++++++++A+++Z-----------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A++A+A
Z-Z--Z+-Z
[ESRVEER]
J---?---J
++++++++A+++Z-----------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A+A++A
Z-Z--Z+-Z
[ESRVEFR]
J---?---J
+++-++++A+++Z-+---------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.
 A+A++A
Z-Z--Z+-Z
[ESQWEER]
J---?---J
+++-++++A+++Z-+---------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.

ABC
ZYXZ
REEVRSE
JAG
ICPC
JAPAN
 ABC
ZYZX
REEVRSE
JAG
ICPC
JAPAN
 ABC
ZYXZ
REEVRSE
JAG
GCRC
JAPAN
 ABC
ZYXZ
REEVQSE
JAG
GCRC
JAPAN
 ABC
ZYXZ
REVERSE
JGA
ICPC
JAPAN
 ABC
ZZXY
REVERSE
JGA
ICPC
JAPAN
 ABD
ZYXZ
REVERSE
JAG
ICPC
JAPAN
 ACB
ZYXZ
REEVRSE
JAG
ICPC
JAPAN
 ABC
ZYXZ
RFEVRSE
JAG
GCRC
JAPAN
 ABC
ZYXZ
REEWQSE
JAG
GCRC
JAPAN

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

```c
// AOJ 2584: Broken Cipher Generator
// 2017.10.5 bal4u@uu

#include <stdio.h>
#include <string.h>
#include <ctype.h>

char buf[85];
char ans[85];

char *parse(char *q, char *p);
char *reverse(char *q, int *w, char *p)
{
	char c, *t;

	p = parse(q, p);
	if (*p == ']') p++;
	t = q; while (*t) t++;
	*w = t-- -q;
	while (q < t) c = *q, *q = *t, *t = c, q++, t--; 
	return p;
}

char *parse(char *q, char *p)
{
	int k;

	while (*p) {
		k = 0;
		while (*p == '+' || *p == '-') {
			if (*p == '+') k++;	else k--;
			p++;
		}
		if (*p == '?') *q++ = 'A', p++;
		else if (isalpha(*p)) {
			k += (*p++ - 'A');
			if (k < 0) k = 26 + (k % 26);
			else k %= 26;
			*q++ = 'A' + k;
		} else if (*p == '[') {
			p = reverse(q, &k, p+1);
			q += k;
		} else break;      // ']'
	}
	*q = 0;
	return p;
}

int main()
{
	while (scanf("%s", buf) && *buf != '.') {
		parse(ans, buf);
		puts(ans);
	}
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	buf
	.bss
	.align 32
	.type	buf, @object
	.size	buf, 85
buf:
	.zero	85
	.globl	ans
	.align 32
	.type	ans, @object
	.size	ans, 85
ans:
	.zero	85
	.text
	.globl	reverse
	.type	reverse, @function
reverse:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%rdx, -40(%rbp)
	movq	-40(%rbp), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	parse
	movq	%rax, -40(%rbp)
	movq	-40(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$93, %al
	jne	.L2
	addq	$1, -40(%rbp)
.L2:
	movq	-24(%rbp), %rax
	movq	%rax, -8(%rbp)
	jmp	.L3
.L4:
	addq	$1, -8(%rbp)
.L3:
	movq	-8(%rbp), %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L4
	movq	-8(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -8(%rbp)
	subq	-24(%rbp), %rax
	movl	%eax, %edx
	movq	-32(%rbp), %rax
	movl	%edx, (%rax)
	jmp	.L5
.L6:
	movq	-24(%rbp), %rax
	movzbl	(%rax), %eax
	movb	%al, -9(%rbp)
	movq	-8(%rbp), %rax
	movzbl	(%rax), %edx
	movq	-24(%rbp), %rax
	movb	%dl, (%rax)
	movq	-8(%rbp), %rax
	movzbl	-9(%rbp), %edx
	movb	%dl, (%rax)
	addq	$1, -24(%rbp)
	subq	$1, -8(%rbp)
.L5:
	movq	-24(%rbp), %rax
	cmpq	-8(%rbp), %rax
	jb	.L6
	movq	-40(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	reverse, .-reverse
	.globl	parse
	.type	parse, @function
parse:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L9
.L20:
	movl	$0, -12(%rbp)
	jmp	.L10
.L13:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$43, %al
	jne	.L11
	movl	-12(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -12(%rbp)
	jmp	.L12
.L11:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -12(%rbp)
.L12:
	addq	$1, -32(%rbp)
.L10:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$43, %al
	je	.L13
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$45, %al
	je	.L13
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$63, %al
	jne	.L14
	movq	-24(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movb	$65, (%rax)
	addq	$1, -32(%rbp)
	jmp	.L9
.L14:
	call	__ctype_b_loc@PLT
	movq	(%rax), %rdx
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	movsbq	%al, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	movzwl	(%rax), %eax
	movzwl	%ax, %eax
	andl	$1024, %eax
	testl	%eax, %eax
	je	.L15
	movq	-32(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -32(%rbp)
	movzbl	(%rax), %eax
	movsbl	%al, %eax
	leal	-65(%rax), %edx
	movl	-12(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -12(%rbp)
	movl	-12(%rbp), %eax
	testl	%eax, %eax
	jns	.L16
	movl	-12(%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
	leal	26(%rdx), %eax
	movl	%eax, -12(%rbp)
	jmp	.L17
.L16:
	movl	-12(%rbp), %edx
	movslq	%edx, %rax
	imulq	$1321528399, %rax, %rax
	shrq	$32, %rax
	sarl	$3, %eax
	movl	%edx, %ecx
	sarl	$31, %ecx
	subl	%ecx, %eax
	imull	$26, %eax, %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	movl	%eax, -12(%rbp)
.L17:
	movl	-12(%rbp), %eax
	leal	65(%rax), %ecx
	movq	-24(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movl	%ecx, %edx
	movb	%dl, (%rax)
	jmp	.L9
.L15:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$91, %al
	jne	.L23
	movq	-32(%rbp), %rax
	leaq	1(%rax), %rdx
	leaq	-12(%rbp), %rcx
	movq	-24(%rbp), %rax
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	reverse
	movq	%rax, -32(%rbp)
	movl	-12(%rbp), %eax
	cltq
	addq	%rax, -24(%rbp)
.L9:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L20
	jmp	.L19
.L23:
	nop
.L19:
	movq	-24(%rbp), %rax
	movb	$0, (%rax)
	movq	-32(%rbp), %rax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	parse, .-parse
	.section	.rodata
.LC0:
	.string	"%s"
	.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
	jmp	.L25
.L27:
	leaq	buf(%rip), %rax
	movq	%rax, %rsi
	leaq	ans(%rip), %rax
	movq	%rax, %rdi
	call	parse
	leaq	ans(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L25:
	leaq	buf(%rip), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	testl	%eax, %eax
	je	.L26
	movzbl	buf(%rip), %eax
	cmpb	$46, %al
	jne	.L27
.L26:
	movl	$0, %eax
	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	buf
	.bss
	.align 32
	.type	buf, @object
	.size	buf, 85
buf:
	.zero	85
	.globl	ans
	.align 32
	.type	ans, @object
	.size	ans, 85
ans:
	.zero	85
	.text
	.globl	reverse
	.type	reverse, @function
reverse:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%rdx, -40(%rbp)
	movq	-40(%rbp), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	parse
	movq	%rax, -40(%rbp)
	movq	-40(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$93, %al
	jne	.L2
	addq	$1, -40(%rbp)
.L2:
	movq	-24(%rbp), %rax
	movq	%rax, -8(%rbp)
	jmp	.L3
.L4:
	addq	$1, -8(%rbp)
.L3:
	movq	-8(%rbp), %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L4
	movq	-8(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -8(%rbp)
	subq	-24(%rbp), %rax
	movl	%eax, %edx
	movq	-32(%rbp), %rax
	movl	%edx, (%rax)
	jmp	.L5
.L6:
	movq	-24(%rbp), %rax
	movzbl	(%rax), %eax
	movb	%al, -9(%rbp)
	movq	-8(%rbp), %rax
	movzbl	(%rax), %edx
	movq	-24(%rbp), %rax
	movb	%dl, (%rax)
	movq	-8(%rbp), %rax
	movzbl	-9(%rbp), %edx
	movb	%dl, (%rax)
	addq	$1, -24(%rbp)
	subq	$1, -8(%rbp)
.L5:
	movq	-24(%rbp), %rax
	cmpq	-8(%rbp), %rax
	jb	.L6
	movq	-40(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	reverse, .-reverse
	.globl	parse
	.type	parse, @function
parse:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L9
.L20:
	movl	$0, -12(%rbp)
	jmp	.L10
.L13:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$43, %al
	jne	.L11
	movl	-12(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -12(%rbp)
	jmp	.L12
.L11:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -12(%rbp)
.L12:
	addq	$1, -32(%rbp)
.L10:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$43, %al
	je	.L13
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$45, %al
	je	.L13
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$63, %al
	jne	.L14
	movq	-24(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movb	$65, (%rax)
	addq	$1, -32(%rbp)
	jmp	.L9
.L14:
	call	__ctype_b_loc@PLT
	movq	(%rax), %rdx
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	movsbq	%al, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	movzwl	(%rax), %eax
	movzwl	%ax, %eax
	andl	$1024, %eax
	testl	%eax, %eax
	je	.L15
	movq	-32(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -32(%rbp)
	movzbl	(%rax), %eax
	movsbl	%al, %eax
	leal	-65(%rax), %edx
	movl	-12(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -12(%rbp)
	movl	-12(%rbp), %eax
	testl	%eax, %eax
	jns	.L16
	movl	-12(%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
	leal	26(%rdx), %eax
	movl	%eax, -12(%rbp)
	jmp	.L17
.L16:
	movl	-12(%rbp), %edx
	movslq	%edx, %rax
	imulq	$1321528399, %rax, %rax
	shrq	$32, %rax
	sarl	$3, %eax
	movl	%edx, %ecx
	sarl	$31, %ecx
	subl	%ecx, %eax
	imull	$26, %eax, %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	movl	%eax, -12(%rbp)
.L17:
	movl	-12(%rbp), %eax
	leal	65(%rax), %ecx
	movq	-24(%rbp), %rax
	leaq	1(%rax), %rdx
	movq	%rdx, -24(%rbp)
	movl	%ecx, %edx
	movb	%dl, (%rax)
	jmp	.L9
.L15:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	cmpb	$91, %al
	jne	.L23
	movq	-32(%rbp), %rax
	leaq	1(%rax), %rdx
	leaq	-12(%rbp), %rcx
	movq	-24(%rbp), %rax
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	reverse
	movq	%rax, -32(%rbp)
	movl	-12(%rbp), %eax
	cltq
	addq	%rax, -24(%rbp)
.L9:
	movq	-32(%rbp), %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L20
	jmp	.L19
.L23:
	nop
.L19:
	movq	-24(%rbp), %rax
	movb	$0, (%rax)
	movq	-32(%rbp), %rax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	parse, .-parse
	.section	.rodata
.LC0:
	.string	"%s"
	.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
	jmp	.L25
.L27:
	leaq	buf(%rip), %rax
	movq	%rax, %rsi
	leaq	ans(%rip), %rax
	movq	%rax, %rdi
	call	parse
	leaq	ans(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L25:
	leaq	buf(%rip), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	testl	%eax, %eax
	je	.L26
	movzbl	buf(%rip), %eax
	cmpb	$46, %al
	jne	.L27
.L26:
	movl	$0, %eax
	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:
