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

```c

#pragma warning(disable:4996)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <float.h>

#pragma region 定義
#define i_cin(X) scanf("%d", &X)
#define i_cin2(X,Y) scanf("%d %d",&X,&Y)
#define i_cin4(X,Y,Z,W) scanf("%d %d %d %d",&X,&Y,&Z,&W)
#define i_cin3(X,Y,Z) scanf("%d %d %d",&X,&Y,&Z)
#define l_cin(X) scanf("%ld",&X)
#define f_cin(X) scanf("%f",&X)
#define l_cin2(X,Y) scanf("%ld %ld",&X,&Y)
#define s_cin(X) scanf("%s",&X)

#define  i_cout(X) printf("%d\n",X)
#define  f_cout(X) printf("%g\n",X)
#define  i_cout2(X,Y) printf("%d %d\n",X,Y)
#define  l_cout(X) printf("%ld\n",X)
#define  s_cout(X) printf("%s\n",X)
#define  ll_cout(X) printf("%lld\n",X)

typedef long long  ll;
#define rept(x, s, n) for (int x = s; x < n; x++)

#define S_RTN(S)  s_cout(S);return 0


#define _itoa(A,N) sprintf(A, "%d", N);

int i_cins(int n, int* A);
int l_cins2(int n, long* A, long* B);
int s_dsort(const void* a, const void* b);
int s_asort(const void* a, const void* b);

int  _gcd(int a, int b);
int  _swp(int* a, int* b);
int _cknum(char* a, int n);


int s_asorts(const void* a, const void* b);

//昇順
int s_asorts(const void* a, const void* b) {
	return(strcmp((char*)a, (char*)b));
}
int s_dsort(const void* a, const void* b) {
	return(*(int*)b - *(int*)a);
}
int s_asort(const void* a, const void* b) {
	return(*(int*)a - *(int*)b);
}
int l_cins2(int n, long* a, long* b) {
	int i;
	rept(i, 0, n) {
		l_cin2(*(a + i), *(b + i));
	}
	return 0;
}
int i_cins(int n, int* a) {
	int i;
	for (i = 0; i < n; i++) {
		i_cin(*(a + i));
	}

	return 0;
}
int _gcd(int a, int b) {
	int r, tmp;
	if (a < b) { tmp = a; a = b; b = tmp; }
	r = a % b;
	while (r) {
		if (!r) break;
		a = b; b = r;
		r = a % b;
	}
	return(b);
}

long _max(long a, long b) {
	return a > b ? a : b;
}
long _min(long a, long b) {
	return a < b ? a : b;
}
int _swp(int* a, int* b)
{
	int tmp;
	tmp = *b; *b = *a; *a = tmp;
	return 0;
}

int _cknum(char* a, int n) {
	int i;
	char t = '0';

	for (i = 0; i < n; i++) {
		if (a[i] < '0' || a[i]>'9') return 1;
	}
	return 0;
}

#pragma endregion

int _same(char a, char b, char c);
int _same(char a, char b, char c) {
	if (a == b && b == c) return 0;
	if ((a == b && b != c) || (a == c && a != b) ||
		(b == c && a != c)) return 1;
	return 2;
}

static char n[1000000001];

int main(void) {
	int N,tmp=0,i,len;
	
	i_cin(N);

	_itoa(n,N);
	len=strlen(n);

	for (i = 0; i < len;i++) {
		tmp += (n[i] - '0');
	}

	s_cout((N%tmp)?"No":"Yes");

	return 0;
}

	/*int A, B, C, X;
	int a, b, r, tmp, cnt = 0;

	i_cin4(A, B, C, X);

	r = (X % 100) / 50;
	if (r && !C) {i_cout(0); return 0;}

	tmp= X / 500;
	a = (tmp > A) ? A : tmp;
	tmp = X / 100;
	b =  (tmp > B) ? B : tmp;
	if (a && b) cnt = a * b / 2;
	else cnt = _max(a, b);
	cnt++;
	i_cout(cnt);*/



```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	s_asorts
	.type	s_asorts, @function
s_asorts:
.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
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	strcmp@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	s_asorts, .-s_asorts
	.globl	s_dsort
	.type	s_dsort, @function
s_dsort:
.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	-16(%rbp), %rax
	movl	(%rax), %edx
	movq	-8(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	s_dsort, .-s_dsort
	.globl	s_asort
	.type	s_asort, @function
s_asort:
.LFB8:
	.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
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	s_asort, .-s_asort
	.section	.rodata
.LC0:
	.string	"%ld %ld"
	.text
	.globl	l_cins2
	.type	l_cins2, @function
l_cins2:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movl	%edi, -20(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%rdx, -40(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L8
.L9:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	movq	-40(%rbp), %rax
	addq	%rax, %rdx
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	movq	-32(%rbp), %rax
	addq	%rcx, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addl	$1, -4(%rbp)
.L8:
	movl	-4(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L9
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	l_cins2, .-l_cins2
	.section	.rodata
.LC1:
	.string	"%d"
	.text
	.globl	i_cins
	.type	i_cins, @function
i_cins:
.LFB10:
	.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
	movl	%edi, -20(%rbp)
	movq	%rsi, -32(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L12
.L13:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-32(%rbp), %rax
	addq	%rdx, %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addl	$1, -4(%rbp)
.L12:
	movl	-4(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L13
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	i_cins, .-i_cins
	.globl	_gcd
	.type	_gcd, @function
_gcd:
.LFB11:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -20(%rbp)
	movl	%esi, -24(%rbp)
	movl	-20(%rbp), %eax
	cmpl	-24(%rbp), %eax
	jge	.L16
	movl	-20(%rbp), %eax
	movl	%eax, -4(%rbp)
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	movl	-4(%rbp), %eax
	movl	%eax, -24(%rbp)
.L16:
	movl	-20(%rbp), %eax
	cltd
	idivl	-24(%rbp)
	movl	%edx, -8(%rbp)
	jmp	.L17
.L20:
	cmpl	$0, -8(%rbp)
	je	.L22
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	movl	-8(%rbp), %eax
	movl	%eax, -24(%rbp)
	movl	-20(%rbp), %eax
	cltd
	idivl	-24(%rbp)
	movl	%edx, -8(%rbp)
.L17:
	cmpl	$0, -8(%rbp)
	jne	.L20
	jmp	.L19
.L22:
	nop
.L19:
	movl	-24(%rbp), %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	_gcd, .-_gcd
	.globl	_max
	.type	_max, @function
_max:
.LFB12:
	.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	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	cmpq	%rax, %rdx
	cmovge	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	_max, .-_max
	.globl	_min
	.type	_min, @function
_min:
.LFB13:
	.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	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	cmpq	%rax, %rdx
	cmovle	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	_min, .-_min
	.globl	_swp
	.type	_swp, @function
_swp:
.LFB14:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	-32(%rbp), %rax
	movl	(%rax), %eax
	movl	%eax, -4(%rbp)
	movq	-24(%rbp), %rax
	movl	(%rax), %edx
	movq	-32(%rbp), %rax
	movl	%edx, (%rax)
	movq	-24(%rbp), %rax
	movl	-4(%rbp), %edx
	movl	%edx, (%rax)
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	_swp, .-_swp
	.globl	_cknum
	.type	_cknum, @function
_cknum:
.LFB15:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movb	$48, -5(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L30
.L34:
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$47, %al
	jle	.L31
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$57, %al
	jle	.L32
.L31:
	movl	$1, %eax
	jmp	.L33
.L32:
	addl	$1, -4(%rbp)
.L30:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L34
	movl	$0, %eax
.L33:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	_cknum, .-_cknum
	.globl	_same
	.type	_same, @function
_same:
.LFB16:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%esi, %ecx
	movl	%edx, %eax
	movl	%edi, %edx
	movb	%dl, -4(%rbp)
	movl	%ecx, %edx
	movb	%dl, -8(%rbp)
	movb	%al, -12(%rbp)
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L36
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L36
	movl	$0, %eax
	jmp	.L37
.L36:
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L38
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L39
.L38:
	movzbl	-4(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L40
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L39
.L40:
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L41
	movzbl	-4(%rbp), %eax
	cmpb	-12(%rbp), %al
	je	.L41
.L39:
	movl	$1, %eax
	jmp	.L37
.L41:
	movl	$2, %eax
.L37:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	_same, .-_same
	.local	n
	.comm	n,1000000001,32
	.section	.rodata
.LC2:
	.string	"No"
.LC3:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB17:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -20(%rbp)
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-24(%rbp), %eax
	movl	%eax, %edx
	leaq	.LC1(%rip), %rax
	movq	%rax, %rsi
	leaq	n(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	sprintf@PLT
	leaq	n(%rip), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -12(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L43
.L44:
	movl	-16(%rbp), %eax
	cltq
	leaq	n(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$48, %eax
	addl	%eax, -20(%rbp)
	addl	$1, -16(%rbp)
.L43:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jl	.L44
	movl	-24(%rbp), %eax
	cltd
	idivl	-20(%rbp)
	movl	%edx, %eax
	testl	%eax, %eax
	je	.L45
	leaq	.LC2(%rip), %rax
	jmp	.L46
.L45:
	leaq	.LC3(%rip), %rax
.L46:
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L48
	call	__stack_chk_fail@PLT
.L48:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.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	s_asorts
	.type	s_asorts, @function
s_asorts:
.LFB51:
	.cfi_startproc
	endbr64
	jmp	strcmp@PLT
	.cfi_endproc
.LFE51:
	.size	s_asorts, .-s_asorts
	.p2align 4
	.globl	s_dsort
	.type	s_dsort, @function
s_dsort:
.LFB52:
	.cfi_startproc
	endbr64
	movl	(%rsi), %eax
	subl	(%rdi), %eax
	ret
	.cfi_endproc
.LFE52:
	.size	s_dsort, .-s_dsort
	.p2align 4
	.globl	s_asort
	.type	s_asort, @function
s_asort:
.LFB53:
	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	subl	(%rsi), %eax
	ret
	.cfi_endproc
.LFE53:
	.size	s_asort, .-s_asort
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%ld %ld"
	.text
	.p2align 4
	.globl	l_cins2
	.type	l_cins2, @function
l_cins2:
.LFB54:
	.cfi_startproc
	endbr64
	testl	%edi, %edi
	jle	.L10
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leal	-1(%rdi), %eax
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	leaq	8(%rsi,%rax,8), %r13
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	.p2align 4,,10
	.p2align 3
.L7:
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	addq	$8, %rbx
	addq	$8, %rbp
	cmpq	%r13, %rbx
	jne	.L7
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10:
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE54:
	.size	l_cins2, .-l_cins2
	.section	.rodata.str1.1
.LC1:
	.string	"%d"
	.text
	.p2align 4
	.globl	i_cins
	.type	i_cins, @function
i_cins:
.LFB55:
	.cfi_startproc
	endbr64
	testl	%edi, %edi
	jle	.L18
	leal	-1(%rdi), %eax
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	4(%rsi,%rax,4), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	.LC1(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rsi, %rbx
	.p2align 4,,10
	.p2align 3
.L15:
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	xorl	%eax, %eax
	addq	$4, %rbx
	call	__isoc99_scanf@PLT
	cmpq	%r12, %rbx
	jne	.L15
	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18:
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE55:
	.size	i_cins, .-i_cins
	.p2align 4
	.globl	_gcd
	.type	_gcd, @function
_gcd:
.LFB56:
	.cfi_startproc
	endbr64
	movl	%edi, %eax
	cmpl	%esi, %edi
	jge	.L22
	movl	%esi, %eax
	movl	%edi, %esi
.L22:
	cltd
	idivl	%esi
	testl	%edx, %edx
	je	.L25
	.p2align 4,,10
	.p2align 3
.L24:
	movl	%esi, %eax
	movl	%edx, %r8d
	cltd
	movl	%r8d, %esi
	idivl	%r8d
	testl	%edx, %edx
	jne	.L24
	movl	%r8d, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L25:
	movl	%esi, %r8d
	movl	%r8d, %eax
	ret
	.cfi_endproc
.LFE56:
	.size	_gcd, .-_gcd
	.p2align 4
	.globl	_max
	.type	_max, @function
_max:
.LFB57:
	.cfi_startproc
	endbr64
	cmpq	%rdi, %rsi
	movq	%rdi, %rax
	cmovge	%rsi, %rax
	ret
	.cfi_endproc
.LFE57:
	.size	_max, .-_max
	.p2align 4
	.globl	_min
	.type	_min, @function
_min:
.LFB58:
	.cfi_startproc
	endbr64
	cmpq	%rdi, %rsi
	movq	%rdi, %rax
	cmovle	%rsi, %rax
	ret
	.cfi_endproc
.LFE58:
	.size	_min, .-_min
	.p2align 4
	.globl	_swp
	.type	_swp, @function
_swp:
.LFB59:
	.cfi_startproc
	endbr64
	movl	(%rsi), %eax
	movl	(%rdi), %edx
	movl	%edx, (%rsi)
	movl	%eax, (%rdi)
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE59:
	.size	_swp, .-_swp
	.p2align 4
	.globl	_cknum
	.type	_cknum, @function
_cknum:
.LFB60:
	.cfi_startproc
	endbr64
	testl	%esi, %esi
	jle	.L33
	leal	-1(%rsi), %eax
	leaq	1(%rdi,%rax), %rdx
	jmp	.L32
	.p2align 4,,10
	.p2align 3
.L36:
	addq	$1, %rdi
	cmpq	%rdx, %rdi
	je	.L33
.L32:
	movzbl	(%rdi), %eax
	subl	$48, %eax
	cmpb	$9, %al
	jbe	.L36
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L33:
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE60:
	.size	_cknum, .-_cknum
	.p2align 4
	.globl	_same
	.type	_same, @function
_same:
.LFB61:
	.cfi_startproc
	endbr64
	cmpb	%sil, %dil
	sete	%cl
	cmpb	%dl, %sil
	sete	%r8b
	testb	%cl, %cl
	je	.L45
	xorl	%eax, %eax
	testb	%r8b, %r8b
	je	.L45
.L37:
	ret
	.p2align 4,,10
	.p2align 3
.L45:
	cmpb	%dl, %sil
	je	.L46
	movl	$1, %eax
	testb	%cl, %cl
	jne	.L37
.L46:
	cmpb	%dl, %dil
	jne	.L47
	movl	$1, %eax
	cmpb	%sil, %dil
	jne	.L37
.L47:
	cmpb	%dl, %dil
	movl	$2, %eax
	setne	%dl
	movzbl	%dl, %edx
	andl	%r8d, %edx
	subl	%edx, %eax
	ret
	.cfi_endproc
.LFE61:
	.size	_same, .-_same
	.section	.rodata.str1.1
.LC2:
	.string	"No"
.LC3:
	.string	"Yes"
	.section	.text.unlikely,"ax",@progbits
.LCOLDB5:
	.section	.text.startup,"ax",@progbits
.LHOTB5:
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB62:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC1(%rip), %r12
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%r12, %rdi
	leaq	n(%rip), %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %r8d
	movq	%rbx, %rdi
	xorl	%eax, %eax
	movq	%r12, %rcx
	movl	$1000000001, %edx
	movl	$1, %esi
	call	__sprintf_chk@PLT
	movq	%rbx, %rdi
	call	strlen@PLT
	testq	%rax, %rax
	je	.L58
	movq	%rax, %rdx
	leal	-1(%rax), %eax
	cmpl	$14, %eax
	jbe	.L64
	movl	%edx, %ecx
	leaq	16(%rbx), %rsi
	pxor	%xmm1, %xmm1
	movq	%rbx, %rax
	shrl	$4, %ecx
	movdqa	.LC4(%rip), %xmm5
	pxor	%xmm6, %xmm6
	pxor	%xmm4, %xmm4
	subl	$1, %ecx
	salq	$4, %rcx
	addq	%rsi, %rcx
	.p2align 4,,10
	.p2align 3
.L60:
	movdqa	(%rax), %xmm0
	movdqa	%xmm6, %xmm3
	addq	$16, %rax
	pcmpgtb	%xmm0, %xmm3
	movdqa	%xmm0, %xmm2
	punpcklbw	%xmm3, %xmm2
	punpckhbw	%xmm3, %xmm0
	movdqa	%xmm4, %xmm3
	paddw	%xmm5, %xmm2
	paddw	%xmm5, %xmm0
	pcmpgtw	%xmm2, %xmm3
	movdqa	%xmm2, %xmm7
	punpcklwd	%xmm3, %xmm7
	punpckhwd	%xmm3, %xmm2
	movdqa	%xmm0, %xmm3
	paddd	%xmm7, %xmm1
	paddd	%xmm2, %xmm1
	movdqa	%xmm4, %xmm2
	pcmpgtw	%xmm0, %xmm2
	punpcklwd	%xmm2, %xmm3
	punpckhwd	%xmm2, %xmm0
	paddd	%xmm3, %xmm1
	paddd	%xmm0, %xmm1
	cmpq	%rcx, %rax
	jne	.L60
	movdqa	%xmm1, %xmm0
	movl	%edx, %eax
	psrldq	$8, %xmm0
	andl	$-16, %eax
	paddd	%xmm0, %xmm1
	movdqa	%xmm1, %xmm0
	psrldq	$4, %xmm0
	paddd	%xmm0, %xmm1
	movd	%xmm1, %ecx
	testb	$15, %dl
	je	.L61
.L59:
	movslq	%eax, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	1(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	2(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	3(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	4(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	5(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	6(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	7(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	8(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	9(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	10(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	11(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	12(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	13(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	addl	$14, %eax
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	cmpl	%eax, %edx
	jle	.L61
	cltq
	movsbl	(%rbx,%rax), %eax
	leal	-48(%rcx,%rax), %ecx
	.p2align 4,,10
	.p2align 3
.L61:
	movl	4(%rsp), %eax
	leaq	.LC2(%rip), %rdi
	cltd
	idivl	%ecx
	leaq	.LC3(%rip), %rax
	testl	%edx, %edx
	cmove	%rax, %rdi
	call	puts@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L69
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L64:
	.cfi_restore_state
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	jmp	.L59
.L69:
	call	__stack_chk_fail@PLT
	.cfi_endproc
	.section	.text.unlikely
	.cfi_startproc
	.type	main.cold, @function
main.cold:
.LFSB62:
.L58:
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -24
	.cfi_offset 12, -16
	ud2
	.cfi_endproc
.LFE62:
	.section	.text.startup
	.size	main, .-main
	.section	.text.unlikely
	.size	main.cold, .-main.cold
.LCOLDE5:
	.section	.text.startup
.LHOTE5:
	.local	n
	.comm	n,1000000001,32
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC4:
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.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	s_asorts
	.type	s_asorts, @function
s_asorts:
.LFB51:
	.cfi_startproc
	endbr64
	jmp	strcmp@PLT
	.cfi_endproc
.LFE51:
	.size	s_asorts, .-s_asorts
	.p2align 4
	.globl	s_dsort
	.type	s_dsort, @function
s_dsort:
.LFB52:
	.cfi_startproc
	endbr64
	movl	(%rsi), %eax
	subl	(%rdi), %eax
	ret
	.cfi_endproc
.LFE52:
	.size	s_dsort, .-s_dsort
	.p2align 4
	.globl	s_asort
	.type	s_asort, @function
s_asort:
.LFB53:
	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	subl	(%rsi), %eax
	ret
	.cfi_endproc
.LFE53:
	.size	s_asort, .-s_asort
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%ld %ld"
	.text
	.p2align 4
	.globl	l_cins2
	.type	l_cins2, @function
l_cins2:
.LFB54:
	.cfi_startproc
	endbr64
	testl	%edi, %edi
	jle	.L10
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leal	-1(%rdi), %eax
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	leaq	8(%rsi,%rax,8), %r13
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	.p2align 4,,10
	.p2align 3
.L7:
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	addq	$8, %rbx
	addq	$8, %rbp
	cmpq	%r13, %rbx
	jne	.L7
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10:
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE54:
	.size	l_cins2, .-l_cins2
	.section	.rodata.str1.1
.LC1:
	.string	"%d"
	.text
	.p2align 4
	.globl	i_cins
	.type	i_cins, @function
i_cins:
.LFB55:
	.cfi_startproc
	endbr64
	testl	%edi, %edi
	jle	.L18
	leal	-1(%rdi), %eax
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	4(%rsi,%rax,4), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	.LC1(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rsi, %rbx
	.p2align 4,,10
	.p2align 3
.L15:
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	xorl	%eax, %eax
	addq	$4, %rbx
	call	__isoc99_scanf@PLT
	cmpq	%r12, %rbx
	jne	.L15
	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18:
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE55:
	.size	i_cins, .-i_cins
	.p2align 4
	.globl	_gcd
	.type	_gcd, @function
_gcd:
.LFB56:
	.cfi_startproc
	endbr64
	movl	%edi, %eax
	cmpl	%esi, %edi
	jge	.L22
	movl	%esi, %eax
	movl	%edi, %esi
.L22:
	cltd
	idivl	%esi
	testl	%edx, %edx
	je	.L25
	.p2align 4,,10
	.p2align 3
.L24:
	movl	%esi, %eax
	movl	%edx, %r8d
	cltd
	movl	%r8d, %esi
	idivl	%r8d
	testl	%edx, %edx
	jne	.L24
	movl	%r8d, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L25:
	movl	%esi, %r8d
	movl	%r8d, %eax
	ret
	.cfi_endproc
.LFE56:
	.size	_gcd, .-_gcd
	.p2align 4
	.globl	_max
	.type	_max, @function
_max:
.LFB57:
	.cfi_startproc
	endbr64
	cmpq	%rdi, %rsi
	movq	%rdi, %rax
	cmovge	%rsi, %rax
	ret
	.cfi_endproc
.LFE57:
	.size	_max, .-_max
	.p2align 4
	.globl	_min
	.type	_min, @function
_min:
.LFB58:
	.cfi_startproc
	endbr64
	cmpq	%rdi, %rsi
	movq	%rdi, %rax
	cmovle	%rsi, %rax
	ret
	.cfi_endproc
.LFE58:
	.size	_min, .-_min
	.p2align 4
	.globl	_swp
	.type	_swp, @function
_swp:
.LFB59:
	.cfi_startproc
	endbr64
	movl	(%rsi), %eax
	movl	(%rdi), %edx
	movl	%edx, (%rsi)
	movl	%eax, (%rdi)
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE59:
	.size	_swp, .-_swp
	.p2align 4
	.globl	_cknum
	.type	_cknum, @function
_cknum:
.LFB60:
	.cfi_startproc
	endbr64
	testl	%esi, %esi
	jle	.L33
	leal	-1(%rsi), %eax
	leaq	1(%rdi,%rax), %rdx
	jmp	.L32
	.p2align 4,,10
	.p2align 3
.L36:
	addq	$1, %rdi
	cmpq	%rdx, %rdi
	je	.L33
.L32:
	movzbl	(%rdi), %eax
	subl	$48, %eax
	cmpb	$9, %al
	jbe	.L36
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L33:
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE60:
	.size	_cknum, .-_cknum
	.p2align 4
	.globl	_same
	.type	_same, @function
_same:
.LFB61:
	.cfi_startproc
	endbr64
	cmpb	%sil, %dil
	sete	%cl
	cmpb	%dl, %sil
	sete	%r8b
	testb	%cl, %cl
	je	.L45
	xorl	%eax, %eax
	testb	%r8b, %r8b
	je	.L45
.L37:
	ret
	.p2align 4,,10
	.p2align 3
.L45:
	cmpb	%dl, %sil
	je	.L46
	movl	$1, %eax
	testb	%cl, %cl
	jne	.L37
.L46:
	cmpb	%dl, %dil
	jne	.L47
	movl	$1, %eax
	cmpb	%sil, %dil
	jne	.L37
.L47:
	cmpb	%dl, %dil
	movl	$2, %eax
	setne	%dl
	movzbl	%dl, %edx
	andl	%r8d, %edx
	subl	%edx, %eax
	ret
	.cfi_endproc
.LFE61:
	.size	_same, .-_same
	.section	.rodata.str1.1
.LC2:
	.string	"No"
.LC3:
	.string	"Yes"
	.section	.text.unlikely,"ax",@progbits
.LCOLDB5:
	.section	.text.startup,"ax",@progbits
.LHOTB5:
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB62:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC1(%rip), %r12
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%r12, %rdi
	leaq	n(%rip), %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %r8d
	movq	%rbx, %rdi
	xorl	%eax, %eax
	movq	%r12, %rcx
	movl	$1000000001, %edx
	movl	$1, %esi
	call	__sprintf_chk@PLT
	movq	%rbx, %rdi
	call	strlen@PLT
	testq	%rax, %rax
	je	.L58
	movq	%rax, %rdx
	leal	-1(%rax), %eax
	cmpl	$14, %eax
	jbe	.L64
	movl	%edx, %ecx
	leaq	16(%rbx), %rsi
	pxor	%xmm1, %xmm1
	movq	%rbx, %rax
	shrl	$4, %ecx
	movdqa	.LC4(%rip), %xmm5
	pxor	%xmm6, %xmm6
	pxor	%xmm4, %xmm4
	subl	$1, %ecx
	salq	$4, %rcx
	addq	%rsi, %rcx
	.p2align 4,,10
	.p2align 3
.L60:
	movdqa	(%rax), %xmm0
	movdqa	%xmm6, %xmm3
	addq	$16, %rax
	pcmpgtb	%xmm0, %xmm3
	movdqa	%xmm0, %xmm2
	punpcklbw	%xmm3, %xmm2
	punpckhbw	%xmm3, %xmm0
	movdqa	%xmm4, %xmm3
	paddw	%xmm5, %xmm2
	paddw	%xmm5, %xmm0
	pcmpgtw	%xmm2, %xmm3
	movdqa	%xmm2, %xmm7
	punpcklwd	%xmm3, %xmm7
	punpckhwd	%xmm3, %xmm2
	movdqa	%xmm0, %xmm3
	paddd	%xmm7, %xmm1
	paddd	%xmm2, %xmm1
	movdqa	%xmm4, %xmm2
	pcmpgtw	%xmm0, %xmm2
	punpcklwd	%xmm2, %xmm3
	punpckhwd	%xmm2, %xmm0
	paddd	%xmm3, %xmm1
	paddd	%xmm0, %xmm1
	cmpq	%rcx, %rax
	jne	.L60
	movdqa	%xmm1, %xmm0
	movl	%edx, %eax
	psrldq	$8, %xmm0
	andl	$-16, %eax
	paddd	%xmm0, %xmm1
	movdqa	%xmm1, %xmm0
	psrldq	$4, %xmm0
	paddd	%xmm0, %xmm1
	movd	%xmm1, %ecx
	testb	$15, %dl
	je	.L61
.L59:
	movslq	%eax, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	1(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	2(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	3(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	4(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	5(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	6(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	7(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	8(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	9(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	10(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	11(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	12(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	leal	13(%rax), %esi
	cmpl	%esi, %edx
	jle	.L61
	movslq	%esi, %rsi
	addl	$14, %eax
	movsbl	(%rbx,%rsi), %esi
	leal	-48(%rcx,%rsi), %ecx
	cmpl	%eax, %edx
	jle	.L61
	cltq
	movsbl	(%rbx,%rax), %eax
	leal	-48(%rcx,%rax), %ecx
	.p2align 4,,10
	.p2align 3
.L61:
	movl	4(%rsp), %eax
	leaq	.LC2(%rip), %rdi
	cltd
	idivl	%ecx
	leaq	.LC3(%rip), %rax
	testl	%edx, %edx
	cmove	%rax, %rdi
	call	puts@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L69
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L64:
	.cfi_restore_state
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	jmp	.L59
.L69:
	call	__stack_chk_fail@PLT
	.cfi_endproc
	.section	.text.unlikely
	.cfi_startproc
	.type	main.cold, @function
main.cold:
.LFSB62:
.L58:
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -24
	.cfi_offset 12, -16
	ud2
	.cfi_endproc
.LFE62:
	.section	.text.startup
	.size	main, .-main
	.section	.text.unlikely
	.size	main.cold, .-main.cold
.LCOLDE5:
	.section	.text.startup
.LHOTE5:
	.local	n
	.comm	n,1000000001,32
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC4:
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.value	-48
	.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:


#pragma warning(disable:4996)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <float.h>

#pragma region 定義
#define i_cin(X) scanf("%d", &X)
#define i_cin2(X,Y) scanf("%d %d",&X,&Y)
#define i_cin4(X,Y,Z,W) scanf("%d %d %d %d",&X,&Y,&Z,&W)
#define i_cin3(X,Y,Z) scanf("%d %d %d",&X,&Y,&Z)
#define l_cin(X) scanf("%ld",&X)
#define f_cin(X) scanf("%f",&X)
#define l_cin2(X,Y) scanf("%ld %ld",&X,&Y)
#define s_cin(X) scanf("%s",&X)

#define  i_cout(X) printf("%d\n",X)
#define  f_cout(X) printf("%g\n",X)
#define  i_cout2(X,Y) printf("%d %d\n",X,Y)
#define  l_cout(X) printf("%ld\n",X)
#define  s_cout(X) printf("%s\n",X)
#define  ll_cout(X) printf("%lld\n",X)

typedef long long  ll;
#define rept(x, s, n) for (int x = s; x < n; x++)

#define S_RTN(S)  s_cout(S);return 0


#define _itoa(A,N) sprintf(A, "%d", N);

int i_cins(int n, int* A);
int l_cins2(int n, long* A, long* B);
int s_dsort(const void* a, const void* b);
int s_asort(const void* a, const void* b);

int  _gcd(int a, int b);
int  _swp(int* a, int* b);
int _cknum(char* a, int n);


int s_asorts(const void* a, const void* b);

//昇順
int s_asorts(const void* a, const void* b) {
	return(strcmp((char*)a, (char*)b));
}
int s_dsort(const void* a, const void* b) {
	return(*(int*)b - *(int*)a);
}
int s_asort(const void* a, const void* b) {
	return(*(int*)a - *(int*)b);
}
int l_cins2(int n, long* a, long* b) {
	int i;
	rept(i, 0, n) {
		l_cin2(*(a + i), *(b + i));
	}
	return 0;
}
int i_cins(int n, int* a) {
	int i;
	for (i = 0; i < n; i++) {
		i_cin(*(a + i));
	}

	return 0;
}
int _gcd(int a, int b) {
	int r, tmp;
	if (a < b) { tmp = a; a = b; b = tmp; }
	r = a % b;
	while (r) {
		if (!r) break;
		a = b; b = r;
		r = a % b;
	}
	return(b);
}

long _max(long a, long b) {
	return a > b ? a : b;
}
long _min(long a, long b) {
	return a < b ? a : b;
}
int _swp(int* a, int* b)
{
	int tmp;
	tmp = *b; *b = *a; *a = tmp;
	return 0;
}

int _cknum(char* a, int n) {
	int i;
	char t = '0';

	for (i = 0; i < n; i++) {
		if (a[i] < '0' || a[i]>'9') return 1;
	}
	return 0;
}

#pragma endregion

int _same(char a, char b, char c);
int _same(char a, char b, char c) {
	if (a == b && b == c) return 0;
	if ((a == b && b != c) || (a == c && a != b) ||
		(b == c && a != c)) return 1;
	return 2;
}

static char n[1000000001];

int main(void) {
	int N,tmp=0,i,len;
	
	i_cin(N);

	_itoa(n,N);
	len=strlen(n);

	for (i = 0; i < len;i++) {
		tmp += (n[i] - '0');
	}

	s_cout((N%tmp)?"No":"Yes");

	return 0;
}

	/*int A, B, C, X;
	int a, b, r, tmp, cnt = 0;

	i_cin4(A, B, C, X);

	r = (X % 100) / 50;
	if (r && !C) {i_cout(0); return 0;}

	tmp= X / 500;
	a = (tmp > A) ? A : tmp;
	tmp = X / 100;
	b =  (tmp > B) ? B : tmp;
	if (a && b) cnt = a * b / 2;
	else cnt = _max(a, b);
	cnt++;
	i_cout(cnt);*/




12

Yes

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

```c

#pragma warning(disable:4996)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <float.h>

#pragma region 定義
#define i_cin(X) scanf("%d", &X)
#define i_cin2(X,Y) scanf("%d %d",&X,&Y)
#define i_cin4(X,Y,Z,W) scanf("%d %d %d %d",&X,&Y,&Z,&W)
#define i_cin3(X,Y,Z) scanf("%d %d %d",&X,&Y,&Z)
#define l_cin(X) scanf("%ld",&X)
#define f_cin(X) scanf("%f",&X)
#define l_cin2(X,Y) scanf("%ld %ld",&X,&Y)
#define s_cin(X) scanf("%s",&X)

#define  i_cout(X) printf("%d\n",X)
#define  f_cout(X) printf("%g\n",X)
#define  i_cout2(X,Y) printf("%d %d\n",X,Y)
#define  l_cout(X) printf("%ld\n",X)
#define  s_cout(X) printf("%s\n",X)
#define  ll_cout(X) printf("%lld\n",X)

typedef long long  ll;
#define rept(x, s, n) for (int x = s; x < n; x++)

#define S_RTN(S)  s_cout(S);return 0


#define _itoa(A,N) sprintf(A, "%d", N);

int i_cins(int n, int* A);
int l_cins2(int n, long* A, long* B);
int s_dsort(const void* a, const void* b);
int s_asort(const void* a, const void* b);

int  _gcd(int a, int b);
int  _swp(int* a, int* b);
int _cknum(char* a, int n);


int s_asorts(const void* a, const void* b);

//昇順
int s_asorts(const void* a, const void* b) {
	return(strcmp((char*)a, (char*)b));
}
int s_dsort(const void* a, const void* b) {
	return(*(int*)b - *(int*)a);
}
int s_asort(const void* a, const void* b) {
	return(*(int*)a - *(int*)b);
}
int l_cins2(int n, long* a, long* b) {
	int i;
	rept(i, 0, n) {
		l_cin2(*(a + i), *(b + i));
	}
	return 0;
}
int i_cins(int n, int* a) {
	int i;
	for (i = 0; i < n; i++) {
		i_cin(*(a + i));
	}

	return 0;
}
int _gcd(int a, int b) {
	int r, tmp;
	if (a < b) { tmp = a; a = b; b = tmp; }
	r = a % b;
	while (r) {
		if (!r) break;
		a = b; b = r;
		r = a % b;
	}
	return(b);
}

long _max(long a, long b) {
	return a > b ? a : b;
}
long _min(long a, long b) {
	return a < b ? a : b;
}
int _swp(int* a, int* b)
{
	int tmp;
	tmp = *b; *b = *a; *a = tmp;
	return 0;
}

int _cknum(char* a, int n) {
	int i;
	char t = '0';

	for (i = 0; i < n; i++) {
		if (a[i] < '0' || a[i]>'9') return 1;
	}
	return 0;
}

#pragma endregion

int _same(char a, char b, char c);
int _same(char a, char b, char c) {
	if (a == b && b == c) return 0;
	if ((a == b && b != c) || (a == c && a != b) ||
		(b == c && a != c)) return 1;
	return 2;
}

static char n[1000000001];

int main(void) {
	int N,tmp=0,i,len;
	
	i_cin(N);

	_itoa(n,N);
	len=strlen(n);

	for (i = 0; i < len;i++) {
		tmp += (n[i] - '0');
	}

	s_cout((N%tmp)?"No":"Yes");

	return 0;
}

	/*int A, B, C, X;
	int a, b, r, tmp, cnt = 0;

	i_cin4(A, B, C, X);

	r = (X % 100) / 50;
	if (r && !C) {i_cout(0); return 0;}

	tmp= X / 500;
	a = (tmp > A) ? A : tmp;
	tmp = X / 100;
	b =  (tmp > B) ? B : tmp;
	if (a && b) cnt = a * b / 2;
	else cnt = _max(a, b);
	cnt++;
	i_cout(cnt);*/



```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	s_asorts
	.type	s_asorts, @function
s_asorts:
.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
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	strcmp@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	s_asorts, .-s_asorts
	.globl	s_dsort
	.type	s_dsort, @function
s_dsort:
.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	-16(%rbp), %rax
	movl	(%rax), %edx
	movq	-8(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	s_dsort, .-s_dsort
	.globl	s_asort
	.type	s_asort, @function
s_asort:
.LFB8:
	.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
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	s_asort, .-s_asort
	.section	.rodata
.LC0:
	.string	"%ld %ld"
	.text
	.globl	l_cins2
	.type	l_cins2, @function
l_cins2:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movl	%edi, -20(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%rdx, -40(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L8
.L9:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	movq	-40(%rbp), %rax
	addq	%rax, %rdx
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	movq	-32(%rbp), %rax
	addq	%rcx, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addl	$1, -4(%rbp)
.L8:
	movl	-4(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L9
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	l_cins2, .-l_cins2
	.section	.rodata
.LC1:
	.string	"%d"
	.text
	.globl	i_cins
	.type	i_cins, @function
i_cins:
.LFB10:
	.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
	movl	%edi, -20(%rbp)
	movq	%rsi, -32(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L12
.L13:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-32(%rbp), %rax
	addq	%rdx, %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addl	$1, -4(%rbp)
.L12:
	movl	-4(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L13
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	i_cins, .-i_cins
	.globl	_gcd
	.type	_gcd, @function
_gcd:
.LFB11:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -20(%rbp)
	movl	%esi, -24(%rbp)
	movl	-20(%rbp), %eax
	cmpl	-24(%rbp), %eax
	jge	.L16
	movl	-20(%rbp), %eax
	movl	%eax, -4(%rbp)
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	movl	-4(%rbp), %eax
	movl	%eax, -24(%rbp)
.L16:
	movl	-20(%rbp), %eax
	cltd
	idivl	-24(%rbp)
	movl	%edx, -8(%rbp)
	jmp	.L17
.L20:
	cmpl	$0, -8(%rbp)
	je	.L22
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	movl	-8(%rbp), %eax
	movl	%eax, -24(%rbp)
	movl	-20(%rbp), %eax
	cltd
	idivl	-24(%rbp)
	movl	%edx, -8(%rbp)
.L17:
	cmpl	$0, -8(%rbp)
	jne	.L20
	jmp	.L19
.L22:
	nop
.L19:
	movl	-24(%rbp), %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	_gcd, .-_gcd
	.globl	_max
	.type	_max, @function
_max:
.LFB12:
	.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	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	cmpq	%rax, %rdx
	cmovge	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	_max, .-_max
	.globl	_min
	.type	_min, @function
_min:
.LFB13:
	.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	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	cmpq	%rax, %rdx
	cmovle	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	_min, .-_min
	.globl	_swp
	.type	_swp, @function
_swp:
.LFB14:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	-32(%rbp), %rax
	movl	(%rax), %eax
	movl	%eax, -4(%rbp)
	movq	-24(%rbp), %rax
	movl	(%rax), %edx
	movq	-32(%rbp), %rax
	movl	%edx, (%rax)
	movq	-24(%rbp), %rax
	movl	-4(%rbp), %edx
	movl	%edx, (%rax)
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	_swp, .-_swp
	.globl	_cknum
	.type	_cknum, @function
_cknum:
.LFB15:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movb	$48, -5(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L30
.L34:
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$47, %al
	jle	.L31
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$57, %al
	jle	.L32
.L31:
	movl	$1, %eax
	jmp	.L33
.L32:
	addl	$1, -4(%rbp)
.L30:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L34
	movl	$0, %eax
.L33:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	_cknum, .-_cknum
	.globl	_same
	.type	_same, @function
_same:
.LFB16:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%esi, %ecx
	movl	%edx, %eax
	movl	%edi, %edx
	movb	%dl, -4(%rbp)
	movl	%ecx, %edx
	movb	%dl, -8(%rbp)
	movb	%al, -12(%rbp)
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L36
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L36
	movl	$0, %eax
	jmp	.L37
.L36:
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L38
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L39
.L38:
	movzbl	-4(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L40
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L39
.L40:
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L41
	movzbl	-4(%rbp), %eax
	cmpb	-12(%rbp), %al
	je	.L41
.L39:
	movl	$1, %eax
	jmp	.L37
.L41:
	movl	$2, %eax
.L37:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	_same, .-_same
	.local	n
	.comm	n,1000000001,32
	.section	.rodata
.LC2:
	.string	"No"
.LC3:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB17:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -20(%rbp)
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-24(%rbp), %eax
	movl	%eax, %edx
	leaq	.LC1(%rip), %rax
	movq	%rax, %rsi
	leaq	n(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	sprintf@PLT
	leaq	n(%rip), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -12(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L43
.L44:
	movl	-16(%rbp), %eax
	cltq
	leaq	n(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$48, %eax
	addl	%eax, -20(%rbp)
	addl	$1, -16(%rbp)
.L43:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jl	.L44
	movl	-24(%rbp), %eax
	cltd
	idivl	-20(%rbp)
	movl	%edx, %eax
	testl	%eax, %eax
	je	.L45
	leaq	.LC2(%rip), %rax
	jmp	.L46
.L45:
	leaq	.LC3(%rip), %rax
.L46:
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L48
	call	__stack_chk_fail@PLT
.L48:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.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
	.globl	s_asorts
	.type	s_asorts, @function
s_asorts:
.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
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	strcmp@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	s_asorts, .-s_asorts
	.globl	s_dsort
	.type	s_dsort, @function
s_dsort:
.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	-16(%rbp), %rax
	movl	(%rax), %edx
	movq	-8(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	s_dsort, .-s_dsort
	.globl	s_asort
	.type	s_asort, @function
s_asort:
.LFB8:
	.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
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	s_asort, .-s_asort
	.section	.rodata
.LC0:
	.string	"%ld %ld"
	.text
	.globl	l_cins2
	.type	l_cins2, @function
l_cins2:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movl	%edi, -20(%rbp)
	movq	%rsi, -32(%rbp)
	movq	%rdx, -40(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L8
.L9:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	movq	-40(%rbp), %rax
	addq	%rax, %rdx
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rcx
	movq	-32(%rbp), %rax
	addq	%rcx, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addl	$1, -4(%rbp)
.L8:
	movl	-4(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L9
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	l_cins2, .-l_cins2
	.section	.rodata
.LC1:
	.string	"%d"
	.text
	.globl	i_cins
	.type	i_cins, @function
i_cins:
.LFB10:
	.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
	movl	%edi, -20(%rbp)
	movq	%rsi, -32(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L12
.L13:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-32(%rbp), %rax
	addq	%rdx, %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addl	$1, -4(%rbp)
.L12:
	movl	-4(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L13
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	i_cins, .-i_cins
	.globl	_gcd
	.type	_gcd, @function
_gcd:
.LFB11:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -20(%rbp)
	movl	%esi, -24(%rbp)
	movl	-20(%rbp), %eax
	cmpl	-24(%rbp), %eax
	jge	.L16
	movl	-20(%rbp), %eax
	movl	%eax, -4(%rbp)
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	movl	-4(%rbp), %eax
	movl	%eax, -24(%rbp)
.L16:
	movl	-20(%rbp), %eax
	cltd
	idivl	-24(%rbp)
	movl	%edx, -8(%rbp)
	jmp	.L17
.L20:
	cmpl	$0, -8(%rbp)
	je	.L22
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	movl	-8(%rbp), %eax
	movl	%eax, -24(%rbp)
	movl	-20(%rbp), %eax
	cltd
	idivl	-24(%rbp)
	movl	%edx, -8(%rbp)
.L17:
	cmpl	$0, -8(%rbp)
	jne	.L20
	jmp	.L19
.L22:
	nop
.L19:
	movl	-24(%rbp), %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	_gcd, .-_gcd
	.globl	_max
	.type	_max, @function
_max:
.LFB12:
	.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	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	cmpq	%rax, %rdx
	cmovge	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	_max, .-_max
	.globl	_min
	.type	_min, @function
_min:
.LFB13:
	.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	-16(%rbp), %rdx
	movq	-8(%rbp), %rax
	cmpq	%rax, %rdx
	cmovle	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	_min, .-_min
	.globl	_swp
	.type	_swp, @function
_swp:
.LFB14:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movq	-32(%rbp), %rax
	movl	(%rax), %eax
	movl	%eax, -4(%rbp)
	movq	-24(%rbp), %rax
	movl	(%rax), %edx
	movq	-32(%rbp), %rax
	movl	%edx, (%rax)
	movq	-24(%rbp), %rax
	movl	-4(%rbp), %edx
	movl	%edx, (%rax)
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	_swp, .-_swp
	.globl	_cknum
	.type	_cknum, @function
_cknum:
.LFB15:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movb	$48, -5(%rbp)
	movl	$0, -4(%rbp)
	jmp	.L30
.L34:
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$47, %al
	jle	.L31
	movl	-4(%rbp), %eax
	movslq	%eax, %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$57, %al
	jle	.L32
.L31:
	movl	$1, %eax
	jmp	.L33
.L32:
	addl	$1, -4(%rbp)
.L30:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L34
	movl	$0, %eax
.L33:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	_cknum, .-_cknum
	.globl	_same
	.type	_same, @function
_same:
.LFB16:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%esi, %ecx
	movl	%edx, %eax
	movl	%edi, %edx
	movb	%dl, -4(%rbp)
	movl	%ecx, %edx
	movb	%dl, -8(%rbp)
	movb	%al, -12(%rbp)
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L36
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L36
	movl	$0, %eax
	jmp	.L37
.L36:
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L38
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L39
.L38:
	movzbl	-4(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L40
	movzbl	-4(%rbp), %eax
	cmpb	-8(%rbp), %al
	jne	.L39
.L40:
	movzbl	-8(%rbp), %eax
	cmpb	-12(%rbp), %al
	jne	.L41
	movzbl	-4(%rbp), %eax
	cmpb	-12(%rbp), %al
	je	.L41
.L39:
	movl	$1, %eax
	jmp	.L37
.L41:
	movl	$2, %eax
.L37:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	_same, .-_same
	.local	n
	.comm	n,1000000001,32
	.section	.rodata
.LC2:
	.string	"No"
.LC3:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB17:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -20(%rbp)
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-24(%rbp), %eax
	movl	%eax, %edx
	leaq	.LC1(%rip), %rax
	movq	%rax, %rsi
	leaq	n(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	sprintf@PLT
	leaq	n(%rip), %rax
	movq	%rax, %rdi
	call	strlen@PLT
	movl	%eax, -12(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L43
.L44:
	movl	-16(%rbp), %eax
	cltq
	leaq	n(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$48, %eax
	addl	%eax, -20(%rbp)
	addl	$1, -16(%rbp)
.L43:
	movl	-16(%rbp), %eax
	cmpl	-12(%rbp), %eax
	jl	.L44
	movl	-24(%rbp), %eax
	cltd
	idivl	-20(%rbp)
	movl	%edx, %eax
	testl	%eax, %eax
	je	.L45
	leaq	.LC2(%rip), %rax
	jmp	.L46
.L45:
	leaq	.LC3(%rip), %rax
.L46:
	movq	%rax, %rdi
	call	puts@PLT
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L48
	call	__stack_chk_fail@PLT
.L48:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.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:
