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 <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

// 内部定数
#define D_ON			1										// 汎用フラグ - ON
#define D_OFF			0										// 汎用フラグ - OFF
#define D_MASS_MAX		5005									// 最大マス数

// 内部変数
static FILE *szpFpI;											// 入力
static int siMCnt;												// マス数
static int si1To[D_MASS_MAX];									// 移動先[移動元]
static int si1Add[D_MASS_MAX];									// 加算値[移動先]
static int si1RCnt[D_MASS_MAX];									// 周回数
static long long sl1RScore[D_MASS_MAX];							// 周回スコア

// 内部変数 - テスト用
#ifdef D_TEST
	static int siRes;
	static FILE *szpFpA;
	static int siTNo;
#endif

// １行出力
int
fOutLine(
	char *pcpLine				// <I> １行
)
{
	char lc1Buf[1024];

#ifdef D_TEST
	lc1Buf[0] = '\0';
	fgets(lc1Buf, sizeof(lc1Buf), szpFpA);
	if (strcmp(lc1Buf, pcpLine)) {
		siRes = -1;
	}
#else
	printf("%s", pcpLine);
#endif

	return 0;
}

// 最大値 - 取得
long long
fGetMaxL(
	long long plVal1			// <I> 値１
	, long long plVal2			// <I> 値２
)
{
	if (plVal1 > plVal2) {
		return plVal1;
	}
	else {
		return plVal2;
	}
}

// 実行メイン
int
fMain(
)
{
	int i, j;
	char lc1Buf[1024];

	// マス数・K - 取得
	int liK;
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);
	sscanf(lc1Buf, "%d%d", &siMCnt, &liK);

	// 移動先 - 取得
	for (i = 1; i <= siMCnt; i++) {
		fscanf(szpFpI, "%d", &si1To[i]);
	}
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);

	// 加算値 - 取得
	for (i = 1; i <= siMCnt; i++) {
		fscanf(szpFpI, "%d", &si1Add[i]);
	}
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);

	// 周回数・周回スコア - セット
	for (i = 1; i <= siMCnt; i++) {

		// 開始位置
		char lc1Done[D_MASS_MAX];
		memset(lc1Done, D_OFF, sizeof(lc1Done));
		int liMass = i;
		lc1Done[liMass] = D_ON;
		long long llScore = 0;

		// 移動
		for (j = 1; ; j++) {
			liMass = si1To[liMass];
			llScore += si1Add[liMass];

			// 到着済
			if (lc1Done[liMass] != D_OFF) {
				break;
			}
		}

		// 開始位置以外
		if (i != liMass) {
			si1RCnt[i] = 0;
			continue;
		}

		// 周回数・周回スコア - セット
		si1RCnt[i] = j;
		sl1RScore[i] = llScore;
	}

	// 最大値 - 取得
	long long llMax = LLONG_MIN;
	for (i = 1; i <= siMCnt; i++) {
		int liMass = i;
		long long llScore = 0;

		// 移動
		for (j = 1; j <= siMCnt * 2 && j <= liK; j++) {
			liMass = si1To[liMass];
			llScore += si1Add[liMass];
			llMax = fGetMaxL(llMax, llScore);

			// 周回不可
			if (si1RCnt[i] < 1) {
				continue;
			}
			if (sl1RScore[i] < 1) {
				continue;
			}

			// 周回
			long long llSum = llScore + sl1RScore[i] * (long long)((liK - j) / si1RCnt[i]);
			llMax = fGetMaxL(llMax, llSum);
		}
	}

	// 出力
	sprintf(lc1Buf, "%lld\n", llMax);
	fOutLine(lc1Buf);

	return 0;
}

// １回実行
int
fOne(
)
{
	int liRet;
	char lc1Buf[1024];

	// 入力 - セット
#ifdef D_TEST
	sprintf(lc1Buf, ".\\Test\\T%d.txt", siTNo);
	szpFpI = fopen(lc1Buf, "r");
	sprintf(lc1Buf, ".\\Test\\A%d.txt", siTNo);
	szpFpA = fopen(lc1Buf, "r");
	siRes = 0;
#else
	szpFpI = stdin;
#endif

	// 実行メイン
	liRet = fMain();

	// 残データ有無
#ifdef D_TEST
	lc1Buf[0] = '\0';
	fgets(lc1Buf, sizeof(lc1Buf), szpFpA);
	if (strcmp(lc1Buf, "")) {
		siRes = -1;
	}
#endif

	// テストファイルクローズ
#ifdef D_TEST
	fclose(szpFpI);
	fclose(szpFpA);
#endif

	// テスト結果
#ifdef D_TEST
	if (siRes == 0) {
		printf("OK %d\n", siTNo);
	}
	else {
		printf("NG %d\n", siTNo);
	}
#endif

	return 0;
}

// プログラム開始
int
main()
{

#ifdef D_TEST
	int i;
	for (i = D_TEST_SNO; i <= D_TEST_ENO; i++) {
		siTNo = i;
		fOne();
	}
#else
	fOne();
#endif

	return 0;
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.local	szpFpI
	.comm	szpFpI,8,8
	.local	siMCnt
	.comm	siMCnt,4,4
	.local	si1To
	.comm	si1To,20020,32
	.local	si1Add
	.comm	si1Add,20020,32
	.local	si1RCnt
	.comm	si1RCnt,20020,32
	.local	sl1RScore
	.comm	sl1RScore,40040,32
	.section	.rodata
.LC0:
	.string	"%s"
	.text
	.globl	fOutLine
	.type	fOutLine, @function
fOutLine:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$1056, %rsp
	movq	%rdi, -1048(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	-1048(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L3
	call	__stack_chk_fail@PLT
.L3:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	fOutLine, .-fOutLine
	.globl	fGetMaxL
	.type	fGetMaxL, @function
fGetMaxL:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	cmpq	-16(%rbp), %rax
	jle	.L5
	movq	-8(%rbp), %rax
	jmp	.L6
.L5:
	movq	-16(%rbp), %rax
.L6:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	fGetMaxL, .-fGetMaxL
	.section	.rodata
.LC1:
	.string	"%d%d"
.LC2:
	.string	"%d"
.LC3:
	.string	"%lld\n"
	.text
	.globl	fMain
	.type	fMain, @function
fMain:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$4096, %rsp
	orq	$0, (%rsp)
	subq	$2016, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	leaq	-6100(%rbp), %rdx
	leaq	-6048(%rbp), %rax
	movq	%rdx, %rcx
	leaq	siMCnt(%rip), %rdx
	leaq	.LC1(%rip), %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_sscanf@PLT
	movl	$1, -6096(%rbp)
	jmp	.L8
.L9:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	addq	%rax, %rdx
	movq	szpFpI(%rip), %rax
	leaq	.LC2(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_fscanf@PLT
	addl	$1, -6096(%rbp)
.L8:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L9
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	movl	$1, -6096(%rbp)
	jmp	.L10
.L11:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	addq	%rax, %rdx
	movq	szpFpI(%rip), %rax
	leaq	.LC2(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_fscanf@PLT
	addl	$1, -6096(%rbp)
.L10:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L11
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	movl	$1, -6096(%rbp)
	jmp	.L12
.L18:
	leaq	-5024(%rbp), %rax
	movl	$5005, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	movl	-6096(%rbp), %eax
	movl	%eax, -6088(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	movb	$1, -5024(%rbp,%rax)
	movq	$0, -6080(%rbp)
	movl	$1, -6092(%rbp)
.L15:
	movl	-6088(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, -6088(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	addq	%rax, -6080(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	movzbl	-5024(%rbp,%rax), %eax
	testb	%al, %al
	jne	.L30
	addl	$1, -6092(%rbp)
	jmp	.L15
.L30:
	nop
	movl	-6096(%rbp), %eax
	cmpl	-6088(%rbp), %eax
	je	.L16
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1RCnt(%rip), %rax
	movl	$0, (%rdx,%rax)
	jmp	.L17
.L16:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	si1RCnt(%rip), %rdx
	movl	-6092(%rbp), %eax
	movl	%eax, (%rcx,%rdx)
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	leaq	sl1RScore(%rip), %rdx
	movq	-6080(%rbp), %rax
	movq	%rax, (%rcx,%rdx)
.L17:
	addl	$1, -6096(%rbp)
.L12:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L18
	movabsq	$-9223372036854775808, %rax
	movq	%rax, -6072(%rbp)
	movl	$1, -6096(%rbp)
	jmp	.L19
.L26:
	movl	-6096(%rbp), %eax
	movl	%eax, -6084(%rbp)
	movq	$0, -6064(%rbp)
	movl	$1, -6092(%rbp)
	jmp	.L20
.L25:
	movl	-6084(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, -6084(%rbp)
	movl	-6084(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	addq	%rax, -6064(%rbp)
	movq	-6064(%rbp), %rdx
	movq	-6072(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	fGetMaxL
	movq	%rax, -6072(%rbp)
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1RCnt(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jle	.L31
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sl1RScore(%rip), %rax
	movq	(%rdx,%rax), %rax
	testq	%rax, %rax
	jle	.L32
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sl1RScore(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-6100(%rbp), %eax
	subl	-6092(%rbp), %eax
	movl	-6096(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rsi
	leaq	si1RCnt(%rip), %rdx
	movl	(%rsi,%rdx), %edi
	cltd
	idivl	%edi
	cltq
	imulq	%rax, %rcx
	movq	%rcx, %rdx
	movq	-6064(%rbp), %rax
	addq	%rdx, %rax
	movq	%rax, -6056(%rbp)
	movq	-6056(%rbp), %rdx
	movq	-6072(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	fGetMaxL
	movq	%rax, -6072(%rbp)
	jmp	.L22
.L31:
	nop
	jmp	.L22
.L32:
	nop
.L22:
	addl	$1, -6092(%rbp)
.L20:
	movl	siMCnt(%rip), %eax
	addl	%eax, %eax
	cmpl	%eax, -6092(%rbp)
	jg	.L24
	movl	-6100(%rbp), %eax
	cmpl	%eax, -6092(%rbp)
	jle	.L25
.L24:
	addl	$1, -6096(%rbp)
.L19:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L26
	movq	-6072(%rbp), %rdx
	leaq	-6048(%rbp), %rax
	leaq	.LC3(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	sprintf@PLT
	leaq	-6048(%rbp), %rax
	movq	%rax, %rdi
	call	fOutLine
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L28
	call	__stack_chk_fail@PLT
.L28:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	fMain, .-fMain
	.globl	fOne
	.type	fOne, @function
fOne:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$1056, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	stdin(%rip), %rax
	movq	%rax, szpFpI(%rip)
	movl	$0, %eax
	call	fMain
	movl	%eax, -1044(%rbp)
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	fOne, .-fOne
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	$0, %eax
	call	fOne
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
user
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
	.text
	.p2align 4
	.globl	fOutLine
	.type	fOutLine, @function
fOutLine:
.LFB51:
	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rdi, %rdx
	leaq	.LC0(%rip), %rsi
	xorl	%eax, %eax
	movl	$1, %edi
	call	__printf_chk@PLT
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE51:
	.size	fOutLine, .-fOutLine
	.p2align 4
	.globl	fGetMaxL
	.type	fGetMaxL, @function
fGetMaxL:
.LFB52:
	.cfi_startproc
	endbr64
	cmpq	%rsi, %rdi
	movq	%rsi, %rax
	cmovge	%rdi, %rax
	ret
	.cfi_endproc
.LFE52:
	.size	fGetMaxL, .-fGetMaxL
	.section	.rodata.str1.1
.LC1:
	.string	"%d%d"
.LC2:
	.string	"%d"
.LC3:
	.string	"%lld\n"
	.text
	.p2align 4
	.globl	fMain
	.type	fMain, @function
fMain:
.LFB53:
	.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	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$1992, %rsp
	.cfi_def_cfa_offset 6144
	movq	szpFpI(%rip), %rdx
	movl	$1024, %esi
	movq	%fs:40, %rax
	movq	%rax, 6072(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rbx
	movq	%rbx, %rdi
	movq	%rbx, 8(%rsp)
	call	fgets@PLT
	leaq	28(%rsp), %rcx
	movq	%rbx, %rdi
	xorl	%eax, %eax
	leaq	siMCnt(%rip), %rdx
	leaq	.LC1(%rip), %rsi
	call	__isoc99_sscanf@PLT
	movl	siMCnt(%rip), %edx
	testl	%edx, %edx
	jle	.L6
	leaq	4+si1To(%rip), %rbp
	movl	$1, %ebx
	leaq	.LC2(%rip), %r12
	.p2align 4,,10
	.p2align 3
.L7:
	movq	szpFpI(%rip), %rdi
	movq	%rbp, %rdx
	xorl	%eax, %eax
	movq	%r12, %rsi
	addl	$1, %ebx
	addq	$4, %rbp
	call	__isoc99_fscanf@PLT
	cmpl	%ebx, siMCnt(%rip)
	jge	.L7
.L6:
	movq	szpFpI(%rip), %rdx
	movq	8(%rsp), %rdi
	movl	$1024, %esi
	call	fgets@PLT
	movl	siMCnt(%rip), %eax
	testl	%eax, %eax
	jle	.L8
	leaq	4+si1Add(%rip), %rbp
	movl	$1, %ebx
	leaq	.LC2(%rip), %r12
	.p2align 4,,10
	.p2align 3
.L9:
	movq	szpFpI(%rip), %rdi
	movq	%rbp, %rdx
	xorl	%eax, %eax
	movq	%r12, %rsi
	addl	$1, %ebx
	addq	$4, %rbp
	call	__isoc99_fscanf@PLT
	cmpl	%ebx, siMCnt(%rip)
	jge	.L9
.L8:
	movq	szpFpI(%rip), %rdx
	movq	8(%rsp), %rdi
	movl	$1024, %esi
	call	fgets@PLT
	movl	siMCnt(%rip), %r9d
	movabsq	$-9223372036854775808, %r8
	testl	%r9d, %r9d
	jle	.L10
	leal	1(%r9), %r12d
	movl	$1, %r8d
	xorl	%eax, %eax
	movl	%r12d, 4(%rsp)
	leaq	1056(%rsp), %rbx
	leaq	si1To(%rip), %r10
	leaq	si1Add(%rip), %r11
	leaq	si1RCnt(%rip), %rbp
	leaq	sl1RScore(%rip), %r13
	.p2align 4,,10
	.p2align 3
.L16:
	movl	$625, %ecx
	movq	%rbx, %rdi
	movslq	(%r10,%r8,4), %rdx
	rep stosq
	movslq	(%r11,%rdx,4), %rsi
	movq	%rdx, %rcx
	movl	$0, (%rdi)
	movb	$0, 4(%rdi)
	movl	$1, %edi
	movb	$1, (%rbx,%r8)
	cmpb	$0, 1056(%rsp,%rdx)
	jne	.L11
	.p2align 4,,10
	.p2align 3
.L12:
	movslq	(%r10,%rdx,4), %rdx
	addl	$1, %edi
	movslq	(%r11,%rdx,4), %r14
	movq	%rdx, %rcx
	addq	%r14, %rsi
	cmpb	$0, 1056(%rsp,%rdx)
	je	.L12
.L11:
	cmpl	%r8d, %ecx
	jne	.L13
	movq	%rsi, 0(%r13,%r8,8)
	movl	%edi, 0(%rbp,%r8,4)
	addq	$1, %r8
	cmpq	%r12, %r8
	jne	.L16
.L15:
	movl	28(%rsp), %ebp
	movl	$1, %r15d
	leaq	4+si1RCnt(%rip), %r12
	leaq	8+sl1RScore(%rip), %r14
	movabsq	$-9223372036854775808, %r8
	leal	1(%r9,%r9), %r13d
	.p2align 4,,10
	.p2align 3
.L17:
	movslq	%r15d, %rcx
	xorl	%edi, %edi
	movl	$1, %esi
	jmp	.L21
	.p2align 4,,10
	.p2align 3
.L20:
	movslq	(%r10,%rcx,4), %rcx
	movl	(%r12), %ebx
	movslq	%ecx, %rax
	movslq	(%r11,%rax,4), %rax
	addq	%rax, %rdi
	cmpq	%rdi, %r8
	cmovl	%rdi, %r8
	testl	%ebx, %ebx
	jle	.L18
	movq	(%r14), %r9
	testq	%r9, %r9
	jle	.L18
	movl	%ebp, %eax
	subl	%esi, %eax
	cltd
	idivl	%ebx
	cltq
	imulq	%r9, %rax
	addq	%rdi, %rax
	cmpq	%rax, %r8
	cmovl	%rax, %r8
.L18:
	addl	$1, %esi
	cmpl	%r13d, %esi
	je	.L19
.L21:
	cmpl	%esi, %ebp
	jge	.L20
.L19:
	addl	$1, %r15d
	addq	$4, %r12
	addq	$8, %r14
	cmpl	%r15d, 4(%rsp)
	jne	.L17
.L10:
	movq	8(%rsp), %rbx
	movl	$1024, %edx
	movl	$1, %esi
	xorl	%eax, %eax
	leaq	.LC3(%rip), %rcx
	movq	%rbx, %rdi
	call	__sprintf_chk@PLT
	xorl	%eax, %eax
	movq	%rbx, %rdx
	movl	$1, %edi
	leaq	.LC0(%rip), %rsi
	call	__printf_chk@PLT
	movq	6072(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L30
	addq	$6088, %rsp
	.cfi_remember_state
	.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
	.p2align 4,,10
	.p2align 3
.L13:
	.cfi_restore_state
	movl	$0, 0(%rbp,%r8,4)
	addq	$1, %r8
	cmpq	%r8, %r12
	jne	.L16
	jmp	.L15
.L30:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE53:
	.size	fMain, .-fMain
	.p2align 4
	.globl	fOne
	.type	fOne, @function
fOne:
.LFB54:
	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	stdin(%rip), %rax
	movq	%rax, szpFpI(%rip)
	xorl	%eax, %eax
	call	fMain
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE54:
	.size	fOne, .-fOne
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB57:
	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	stdin(%rip), %rax
	movq	%rax, szpFpI(%rip)
	xorl	%eax, %eax
	call	fMain
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE57:
	.size	main, .-main
	.local	sl1RScore
	.comm	sl1RScore,40040,32
	.local	si1RCnt
	.comm	si1RCnt,20020,32
	.local	si1Add
	.comm	si1Add,20020,32
	.local	si1To
	.comm	si1To,20020,32
	.local	siMCnt
	.comm	siMCnt,4,4
	.local	szpFpI
	.comm	szpFpI,8,8
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

rule
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s"
	.text
	.p2align 4
	.globl	fOutLine
	.type	fOutLine, @function
fOutLine:
.LFB51:
	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rdi, %rdx
	leaq	.LC0(%rip), %rsi
	xorl	%eax, %eax
	movl	$1, %edi
	call	__printf_chk@PLT
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE51:
	.size	fOutLine, .-fOutLine
	.p2align 4
	.globl	fGetMaxL
	.type	fGetMaxL, @function
fGetMaxL:
.LFB52:
	.cfi_startproc
	endbr64
	cmpq	%rsi, %rdi
	movq	%rsi, %rax
	cmovge	%rdi, %rax
	ret
	.cfi_endproc
.LFE52:
	.size	fGetMaxL, .-fGetMaxL
	.section	.rodata.str1.1
.LC1:
	.string	"%d%d"
.LC2:
	.string	"%d"
.LC3:
	.string	"%lld\n"
	.text
	.p2align 4
	.globl	fMain
	.type	fMain, @function
fMain:
.LFB53:
	.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	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$1992, %rsp
	.cfi_def_cfa_offset 6144
	movq	szpFpI(%rip), %rdx
	movl	$1024, %esi
	movq	%fs:40, %rax
	movq	%rax, 6072(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rbx
	movq	%rbx, %rdi
	movq	%rbx, 8(%rsp)
	call	fgets@PLT
	leaq	28(%rsp), %rcx
	movq	%rbx, %rdi
	xorl	%eax, %eax
	leaq	siMCnt(%rip), %rdx
	leaq	.LC1(%rip), %rsi
	call	__isoc99_sscanf@PLT
	movl	siMCnt(%rip), %edx
	testl	%edx, %edx
	jle	.L6
	leaq	4+si1To(%rip), %rbp
	movl	$1, %ebx
	leaq	.LC2(%rip), %r12
	.p2align 4,,10
	.p2align 3
.L7:
	movq	szpFpI(%rip), %rdi
	movq	%rbp, %rdx
	xorl	%eax, %eax
	movq	%r12, %rsi
	addl	$1, %ebx
	addq	$4, %rbp
	call	__isoc99_fscanf@PLT
	cmpl	%ebx, siMCnt(%rip)
	jge	.L7
.L6:
	movq	szpFpI(%rip), %rdx
	movq	8(%rsp), %rdi
	movl	$1024, %esi
	call	fgets@PLT
	movl	siMCnt(%rip), %eax
	testl	%eax, %eax
	jle	.L8
	leaq	4+si1Add(%rip), %rbp
	movl	$1, %ebx
	leaq	.LC2(%rip), %r12
	.p2align 4,,10
	.p2align 3
.L9:
	movq	szpFpI(%rip), %rdi
	movq	%rbp, %rdx
	xorl	%eax, %eax
	movq	%r12, %rsi
	addl	$1, %ebx
	addq	$4, %rbp
	call	__isoc99_fscanf@PLT
	cmpl	%ebx, siMCnt(%rip)
	jge	.L9
.L8:
	movq	szpFpI(%rip), %rdx
	movq	8(%rsp), %rdi
	movl	$1024, %esi
	call	fgets@PLT
	movl	siMCnt(%rip), %r9d
	movabsq	$-9223372036854775808, %r8
	testl	%r9d, %r9d
	jle	.L10
	leal	1(%r9), %r12d
	movl	$1, %r8d
	xorl	%eax, %eax
	movl	%r12d, 4(%rsp)
	leaq	1056(%rsp), %rbx
	leaq	si1To(%rip), %r10
	leaq	si1Add(%rip), %r11
	leaq	si1RCnt(%rip), %rbp
	leaq	sl1RScore(%rip), %r13
	.p2align 4,,10
	.p2align 3
.L16:
	movl	$625, %ecx
	movq	%rbx, %rdi
	movslq	(%r10,%r8,4), %rdx
	rep stosq
	movslq	(%r11,%rdx,4), %rsi
	movq	%rdx, %rcx
	movl	$0, (%rdi)
	movb	$0, 4(%rdi)
	movl	$1, %edi
	movb	$1, (%rbx,%r8)
	cmpb	$0, 1056(%rsp,%rdx)
	jne	.L11
	.p2align 4,,10
	.p2align 3
.L12:
	movslq	(%r10,%rdx,4), %rdx
	addl	$1, %edi
	movslq	(%r11,%rdx,4), %r14
	movq	%rdx, %rcx
	addq	%r14, %rsi
	cmpb	$0, 1056(%rsp,%rdx)
	je	.L12
.L11:
	cmpl	%r8d, %ecx
	jne	.L13
	movq	%rsi, 0(%r13,%r8,8)
	movl	%edi, 0(%rbp,%r8,4)
	addq	$1, %r8
	cmpq	%r12, %r8
	jne	.L16
.L15:
	movl	28(%rsp), %ebp
	movl	$1, %r15d
	leaq	4+si1RCnt(%rip), %r12
	leaq	8+sl1RScore(%rip), %r14
	movabsq	$-9223372036854775808, %r8
	leal	1(%r9,%r9), %r13d
	.p2align 4,,10
	.p2align 3
.L17:
	movslq	%r15d, %rcx
	xorl	%edi, %edi
	movl	$1, %esi
	jmp	.L21
	.p2align 4,,10
	.p2align 3
.L20:
	movslq	(%r10,%rcx,4), %rcx
	movl	(%r12), %ebx
	movslq	%ecx, %rax
	movslq	(%r11,%rax,4), %rax
	addq	%rax, %rdi
	cmpq	%rdi, %r8
	cmovl	%rdi, %r8
	testl	%ebx, %ebx
	jle	.L18
	movq	(%r14), %r9
	testq	%r9, %r9
	jle	.L18
	movl	%ebp, %eax
	subl	%esi, %eax
	cltd
	idivl	%ebx
	cltq
	imulq	%r9, %rax
	addq	%rdi, %rax
	cmpq	%rax, %r8
	cmovl	%rax, %r8
.L18:
	addl	$1, %esi
	cmpl	%r13d, %esi
	je	.L19
.L21:
	cmpl	%esi, %ebp
	jge	.L20
.L19:
	addl	$1, %r15d
	addq	$4, %r12
	addq	$8, %r14
	cmpl	%r15d, 4(%rsp)
	jne	.L17
.L10:
	movq	8(%rsp), %rbx
	movl	$1024, %edx
	movl	$1, %esi
	xorl	%eax, %eax
	leaq	.LC3(%rip), %rcx
	movq	%rbx, %rdi
	call	__sprintf_chk@PLT
	xorl	%eax, %eax
	movq	%rbx, %rdx
	movl	$1, %edi
	leaq	.LC0(%rip), %rsi
	call	__printf_chk@PLT
	movq	6072(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L30
	addq	$6088, %rsp
	.cfi_remember_state
	.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
	.p2align 4,,10
	.p2align 3
.L13:
	.cfi_restore_state
	movl	$0, 0(%rbp,%r8,4)
	addq	$1, %r8
	cmpq	%r8, %r12
	jne	.L16
	jmp	.L15
.L30:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE53:
	.size	fMain, .-fMain
	.p2align 4
	.globl	fOne
	.type	fOne, @function
fOne:
.LFB54:
	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	stdin(%rip), %rax
	movq	%rax, szpFpI(%rip)
	xorl	%eax, %eax
	call	fMain
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE54:
	.size	fOne, .-fOne
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB57:
	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	stdin(%rip), %rax
	movq	%rax, szpFpI(%rip)
	xorl	%eax, %eax
	call	fMain
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE57:
	.size	main, .-main
	.local	sl1RScore
	.comm	sl1RScore,40040,32
	.local	si1RCnt
	.comm	si1RCnt,20020,32
	.local	si1Add
	.comm	si1Add,20020,32
	.local	si1To
	.comm	si1To,20020,32
	.local	siMCnt
	.comm	siMCnt,4,4
	.local	szpFpI
	.comm	szpFpI,8,8
	.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 <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

// 内部定数
#define D_ON			1										// 汎用フラグ - ON
#define D_OFF			0										// 汎用フラグ - OFF
#define D_MASS_MAX		5005									// 最大マス数

// 内部変数
static FILE *szpFpI;											// 入力
static int siMCnt;												// マス数
static int si1To[D_MASS_MAX];									// 移動先[移動元]
static int si1Add[D_MASS_MAX];									// 加算値[移動先]
static int si1RCnt[D_MASS_MAX];									// 周回数
static long long sl1RScore[D_MASS_MAX];							// 周回スコア

// 内部変数 - テスト用
#ifdef D_TEST
	static int siRes;
	static FILE *szpFpA;
	static int siTNo;
#endif

// １行出力
int
fOutLine(
	char *pcpLine				// <I> １行
)
{
	char lc1Buf[1024];

#ifdef D_TEST
	lc1Buf[0] = '\0';
	fgets(lc1Buf, sizeof(lc1Buf), szpFpA);
	if (strcmp(lc1Buf, pcpLine)) {
		siRes = -1;
	}
#else
	printf("%s", pcpLine);
#endif

	return 0;
}

// 最大値 - 取得
long long
fGetMaxL(
	long long plVal1			// <I> 値１
	, long long plVal2			// <I> 値２
)
{
	if (plVal1 > plVal2) {
		return plVal1;
	}
	else {
		return plVal2;
	}
}

// 実行メイン
int
fMain(
)
{
	int i, j;
	char lc1Buf[1024];

	// マス数・K - 取得
	int liK;
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);
	sscanf(lc1Buf, "%d%d", &siMCnt, &liK);

	// 移動先 - 取得
	for (i = 1; i <= siMCnt; i++) {
		fscanf(szpFpI, "%d", &si1To[i]);
	}
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);

	// 加算値 - 取得
	for (i = 1; i <= siMCnt; i++) {
		fscanf(szpFpI, "%d", &si1Add[i]);
	}
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);

	// 周回数・周回スコア - セット
	for (i = 1; i <= siMCnt; i++) {

		// 開始位置
		char lc1Done[D_MASS_MAX];
		memset(lc1Done, D_OFF, sizeof(lc1Done));
		int liMass = i;
		lc1Done[liMass] = D_ON;
		long long llScore = 0;

		// 移動
		for (j = 1; ; j++) {
			liMass = si1To[liMass];
			llScore += si1Add[liMass];

			// 到着済
			if (lc1Done[liMass] != D_OFF) {
				break;
			}
		}

		// 開始位置以外
		if (i != liMass) {
			si1RCnt[i] = 0;
			continue;
		}

		// 周回数・周回スコア - セット
		si1RCnt[i] = j;
		sl1RScore[i] = llScore;
	}

	// 最大値 - 取得
	long long llMax = LLONG_MIN;
	for (i = 1; i <= siMCnt; i++) {
		int liMass = i;
		long long llScore = 0;

		// 移動
		for (j = 1; j <= siMCnt * 2 && j <= liK; j++) {
			liMass = si1To[liMass];
			llScore += si1Add[liMass];
			llMax = fGetMaxL(llMax, llScore);

			// 周回不可
			if (si1RCnt[i] < 1) {
				continue;
			}
			if (sl1RScore[i] < 1) {
				continue;
			}

			// 周回
			long long llSum = llScore + sl1RScore[i] * (long long)((liK - j) / si1RCnt[i]);
			llMax = fGetMaxL(llMax, llSum);
		}
	}

	// 出力
	sprintf(lc1Buf, "%lld\n", llMax);
	fOutLine(lc1Buf);

	return 0;
}

// １回実行
int
fOne(
)
{
	int liRet;
	char lc1Buf[1024];

	// 入力 - セット
#ifdef D_TEST
	sprintf(lc1Buf, ".\\Test\\T%d.txt", siTNo);
	szpFpI = fopen(lc1Buf, "r");
	sprintf(lc1Buf, ".\\Test\\A%d.txt", siTNo);
	szpFpA = fopen(lc1Buf, "r");
	siRes = 0;
#else
	szpFpI = stdin;
#endif

	// 実行メイン
	liRet = fMain();

	// 残データ有無
#ifdef D_TEST
	lc1Buf[0] = '\0';
	fgets(lc1Buf, sizeof(lc1Buf), szpFpA);
	if (strcmp(lc1Buf, "")) {
		siRes = -1;
	}
#endif

	// テストファイルクローズ
#ifdef D_TEST
	fclose(szpFpI);
	fclose(szpFpA);
#endif

	// テスト結果
#ifdef D_TEST
	if (siRes == 0) {
		printf("OK %d\n", siTNo);
	}
	else {
		printf("NG %d\n", siTNo);
	}
#endif

	return 0;
}

// プログラム開始
int
main()
{

#ifdef D_TEST
	int i;
	for (i = D_TEST_SNO; i <= D_TEST_ENO; i++) {
		siTNo = i;
		fOne();
	}
#else
	fOne();
#endif

	return 0;
}

10 58
9 1 6 7 8 4 3 2 10 5
695279662 988782657 -119067776 382975538 -151885171 -243968758 -169777795 37619092 389386780 980092719
 10 58
9 1 6 7 8 4 3 2 10 5
1020768626 988782657 -119067776 382975538 -151885171 -177220596 -169777795 37619092 389386780 980092719
 3 3
3 1 2
-1000 -2000 -3052
 10 58
9 1 6 7 8 4 3 2 10 5
695279662 903489508 -119067776 382975538 -151885171 -243968758 -169777795 37619092 389386780 980092719
 10 58
9 1 6 7 8 4 3 2 10 5
97711577 988782657 -119067776 382975538 -151885171 -269784707 -169777795 37619092 389386780 980092719
 10 58
9 1 6 7 8 4 3 2 10 5
1020768626 988782657 -119067776 382975538 -151885171 -177220596 -169777795 37619092 333701688 980092719
 10 58
9 1 6 7 8 4 3 2 10 5
97711577 988782657 -119067776 382975538 -151885171 -269784707 -169777795 37619092 389386780 607177473
 3 3
3 1 2
-653 -2000 -3000
 2 3
2 1
10 -13
 10 58
9 1 6 7 8 4 3 2 10 5
695279662 988782657 -119067776 382975538 -151885171 -243968758 -169777795 37619092 737953331 980092719

29507023469
 32761913109
 -1000
 28654091979
 23531342619
 32205062189
 19802190159
 -653
 10
 32992688979

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 <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

// 内部定数
#define D_ON			1										// 汎用フラグ - ON
#define D_OFF			0										// 汎用フラグ - OFF
#define D_MASS_MAX		5005									// 最大マス数

// 内部変数
static FILE *szpFpI;											// 入力
static int siMCnt;												// マス数
static int si1To[D_MASS_MAX];									// 移動先[移動元]
static int si1Add[D_MASS_MAX];									// 加算値[移動先]
static int si1RCnt[D_MASS_MAX];									// 周回数
static long long sl1RScore[D_MASS_MAX];							// 周回スコア

// 内部変数 - テスト用
#ifdef D_TEST
	static int siRes;
	static FILE *szpFpA;
	static int siTNo;
#endif

// １行出力
int
fOutLine(
	char *pcpLine				// <I> １行
)
{
	char lc1Buf[1024];

#ifdef D_TEST
	lc1Buf[0] = '\0';
	fgets(lc1Buf, sizeof(lc1Buf), szpFpA);
	if (strcmp(lc1Buf, pcpLine)) {
		siRes = -1;
	}
#else
	printf("%s", pcpLine);
#endif

	return 0;
}

// 最大値 - 取得
long long
fGetMaxL(
	long long plVal1			// <I> 値１
	, long long plVal2			// <I> 値２
)
{
	if (plVal1 > plVal2) {
		return plVal1;
	}
	else {
		return plVal2;
	}
}

// 実行メイン
int
fMain(
)
{
	int i, j;
	char lc1Buf[1024];

	// マス数・K - 取得
	int liK;
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);
	sscanf(lc1Buf, "%d%d", &siMCnt, &liK);

	// 移動先 - 取得
	for (i = 1; i <= siMCnt; i++) {
		fscanf(szpFpI, "%d", &si1To[i]);
	}
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);

	// 加算値 - 取得
	for (i = 1; i <= siMCnt; i++) {
		fscanf(szpFpI, "%d", &si1Add[i]);
	}
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);

	// 周回数・周回スコア - セット
	for (i = 1; i <= siMCnt; i++) {

		// 開始位置
		char lc1Done[D_MASS_MAX];
		memset(lc1Done, D_OFF, sizeof(lc1Done));
		int liMass = i;
		lc1Done[liMass] = D_ON;
		long long llScore = 0;

		// 移動
		for (j = 1; ; j++) {
			liMass = si1To[liMass];
			llScore += si1Add[liMass];

			// 到着済
			if (lc1Done[liMass] != D_OFF) {
				break;
			}
		}

		// 開始位置以外
		if (i != liMass) {
			si1RCnt[i] = 0;
			continue;
		}

		// 周回数・周回スコア - セット
		si1RCnt[i] = j;
		sl1RScore[i] = llScore;
	}

	// 最大値 - 取得
	long long llMax = LLONG_MIN;
	for (i = 1; i <= siMCnt; i++) {
		int liMass = i;
		long long llScore = 0;

		// 移動
		for (j = 1; j <= siMCnt * 2 && j <= liK; j++) {
			liMass = si1To[liMass];
			llScore += si1Add[liMass];
			llMax = fGetMaxL(llMax, llScore);

			// 周回不可
			if (si1RCnt[i] < 1) {
				continue;
			}
			if (sl1RScore[i] < 1) {
				continue;
			}

			// 周回
			long long llSum = llScore + sl1RScore[i] * (long long)((liK - j) / si1RCnt[i]);
			llMax = fGetMaxL(llMax, llSum);
		}
	}

	// 出力
	sprintf(lc1Buf, "%lld\n", llMax);
	fOutLine(lc1Buf);

	return 0;
}

// １回実行
int
fOne(
)
{
	int liRet;
	char lc1Buf[1024];

	// 入力 - セット
#ifdef D_TEST
	sprintf(lc1Buf, ".\\Test\\T%d.txt", siTNo);
	szpFpI = fopen(lc1Buf, "r");
	sprintf(lc1Buf, ".\\Test\\A%d.txt", siTNo);
	szpFpA = fopen(lc1Buf, "r");
	siRes = 0;
#else
	szpFpI = stdin;
#endif

	// 実行メイン
	liRet = fMain();

	// 残データ有無
#ifdef D_TEST
	lc1Buf[0] = '\0';
	fgets(lc1Buf, sizeof(lc1Buf), szpFpA);
	if (strcmp(lc1Buf, "")) {
		siRes = -1;
	}
#endif

	// テストファイルクローズ
#ifdef D_TEST
	fclose(szpFpI);
	fclose(szpFpA);
#endif

	// テスト結果
#ifdef D_TEST
	if (siRes == 0) {
		printf("OK %d\n", siTNo);
	}
	else {
		printf("NG %d\n", siTNo);
	}
#endif

	return 0;
}

// プログラム開始
int
main()
{

#ifdef D_TEST
	int i;
	for (i = D_TEST_SNO; i <= D_TEST_ENO; i++) {
		siTNo = i;
		fOne();
	}
#else
	fOne();
#endif

	return 0;
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.local	szpFpI
	.comm	szpFpI,8,8
	.local	siMCnt
	.comm	siMCnt,4,4
	.local	si1To
	.comm	si1To,20020,32
	.local	si1Add
	.comm	si1Add,20020,32
	.local	si1RCnt
	.comm	si1RCnt,20020,32
	.local	sl1RScore
	.comm	sl1RScore,40040,32
	.section	.rodata
.LC0:
	.string	"%s"
	.text
	.globl	fOutLine
	.type	fOutLine, @function
fOutLine:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$1056, %rsp
	movq	%rdi, -1048(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	-1048(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L3
	call	__stack_chk_fail@PLT
.L3:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	fOutLine, .-fOutLine
	.globl	fGetMaxL
	.type	fGetMaxL, @function
fGetMaxL:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	cmpq	-16(%rbp), %rax
	jle	.L5
	movq	-8(%rbp), %rax
	jmp	.L6
.L5:
	movq	-16(%rbp), %rax
.L6:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	fGetMaxL, .-fGetMaxL
	.section	.rodata
.LC1:
	.string	"%d%d"
.LC2:
	.string	"%d"
.LC3:
	.string	"%lld\n"
	.text
	.globl	fMain
	.type	fMain, @function
fMain:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$4096, %rsp
	orq	$0, (%rsp)
	subq	$2016, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	leaq	-6100(%rbp), %rdx
	leaq	-6048(%rbp), %rax
	movq	%rdx, %rcx
	leaq	siMCnt(%rip), %rdx
	leaq	.LC1(%rip), %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_sscanf@PLT
	movl	$1, -6096(%rbp)
	jmp	.L8
.L9:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	addq	%rax, %rdx
	movq	szpFpI(%rip), %rax
	leaq	.LC2(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_fscanf@PLT
	addl	$1, -6096(%rbp)
.L8:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L9
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	movl	$1, -6096(%rbp)
	jmp	.L10
.L11:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	addq	%rax, %rdx
	movq	szpFpI(%rip), %rax
	leaq	.LC2(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_fscanf@PLT
	addl	$1, -6096(%rbp)
.L10:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L11
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	movl	$1, -6096(%rbp)
	jmp	.L12
.L18:
	leaq	-5024(%rbp), %rax
	movl	$5005, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	movl	-6096(%rbp), %eax
	movl	%eax, -6088(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	movb	$1, -5024(%rbp,%rax)
	movq	$0, -6080(%rbp)
	movl	$1, -6092(%rbp)
.L15:
	movl	-6088(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, -6088(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	addq	%rax, -6080(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	movzbl	-5024(%rbp,%rax), %eax
	testb	%al, %al
	jne	.L30
	addl	$1, -6092(%rbp)
	jmp	.L15
.L30:
	nop
	movl	-6096(%rbp), %eax
	cmpl	-6088(%rbp), %eax
	je	.L16
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1RCnt(%rip), %rax
	movl	$0, (%rdx,%rax)
	jmp	.L17
.L16:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	si1RCnt(%rip), %rdx
	movl	-6092(%rbp), %eax
	movl	%eax, (%rcx,%rdx)
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	leaq	sl1RScore(%rip), %rdx
	movq	-6080(%rbp), %rax
	movq	%rax, (%rcx,%rdx)
.L17:
	addl	$1, -6096(%rbp)
.L12:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L18
	movabsq	$-9223372036854775808, %rax
	movq	%rax, -6072(%rbp)
	movl	$1, -6096(%rbp)
	jmp	.L19
.L26:
	movl	-6096(%rbp), %eax
	movl	%eax, -6084(%rbp)
	movq	$0, -6064(%rbp)
	movl	$1, -6092(%rbp)
	jmp	.L20
.L25:
	movl	-6084(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, -6084(%rbp)
	movl	-6084(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	addq	%rax, -6064(%rbp)
	movq	-6064(%rbp), %rdx
	movq	-6072(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	fGetMaxL
	movq	%rax, -6072(%rbp)
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1RCnt(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jle	.L31
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sl1RScore(%rip), %rax
	movq	(%rdx,%rax), %rax
	testq	%rax, %rax
	jle	.L32
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sl1RScore(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-6100(%rbp), %eax
	subl	-6092(%rbp), %eax
	movl	-6096(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rsi
	leaq	si1RCnt(%rip), %rdx
	movl	(%rsi,%rdx), %edi
	cltd
	idivl	%edi
	cltq
	imulq	%rax, %rcx
	movq	%rcx, %rdx
	movq	-6064(%rbp), %rax
	addq	%rdx, %rax
	movq	%rax, -6056(%rbp)
	movq	-6056(%rbp), %rdx
	movq	-6072(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	fGetMaxL
	movq	%rax, -6072(%rbp)
	jmp	.L22
.L31:
	nop
	jmp	.L22
.L32:
	nop
.L22:
	addl	$1, -6092(%rbp)
.L20:
	movl	siMCnt(%rip), %eax
	addl	%eax, %eax
	cmpl	%eax, -6092(%rbp)
	jg	.L24
	movl	-6100(%rbp), %eax
	cmpl	%eax, -6092(%rbp)
	jle	.L25
.L24:
	addl	$1, -6096(%rbp)
.L19:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L26
	movq	-6072(%rbp), %rdx
	leaq	-6048(%rbp), %rax
	leaq	.LC3(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	sprintf@PLT
	leaq	-6048(%rbp), %rax
	movq	%rax, %rdi
	call	fOutLine
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L28
	call	__stack_chk_fail@PLT
.L28:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	fMain, .-fMain
	.globl	fOne
	.type	fOne, @function
fOne:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$1056, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	stdin(%rip), %rax
	movq	%rax, szpFpI(%rip)
	movl	$0, %eax
	call	fMain
	movl	%eax, -1044(%rbp)
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	fOne, .-fOne
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	$0, %eax
	call	fOne
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.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.
val
	.file	"temp.c"
	.text
	.local	szpFpI
	.comm	szpFpI,8,8
	.local	siMCnt
	.comm	siMCnt,4,4
	.local	si1To
	.comm	si1To,20020,32
	.local	si1Add
	.comm	si1Add,20020,32
	.local	si1RCnt
	.comm	si1RCnt,20020,32
	.local	sl1RScore
	.comm	sl1RScore,40040,32
	.section	.rodata
.LC0:
	.string	"%s"
	.text
	.globl	fOutLine
	.type	fOutLine, @function
fOutLine:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$1056, %rsp
	movq	%rdi, -1048(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	-1048(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L3
	call	__stack_chk_fail@PLT
.L3:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	fOutLine, .-fOutLine
	.globl	fGetMaxL
	.type	fGetMaxL, @function
fGetMaxL:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	cmpq	-16(%rbp), %rax
	jle	.L5
	movq	-8(%rbp), %rax
	jmp	.L6
.L5:
	movq	-16(%rbp), %rax
.L6:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	fGetMaxL, .-fGetMaxL
	.section	.rodata
.LC1:
	.string	"%d%d"
.LC2:
	.string	"%d"
.LC3:
	.string	"%lld\n"
	.text
	.globl	fMain
	.type	fMain, @function
fMain:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$4096, %rsp
	orq	$0, (%rsp)
	subq	$2016, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	leaq	-6100(%rbp), %rdx
	leaq	-6048(%rbp), %rax
	movq	%rdx, %rcx
	leaq	siMCnt(%rip), %rdx
	leaq	.LC1(%rip), %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_sscanf@PLT
	movl	$1, -6096(%rbp)
	jmp	.L8
.L9:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	addq	%rax, %rdx
	movq	szpFpI(%rip), %rax
	leaq	.LC2(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_fscanf@PLT
	addl	$1, -6096(%rbp)
.L8:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L9
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	movl	$1, -6096(%rbp)
	jmp	.L10
.L11:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	addq	%rax, %rdx
	movq	szpFpI(%rip), %rax
	leaq	.LC2(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_fscanf@PLT
	addl	$1, -6096(%rbp)
.L10:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L11
	movq	szpFpI(%rip), %rdx
	leaq	-6048(%rbp), %rax
	movl	$1024, %esi
	movq	%rax, %rdi
	call	fgets@PLT
	movl	$1, -6096(%rbp)
	jmp	.L12
.L18:
	leaq	-5024(%rbp), %rax
	movl	$5005, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	movl	-6096(%rbp), %eax
	movl	%eax, -6088(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	movb	$1, -5024(%rbp,%rax)
	movq	$0, -6080(%rbp)
	movl	$1, -6092(%rbp)
.L15:
	movl	-6088(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, -6088(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	addq	%rax, -6080(%rbp)
	movl	-6088(%rbp), %eax
	cltq
	movzbl	-5024(%rbp,%rax), %eax
	testb	%al, %al
	jne	.L30
	addl	$1, -6092(%rbp)
	jmp	.L15
.L30:
	nop
	movl	-6096(%rbp), %eax
	cmpl	-6088(%rbp), %eax
	je	.L16
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1RCnt(%rip), %rax
	movl	$0, (%rdx,%rax)
	jmp	.L17
.L16:
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	si1RCnt(%rip), %rdx
	movl	-6092(%rbp), %eax
	movl	%eax, (%rcx,%rdx)
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	leaq	sl1RScore(%rip), %rdx
	movq	-6080(%rbp), %rax
	movq	%rax, (%rcx,%rdx)
.L17:
	addl	$1, -6096(%rbp)
.L12:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L18
	movabsq	$-9223372036854775808, %rax
	movq	%rax, -6072(%rbp)
	movl	$1, -6096(%rbp)
	jmp	.L19
.L26:
	movl	-6096(%rbp), %eax
	movl	%eax, -6084(%rbp)
	movq	$0, -6064(%rbp)
	movl	$1, -6092(%rbp)
	jmp	.L20
.L25:
	movl	-6084(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1To(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, -6084(%rbp)
	movl	-6084(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1Add(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	addq	%rax, -6064(%rbp)
	movq	-6064(%rbp), %rdx
	movq	-6072(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	fGetMaxL
	movq	%rax, -6072(%rbp)
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	si1RCnt(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jle	.L31
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sl1RScore(%rip), %rax
	movq	(%rdx,%rax), %rax
	testq	%rax, %rax
	jle	.L32
	movl	-6096(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sl1RScore(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-6100(%rbp), %eax
	subl	-6092(%rbp), %eax
	movl	-6096(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rsi
	leaq	si1RCnt(%rip), %rdx
	movl	(%rsi,%rdx), %edi
	cltd
	idivl	%edi
	cltq
	imulq	%rax, %rcx
	movq	%rcx, %rdx
	movq	-6064(%rbp), %rax
	addq	%rdx, %rax
	movq	%rax, -6056(%rbp)
	movq	-6056(%rbp), %rdx
	movq	-6072(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	fGetMaxL
	movq	%rax, -6072(%rbp)
	jmp	.L22
.L31:
	nop
	jmp	.L22
.L32:
	nop
.L22:
	addl	$1, -6092(%rbp)
.L20:
	movl	siMCnt(%rip), %eax
	addl	%eax, %eax
	cmpl	%eax, -6092(%rbp)
	jg	.L24
	movl	-6100(%rbp), %eax
	cmpl	%eax, -6092(%rbp)
	jle	.L25
.L24:
	addl	$1, -6096(%rbp)
.L19:
	movl	siMCnt(%rip), %eax
	cmpl	%eax, -6096(%rbp)
	jle	.L26
	movq	-6072(%rbp), %rdx
	leaq	-6048(%rbp), %rax
	leaq	.LC3(%rip), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	sprintf@PLT
	leaq	-6048(%rbp), %rax
	movq	%rax, %rdi
	call	fOutLine
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L28
	call	__stack_chk_fail@PLT
.L28:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	fMain, .-fMain
	.globl	fOne
	.type	fOne, @function
fOne:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$1056, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movq	stdin(%rip), %rax
	movq	%rax, szpFpI(%rip)
	movl	$0, %eax
	call	fMain
	movl	%eax, -1044(%rbp)
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	fOne, .-fOne
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	$0, %eax
	call	fOne
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.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:
