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

```c
#include <float.h>
#include <inttypes.h>
#include <limits.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <math.h>
#ifdef __cplusplus
#include <bits/stdc++.h>
#endif

#define P 1000000007

uint32_t nextpint(void){ char c=getchar_unlocked(); while(c<'0'||'9'<c) c=getchar_unlocked(); uint32_t x=0; while('0'<=c && c<='9'){ x=x*10+c-'0'; c=getchar_unlocked(); } return x; }

uint32_t d[101][4][4][4];
int main(void){
	uint32_t n=nextpint();
	d[0][0][0][0]=1;
	for(uint32_t m=0; m<n; m++){
		for(uint8_t c3=0; c3<4; c3++){
			for(uint8_t c2=0; c2<4; c2++){
				for(uint8_t c1=0; c1<4; c1++){
					if(d[m][c3][c2][c1]==0) continue;
					for(uint8_t a=0; a<4; a++){
						if(c2==1&&c1==2&&a==3)continue;
						if(c2==2&&c1==1&&a==3)continue;
						if(c2==1&&c1==3&&a==2)continue;
						if(c3==1&&c2==2&&a==3)continue;
						if(c3==1&&c1==2&&a==3)continue;
						d[m+1][c2][c1][a] += d[m][c3][c2][c1];
						d[m+1][c2][c1][a] %= P;
					}
				}
			}
		}
	}
	uint64_t ans=0;
	for(uint8_t c3=0; c3<4; c3++){
		for(uint8_t c2=0; c2<4; c2++){
			for(uint8_t c1=0; c1<4; c1++){
				ans += d[n][c3][c2][c1];
			}
		}
	}
	ans %= P;
	printf("%"PRIu64"\n", ans);
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	nextpint
	.type	nextpint, @function
nextpint:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
	jmp	.L2
.L3:
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
.L2:
	cmpb	$47, -5(%rbp)
	jle	.L3
	cmpb	$57, -5(%rbp)
	jg	.L3
	movl	$0, -4(%rbp)
	jmp	.L4
.L6:
	movl	-4(%rbp), %edx
	movl	%edx, %eax
	sall	$2, %eax
	addl	%edx, %eax
	addl	%eax, %eax
	movl	%eax, %edx
	movsbl	-5(%rbp), %eax
	addl	%edx, %eax
	subl	$48, %eax
	movl	%eax, -4(%rbp)
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
.L4:
	cmpb	$47, -5(%rbp)
	jle	.L5
	cmpb	$57, -5(%rbp)
	jle	.L6
.L5:
	movl	-4(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	nextpint, .-nextpint
	.globl	d
	.bss
	.align 32
	.type	d, @object
	.size	d, 25856
d:
	.zero	25856
	.section	.rodata
.LC0:
	.string	"%lu\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB7:
	.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
	call	nextpint
	movl	%eax, -12(%rbp)
	movl	$1, d(%rip)
	movl	$0, -16(%rbp)
	jmp	.L9
.L26:
	movb	$0, -23(%rbp)
	jmp	.L10
.L25:
	movb	$0, -22(%rbp)
	jmp	.L11
.L24:
	movb	$0, -21(%rbp)
	jmp	.L12
.L23:
	movzbl	-23(%rbp), %edx
	movzbl	-22(%rbp), %eax
	movzbl	-21(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-16(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	je	.L34
	movb	$0, -20(%rbp)
	jmp	.L15
.L22:
	cmpb	$1, -22(%rbp)
	jne	.L16
	cmpb	$2, -21(%rbp)
	jne	.L16
	cmpb	$3, -20(%rbp)
	je	.L35
.L16:
	cmpb	$2, -22(%rbp)
	jne	.L18
	cmpb	$1, -21(%rbp)
	jne	.L18
	cmpb	$3, -20(%rbp)
	je	.L36
.L18:
	cmpb	$1, -22(%rbp)
	jne	.L19
	cmpb	$3, -21(%rbp)
	jne	.L19
	cmpb	$2, -20(%rbp)
	je	.L37
.L19:
	cmpb	$1, -23(%rbp)
	jne	.L20
	cmpb	$2, -22(%rbp)
	jne	.L20
	cmpb	$3, -20(%rbp)
	je	.L38
.L20:
	cmpb	$1, -23(%rbp)
	jne	.L21
	cmpb	$2, -21(%rbp)
	jne	.L21
	cmpb	$3, -20(%rbp)
	je	.L39
.L21:
	movl	-16(%rbp), %eax
	leal	1(%rax), %esi
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rdx
	movl	%esi, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %edi
	movzbl	-23(%rbp), %edx
	movzbl	-22(%rbp), %eax
	movzbl	-21(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-16(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %ecx
	movl	-16(%rbp), %eax
	leal	1(%rax), %r8d
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %esi
	addl	%edi, %ecx
	movslq	%esi, %rsi
	movslq	%edx, %rdx
	movl	%r8d, %edi
	salq	$2, %rdi
	addq	%rdi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	-16(%rbp), %eax
	leal	1(%rax), %esi
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rdx
	movl	%esi, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-16(%rbp), %eax
	leal	1(%rax), %r9d
	movzbl	-22(%rbp), %esi
	movzbl	-21(%rbp), %ecx
	movzbl	-20(%rbp), %edi
	movl	%edx, %eax
	imulq	$316718691, %rax, %rax
	shrq	$32, %rax
	movq	%rax, %r8
	movl	%edx, %eax
	subl	%r8d, %eax
	shrl	%eax
	addl	%r8d, %eax
	shrl	$29, %eax
	imull	$1000000007, %eax, %r8d
	movl	%edx, %eax
	subl	%r8d, %eax
	movslq	%edi, %rdi
	movslq	%esi, %rdx
	movl	%r9d, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	movslq	%ecx, %rcx
	salq	$2, %rdx
	addq	%rcx, %rdx
	salq	$2, %rdx
	addq	%rdi, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	d(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	jmp	.L17
.L35:
	nop
	jmp	.L17
.L36:
	nop
	jmp	.L17
.L37:
	nop
	jmp	.L17
.L38:
	nop
	jmp	.L17
.L39:
	nop
.L17:
	movzbl	-20(%rbp), %eax
	addl	$1, %eax
	movb	%al, -20(%rbp)
.L15:
	cmpb	$3, -20(%rbp)
	jbe	.L22
	jmp	.L14
.L34:
	nop
.L14:
	movzbl	-21(%rbp), %eax
	addl	$1, %eax
	movb	%al, -21(%rbp)
.L12:
	cmpb	$3, -21(%rbp)
	jbe	.L23
	movzbl	-22(%rbp), %eax
	addl	$1, %eax
	movb	%al, -22(%rbp)
.L11:
	cmpb	$3, -22(%rbp)
	jbe	.L24
	movzbl	-23(%rbp), %eax
	addl	$1, %eax
	movb	%al, -23(%rbp)
.L10:
	cmpb	$3, -23(%rbp)
	jbe	.L25
	addl	$1, -16(%rbp)
.L9:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jb	.L26
	movq	$0, -8(%rbp)
	movb	$0, -19(%rbp)
	jmp	.L27
.L32:
	movb	$0, -18(%rbp)
	jmp	.L28
.L31:
	movb	$0, -17(%rbp)
	jmp	.L29
.L30:
	movzbl	-19(%rbp), %edx
	movzbl	-18(%rbp), %eax
	movzbl	-17(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-12(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %eax
	addq	%rax, -8(%rbp)
	movzbl	-17(%rbp), %eax
	addl	$1, %eax
	movb	%al, -17(%rbp)
.L29:
	cmpb	$3, -17(%rbp)
	jbe	.L30
	movzbl	-18(%rbp), %eax
	addl	$1, %eax
	movb	%al, -18(%rbp)
.L28:
	cmpb	$3, -18(%rbp)
	jbe	.L31
	movzbl	-19(%rbp), %eax
	addl	$1, %eax
	movb	%al, -19(%rbp)
.L27:
	cmpb	$3, -19(%rbp)
	jbe	.L32
	movq	-8(%rbp), %rcx
	movabsq	$-8543223828751151131, %rdx
	movq	%rcx, %rax
	mulq	%rdx
	movq	%rdx, %rax
	shrq	$29, %rax
	imulq	$1000000007, %rax, %rdx
	movq	%rcx, %rax
	subq	%rdx, %rax
	movq	%rax, -8(%rbp)
	movq	-8(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.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	nextpint
	.type	nextpint, @function
nextpint:
.LFB63:
	.cfi_startproc
	endbr64
	movq	stdin(%rip), %rdi
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	8(%rdi), %rax
	movq	16(%rdi), %rsi
	cmpq	%rsi, %rax
	jnb	.L17
	leaq	1(%rax), %rcx
	movq	%rcx, 8(%rdi)
	movzbl	(%rax), %edx
	movl	%edx, %eax
.L3:
	subl	$48, %eax
	cmpb	$9, %al
	ja	.L8
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L5:
	leaq	1(%rcx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rcx), %edx
	movl	%edx, %ecx
	subl	$48, %ecx
	cmpb	$9, %cl
	jbe	.L9
.L6:
	movq	%rax, %rcx
.L8:
	cmpq	%rsi, %rcx
	jb	.L5
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movl	%eax, %edx
	leal	-48(%rdx), %ecx
	movq	8(%rdi), %rax
	movq	16(%rdi), %rsi
	cmpb	$9, %cl
	ja	.L6
	.p2align 4,,10
	.p2align 3
.L9:
	xorl	%r12d, %r12d
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L10:
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %edx
	leal	-48(%rdx), %eax
	cmpb	$9, %al
	ja	.L1
.L11:
	movq	8(%rdi), %rax
	movq	16(%rdi), %rsi
.L13:
	leal	(%r12,%r12,4), %ecx
	movsbl	%dl, %edx
	leal	-48(%rdx,%rcx,2), %r12d
	cmpq	%rsi, %rax
	jb	.L10
	call	__uflow@PLT
	movl	%eax, %edx
	subl	$48, %eax
	cmpb	$9, %al
	ja	.L1
	movq	stdin(%rip), %rdi
	jmp	.L11
	.p2align 4,,10
	.p2align 3
.L1:
	movl	%r12d, %eax
	popq	%r12
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4:
	.cfi_restore_state
	movq	%rcx, %rax
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L17:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movl	%eax, %edx
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rsi
	jmp	.L3
	.cfi_endproc
.LFE63:
	.size	nextpint, .-nextpint
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%lu\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB64:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	call	nextpint
	movl	$1, d(%rip)
	movl	%eax, %ebp
	testl	%eax, %eax
	je	.L19
	leaq	256+d(%rip), %rbx
	xorl	%r12d, %r12d
.L20:
	addl	$1, %r12d
	leaq	-256(%rbx), %r11
	xorl	%r10d, %r10d
.L39:
	movq	%r11, %rdx
	movq	%rbx, %r8
	movq	%rbx, %rax
	movl	$1, %r9d
	movl	(%rdx), %ecx
	xorl	%edi, %edi
	testl	%ecx, %ecx
	jne	.L64
	.p2align 4,,10
	.p2align 3
.L22:
	movl	4(%rdx), %ecx
	testl	%ecx, %ecx
	jne	.L65
.L26:
	movl	8(%rdx), %ecx
	testl	%ecx, %ecx
	jne	.L28
.L31:
	movl	12(%rdx), %ecx
	testl	%ecx, %ecx
	jne	.L66
.L29:
	cmpb	$4, %r9b
	je	.L67
.L34:
	movl	16(%rdx), %ecx
	addq	$16, %rdx
	addq	$1, %rdi
	addl	$1, %r9d
	addq	$64, %rax
	addq	$64, %r8
	testl	%ecx, %ecx
	je	.L22
.L64:
	addl	(%rax), %ecx
	movl	%ecx, %r13d
	movl	%ecx, %esi
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %esi
	shrl	%esi
	addl	%r13d, %esi
	movl	4(%rax), %r13d
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %ecx
	movl	%ecx, (%rax)
	movl	(%rdx), %esi
	addl	%esi, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %ecx
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %ecx
	shrl	%ecx
	addl	%r14d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %r13d
	movl	%r13d, 4(%rax)
	movl	8(%rax), %r13d
	addl	%esi, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %ecx
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %ecx
	shrl	%ecx
	addl	%r14d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %r13d
	movl	%r13d, 8(%rax)
	cmpb	$2, %dil
	jne	.L40
	cmpb	$1, %r10b
	je	.L22
.L40:
	addl	12(%rax), %esi
	movl	%esi, %r13d
	movl	%esi, %ecx
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %ecx
	shrl	%ecx
	addl	%r13d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %esi
	movl	%esi, 12(%rax)
	movl	4(%rdx), %ecx
	testl	%ecx, %ecx
	je	.L26
.L65:
	movl	16(%rax), %r13d
	addl	%ecx, %r13d
	addl	20(%rax), %ecx
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	movl	%ecx, %r14d
	shrl	$29, %esi
	imulq	$316718691, %r14, %r14
	imull	$1000000007, %esi, %esi
	shrq	$32, %r14
	subl	%esi, %r13d
	movl	%ecx, %esi
	subl	%r14d, %esi
	movd	%r13d, %xmm0
	shrl	%esi
	addl	%r14d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %ecx
	movd	%ecx, %xmm5
	punpckldq	%xmm5, %xmm0
	movq	%xmm0, 16(%r8)
	movl	4(%rdx), %esi
	movl	24(%rax), %r13d
	addl	%esi, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %ecx
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %ecx
	shrl	%ecx
	addl	%r14d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %r13d
	movl	%r13d, 24(%rax)
	cmpq	$2, %rdi
	je	.L26
	addl	28(%rax), %esi
	movl	%esi, %r13d
	movl	%esi, %ecx
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %ecx
	shrl	%ecx
	addl	%r13d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %esi
	movl	%esi, 28(%rax)
	movl	8(%rdx), %ecx
	testl	%ecx, %ecx
	je	.L31
.L28:
	movl	32(%rax), %r14d
	cmpb	$1, %r10b
	sete	%r13b
	addl	%ecx, %r14d
	movl	%r14d, %r15d
	movl	%r14d, %esi
	imulq	$316718691, %r15, %r15
	shrq	$32, %r15
	subl	%r15d, %esi
	shrl	%esi
	addl	%r15d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r14d
	movd	%r14d, %xmm0
	movl	36(%rax), %r14d
	addl	%ecx, %r14d
	movl	%r14d, %r15d
	movl	%r14d, %esi
	imulq	$316718691, %r15, %r15
	shrq	$32, %r15
	subl	%r15d, %esi
	shrl	%esi
	addl	%r15d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r14d
	movd	%r14d, %xmm6
	punpckldq	%xmm6, %xmm0
	movq	%xmm0, 32(%r8)
	addl	40(%rax), %ecx
	movl	%ecx, %r14d
	movl	%ecx, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %ecx
	cmpb	$1, %dil
	movl	%ecx, 40(%rax)
	sete	%cl
	orb	%r13b, %cl
	jne	.L31
	cmpb	$2, %dil
	sete	%cl
	testb	%r13b, %cl
	jne	.L31
	movl	8(%rdx), %esi
	addl	44(%rax), %esi
	movl	%esi, %r13d
	movl	%esi, %ecx
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %ecx
	shrl	%ecx
	addl	%r13d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %esi
	movl	%esi, 44(%rax)
	movl	12(%rdx), %ecx
	testl	%ecx, %ecx
	je	.L29
	movl	48(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movd	%r13d, %xmm0
	movl	52(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	movl	%edi, %r14d
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movd	%r13d, %xmm3
	punpckldq	%xmm3, %xmm0
	movq	%xmm0, 48(%r8)
.L33:
	movl	56(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r15d
	movl	%r13d, %esi
	imulq	$316718691, %r15, %r15
	shrq	$32, %r15
	subl	%r15d, %esi
	shrl	%esi
	addl	%r15d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movl	%r13d, 56(%rax)
	cmpb	$2, %r14b
	jne	.L36
	cmpb	$1, %r10b
	je	.L34
	jmp	.L36
	.p2align 4,,10
	.p2align 3
.L66:
	movl	48(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movd	%r13d, %xmm0
	movl	52(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	movl	%edi, %r14d
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movd	%r13d, %xmm4
	punpckldq	%xmm4, %xmm0
	movq	%xmm0, 48(%r8)
	cmpq	$1, %rdi
	jne	.L33
.L36:
	addl	60(%rax), %ecx
	movl	%ecx, %r13d
	movl	%ecx, %esi
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %esi
	shrl	%esi
	addl	%r13d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %ecx
	movl	%ecx, 60(%rax)
	cmpb	$4, %r9b
	jne	.L34
.L67:
	addl	$1, %r10d
	addq	$64, %r11
	cmpb	$4, %r10b
	jne	.L39
	addq	$256, %rbx
	cmpl	%r12d, %ebp
	jne	.L20
.L19:
	movl	%ebp, %eax
	leaq	d(%rip), %rdx
	movl	$1, %edi
	salq	$8, %rax
	leaq	.LC0(%rip), %rsi
	addq	%rdx, %rax
	movabsq	$-8543223828751151131, %rdx
	movdqa	(%rax), %xmm0
	movdqa	240(%rax), %xmm1
	movdqa	16(%rax), %xmm15
	movdqa	32(%rax), %xmm14
	movaps	%xmm1, (%rsp)
	movdqa	48(%rax), %xmm13
	movdqa	%xmm0, %xmm1
	movdqa	64(%rax), %xmm4
	movdqa	80(%rax), %xmm12
	movdqa	96(%rax), %xmm11
	shufps	$136, %xmm15, %xmm1
	shufps	$221, %xmm15, %xmm0
	movdqa	%xmm14, %xmm15
	movdqa	112(%rax), %xmm10
	movdqa	128(%rax), %xmm2
	shufps	$221, %xmm13, %xmm14
	shufps	$136, %xmm13, %xmm15
	movdqa	%xmm4, %xmm13
	movdqa	144(%rax), %xmm9
	movdqa	160(%rax), %xmm8
	shufps	$136, %xmm12, %xmm13
	shufps	$221, %xmm12, %xmm4
	movdqa	%xmm11, %xmm12
	movdqa	176(%rax), %xmm7
	shufps	$136, %xmm10, %xmm12
	movdqa	192(%rax), %xmm3
	shufps	$221, %xmm10, %xmm11
	movdqa	%xmm2, %xmm10
	shufps	$136, %xmm9, %xmm10
	shufps	$221, %xmm9, %xmm2
	movdqa	%xmm8, %xmm9
	movdqa	208(%rax), %xmm6
	shufps	$136, %xmm7, %xmm9
	shufps	$221, %xmm7, %xmm8
	movdqa	%xmm3, %xmm7
	movdqa	224(%rax), %xmm5
	movaps	%xmm0, 32(%rsp)
	shufps	$221, %xmm6, %xmm3
	shufps	$136, %xmm6, %xmm7
	movdqa	%xmm5, %xmm0
	shufps	$136, (%rsp), %xmm0
	movdqa	%xmm0, %xmm6
	shufps	$221, (%rsp), %xmm5
	movdqa	%xmm7, %xmm0
	movaps	%xmm5, (%rsp)
	shufps	$221, %xmm6, %xmm7
	movdqa	%xmm1, %xmm5
	movaps	%xmm7, 16(%rsp)
	movdqa	32(%rsp), %xmm7
	shufps	$136, %xmm15, %xmm5
	shufps	$136, %xmm6, %xmm0
	shufps	$221, %xmm15, %xmm1
	movdqa	%xmm13, %xmm15
	shufps	$221, %xmm12, %xmm13
	movaps	%xmm13, 96(%rsp)
	shufps	$136, %xmm12, %xmm15
	movdqa	%xmm7, %xmm6
	movdqa	%xmm10, %xmm12
	movdqa	%xmm0, %xmm13
	shufps	$136, %xmm9, %xmm12
	shufps	$221, %xmm9, %xmm10
	shufps	$136, %xmm14, %xmm6
	shufps	$221, %xmm14, %xmm7
	movdqa	%xmm2, %xmm9
	movdqa	%xmm7, %xmm0
	movdqa	%xmm4, %xmm14
	movdqa	(%rsp), %xmm7
	shufps	$136, %xmm11, %xmm14
	shufps	$136, %xmm8, %xmm9
	shufps	$221, %xmm11, %xmm4
	shufps	$221, %xmm8, %xmm2
	movdqa	%xmm3, %xmm11
	movdqa	%xmm3, %xmm8
	movaps	%xmm4, 80(%rsp)
	movdqa	%xmm6, %xmm4
	shufps	$136, %xmm7, %xmm11
	shufps	$221, %xmm7, %xmm8
	movdqa	%xmm5, %xmm7
	movaps	%xmm8, (%rsp)
	movdqa	%xmm5, %xmm8
	shufps	$136, %xmm15, %xmm7
	shufps	$136, %xmm14, %xmm4
	shufps	$221, %xmm14, %xmm6
	shufps	$221, %xmm15, %xmm8
	movdqa	%xmm9, %xmm14
	movdqa	%xmm12, %xmm15
	movdqa	96(%rsp), %xmm3
	shufps	$136, %xmm13, %xmm15
	shufps	$221, %xmm13, %xmm12
	shufps	$136, %xmm11, %xmm14
	movdqa	%xmm14, %xmm13
	movdqa	%xmm9, %xmm14
	movaps	%xmm15, 64(%rsp)
	movdqa	%xmm10, %xmm9
	shufps	$221, %xmm11, %xmm14
	movdqa	%xmm1, %xmm11
	shufps	$221, %xmm3, %xmm1
	movaps	%xmm12, 48(%rsp)
	shufps	$136, %xmm3, %xmm11
	movdqa	16(%rsp), %xmm3
	movaps	%xmm14, 32(%rsp)
	shufps	$221, %xmm3, %xmm10
	movaps	%xmm10, 16(%rsp)
	shufps	$136, %xmm3, %xmm9
	movdqa	80(%rsp), %xmm5
	movdqa	%xmm0, %xmm3
	shufps	$136, %xmm5, %xmm3
	shufps	$221, %xmm5, %xmm0
	movdqa	(%rsp), %xmm5
	movdqa	%xmm0, %xmm15
	movdqa	%xmm2, %xmm0
	shufps	$221, %xmm5, %xmm2
	movaps	%xmm2, (%rsp)
	movdqa	64(%rsp), %xmm2
	shufps	$136, %xmm5, %xmm0
	movdqa	%xmm7, %xmm5
	movdqa	%xmm0, %xmm14
	movdqa	%xmm3, %xmm0
	shufps	$136, %xmm2, %xmm5
	shufps	$221, %xmm2, %xmm7
	movdqa	%xmm5, %xmm12
	movdqa	%xmm7, %xmm5
	movdqa	%xmm4, %xmm7
	shufps	$136, %xmm14, %xmm0
	shufps	$221, %xmm13, %xmm4
	shufps	$221, %xmm14, %xmm3
	shufps	$136, %xmm13, %xmm7
	movdqa	%xmm7, %xmm10
	movdqa	%xmm11, %xmm7
	shufps	$221, %xmm9, %xmm11
	shufps	$136, %xmm9, %xmm7
	movdqa	%xmm8, %xmm14
	movdqa	%xmm8, %xmm2
	movdqa	48(%rsp), %xmm9
	movdqa	16(%rsp), %xmm13
	movdqa	32(%rsp), %xmm8
	shufps	$136, %xmm9, %xmm14
	shufps	$221, %xmm9, %xmm2
	movdqa	%xmm6, %xmm9
	shufps	$136, %xmm8, %xmm9
	shufps	$221, %xmm8, %xmm6
	movdqa	%xmm1, %xmm8
	shufps	$221, %xmm13, %xmm1
	movaps	%xmm1, 16(%rsp)
	movdqa	(%rsp), %xmm1
	shufps	$136, %xmm13, %xmm8
	movdqa	%xmm15, %xmm13
	shufps	$136, %xmm1, %xmm13
	shufps	$221, %xmm1, %xmm15
	pxor	%xmm1, %xmm1
	movaps	%xmm15, (%rsp)
	movdqa	%xmm12, %xmm15
	punpckldq	%xmm1, %xmm12
	punpckhdq	%xmm1, %xmm15
	paddq	%xmm15, %xmm12
	movdqa	%xmm10, %xmm15
	punpckldq	%xmm1, %xmm10
	punpckhdq	%xmm1, %xmm15
	paddq	%xmm15, %xmm10
	paddq	%xmm12, %xmm10
	movdqa	%xmm7, %xmm12
	punpckldq	%xmm1, %xmm7
	punpckhdq	%xmm1, %xmm12
	paddq	%xmm12, %xmm7
	movdqa	%xmm0, %xmm12
	punpckhdq	%xmm1, %xmm0
	punpckldq	%xmm1, %xmm12
	paddq	%xmm12, %xmm7
	paddq	%xmm10, %xmm7
	movdqa	%xmm14, %xmm10
	punpckhdq	%xmm1, %xmm14
	punpckldq	%xmm1, %xmm10
	paddq	%xmm10, %xmm0
	movdqa	%xmm9, %xmm10
	punpckldq	%xmm1, %xmm9
	paddq	%xmm14, %xmm0
	punpckhdq	%xmm1, %xmm10
	paddq	%xmm7, %xmm0
	movdqa	%xmm9, %xmm7
	movdqa	%xmm8, %xmm9
	punpckldq	%xmm1, %xmm9
	paddq	%xmm10, %xmm7
	punpckhdq	%xmm1, %xmm8
	paddq	%xmm9, %xmm7
	movdqa	%xmm13, %xmm9
	punpckhdq	%xmm1, %xmm13
	punpckldq	%xmm1, %xmm9
	paddq	%xmm7, %xmm0
	movdqa	%xmm8, %xmm7
	paddq	%xmm9, %xmm7
	paddq	%xmm13, %xmm7
	paddq	%xmm7, %xmm0
	movdqa	%xmm5, %xmm7
	punpckldq	%xmm1, %xmm5
	punpckhdq	%xmm1, %xmm7
	paddq	%xmm7, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhdq	%xmm1, %xmm4
	punpckldq	%xmm1, %xmm7
	paddq	%xmm7, %xmm5
	movdqa	(%rsp), %xmm7
	paddq	%xmm5, %xmm0
	movdqa	%xmm11, %xmm5
	punpckhdq	%xmm1, %xmm11
	punpckldq	%xmm1, %xmm5
	paddq	%xmm5, %xmm4
	paddq	%xmm11, %xmm4
	paddq	%xmm4, %xmm0
	movdqa	%xmm3, %xmm4
	punpckldq	%xmm1, %xmm3
	punpckhdq	%xmm1, %xmm4
	paddq	%xmm4, %xmm3
	movdqa	%xmm2, %xmm4
	punpckhdq	%xmm1, %xmm2
	punpckldq	%xmm1, %xmm4
	paddq	%xmm4, %xmm3
	paddq	%xmm3, %xmm0
	movdqa	%xmm6, %xmm3
	punpckhdq	%xmm1, %xmm6
	punpckldq	%xmm1, %xmm3
	paddq	%xmm3, %xmm2
	paddq	%xmm6, %xmm2
	paddq	%xmm2, %xmm0
	movdqa	16(%rsp), %xmm2
	movdqa	%xmm2, %xmm3
	punpckldq	%xmm1, %xmm2
	punpckhdq	%xmm1, %xmm3
	paddq	%xmm3, %xmm2
	movdqa	%xmm7, %xmm3
	punpckldq	%xmm1, %xmm3
	paddq	%xmm3, %xmm2
	paddq	%xmm2, %xmm0
	movdqa	%xmm7, %xmm2
	punpckhdq	%xmm1, %xmm2
	paddq	%xmm2, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	paddq	%xmm1, %xmm0
	movq	%xmm0, %rax
	mulq	%rdx
	movq	%rdx, %rax
	movq	%xmm0, %rdx
	shrq	$29, %rax
	imulq	$1000000007, %rax, %rax
	subq	%rax, %rdx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	addq	$120, %rsp
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE64:
	.size	main, .-main
	.globl	d
	.bss
	.align 32
	.type	d, @object
	.size	d, 25856
d:
	.zero	25856
	.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	nextpint
	.type	nextpint, @function
nextpint:
.LFB63:
	.cfi_startproc
	endbr64
	movq	stdin(%rip), %rdi
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	8(%rdi), %rax
	movq	16(%rdi), %rsi
	cmpq	%rsi, %rax
	jnb	.L17
	leaq	1(%rax), %rcx
	movq	%rcx, 8(%rdi)
	movzbl	(%rax), %edx
	movl	%edx, %eax
.L3:
	subl	$48, %eax
	cmpb	$9, %al
	ja	.L8
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L5:
	leaq	1(%rcx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rcx), %edx
	movl	%edx, %ecx
	subl	$48, %ecx
	cmpb	$9, %cl
	jbe	.L9
.L6:
	movq	%rax, %rcx
.L8:
	cmpq	%rsi, %rcx
	jb	.L5
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movl	%eax, %edx
	leal	-48(%rdx), %ecx
	movq	8(%rdi), %rax
	movq	16(%rdi), %rsi
	cmpb	$9, %cl
	ja	.L6
	.p2align 4,,10
	.p2align 3
.L9:
	xorl	%r12d, %r12d
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L10:
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %edx
	leal	-48(%rdx), %eax
	cmpb	$9, %al
	ja	.L1
.L11:
	movq	8(%rdi), %rax
	movq	16(%rdi), %rsi
.L13:
	leal	(%r12,%r12,4), %ecx
	movsbl	%dl, %edx
	leal	-48(%rdx,%rcx,2), %r12d
	cmpq	%rsi, %rax
	jb	.L10
	call	__uflow@PLT
	movl	%eax, %edx
	subl	$48, %eax
	cmpb	$9, %al
	ja	.L1
	movq	stdin(%rip), %rdi
	jmp	.L11
	.p2align 4,,10
	.p2align 3
.L1:
	movl	%r12d, %eax
	popq	%r12
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4:
	.cfi_restore_state
	movq	%rcx, %rax
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L17:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movl	%eax, %edx
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rsi
	jmp	.L3
	.cfi_endproc
.LFE63:
	.size	nextpint, .-nextpint
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%lu\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB64:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	call	nextpint
	movl	$1, d(%rip)
	movl	%eax, %ebp
	testl	%eax, %eax
	je	.L19
	leaq	256+d(%rip), %rbx
	xorl	%r12d, %r12d
.L20:
	addl	$1, %r12d
	leaq	-256(%rbx), %r11
	xorl	%r10d, %r10d
.L39:
	movq	%r11, %rdx
	movq	%rbx, %r8
	movq	%rbx, %rax
	movl	$1, %r9d
	movl	(%rdx), %ecx
	xorl	%edi, %edi
	testl	%ecx, %ecx
	jne	.L64
	.p2align 4,,10
	.p2align 3
.L22:
	movl	4(%rdx), %ecx
	testl	%ecx, %ecx
	jne	.L65
.L26:
	movl	8(%rdx), %ecx
	testl	%ecx, %ecx
	jne	.L28
.L31:
	movl	12(%rdx), %ecx
	testl	%ecx, %ecx
	jne	.L66
.L29:
	cmpb	$4, %r9b
	je	.L67
.L34:
	movl	16(%rdx), %ecx
	addq	$16, %rdx
	addq	$1, %rdi
	addl	$1, %r9d
	addq	$64, %rax
	addq	$64, %r8
	testl	%ecx, %ecx
	je	.L22
.L64:
	addl	(%rax), %ecx
	movl	%ecx, %r13d
	movl	%ecx, %esi
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %esi
	shrl	%esi
	addl	%r13d, %esi
	movl	4(%rax), %r13d
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %ecx
	movl	%ecx, (%rax)
	movl	(%rdx), %esi
	addl	%esi, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %ecx
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %ecx
	shrl	%ecx
	addl	%r14d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %r13d
	movl	%r13d, 4(%rax)
	movl	8(%rax), %r13d
	addl	%esi, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %ecx
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %ecx
	shrl	%ecx
	addl	%r14d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %r13d
	movl	%r13d, 8(%rax)
	cmpb	$2, %dil
	jne	.L40
	cmpb	$1, %r10b
	je	.L22
.L40:
	addl	12(%rax), %esi
	movl	%esi, %r13d
	movl	%esi, %ecx
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %ecx
	shrl	%ecx
	addl	%r13d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %esi
	movl	%esi, 12(%rax)
	movl	4(%rdx), %ecx
	testl	%ecx, %ecx
	je	.L26
.L65:
	movl	16(%rax), %r13d
	addl	%ecx, %r13d
	addl	20(%rax), %ecx
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	movl	%ecx, %r14d
	shrl	$29, %esi
	imulq	$316718691, %r14, %r14
	imull	$1000000007, %esi, %esi
	shrq	$32, %r14
	subl	%esi, %r13d
	movl	%ecx, %esi
	subl	%r14d, %esi
	movd	%r13d, %xmm0
	shrl	%esi
	addl	%r14d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %ecx
	movd	%ecx, %xmm5
	punpckldq	%xmm5, %xmm0
	movq	%xmm0, 16(%r8)
	movl	4(%rdx), %esi
	movl	24(%rax), %r13d
	addl	%esi, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %ecx
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %ecx
	shrl	%ecx
	addl	%r14d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %r13d
	movl	%r13d, 24(%rax)
	cmpq	$2, %rdi
	je	.L26
	addl	28(%rax), %esi
	movl	%esi, %r13d
	movl	%esi, %ecx
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %ecx
	shrl	%ecx
	addl	%r13d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %esi
	movl	%esi, 28(%rax)
	movl	8(%rdx), %ecx
	testl	%ecx, %ecx
	je	.L31
.L28:
	movl	32(%rax), %r14d
	cmpb	$1, %r10b
	sete	%r13b
	addl	%ecx, %r14d
	movl	%r14d, %r15d
	movl	%r14d, %esi
	imulq	$316718691, %r15, %r15
	shrq	$32, %r15
	subl	%r15d, %esi
	shrl	%esi
	addl	%r15d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r14d
	movd	%r14d, %xmm0
	movl	36(%rax), %r14d
	addl	%ecx, %r14d
	movl	%r14d, %r15d
	movl	%r14d, %esi
	imulq	$316718691, %r15, %r15
	shrq	$32, %r15
	subl	%r15d, %esi
	shrl	%esi
	addl	%r15d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r14d
	movd	%r14d, %xmm6
	punpckldq	%xmm6, %xmm0
	movq	%xmm0, 32(%r8)
	addl	40(%rax), %ecx
	movl	%ecx, %r14d
	movl	%ecx, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %ecx
	cmpb	$1, %dil
	movl	%ecx, 40(%rax)
	sete	%cl
	orb	%r13b, %cl
	jne	.L31
	cmpb	$2, %dil
	sete	%cl
	testb	%r13b, %cl
	jne	.L31
	movl	8(%rdx), %esi
	addl	44(%rax), %esi
	movl	%esi, %r13d
	movl	%esi, %ecx
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %ecx
	shrl	%ecx
	addl	%r13d, %ecx
	shrl	$29, %ecx
	imull	$1000000007, %ecx, %ecx
	subl	%ecx, %esi
	movl	%esi, 44(%rax)
	movl	12(%rdx), %ecx
	testl	%ecx, %ecx
	je	.L29
	movl	48(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movd	%r13d, %xmm0
	movl	52(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	movl	%edi, %r14d
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movd	%r13d, %xmm3
	punpckldq	%xmm3, %xmm0
	movq	%xmm0, 48(%r8)
.L33:
	movl	56(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r15d
	movl	%r13d, %esi
	imulq	$316718691, %r15, %r15
	shrq	$32, %r15
	subl	%r15d, %esi
	shrl	%esi
	addl	%r15d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movl	%r13d, 56(%rax)
	cmpb	$2, %r14b
	jne	.L36
	cmpb	$1, %r10b
	je	.L34
	jmp	.L36
	.p2align 4,,10
	.p2align 3
.L66:
	movl	48(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movd	%r13d, %xmm0
	movl	52(%rax), %r13d
	addl	%ecx, %r13d
	movl	%r13d, %r14d
	movl	%r13d, %esi
	imulq	$316718691, %r14, %r14
	shrq	$32, %r14
	subl	%r14d, %esi
	shrl	%esi
	addl	%r14d, %esi
	movl	%edi, %r14d
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %r13d
	movd	%r13d, %xmm4
	punpckldq	%xmm4, %xmm0
	movq	%xmm0, 48(%r8)
	cmpq	$1, %rdi
	jne	.L33
.L36:
	addl	60(%rax), %ecx
	movl	%ecx, %r13d
	movl	%ecx, %esi
	imulq	$316718691, %r13, %r13
	shrq	$32, %r13
	subl	%r13d, %esi
	shrl	%esi
	addl	%r13d, %esi
	shrl	$29, %esi
	imull	$1000000007, %esi, %esi
	subl	%esi, %ecx
	movl	%ecx, 60(%rax)
	cmpb	$4, %r9b
	jne	.L34
.L67:
	addl	$1, %r10d
	addq	$64, %r11
	cmpb	$4, %r10b
	jne	.L39
	addq	$256, %rbx
	cmpl	%r12d, %ebp
	jne	.L20
.L19:
	movl	%ebp, %eax
	leaq	d(%rip), %rdx
	movl	$1, %edi
	salq	$8, %rax
	leaq	.LC0(%rip), %rsi
	addq	%rdx, %rax
	movabsq	$-8543223828751151131, %rdx
	movdqa	(%rax), %xmm0
	movdqa	240(%rax), %xmm1
	movdqa	16(%rax), %xmm15
	movdqa	32(%rax), %xmm14
	movaps	%xmm1, (%rsp)
	movdqa	48(%rax), %xmm13
	movdqa	%xmm0, %xmm1
	movdqa	64(%rax), %xmm4
	movdqa	80(%rax), %xmm12
	movdqa	96(%rax), %xmm11
	shufps	$136, %xmm15, %xmm1
	shufps	$221, %xmm15, %xmm0
	movdqa	%xmm14, %xmm15
	movdqa	112(%rax), %xmm10
	movdqa	128(%rax), %xmm2
	shufps	$221, %xmm13, %xmm14
	shufps	$136, %xmm13, %xmm15
	movdqa	%xmm4, %xmm13
	movdqa	144(%rax), %xmm9
	movdqa	160(%rax), %xmm8
	shufps	$136, %xmm12, %xmm13
	shufps	$221, %xmm12, %xmm4
	movdqa	%xmm11, %xmm12
	movdqa	176(%rax), %xmm7
	shufps	$136, %xmm10, %xmm12
	movdqa	192(%rax), %xmm3
	shufps	$221, %xmm10, %xmm11
	movdqa	%xmm2, %xmm10
	shufps	$136, %xmm9, %xmm10
	shufps	$221, %xmm9, %xmm2
	movdqa	%xmm8, %xmm9
	movdqa	208(%rax), %xmm6
	shufps	$136, %xmm7, %xmm9
	shufps	$221, %xmm7, %xmm8
	movdqa	%xmm3, %xmm7
	movdqa	224(%rax), %xmm5
	movaps	%xmm0, 32(%rsp)
	shufps	$221, %xmm6, %xmm3
	shufps	$136, %xmm6, %xmm7
	movdqa	%xmm5, %xmm0
	shufps	$136, (%rsp), %xmm0
	movdqa	%xmm0, %xmm6
	shufps	$221, (%rsp), %xmm5
	movdqa	%xmm7, %xmm0
	movaps	%xmm5, (%rsp)
	shufps	$221, %xmm6, %xmm7
	movdqa	%xmm1, %xmm5
	movaps	%xmm7, 16(%rsp)
	movdqa	32(%rsp), %xmm7
	shufps	$136, %xmm15, %xmm5
	shufps	$136, %xmm6, %xmm0
	shufps	$221, %xmm15, %xmm1
	movdqa	%xmm13, %xmm15
	shufps	$221, %xmm12, %xmm13
	movaps	%xmm13, 96(%rsp)
	shufps	$136, %xmm12, %xmm15
	movdqa	%xmm7, %xmm6
	movdqa	%xmm10, %xmm12
	movdqa	%xmm0, %xmm13
	shufps	$136, %xmm9, %xmm12
	shufps	$221, %xmm9, %xmm10
	shufps	$136, %xmm14, %xmm6
	shufps	$221, %xmm14, %xmm7
	movdqa	%xmm2, %xmm9
	movdqa	%xmm7, %xmm0
	movdqa	%xmm4, %xmm14
	movdqa	(%rsp), %xmm7
	shufps	$136, %xmm11, %xmm14
	shufps	$136, %xmm8, %xmm9
	shufps	$221, %xmm11, %xmm4
	shufps	$221, %xmm8, %xmm2
	movdqa	%xmm3, %xmm11
	movdqa	%xmm3, %xmm8
	movaps	%xmm4, 80(%rsp)
	movdqa	%xmm6, %xmm4
	shufps	$136, %xmm7, %xmm11
	shufps	$221, %xmm7, %xmm8
	movdqa	%xmm5, %xmm7
	movaps	%xmm8, (%rsp)
	movdqa	%xmm5, %xmm8
	shufps	$136, %xmm15, %xmm7
	shufps	$136, %xmm14, %xmm4
	shufps	$221, %xmm14, %xmm6
	shufps	$221, %xmm15, %xmm8
	movdqa	%xmm9, %xmm14
	movdqa	%xmm12, %xmm15
	movdqa	96(%rsp), %xmm3
	shufps	$136, %xmm13, %xmm15
	shufps	$221, %xmm13, %xmm12
	shufps	$136, %xmm11, %xmm14
	movdqa	%xmm14, %xmm13
	movdqa	%xmm9, %xmm14
	movaps	%xmm15, 64(%rsp)
	movdqa	%xmm10, %xmm9
	shufps	$221, %xmm11, %xmm14
	movdqa	%xmm1, %xmm11
	shufps	$221, %xmm3, %xmm1
	movaps	%xmm12, 48(%rsp)
	shufps	$136, %xmm3, %xmm11
	movdqa	16(%rsp), %xmm3
	movaps	%xmm14, 32(%rsp)
	shufps	$221, %xmm3, %xmm10
	movaps	%xmm10, 16(%rsp)
	shufps	$136, %xmm3, %xmm9
	movdqa	80(%rsp), %xmm5
	movdqa	%xmm0, %xmm3
	shufps	$136, %xmm5, %xmm3
	shufps	$221, %xmm5, %xmm0
	movdqa	(%rsp), %xmm5
	movdqa	%xmm0, %xmm15
	movdqa	%xmm2, %xmm0
	shufps	$221, %xmm5, %xmm2
	movaps	%xmm2, (%rsp)
	movdqa	64(%rsp), %xmm2
	shufps	$136, %xmm5, %xmm0
	movdqa	%xmm7, %xmm5
	movdqa	%xmm0, %xmm14
	movdqa	%xmm3, %xmm0
	shufps	$136, %xmm2, %xmm5
	shufps	$221, %xmm2, %xmm7
	movdqa	%xmm5, %xmm12
	movdqa	%xmm7, %xmm5
	movdqa	%xmm4, %xmm7
	shufps	$136, %xmm14, %xmm0
	shufps	$221, %xmm13, %xmm4
	shufps	$221, %xmm14, %xmm3
	shufps	$136, %xmm13, %xmm7
	movdqa	%xmm7, %xmm10
	movdqa	%xmm11, %xmm7
	shufps	$221, %xmm9, %xmm11
	shufps	$136, %xmm9, %xmm7
	movdqa	%xmm8, %xmm14
	movdqa	%xmm8, %xmm2
	movdqa	48(%rsp), %xmm9
	movdqa	16(%rsp), %xmm13
	movdqa	32(%rsp), %xmm8
	shufps	$136, %xmm9, %xmm14
	shufps	$221, %xmm9, %xmm2
	movdqa	%xmm6, %xmm9
	shufps	$136, %xmm8, %xmm9
	shufps	$221, %xmm8, %xmm6
	movdqa	%xmm1, %xmm8
	shufps	$221, %xmm13, %xmm1
	movaps	%xmm1, 16(%rsp)
	movdqa	(%rsp), %xmm1
	shufps	$136, %xmm13, %xmm8
	movdqa	%xmm15, %xmm13
	shufps	$136, %xmm1, %xmm13
	shufps	$221, %xmm1, %xmm15
	pxor	%xmm1, %xmm1
	movaps	%xmm15, (%rsp)
	movdqa	%xmm12, %xmm15
	punpckldq	%xmm1, %xmm12
	punpckhdq	%xmm1, %xmm15
	paddq	%xmm15, %xmm12
	movdqa	%xmm10, %xmm15
	punpckldq	%xmm1, %xmm10
	punpckhdq	%xmm1, %xmm15
	paddq	%xmm15, %xmm10
	paddq	%xmm12, %xmm10
	movdqa	%xmm7, %xmm12
	punpckldq	%xmm1, %xmm7
	punpckhdq	%xmm1, %xmm12
	paddq	%xmm12, %xmm7
	movdqa	%xmm0, %xmm12
	punpckhdq	%xmm1, %xmm0
	punpckldq	%xmm1, %xmm12
	paddq	%xmm12, %xmm7
	paddq	%xmm10, %xmm7
	movdqa	%xmm14, %xmm10
	punpckhdq	%xmm1, %xmm14
	punpckldq	%xmm1, %xmm10
	paddq	%xmm10, %xmm0
	movdqa	%xmm9, %xmm10
	punpckldq	%xmm1, %xmm9
	paddq	%xmm14, %xmm0
	punpckhdq	%xmm1, %xmm10
	paddq	%xmm7, %xmm0
	movdqa	%xmm9, %xmm7
	movdqa	%xmm8, %xmm9
	punpckldq	%xmm1, %xmm9
	paddq	%xmm10, %xmm7
	punpckhdq	%xmm1, %xmm8
	paddq	%xmm9, %xmm7
	movdqa	%xmm13, %xmm9
	punpckhdq	%xmm1, %xmm13
	punpckldq	%xmm1, %xmm9
	paddq	%xmm7, %xmm0
	movdqa	%xmm8, %xmm7
	paddq	%xmm9, %xmm7
	paddq	%xmm13, %xmm7
	paddq	%xmm7, %xmm0
	movdqa	%xmm5, %xmm7
	punpckldq	%xmm1, %xmm5
	punpckhdq	%xmm1, %xmm7
	paddq	%xmm7, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhdq	%xmm1, %xmm4
	punpckldq	%xmm1, %xmm7
	paddq	%xmm7, %xmm5
	movdqa	(%rsp), %xmm7
	paddq	%xmm5, %xmm0
	movdqa	%xmm11, %xmm5
	punpckhdq	%xmm1, %xmm11
	punpckldq	%xmm1, %xmm5
	paddq	%xmm5, %xmm4
	paddq	%xmm11, %xmm4
	paddq	%xmm4, %xmm0
	movdqa	%xmm3, %xmm4
	punpckldq	%xmm1, %xmm3
	punpckhdq	%xmm1, %xmm4
	paddq	%xmm4, %xmm3
	movdqa	%xmm2, %xmm4
	punpckhdq	%xmm1, %xmm2
	punpckldq	%xmm1, %xmm4
	paddq	%xmm4, %xmm3
	paddq	%xmm3, %xmm0
	movdqa	%xmm6, %xmm3
	punpckhdq	%xmm1, %xmm6
	punpckldq	%xmm1, %xmm3
	paddq	%xmm3, %xmm2
	paddq	%xmm6, %xmm2
	paddq	%xmm2, %xmm0
	movdqa	16(%rsp), %xmm2
	movdqa	%xmm2, %xmm3
	punpckldq	%xmm1, %xmm2
	punpckhdq	%xmm1, %xmm3
	paddq	%xmm3, %xmm2
	movdqa	%xmm7, %xmm3
	punpckldq	%xmm1, %xmm3
	paddq	%xmm3, %xmm2
	paddq	%xmm2, %xmm0
	movdqa	%xmm7, %xmm2
	punpckhdq	%xmm1, %xmm2
	paddq	%xmm2, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	paddq	%xmm1, %xmm0
	movq	%xmm0, %rax
	mulq	%rdx
	movq	%rdx, %rax
	movq	%xmm0, %rdx
	shrq	$29, %rax
	imulq	$1000000007, %rax, %rax
	subq	%rax, %rdx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	addq	$120, %rsp
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE64:
	.size	main, .-main
	.globl	d
	.bss
	.align 32
	.type	d, @object
	.size	d, 25856
d:
	.zero	25856
	.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 <float.h>
#include <inttypes.h>
#include <limits.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <math.h>
#ifdef __cplusplus
#include <bits/stdc++.h>
#endif

#define P 1000000007

uint32_t nextpint(void){ char c=getchar_unlocked(); while(c<'0'||'9'<c) c=getchar_unlocked(); uint32_t x=0; while('0'<=c && c<='9'){ x=x*10+c-'0'; c=getchar_unlocked(); } return x; }

uint32_t d[101][4][4][4];
int main(void){
	uint32_t n=nextpint();
	d[0][0][0][0]=1;
	for(uint32_t m=0; m<n; m++){
		for(uint8_t c3=0; c3<4; c3++){
			for(uint8_t c2=0; c2<4; c2++){
				for(uint8_t c1=0; c1<4; c1++){
					if(d[m][c3][c2][c1]==0) continue;
					for(uint8_t a=0; a<4; a++){
						if(c2==1&&c1==2&&a==3)continue;
						if(c2==2&&c1==1&&a==3)continue;
						if(c2==1&&c1==3&&a==2)continue;
						if(c3==1&&c2==2&&a==3)continue;
						if(c3==1&&c1==2&&a==3)continue;
						d[m+1][c2][c1][a] += d[m][c3][c2][c1];
						d[m+1][c2][c1][a] %= P;
					}
				}
			}
		}
	}
	uint64_t ans=0;
	for(uint8_t c3=0; c3<4; c3++){
		for(uint8_t c2=0; c2<4; c2++){
			for(uint8_t c1=0; c1<4; c1++){
				ans += d[n][c3][c2][c1];
			}
		}
	}
	ans %= P;
	printf("%"PRIu64"\n", ans);
}

5
 6
 8
 15
 12
 9
 14
 7
 13
 20

865
 3247
 45719
 478366600
 9058467
 171531
 127504505
 12185
 33985227
 580025381

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

```c
#include <float.h>
#include <inttypes.h>
#include <limits.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <math.h>
#ifdef __cplusplus
#include <bits/stdc++.h>
#endif

#define P 1000000007

uint32_t nextpint(void){ char c=getchar_unlocked(); while(c<'0'||'9'<c) c=getchar_unlocked(); uint32_t x=0; while('0'<=c && c<='9'){ x=x*10+c-'0'; c=getchar_unlocked(); } return x; }

uint32_t d[101][4][4][4];
int main(void){
	uint32_t n=nextpint();
	d[0][0][0][0]=1;
	for(uint32_t m=0; m<n; m++){
		for(uint8_t c3=0; c3<4; c3++){
			for(uint8_t c2=0; c2<4; c2++){
				for(uint8_t c1=0; c1<4; c1++){
					if(d[m][c3][c2][c1]==0) continue;
					for(uint8_t a=0; a<4; a++){
						if(c2==1&&c1==2&&a==3)continue;
						if(c2==2&&c1==1&&a==3)continue;
						if(c2==1&&c1==3&&a==2)continue;
						if(c3==1&&c2==2&&a==3)continue;
						if(c3==1&&c1==2&&a==3)continue;
						d[m+1][c2][c1][a] += d[m][c3][c2][c1];
						d[m+1][c2][c1][a] %= P;
					}
				}
			}
		}
	}
	uint64_t ans=0;
	for(uint8_t c3=0; c3<4; c3++){
		for(uint8_t c2=0; c2<4; c2++){
			for(uint8_t c1=0; c1<4; c1++){
				ans += d[n][c3][c2][c1];
			}
		}
	}
	ans %= P;
	printf("%"PRIu64"\n", ans);
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	nextpint
	.type	nextpint, @function
nextpint:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
	jmp	.L2
.L3:
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
.L2:
	cmpb	$47, -5(%rbp)
	jle	.L3
	cmpb	$57, -5(%rbp)
	jg	.L3
	movl	$0, -4(%rbp)
	jmp	.L4
.L6:
	movl	-4(%rbp), %edx
	movl	%edx, %eax
	sall	$2, %eax
	addl	%edx, %eax
	addl	%eax, %eax
	movl	%eax, %edx
	movsbl	-5(%rbp), %eax
	addl	%edx, %eax
	subl	$48, %eax
	movl	%eax, -4(%rbp)
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
.L4:
	cmpb	$47, -5(%rbp)
	jle	.L5
	cmpb	$57, -5(%rbp)
	jle	.L6
.L5:
	movl	-4(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	nextpint, .-nextpint
	.globl	d
	.bss
	.align 32
	.type	d, @object
	.size	d, 25856
d:
	.zero	25856
	.section	.rodata
.LC0:
	.string	"%lu\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB7:
	.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
	call	nextpint
	movl	%eax, -12(%rbp)
	movl	$1, d(%rip)
	movl	$0, -16(%rbp)
	jmp	.L9
.L26:
	movb	$0, -23(%rbp)
	jmp	.L10
.L25:
	movb	$0, -22(%rbp)
	jmp	.L11
.L24:
	movb	$0, -21(%rbp)
	jmp	.L12
.L23:
	movzbl	-23(%rbp), %edx
	movzbl	-22(%rbp), %eax
	movzbl	-21(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-16(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	je	.L34
	movb	$0, -20(%rbp)
	jmp	.L15
.L22:
	cmpb	$1, -22(%rbp)
	jne	.L16
	cmpb	$2, -21(%rbp)
	jne	.L16
	cmpb	$3, -20(%rbp)
	je	.L35
.L16:
	cmpb	$2, -22(%rbp)
	jne	.L18
	cmpb	$1, -21(%rbp)
	jne	.L18
	cmpb	$3, -20(%rbp)
	je	.L36
.L18:
	cmpb	$1, -22(%rbp)
	jne	.L19
	cmpb	$3, -21(%rbp)
	jne	.L19
	cmpb	$2, -20(%rbp)
	je	.L37
.L19:
	cmpb	$1, -23(%rbp)
	jne	.L20
	cmpb	$2, -22(%rbp)
	jne	.L20
	cmpb	$3, -20(%rbp)
	je	.L38
.L20:
	cmpb	$1, -23(%rbp)
	jne	.L21
	cmpb	$2, -21(%rbp)
	jne	.L21
	cmpb	$3, -20(%rbp)
	je	.L39
.L21:
	movl	-16(%rbp), %eax
	leal	1(%rax), %esi
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rdx
	movl	%esi, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %edi
	movzbl	-23(%rbp), %edx
	movzbl	-22(%rbp), %eax
	movzbl	-21(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-16(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %ecx
	movl	-16(%rbp), %eax
	leal	1(%rax), %r8d
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %esi
	addl	%edi, %ecx
	movslq	%esi, %rsi
	movslq	%edx, %rdx
	movl	%r8d, %edi
	salq	$2, %rdi
	addq	%rdi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	-16(%rbp), %eax
	leal	1(%rax), %esi
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rdx
	movl	%esi, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-16(%rbp), %eax
	leal	1(%rax), %r9d
	movzbl	-22(%rbp), %esi
	movzbl	-21(%rbp), %ecx
	movzbl	-20(%rbp), %edi
	movl	%edx, %eax
	imulq	$316718691, %rax, %rax
	shrq	$32, %rax
	movq	%rax, %r8
	movl	%edx, %eax
	subl	%r8d, %eax
	shrl	%eax
	addl	%r8d, %eax
	shrl	$29, %eax
	imull	$1000000007, %eax, %r8d
	movl	%edx, %eax
	subl	%r8d, %eax
	movslq	%edi, %rdi
	movslq	%esi, %rdx
	movl	%r9d, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	movslq	%ecx, %rcx
	salq	$2, %rdx
	addq	%rcx, %rdx
	salq	$2, %rdx
	addq	%rdi, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	d(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	jmp	.L17
.L35:
	nop
	jmp	.L17
.L36:
	nop
	jmp	.L17
.L37:
	nop
	jmp	.L17
.L38:
	nop
	jmp	.L17
.L39:
	nop
.L17:
	movzbl	-20(%rbp), %eax
	addl	$1, %eax
	movb	%al, -20(%rbp)
.L15:
	cmpb	$3, -20(%rbp)
	jbe	.L22
	jmp	.L14
.L34:
	nop
.L14:
	movzbl	-21(%rbp), %eax
	addl	$1, %eax
	movb	%al, -21(%rbp)
.L12:
	cmpb	$3, -21(%rbp)
	jbe	.L23
	movzbl	-22(%rbp), %eax
	addl	$1, %eax
	movb	%al, -22(%rbp)
.L11:
	cmpb	$3, -22(%rbp)
	jbe	.L24
	movzbl	-23(%rbp), %eax
	addl	$1, %eax
	movb	%al, -23(%rbp)
.L10:
	cmpb	$3, -23(%rbp)
	jbe	.L25
	addl	$1, -16(%rbp)
.L9:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jb	.L26
	movq	$0, -8(%rbp)
	movb	$0, -19(%rbp)
	jmp	.L27
.L32:
	movb	$0, -18(%rbp)
	jmp	.L28
.L31:
	movb	$0, -17(%rbp)
	jmp	.L29
.L30:
	movzbl	-19(%rbp), %edx
	movzbl	-18(%rbp), %eax
	movzbl	-17(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-12(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %eax
	addq	%rax, -8(%rbp)
	movzbl	-17(%rbp), %eax
	addl	$1, %eax
	movb	%al, -17(%rbp)
.L29:
	cmpb	$3, -17(%rbp)
	jbe	.L30
	movzbl	-18(%rbp), %eax
	addl	$1, %eax
	movb	%al, -18(%rbp)
.L28:
	cmpb	$3, -18(%rbp)
	jbe	.L31
	movzbl	-19(%rbp), %eax
	addl	$1, %eax
	movb	%al, -19(%rbp)
.L27:
	cmpb	$3, -19(%rbp)
	jbe	.L32
	movq	-8(%rbp), %rcx
	movabsq	$-8543223828751151131, %rdx
	movq	%rcx, %rax
	mulq	%rdx
	movq	%rdx, %rax
	shrq	$29, %rax
	imulq	$1000000007, %rax, %rdx
	movq	%rcx, %rax
	subq	%rdx, %rax
	movq	%rax, -8(%rbp)
	movq	-8(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.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	nextpint
	.type	nextpint, @function
nextpint:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
	jmp	.L2
.L3:
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
.L2:
	cmpb	$47, -5(%rbp)
	jle	.L3
	cmpb	$57, -5(%rbp)
	jg	.L3
	movl	$0, -4(%rbp)
	jmp	.L4
.L6:
	movl	-4(%rbp), %edx
	movl	%edx, %eax
	sall	$2, %eax
	addl	%edx, %eax
	addl	%eax, %eax
	movl	%eax, %edx
	movsbl	-5(%rbp), %eax
	addl	%edx, %eax
	subl	$48, %eax
	movl	%eax, -4(%rbp)
	call	getchar_unlocked@PLT
	movb	%al, -5(%rbp)
.L4:
	cmpb	$47, -5(%rbp)
	jle	.L5
	cmpb	$57, -5(%rbp)
	jle	.L6
.L5:
	movl	-4(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	nextpint, .-nextpint
	.globl	d
	.bss
	.align 32
	.type	d, @object
	.size	d, 25856
d:
	.zero	25856
	.section	.rodata
.LC0:
	.string	"%lu\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB7:
	.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
	call	nextpint
	movl	%eax, -12(%rbp)
	movl	$1, d(%rip)
	movl	$0, -16(%rbp)
	jmp	.L9
.L26:
	movb	$0, -23(%rbp)
	jmp	.L10
.L25:
	movb	$0, -22(%rbp)
	jmp	.L11
.L24:
	movb	$0, -21(%rbp)
	jmp	.L12
.L23:
	movzbl	-23(%rbp), %edx
	movzbl	-22(%rbp), %eax
	movzbl	-21(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-16(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	je	.L34
	movb	$0, -20(%rbp)
	jmp	.L15
.L22:
	cmpb	$1, -22(%rbp)
	jne	.L16
	cmpb	$2, -21(%rbp)
	jne	.L16
	cmpb	$3, -20(%rbp)
	je	.L35
.L16:
	cmpb	$2, -22(%rbp)
	jne	.L18
	cmpb	$1, -21(%rbp)
	jne	.L18
	cmpb	$3, -20(%rbp)
	je	.L36
.L18:
	cmpb	$1, -22(%rbp)
	jne	.L19
	cmpb	$3, -21(%rbp)
	jne	.L19
	cmpb	$2, -20(%rbp)
	je	.L37
.L19:
	cmpb	$1, -23(%rbp)
	jne	.L20
	cmpb	$2, -22(%rbp)
	jne	.L20
	cmpb	$3, -20(%rbp)
	je	.L38
.L20:
	cmpb	$1, -23(%rbp)
	jne	.L21
	cmpb	$2, -21(%rbp)
	jne	.L21
	cmpb	$3, -20(%rbp)
	je	.L39
.L21:
	movl	-16(%rbp), %eax
	leal	1(%rax), %esi
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rdx
	movl	%esi, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %edi
	movzbl	-23(%rbp), %edx
	movzbl	-22(%rbp), %eax
	movzbl	-21(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-16(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %ecx
	movl	-16(%rbp), %eax
	leal	1(%rax), %r8d
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %esi
	addl	%edi, %ecx
	movslq	%esi, %rsi
	movslq	%edx, %rdx
	movl	%r8d, %edi
	salq	$2, %rdi
	addq	%rdi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	-16(%rbp), %eax
	leal	1(%rax), %esi
	movzbl	-22(%rbp), %edx
	movzbl	-21(%rbp), %eax
	movzbl	-20(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rdx
	movl	%esi, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-16(%rbp), %eax
	leal	1(%rax), %r9d
	movzbl	-22(%rbp), %esi
	movzbl	-21(%rbp), %ecx
	movzbl	-20(%rbp), %edi
	movl	%edx, %eax
	imulq	$316718691, %rax, %rax
	shrq	$32, %rax
	movq	%rax, %r8
	movl	%edx, %eax
	subl	%r8d, %eax
	shrl	%eax
	addl	%r8d, %eax
	shrl	$29, %eax
	imull	$1000000007, %eax, %r8d
	movl	%edx, %eax
	subl	%r8d, %eax
	movslq	%edi, %rdi
	movslq	%esi, %rdx
	movl	%r9d, %esi
	salq	$2, %rsi
	addq	%rsi, %rdx
	movslq	%ecx, %rcx
	salq	$2, %rdx
	addq	%rcx, %rdx
	salq	$2, %rdx
	addq	%rdi, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	d(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	jmp	.L17
.L35:
	nop
	jmp	.L17
.L36:
	nop
	jmp	.L17
.L37:
	nop
	jmp	.L17
.L38:
	nop
	jmp	.L17
.L39:
	nop
.L17:
	movzbl	-20(%rbp), %eax
	addl	$1, %eax
	movb	%al, -20(%rbp)
.L15:
	cmpb	$3, -20(%rbp)
	jbe	.L22
	jmp	.L14
.L34:
	nop
.L14:
	movzbl	-21(%rbp), %eax
	addl	$1, %eax
	movb	%al, -21(%rbp)
.L12:
	cmpb	$3, -21(%rbp)
	jbe	.L23
	movzbl	-22(%rbp), %eax
	addl	$1, %eax
	movb	%al, -22(%rbp)
.L11:
	cmpb	$3, -22(%rbp)
	jbe	.L24
	movzbl	-23(%rbp), %eax
	addl	$1, %eax
	movb	%al, -23(%rbp)
.L10:
	cmpb	$3, -23(%rbp)
	jbe	.L25
	addl	$1, -16(%rbp)
.L9:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jb	.L26
	movq	$0, -8(%rbp)
	movb	$0, -19(%rbp)
	jmp	.L27
.L32:
	movb	$0, -18(%rbp)
	jmp	.L28
.L31:
	movb	$0, -17(%rbp)
	jmp	.L29
.L30:
	movzbl	-19(%rbp), %edx
	movzbl	-18(%rbp), %eax
	movzbl	-17(%rbp), %ecx
	movslq	%ecx, %rcx
	movslq	%edx, %rsi
	movl	-12(%rbp), %edx
	salq	$2, %rdx
	addq	%rsi, %rdx
	cltq
	salq	$2, %rdx
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	d(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %eax
	addq	%rax, -8(%rbp)
	movzbl	-17(%rbp), %eax
	addl	$1, %eax
	movb	%al, -17(%rbp)
.L29:
	cmpb	$3, -17(%rbp)
	jbe	.L30
	movzbl	-18(%rbp), %eax
	addl	$1, %eax
	movb	%al, -18(%rbp)
.L28:
	cmpb	$3, -18(%rbp)
	jbe	.L31
	movzbl	-19(%rbp), %eax
	addl	$1, %eax
	movb	%al, -19(%rbp)
.L27:
	cmpb	$3, -19(%rbp)
	jbe	.L32
	movq	-8(%rbp), %rcx
	movabsq	$-8543223828751151131, %rdx
	movq	%rcx, %rax
	mulq	%rdx
	movq	%rdx, %rax
	shrq	$29, %rax
	imulq	$1000000007, %rax, %rdx
	movq	%rcx, %rax
	subq	%rdx, %rax
	movq	%rax, -8(%rbp)
	movq	-8(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.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:
