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

```c
#include <stdio.h>
#include <string.h>

int min(int a, int b)
{
	if (a > b){
		return (b);
	}
	return (a);
}

int lose(int *ptr)
{
	int i, j;
	int temp[10];
	int sum;
	
	for (i = 0; i < 1 << 10; i++){
		for (j = 0; j < 10; j++){
			temp[j] = ptr[j];
		}
		for (j = 0; j < 10; j++){
			if (((i >> j) & 1) && (temp[j] >= 3)){
				temp[j] -= 3;
			}
		}
		
		for (j = 1; j <= 7; j++){
			while (temp[j] >= 1 && temp[j + 1] >= 1 && temp[j + 2] >= 1){
				temp[j]--;
				temp[j + 1]--;
				temp[j + 2]--;
			}
		}
		
		sum = 0;
		
		for (j = 1; j <= 9; j++){
			sum += temp[j];
		}
		if (sum == 0){
			return (0);
		}
	}
	
	return (-1);
}

int main(void)
{
	char str[14];
	char flag[10];
	int num[10], memo[10];
	int i, j;
	int ok;
	
	while (scanf("%s", str) != EOF){
		getchar();
		memset(num, 0, sizeof(num));
		memset(flag, 0, sizeof(flag));
		
		for (i = 0; i < 13; i++){
			num[str[i] - '0']++;
		}
		
		memcpy(memo, num, sizeof(num));
		
		for (i = 1; i <= 9; i++){
			memcpy(num, memo, sizeof(memo));
			if (num[i] < 4){
				memo[i]++;
				for (j = 1; j <= 9; j++){
					memcpy(num, memo, sizeof(memo));
					if (num[j] >= 2){
						num[j] -= 2;
						if (lose(num) == 0){
							flag[i] = 1;
						}
					}
				}
				
				memo[i]--;
			}
		}
		
		ok = 0;
		for (i = 1; i <= 9; i++){
			if (ok == 1 && flag[i] == 1){
				printf(" ");
			}
			if (flag[i] == 1){
				printf("%d", i);
				ok = 1;
			}
		}
		if (ok == 0){
			printf("0");
		}
		printf("\n");
	}
	
	return (0);
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	min
	.type	min, @function
min:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -4(%rbp)
	movl	%esi, -8(%rbp)
	movl	-4(%rbp), %eax
	cmpl	-8(%rbp), %eax
	jle	.L2
	movl	-8(%rbp), %eax
	jmp	.L3
.L2:
	movl	-4(%rbp), %eax
.L3:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	min, .-min
	.globl	lose
	.type	lose, @function
lose:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$80, %rsp
	movq	%rdi, -72(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -60(%rbp)
	jmp	.L5
.L20:
	movl	$0, -56(%rbp)
	jmp	.L6
.L7:
	movl	-56(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-72(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	addl	$1, -56(%rbp)
.L6:
	cmpl	$9, -56(%rbp)
	jle	.L7
	movl	$0, -56(%rbp)
	jmp	.L8
.L10:
	movl	-56(%rbp), %eax
	movl	-60(%rbp), %edx
	movl	%eax, %ecx
	sarl	%cl, %edx
	movl	%edx, %eax
	andl	$1, %eax
	testl	%eax, %eax
	je	.L9
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	cmpl	$2, %eax
	jle	.L9
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	leal	-3(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
.L9:
	addl	$1, -56(%rbp)
.L8:
	cmpl	$9, -56(%rbp)
	jle	.L10
	movl	$1, -56(%rbp)
	jmp	.L11
.L14:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	leal	-1(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	movl	-56(%rbp), %eax
	addl	$1, %eax
	movslq	%eax, %rdx
	movl	-48(%rbp,%rdx,4), %edx
	subl	$1, %edx
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	movl	-56(%rbp), %eax
	addl	$2, %eax
	movslq	%eax, %rdx
	movl	-48(%rbp,%rdx,4), %edx
	subl	$1, %edx
	cltq
	movl	%edx, -48(%rbp,%rax,4)
.L12:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jle	.L13
	movl	-56(%rbp), %eax
	addl	$1, %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jle	.L13
	movl	-56(%rbp), %eax
	addl	$2, %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jg	.L14
.L13:
	addl	$1, -56(%rbp)
.L11:
	cmpl	$7, -56(%rbp)
	jle	.L12
	movl	$0, -52(%rbp)
	movl	$1, -56(%rbp)
	jmp	.L16
.L17:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	addl	%eax, -52(%rbp)
	addl	$1, -56(%rbp)
.L16:
	cmpl	$9, -56(%rbp)
	jle	.L17
	cmpl	$0, -52(%rbp)
	jne	.L18
	movl	$0, %eax
	jmp	.L21
.L18:
	addl	$1, -60(%rbp)
.L5:
	cmpl	$1023, -60(%rbp)
	jle	.L20
	movl	$-1, %eax
.L21:
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	lose, .-lose
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$144, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L24
.L38:
	call	getchar@PLT
	leaq	-128(%rbp), %rax
	movl	$40, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	leaq	-32(%rbp), %rax
	movl	$10, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	movl	$0, -140(%rbp)
	jmp	.L25
.L26:
	movl	-140(%rbp), %eax
	cltq
	movzbl	-22(%rbp,%rax), %eax
	movsbl	%al, %eax
	subl	$48, %eax
	movslq	%eax, %rdx
	movl	-128(%rbp,%rdx,4), %edx
	addl	$1, %edx
	cltq
	movl	%edx, -128(%rbp,%rax,4)
	addl	$1, -140(%rbp)
.L25:
	cmpl	$12, -140(%rbp)
	jle	.L26
	movq	-128(%rbp), %rax
	movq	-120(%rbp), %rdx
	movq	%rax, -80(%rbp)
	movq	%rdx, -72(%rbp)
	movq	-112(%rbp), %rax
	movq	-104(%rbp), %rdx
	movq	%rax, -64(%rbp)
	movq	%rdx, -56(%rbp)
	movq	-96(%rbp), %rax
	movq	%rax, -48(%rbp)
	movl	$1, -140(%rbp)
	jmp	.L27
.L32:
	movq	-80(%rbp), %rax
	movq	-72(%rbp), %rdx
	movq	%rax, -128(%rbp)
	movq	%rdx, -120(%rbp)
	movq	-64(%rbp), %rax
	movq	-56(%rbp), %rdx
	movq	%rax, -112(%rbp)
	movq	%rdx, -104(%rbp)
	movq	-48(%rbp), %rax
	movq	%rax, -96(%rbp)
	movl	-140(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	cmpl	$3, %eax
	jg	.L28
	movl	-140(%rbp), %eax
	cltq
	movl	-80(%rbp,%rax,4), %eax
	leal	1(%rax), %edx
	movl	-140(%rbp), %eax
	cltq
	movl	%edx, -80(%rbp,%rax,4)
	movl	$1, -136(%rbp)
	jmp	.L29
.L31:
	movq	-80(%rbp), %rax
	movq	-72(%rbp), %rdx
	movq	%rax, -128(%rbp)
	movq	%rdx, -120(%rbp)
	movq	-64(%rbp), %rax
	movq	-56(%rbp), %rdx
	movq	%rax, -112(%rbp)
	movq	%rdx, -104(%rbp)
	movq	-48(%rbp), %rax
	movq	%rax, -96(%rbp)
	movl	-136(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	cmpl	$1, %eax
	jle	.L30
	movl	-136(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	leal	-2(%rax), %edx
	movl	-136(%rbp), %eax
	cltq
	movl	%edx, -128(%rbp,%rax,4)
	leaq	-128(%rbp), %rax
	movq	%rax, %rdi
	call	lose
	testl	%eax, %eax
	jne	.L30
	movl	-140(%rbp), %eax
	cltq
	movb	$1, -32(%rbp,%rax)
.L30:
	addl	$1, -136(%rbp)
.L29:
	cmpl	$9, -136(%rbp)
	jle	.L31
	movl	-140(%rbp), %eax
	cltq
	movl	-80(%rbp,%rax,4), %eax
	leal	-1(%rax), %edx
	movl	-140(%rbp), %eax
	cltq
	movl	%edx, -80(%rbp,%rax,4)
.L28:
	addl	$1, -140(%rbp)
.L27:
	cmpl	$9, -140(%rbp)
	jle	.L32
	movl	$0, -132(%rbp)
	movl	$1, -140(%rbp)
	jmp	.L33
.L36:
	cmpl	$1, -132(%rbp)
	jne	.L34
	movl	-140(%rbp), %eax
	cltq
	movzbl	-32(%rbp,%rax), %eax
	cmpb	$1, %al
	jne	.L34
	movl	$32, %edi
	call	putchar@PLT
.L34:
	movl	-140(%rbp), %eax
	cltq
	movzbl	-32(%rbp,%rax), %eax
	cmpb	$1, %al
	jne	.L35
	movl	-140(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$1, -132(%rbp)
.L35:
	addl	$1, -140(%rbp)
.L33:
	cmpl	$9, -140(%rbp)
	jle	.L36
	cmpl	$0, -132(%rbp)
	jne	.L37
	movl	$48, %edi
	call	putchar@PLT
.L37:
	movl	$10, %edi
	call	putchar@PLT
.L24:
	leaq	-22(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	jne	.L38
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L40
	call	__stack_chk_fail@PLT
.L40:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
user
	.file	"temp.c"
	.text
	.p2align 4
	.globl	min
	.type	min, @function
min:
.LFB35:
	.cfi_startproc
	endbr64
	cmpl	%esi, %edi
	movl	%esi, %eax
	cmovle	%edi, %eax
	ret
	.cfi_endproc
.LFE35:
	.size	min, .-min
	.p2align 4
	.globl	lose
	.type	lose, @function
lose:
.LFB36:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rsi
	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	$104, %rsp
	.cfi_def_cfa_offset 160
	movdqu	4(%rdi), %xmm1
	movl	8(%rdi), %r11d
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	movl	12(%rdi), %r10d
	movl	16(%rdi), %r8d
	movd	%xmm1, %ebx
	movdqu	20(%rdi), %xmm0
	movl	32(%rdi), %eax
	cmpl	$2, %ebx
	movl	28(%rdi), %edx
	movl	24(%rdi), %ecx
	setg	%r15b
	subl	$3, %ebx
	cmpl	$2, %r11d
	movl	36(%rsi), %r9d
	movl	%ebx, 12(%rsp)
	setg	%r14b
	leal	-3(%r11), %ebx
	cmpl	$2, %r10d
	movd	%xmm0, %edi
	movl	%ebx, 16(%rsp)
	setg	%r13b
	leal	-3(%r10), %ebx
	cmpl	$2, %r8d
	movl	%ebx, 20(%rsp)
	leal	-3(%r8), %ebx
	leaq	52(%rsp), %r10
	setg	%r12b
	cmpl	$2, %edi
	movl	%ebx, 24(%rsp)
	leal	-3(%rdi), %ebx
	setg	%bpl
	cmpl	$2, %ecx
	movl	%ebx, 28(%rsp)
	leal	-3(%rcx), %edi
	setg	%bl
	cmpl	$2, %edx
	movl	%edi, 32(%rsp)
	leal	-3(%rdx), %edi
	setg	%r11b
	cmpl	$2, %eax
	movl	%edi, 36(%rsp)
	leaq	80(%rsp), %r8
	setg	11(%rsp)
	subl	$3, %eax
	cmpl	$2, %r9d
	movl	%eax, 40(%rsp)
	leal	-3(%r9), %eax
	movl	%eax, 44(%rsp)
	setg	10(%rsp)
	xorl	%edi, %edi
	.p2align 4,,10
	.p2align 3
.L4:
	movl	%r9d, 84(%rsp)
	movups	%xmm1, 52(%rsp)
	movups	%xmm0, 68(%rsp)
	testb	$2, %dil
	je	.L21
	testb	%r15b, %r15b
	je	.L21
	movl	12(%rsp), %eax
	movl	%eax, 52(%rsp)
.L21:
	testb	$4, %dil
	je	.L5
	testb	%r14b, %r14b
	je	.L5
	movl	16(%rsp), %eax
	movl	%eax, 56(%rsp)
.L5:
	testb	$8, %dil
	je	.L6
	testb	%r13b, %r13b
	je	.L6
	movl	20(%rsp), %eax
	movl	%eax, 60(%rsp)
.L6:
	testb	$16, %dil
	je	.L7
	testb	%r12b, %r12b
	je	.L7
	movl	24(%rsp), %eax
	movl	%eax, 64(%rsp)
.L7:
	testb	$32, %dil
	je	.L8
	testb	%bpl, %bpl
	je	.L8
	movl	28(%rsp), %eax
	movl	%eax, 68(%rsp)
.L8:
	testb	$64, %dil
	je	.L9
	testb	%bl, %bl
	je	.L9
	movl	32(%rsp), %eax
	movl	%eax, 72(%rsp)
.L9:
	testb	%dil, %dil
	jns	.L10
	testb	%r11b, %r11b
	je	.L10
	movl	36(%rsp), %eax
	movl	%eax, 76(%rsp)
.L10:
	testl	$256, %edi
	je	.L11
	cmpb	$0, 11(%rsp)
	je	.L11
	movl	40(%rsp), %eax
	movl	%eax, 80(%rsp)
.L11:
	testl	$512, %edi
	je	.L12
	cmpb	$0, 10(%rsp)
	je	.L12
	movl	44(%rsp), %eax
	movl	%eax, 84(%rsp)
.L12:
	movq	%r10, %rax
	.p2align 4,,10
	.p2align 3
.L14:
	movl	(%rax), %esi
	testl	%esi, %esi
	jg	.L13
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L86:
	movl	8(%rax), %ecx
	testl	%ecx, %ecx
	jle	.L16
	subl	$1, %esi
	subl	$1, %edx
	subl	$1, %ecx
	movl	%esi, (%rax)
	movl	%edx, 4(%rax)
	movl	%ecx, 8(%rax)
	testl	%esi, %esi
	je	.L16
.L13:
	movl	4(%rax), %edx
	testl	%edx, %edx
	jg	.L86
.L16:
	addq	$4, %rax
	cmpq	%rax, %r8
	jne	.L14
	movl	56(%rsp), %eax
	addl	52(%rsp), %eax
	addl	60(%rsp), %eax
	addl	64(%rsp), %eax
	addl	68(%rsp), %eax
	addl	72(%rsp), %eax
	addl	76(%rsp), %eax
	addl	80(%rsp), %eax
	addl	84(%rsp), %eax
	je	.L3
	addl	$1, %edi
	cmpl	$1024, %edi
	jne	.L4
	movl	$-1, %eax
.L3:
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L87
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	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
.L87:
	.cfi_restore_state
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE36:
	.size	lose, .-lose
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC1:
	.string	"%s"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB37:
	.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	$184, %rsp
	.cfi_def_cfa_offset 240
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	154(%rsp), %rbx
	.p2align 4,,10
	.p2align 3
.L89:
	xorl	%eax, %eax
	movq	%rbx, %rsi
	leaq	.LC1(%rip), %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L173
	movq	stdin(%rip), %rdi
	leaq	48(%rsp), %r15
	movl	$4, %ebp
	leaq	145(%rsp), %r12
	call	getc@PLT
	xorl	%eax, %eax
	pxor	%xmm0, %xmm0
	movq	$0, 80(%rsp)
	movw	%ax, 152(%rsp)
	movsbl	154(%rsp), %eax
	movaps	%xmm0, 48(%rsp)
	subl	$48, %eax
	movaps	%xmm0, 64(%rsp)
	movq	$0, 144(%rsp)
	cltq
	movl	$1, 48(%rsp,%rax,4)
	movsbl	155(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	156(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	157(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	158(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	159(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	160(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	161(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	162(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	163(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	164(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	165(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	166(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movdqa	48(%rsp), %xmm4
	movdqa	64(%rsp), %xmm5
	movq	80(%rsp), %rax
	movaps	%xmm4, 96(%rsp)
	movq	%rax, 128(%rsp)
	movaps	%xmm5, 112(%rsp)
	jmp	.L118
	.p2align 4,,10
	.p2align 3
.L90:
	addq	$1, %r12
	addq	$4, %rbp
	cmpq	%rbx, %r12
	je	.L174
.L118:
	movdqa	96(%rsp), %xmm2
	movdqa	112(%rsp), %xmm3
	movq	128(%rsp), %rax
	movaps	%xmm2, 48(%rsp)
	movq	%rax, 80(%rsp)
	movaps	%xmm3, 64(%rsp)
	cmpl	$3, (%r15,%rbp)
	jg	.L90
	movl	96(%rsp,%rbp), %r13d
	leal	1(%r13), %eax
	movl	%eax, 96(%rsp,%rbp)
	movdqa	96(%rsp), %xmm1
	movdqa	112(%rsp), %xmm0
	movq	128(%rsp), %r14
	movaps	%xmm1, 48(%rsp)
	movl	52(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L175
.L92:
	movaps	%xmm1, 48(%rsp)
	movl	56(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L176
.L95:
	movaps	%xmm1, 48(%rsp)
	movl	60(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L177
.L98:
	movd	%xmm0, %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L178
.L101:
	movaps	%xmm0, 64(%rsp)
	movl	68(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm1, 48(%rsp)
	cmpl	$1, %eax
	jg	.L179
.L104:
	movaps	%xmm0, 64(%rsp)
	movl	72(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm1, 48(%rsp)
	cmpl	$1, %eax
	jg	.L180
.L107:
	movaps	%xmm0, 64(%rsp)
	movl	76(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm1, 48(%rsp)
	cmpl	$1, %eax
	jg	.L181
.L110:
	movq	%r14, 80(%rsp)
	movl	%r14d, %eax
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %r14d
	jg	.L182
.L113:
	movq	%r14, %rax
	movq	%r14, 80(%rsp)
	shrq	$32, %rax
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L183
.L116:
	addq	$1, %r12
	movl	%r13d, 96(%rsp,%rbp)
	addq	$4, %rbp
	cmpq	%rbx, %r12
	jne	.L118
.L174:
	cmpb	$1, 145(%rsp)
	movzbl	146(%rsp), %ecx
	movzbl	153(%rsp), %r12d
	movzbl	147(%rsp), %r9d
	movzbl	149(%rsp), %r13d
	movzbl	148(%rsp), %r8d
	movzbl	152(%rsp), %ebp
	movzbl	151(%rsp), %r14d
	movzbl	150(%rsp), %r15d
	je	.L119
	cmpb	$1, %cl
	je	.L120
	cmpb	$1, %r9b
	je	.L143
	cmpb	$1, %r8b
	je	.L141
	cmpb	$1, %r13b
	je	.L139
	cmpb	$1, %r15b
	je	.L137
	cmpb	$1, %r14b
	je	.L135
	cmpb	$1, %bpl
	je	.L133
	cmpb	$1, %r12b
	je	.L131
	movl	$48, %edi
	call	putchar@PLT
.L129:
	movl	$10, %edi
	call	putchar@PLT
	jmp	.L89
	.p2align 4,,10
	.p2align 3
.L175:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 52(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L92
	movb	$1, (%r12)
	jmp	.L92
	.p2align 4,,10
	.p2align 3
.L183:
	subl	$2, %eax
	movq	%r15, %rdi
	movl	%eax, 84(%rsp)
	call	lose
	testl	%eax, %eax
	jne	.L116
	movb	$1, (%r12)
	jmp	.L116
	.p2align 4,,10
	.p2align 3
.L182:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 80(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L113
	movb	$1, (%r12)
	jmp	.L113
	.p2align 4,,10
	.p2align 3
.L181:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 76(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L110
	movb	$1, (%r12)
	jmp	.L110
	.p2align 4,,10
	.p2align 3
.L180:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 72(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L107
	movb	$1, (%r12)
	jmp	.L107
	.p2align 4,,10
	.p2align 3
.L179:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 68(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L104
	movb	$1, (%r12)
	jmp	.L104
	.p2align 4,,10
	.p2align 3
.L178:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 64(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L101
	movb	$1, (%r12)
	jmp	.L101
	.p2align 4,,10
	.p2align 3
.L177:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 60(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L98
	movb	$1, (%r12)
	jmp	.L98
	.p2align 4,,10
	.p2align 3
.L176:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 56(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L95
	movb	$1, (%r12)
	jmp	.L95
.L119:
	xorl	%eax, %eax
	movl	$1, %edx
	movl	$1, %edi
	movb	%cl, 16(%rsp)
	leaq	.LC0(%rip), %rsi
	movb	%r8b, 47(%rsp)
	movb	%r9b, (%rsp)
	call	__printf_chk@PLT
	movzbl	16(%rsp), %ecx
	movzbl	(%rsp), %r9d
	movzbl	47(%rsp), %r8d
	cmpb	$1, %cl
	je	.L184
.L122:
	cmpb	$1, %r9b
	je	.L185
.L123:
	cmpb	$1, %r8b
	je	.L186
.L124:
	cmpb	$1, %r13b
	je	.L187
.L125:
	cmpb	$1, %r15b
	je	.L188
.L126:
	cmpb	$1, %r14b
	je	.L189
.L127:
	cmpb	$1, %bpl
	je	.L190
.L128:
	cmpb	$1, %r12b
	jne	.L129
	movl	$32, %edi
	call	putchar@PLT
	.p2align 4,,10
	.p2align 3
.L131:
	movl	$9, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L129
.L190:
	movl	$32, %edi
	call	putchar@PLT
.L133:
	movl	$8, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L128
.L189:
	movl	$32, %edi
	call	putchar@PLT
.L135:
	movl	$7, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L127
.L188:
	movl	$32, %edi
	call	putchar@PLT
.L137:
	movl	$6, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L126
.L187:
	movl	$32, %edi
	call	putchar@PLT
.L139:
	movl	$5, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L125
.L186:
	movl	$32, %edi
	call	putchar@PLT
.L141:
	movl	$4, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L124
.L185:
	movl	$32, %edi
	movb	%r8b, (%rsp)
	call	putchar@PLT
	movzbl	(%rsp), %r8d
.L143:
	movl	$3, %edx
	movl	$1, %edi
	xorl	%eax, %eax
	movb	%r8b, (%rsp)
	leaq	.LC0(%rip), %rsi
	call	__printf_chk@PLT
	movzbl	(%rsp), %r8d
	jmp	.L123
.L184:
	movl	$32, %edi
	movb	%r8b, 16(%rsp)
	call	putchar@PLT
	movzbl	16(%rsp), %r8d
	movzbl	(%rsp), %r9d
.L120:
	movl	$2, %edx
	movl	$1, %edi
	xorl	%eax, %eax
	movb	%r9b, (%rsp)
	leaq	.LC0(%rip), %rsi
	movb	%r8b, 16(%rsp)
	call	__printf_chk@PLT
	movzbl	16(%rsp), %r8d
	movzbl	(%rsp), %r9d
	jmp	.L122
.L173:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L191
	addq	$184, %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
.L191:
	.cfi_restore_state
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE37:
	.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:

rule
	.file	"temp.c"
	.text
	.p2align 4
	.globl	min
	.type	min, @function
min:
.LFB35:
	.cfi_startproc
	endbr64
	cmpl	%esi, %edi
	movl	%esi, %eax
	cmovle	%edi, %eax
	ret
	.cfi_endproc
.LFE35:
	.size	min, .-min
	.p2align 4
	.globl	lose
	.type	lose, @function
lose:
.LFB36:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rsi
	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	$104, %rsp
	.cfi_def_cfa_offset 160
	movdqu	4(%rdi), %xmm1
	movl	8(%rdi), %r11d
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	movl	12(%rdi), %r10d
	movl	16(%rdi), %r8d
	movd	%xmm1, %ebx
	movdqu	20(%rdi), %xmm0
	movl	32(%rdi), %eax
	cmpl	$2, %ebx
	movl	28(%rdi), %edx
	movl	24(%rdi), %ecx
	setg	%r15b
	subl	$3, %ebx
	cmpl	$2, %r11d
	movl	36(%rsi), %r9d
	movl	%ebx, 12(%rsp)
	setg	%r14b
	leal	-3(%r11), %ebx
	cmpl	$2, %r10d
	movd	%xmm0, %edi
	movl	%ebx, 16(%rsp)
	setg	%r13b
	leal	-3(%r10), %ebx
	cmpl	$2, %r8d
	movl	%ebx, 20(%rsp)
	leal	-3(%r8), %ebx
	leaq	52(%rsp), %r10
	setg	%r12b
	cmpl	$2, %edi
	movl	%ebx, 24(%rsp)
	leal	-3(%rdi), %ebx
	setg	%bpl
	cmpl	$2, %ecx
	movl	%ebx, 28(%rsp)
	leal	-3(%rcx), %edi
	setg	%bl
	cmpl	$2, %edx
	movl	%edi, 32(%rsp)
	leal	-3(%rdx), %edi
	setg	%r11b
	cmpl	$2, %eax
	movl	%edi, 36(%rsp)
	leaq	80(%rsp), %r8
	setg	11(%rsp)
	subl	$3, %eax
	cmpl	$2, %r9d
	movl	%eax, 40(%rsp)
	leal	-3(%r9), %eax
	movl	%eax, 44(%rsp)
	setg	10(%rsp)
	xorl	%edi, %edi
	.p2align 4,,10
	.p2align 3
.L4:
	movl	%r9d, 84(%rsp)
	movups	%xmm1, 52(%rsp)
	movups	%xmm0, 68(%rsp)
	testb	$2, %dil
	je	.L21
	testb	%r15b, %r15b
	je	.L21
	movl	12(%rsp), %eax
	movl	%eax, 52(%rsp)
.L21:
	testb	$4, %dil
	je	.L5
	testb	%r14b, %r14b
	je	.L5
	movl	16(%rsp), %eax
	movl	%eax, 56(%rsp)
.L5:
	testb	$8, %dil
	je	.L6
	testb	%r13b, %r13b
	je	.L6
	movl	20(%rsp), %eax
	movl	%eax, 60(%rsp)
.L6:
	testb	$16, %dil
	je	.L7
	testb	%r12b, %r12b
	je	.L7
	movl	24(%rsp), %eax
	movl	%eax, 64(%rsp)
.L7:
	testb	$32, %dil
	je	.L8
	testb	%bpl, %bpl
	je	.L8
	movl	28(%rsp), %eax
	movl	%eax, 68(%rsp)
.L8:
	testb	$64, %dil
	je	.L9
	testb	%bl, %bl
	je	.L9
	movl	32(%rsp), %eax
	movl	%eax, 72(%rsp)
.L9:
	testb	%dil, %dil
	jns	.L10
	testb	%r11b, %r11b
	je	.L10
	movl	36(%rsp), %eax
	movl	%eax, 76(%rsp)
.L10:
	testl	$256, %edi
	je	.L11
	cmpb	$0, 11(%rsp)
	je	.L11
	movl	40(%rsp), %eax
	movl	%eax, 80(%rsp)
.L11:
	testl	$512, %edi
	je	.L12
	cmpb	$0, 10(%rsp)
	je	.L12
	movl	44(%rsp), %eax
	movl	%eax, 84(%rsp)
.L12:
	movq	%r10, %rax
	.p2align 4,,10
	.p2align 3
.L14:
	movl	(%rax), %esi
	testl	%esi, %esi
	jg	.L13
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L86:
	movl	8(%rax), %ecx
	testl	%ecx, %ecx
	jle	.L16
	subl	$1, %esi
	subl	$1, %edx
	subl	$1, %ecx
	movl	%esi, (%rax)
	movl	%edx, 4(%rax)
	movl	%ecx, 8(%rax)
	testl	%esi, %esi
	je	.L16
.L13:
	movl	4(%rax), %edx
	testl	%edx, %edx
	jg	.L86
.L16:
	addq	$4, %rax
	cmpq	%rax, %r8
	jne	.L14
	movl	56(%rsp), %eax
	addl	52(%rsp), %eax
	addl	60(%rsp), %eax
	addl	64(%rsp), %eax
	addl	68(%rsp), %eax
	addl	72(%rsp), %eax
	addl	76(%rsp), %eax
	addl	80(%rsp), %eax
	addl	84(%rsp), %eax
	je	.L3
	addl	$1, %edi
	cmpl	$1024, %edi
	jne	.L4
	movl	$-1, %eax
.L3:
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L87
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	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
.L87:
	.cfi_restore_state
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE36:
	.size	lose, .-lose
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC1:
	.string	"%s"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB37:
	.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	$184, %rsp
	.cfi_def_cfa_offset 240
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	154(%rsp), %rbx
	.p2align 4,,10
	.p2align 3
.L89:
	xorl	%eax, %eax
	movq	%rbx, %rsi
	leaq	.LC1(%rip), %rdi
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	je	.L173
	movq	stdin(%rip), %rdi
	leaq	48(%rsp), %r15
	movl	$4, %ebp
	leaq	145(%rsp), %r12
	call	getc@PLT
	xorl	%eax, %eax
	pxor	%xmm0, %xmm0
	movq	$0, 80(%rsp)
	movw	%ax, 152(%rsp)
	movsbl	154(%rsp), %eax
	movaps	%xmm0, 48(%rsp)
	subl	$48, %eax
	movaps	%xmm0, 64(%rsp)
	movq	$0, 144(%rsp)
	cltq
	movl	$1, 48(%rsp,%rax,4)
	movsbl	155(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	156(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	157(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	158(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	159(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	160(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	161(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	162(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	163(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	164(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	165(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movsbl	166(%rsp), %eax
	subl	$48, %eax
	cltq
	addl	$1, 48(%rsp,%rax,4)
	movdqa	48(%rsp), %xmm4
	movdqa	64(%rsp), %xmm5
	movq	80(%rsp), %rax
	movaps	%xmm4, 96(%rsp)
	movq	%rax, 128(%rsp)
	movaps	%xmm5, 112(%rsp)
	jmp	.L118
	.p2align 4,,10
	.p2align 3
.L90:
	addq	$1, %r12
	addq	$4, %rbp
	cmpq	%rbx, %r12
	je	.L174
.L118:
	movdqa	96(%rsp), %xmm2
	movdqa	112(%rsp), %xmm3
	movq	128(%rsp), %rax
	movaps	%xmm2, 48(%rsp)
	movq	%rax, 80(%rsp)
	movaps	%xmm3, 64(%rsp)
	cmpl	$3, (%r15,%rbp)
	jg	.L90
	movl	96(%rsp,%rbp), %r13d
	leal	1(%r13), %eax
	movl	%eax, 96(%rsp,%rbp)
	movdqa	96(%rsp), %xmm1
	movdqa	112(%rsp), %xmm0
	movq	128(%rsp), %r14
	movaps	%xmm1, 48(%rsp)
	movl	52(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L175
.L92:
	movaps	%xmm1, 48(%rsp)
	movl	56(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L176
.L95:
	movaps	%xmm1, 48(%rsp)
	movl	60(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L177
.L98:
	movd	%xmm0, %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L178
.L101:
	movaps	%xmm0, 64(%rsp)
	movl	68(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm1, 48(%rsp)
	cmpl	$1, %eax
	jg	.L179
.L104:
	movaps	%xmm0, 64(%rsp)
	movl	72(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm1, 48(%rsp)
	cmpl	$1, %eax
	jg	.L180
.L107:
	movaps	%xmm0, 64(%rsp)
	movl	76(%rsp), %eax
	movq	%r14, 80(%rsp)
	movaps	%xmm1, 48(%rsp)
	cmpl	$1, %eax
	jg	.L181
.L110:
	movq	%r14, 80(%rsp)
	movl	%r14d, %eax
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %r14d
	jg	.L182
.L113:
	movq	%r14, %rax
	movq	%r14, 80(%rsp)
	shrq	$32, %rax
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm0, 64(%rsp)
	cmpl	$1, %eax
	jg	.L183
.L116:
	addq	$1, %r12
	movl	%r13d, 96(%rsp,%rbp)
	addq	$4, %rbp
	cmpq	%rbx, %r12
	jne	.L118
.L174:
	cmpb	$1, 145(%rsp)
	movzbl	146(%rsp), %ecx
	movzbl	153(%rsp), %r12d
	movzbl	147(%rsp), %r9d
	movzbl	149(%rsp), %r13d
	movzbl	148(%rsp), %r8d
	movzbl	152(%rsp), %ebp
	movzbl	151(%rsp), %r14d
	movzbl	150(%rsp), %r15d
	je	.L119
	cmpb	$1, %cl
	je	.L120
	cmpb	$1, %r9b
	je	.L143
	cmpb	$1, %r8b
	je	.L141
	cmpb	$1, %r13b
	je	.L139
	cmpb	$1, %r15b
	je	.L137
	cmpb	$1, %r14b
	je	.L135
	cmpb	$1, %bpl
	je	.L133
	cmpb	$1, %r12b
	je	.L131
	movl	$48, %edi
	call	putchar@PLT
.L129:
	movl	$10, %edi
	call	putchar@PLT
	jmp	.L89
	.p2align 4,,10
	.p2align 3
.L175:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 52(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L92
	movb	$1, (%r12)
	jmp	.L92
	.p2align 4,,10
	.p2align 3
.L183:
	subl	$2, %eax
	movq	%r15, %rdi
	movl	%eax, 84(%rsp)
	call	lose
	testl	%eax, %eax
	jne	.L116
	movb	$1, (%r12)
	jmp	.L116
	.p2align 4,,10
	.p2align 3
.L182:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 80(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L113
	movb	$1, (%r12)
	jmp	.L113
	.p2align 4,,10
	.p2align 3
.L181:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 76(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L110
	movb	$1, (%r12)
	jmp	.L110
	.p2align 4,,10
	.p2align 3
.L180:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 72(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L107
	movb	$1, (%r12)
	jmp	.L107
	.p2align 4,,10
	.p2align 3
.L179:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 68(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L104
	movb	$1, (%r12)
	jmp	.L104
	.p2align 4,,10
	.p2align 3
.L178:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 64(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L101
	movb	$1, (%r12)
	jmp	.L101
	.p2align 4,,10
	.p2align 3
.L177:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 60(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L98
	movb	$1, (%r12)
	jmp	.L98
	.p2align 4,,10
	.p2align 3
.L176:
	subl	$2, %eax
	movq	%r15, %rdi
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm1, (%rsp)
	movl	%eax, 56(%rsp)
	call	lose
	movdqa	(%rsp), %xmm1
	movdqa	16(%rsp), %xmm0
	testl	%eax, %eax
	jne	.L95
	movb	$1, (%r12)
	jmp	.L95
.L119:
	xorl	%eax, %eax
	movl	$1, %edx
	movl	$1, %edi
	movb	%cl, 16(%rsp)
	leaq	.LC0(%rip), %rsi
	movb	%r8b, 47(%rsp)
	movb	%r9b, (%rsp)
	call	__printf_chk@PLT
	movzbl	16(%rsp), %ecx
	movzbl	(%rsp), %r9d
	movzbl	47(%rsp), %r8d
	cmpb	$1, %cl
	je	.L184
.L122:
	cmpb	$1, %r9b
	je	.L185
.L123:
	cmpb	$1, %r8b
	je	.L186
.L124:
	cmpb	$1, %r13b
	je	.L187
.L125:
	cmpb	$1, %r15b
	je	.L188
.L126:
	cmpb	$1, %r14b
	je	.L189
.L127:
	cmpb	$1, %bpl
	je	.L190
.L128:
	cmpb	$1, %r12b
	jne	.L129
	movl	$32, %edi
	call	putchar@PLT
	.p2align 4,,10
	.p2align 3
.L131:
	movl	$9, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L129
.L190:
	movl	$32, %edi
	call	putchar@PLT
.L133:
	movl	$8, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L128
.L189:
	movl	$32, %edi
	call	putchar@PLT
.L135:
	movl	$7, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L127
.L188:
	movl	$32, %edi
	call	putchar@PLT
.L137:
	movl	$6, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L126
.L187:
	movl	$32, %edi
	call	putchar@PLT
.L139:
	movl	$5, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L125
.L186:
	movl	$32, %edi
	call	putchar@PLT
.L141:
	movl	$4, %edx
	leaq	.LC0(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L124
.L185:
	movl	$32, %edi
	movb	%r8b, (%rsp)
	call	putchar@PLT
	movzbl	(%rsp), %r8d
.L143:
	movl	$3, %edx
	movl	$1, %edi
	xorl	%eax, %eax
	movb	%r8b, (%rsp)
	leaq	.LC0(%rip), %rsi
	call	__printf_chk@PLT
	movzbl	(%rsp), %r8d
	jmp	.L123
.L184:
	movl	$32, %edi
	movb	%r8b, 16(%rsp)
	call	putchar@PLT
	movzbl	16(%rsp), %r8d
	movzbl	(%rsp), %r9d
.L120:
	movl	$2, %edx
	movl	$1, %edi
	xorl	%eax, %eax
	movb	%r9b, (%rsp)
	leaq	.LC0(%rip), %rsi
	movb	%r8b, 16(%rsp)
	call	__printf_chk@PLT
	movzbl	16(%rsp), %r8d
	movzbl	(%rsp), %r9d
	jmp	.L122
.L173:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L191
	addq	$184, %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
.L191:
	.cfi_restore_state
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE37:
	.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:

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

int min(int a, int b)
{
	if (a > b){
		return (b);
	}
	return (a);
}

int lose(int *ptr)
{
	int i, j;
	int temp[10];
	int sum;
	
	for (i = 0; i < 1 << 10; i++){
		for (j = 0; j < 10; j++){
			temp[j] = ptr[j];
		}
		for (j = 0; j < 10; j++){
			if (((i >> j) & 1) && (temp[j] >= 3)){
				temp[j] -= 3;
			}
		}
		
		for (j = 1; j <= 7; j++){
			while (temp[j] >= 1 && temp[j + 1] >= 1 && temp[j + 2] >= 1){
				temp[j]--;
				temp[j + 1]--;
				temp[j + 2]--;
			}
		}
		
		sum = 0;
		
		for (j = 1; j <= 9; j++){
			sum += temp[j];
		}
		if (sum == 0){
			return (0);
		}
	}
	
	return (-1);
}

int main(void)
{
	char str[14];
	char flag[10];
	int num[10], memo[10];
	int i, j;
	int ok;
	
	while (scanf("%s", str) != EOF){
		getchar();
		memset(num, 0, sizeof(num));
		memset(flag, 0, sizeof(flag));
		
		for (i = 0; i < 13; i++){
			num[str[i] - '0']++;
		}
		
		memcpy(memo, num, sizeof(num));
		
		for (i = 1; i <= 9; i++){
			memcpy(num, memo, sizeof(memo));
			if (num[i] < 4){
				memo[i]++;
				for (j = 1; j <= 9; j++){
					memcpy(num, memo, sizeof(memo));
					if (num[j] >= 2){
						num[j] -= 2;
						if (lose(num) == 0){
							flag[i] = 1;
						}
					}
				}
				
				memo[i]--;
			}
		}
		
		ok = 0;
		for (i = 1; i <= 9; i++){
			if (ok == 1 && flag[i] == 1){
				printf(" ");
			}
			if (flag[i] == 1){
				printf("%d", i);
				ok = 1;
			}
		}
		if (ok == 0){
			printf("0");
		}
		printf("\n");
	}
	
	return (0);
}
3649596966777
4672433573317
9118992346175
9643871425498
7755542764533
1133557799246
 3649596966777
7685559208632
9118992346175
9643871425498
7755542764533
1133557799246
 3649596966777
4672433573317
9118992346175
7133209108608
7755542764533
704120058101
 3649596966777
2425197316228
9118992346175
7133209108608
7755542764533
704120058101
 3649596966777
6358665788577
9118992346175
9643871425498
992305966219
1133557799246
 3649596966777
2237884645346
9118992346175
7133209108608
7755542764533
704120058101
 3649596966777
9352826644343
9118992346175
9643871425498
992305966219
1133557799246
 3649596966777
2237884645346
9118992346175
7133209108608
2869131570066
704120058101
 3649596966777
4672433573317
4922449743818
9643871425498
7755542764533
984658545985
 3649596966777
9352826644343
9118992346175
3452798239081
1181850814645
1133557799246

2 3 5 8
1 2 4 5 7
1 2 3 4 5 6 7 8 9
7 8 9
1 2 3 4 6 7 8
0
 2 3 5 8
0
1 2 3 4 5 6 7 8 9
7 8 9
1 2 3 4 6 7 8
0
 2 3 5 8
1 2 4 5 7
1 2 3 4 5 6 7 8 9
0
1 2 3 4 6 7 8
0
 2 3 5 8
1 3 4 7
1 2 3 4 5 6 7 8 9
0
1 2 3 4 6 7 8
0
 2 3 5 8
3 4
1 2 3 4 5 6 7 8 9
7 8 9
0
0
 2 3 5 8
5 8
1 2 3 4 5 6 7 8 9
0
1 2 3 4 6 7 8
0
 2 3 5 8
7
1 2 3 4 5 6 7 8 9
7 8 9
0
0
 2 3 5 8
5 8
1 2 3 4 5 6 7 8 9
0
0
0
 2 3 5 8
1 2 4 5 7
0
7 8 9
1 2 3 4 6 7 8
0
 2 3 5 8
7
1 2 3 4 5 6 7 8 9
0
0
0

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

```c
#include <stdio.h>
#include <string.h>

int min(int a, int b)
{
	if (a > b){
		return (b);
	}
	return (a);
}

int lose(int *ptr)
{
	int i, j;
	int temp[10];
	int sum;
	
	for (i = 0; i < 1 << 10; i++){
		for (j = 0; j < 10; j++){
			temp[j] = ptr[j];
		}
		for (j = 0; j < 10; j++){
			if (((i >> j) & 1) && (temp[j] >= 3)){
				temp[j] -= 3;
			}
		}
		
		for (j = 1; j <= 7; j++){
			while (temp[j] >= 1 && temp[j + 1] >= 1 && temp[j + 2] >= 1){
				temp[j]--;
				temp[j + 1]--;
				temp[j + 2]--;
			}
		}
		
		sum = 0;
		
		for (j = 1; j <= 9; j++){
			sum += temp[j];
		}
		if (sum == 0){
			return (0);
		}
	}
	
	return (-1);
}

int main(void)
{
	char str[14];
	char flag[10];
	int num[10], memo[10];
	int i, j;
	int ok;
	
	while (scanf("%s", str) != EOF){
		getchar();
		memset(num, 0, sizeof(num));
		memset(flag, 0, sizeof(flag));
		
		for (i = 0; i < 13; i++){
			num[str[i] - '0']++;
		}
		
		memcpy(memo, num, sizeof(num));
		
		for (i = 1; i <= 9; i++){
			memcpy(num, memo, sizeof(memo));
			if (num[i] < 4){
				memo[i]++;
				for (j = 1; j <= 9; j++){
					memcpy(num, memo, sizeof(memo));
					if (num[j] >= 2){
						num[j] -= 2;
						if (lose(num) == 0){
							flag[i] = 1;
						}
					}
				}
				
				memo[i]--;
			}
		}
		
		ok = 0;
		for (i = 1; i <= 9; i++){
			if (ok == 1 && flag[i] == 1){
				printf(" ");
			}
			if (flag[i] == 1){
				printf("%d", i);
				ok = 1;
			}
		}
		if (ok == 0){
			printf("0");
		}
		printf("\n");
	}
	
	return (0);
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	min
	.type	min, @function
min:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -4(%rbp)
	movl	%esi, -8(%rbp)
	movl	-4(%rbp), %eax
	cmpl	-8(%rbp), %eax
	jle	.L2
	movl	-8(%rbp), %eax
	jmp	.L3
.L2:
	movl	-4(%rbp), %eax
.L3:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	min, .-min
	.globl	lose
	.type	lose, @function
lose:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$80, %rsp
	movq	%rdi, -72(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -60(%rbp)
	jmp	.L5
.L20:
	movl	$0, -56(%rbp)
	jmp	.L6
.L7:
	movl	-56(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-72(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	addl	$1, -56(%rbp)
.L6:
	cmpl	$9, -56(%rbp)
	jle	.L7
	movl	$0, -56(%rbp)
	jmp	.L8
.L10:
	movl	-56(%rbp), %eax
	movl	-60(%rbp), %edx
	movl	%eax, %ecx
	sarl	%cl, %edx
	movl	%edx, %eax
	andl	$1, %eax
	testl	%eax, %eax
	je	.L9
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	cmpl	$2, %eax
	jle	.L9
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	leal	-3(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
.L9:
	addl	$1, -56(%rbp)
.L8:
	cmpl	$9, -56(%rbp)
	jle	.L10
	movl	$1, -56(%rbp)
	jmp	.L11
.L14:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	leal	-1(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	movl	-56(%rbp), %eax
	addl	$1, %eax
	movslq	%eax, %rdx
	movl	-48(%rbp,%rdx,4), %edx
	subl	$1, %edx
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	movl	-56(%rbp), %eax
	addl	$2, %eax
	movslq	%eax, %rdx
	movl	-48(%rbp,%rdx,4), %edx
	subl	$1, %edx
	cltq
	movl	%edx, -48(%rbp,%rax,4)
.L12:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jle	.L13
	movl	-56(%rbp), %eax
	addl	$1, %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jle	.L13
	movl	-56(%rbp), %eax
	addl	$2, %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jg	.L14
.L13:
	addl	$1, -56(%rbp)
.L11:
	cmpl	$7, -56(%rbp)
	jle	.L12
	movl	$0, -52(%rbp)
	movl	$1, -56(%rbp)
	jmp	.L16
.L17:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	addl	%eax, -52(%rbp)
	addl	$1, -56(%rbp)
.L16:
	cmpl	$9, -56(%rbp)
	jle	.L17
	cmpl	$0, -52(%rbp)
	jne	.L18
	movl	$0, %eax
	jmp	.L21
.L18:
	addl	$1, -60(%rbp)
.L5:
	cmpl	$1023, -60(%rbp)
	jle	.L20
	movl	$-1, %eax
.L21:
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	lose, .-lose
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$144, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L24
.L38:
	call	getchar@PLT
	leaq	-128(%rbp), %rax
	movl	$40, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	leaq	-32(%rbp), %rax
	movl	$10, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	movl	$0, -140(%rbp)
	jmp	.L25
.L26:
	movl	-140(%rbp), %eax
	cltq
	movzbl	-22(%rbp,%rax), %eax
	movsbl	%al, %eax
	subl	$48, %eax
	movslq	%eax, %rdx
	movl	-128(%rbp,%rdx,4), %edx
	addl	$1, %edx
	cltq
	movl	%edx, -128(%rbp,%rax,4)
	addl	$1, -140(%rbp)
.L25:
	cmpl	$12, -140(%rbp)
	jle	.L26
	movq	-128(%rbp), %rax
	movq	-120(%rbp), %rdx
	movq	%rax, -80(%rbp)
	movq	%rdx, -72(%rbp)
	movq	-112(%rbp), %rax
	movq	-104(%rbp), %rdx
	movq	%rax, -64(%rbp)
	movq	%rdx, -56(%rbp)
	movq	-96(%rbp), %rax
	movq	%rax, -48(%rbp)
	movl	$1, -140(%rbp)
	jmp	.L27
.L32:
	movq	-80(%rbp), %rax
	movq	-72(%rbp), %rdx
	movq	%rax, -128(%rbp)
	movq	%rdx, -120(%rbp)
	movq	-64(%rbp), %rax
	movq	-56(%rbp), %rdx
	movq	%rax, -112(%rbp)
	movq	%rdx, -104(%rbp)
	movq	-48(%rbp), %rax
	movq	%rax, -96(%rbp)
	movl	-140(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	cmpl	$3, %eax
	jg	.L28
	movl	-140(%rbp), %eax
	cltq
	movl	-80(%rbp,%rax,4), %eax
	leal	1(%rax), %edx
	movl	-140(%rbp), %eax
	cltq
	movl	%edx, -80(%rbp,%rax,4)
	movl	$1, -136(%rbp)
	jmp	.L29
.L31:
	movq	-80(%rbp), %rax
	movq	-72(%rbp), %rdx
	movq	%rax, -128(%rbp)
	movq	%rdx, -120(%rbp)
	movq	-64(%rbp), %rax
	movq	-56(%rbp), %rdx
	movq	%rax, -112(%rbp)
	movq	%rdx, -104(%rbp)
	movq	-48(%rbp), %rax
	movq	%rax, -96(%rbp)
	movl	-136(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	cmpl	$1, %eax
	jle	.L30
	movl	-136(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	leal	-2(%rax), %edx
	movl	-136(%rbp), %eax
	cltq
	movl	%edx, -128(%rbp,%rax,4)
	leaq	-128(%rbp), %rax
	movq	%rax, %rdi
	call	lose
	testl	%eax, %eax
	jne	.L30
	movl	-140(%rbp), %eax
	cltq
	movb	$1, -32(%rbp,%rax)
.L30:
	addl	$1, -136(%rbp)
.L29:
	cmpl	$9, -136(%rbp)
	jle	.L31
	movl	-140(%rbp), %eax
	cltq
	movl	-80(%rbp,%rax,4), %eax
	leal	-1(%rax), %edx
	movl	-140(%rbp), %eax
	cltq
	movl	%edx, -80(%rbp,%rax,4)
.L28:
	addl	$1, -140(%rbp)
.L27:
	cmpl	$9, -140(%rbp)
	jle	.L32
	movl	$0, -132(%rbp)
	movl	$1, -140(%rbp)
	jmp	.L33
.L36:
	cmpl	$1, -132(%rbp)
	jne	.L34
	movl	-140(%rbp), %eax
	cltq
	movzbl	-32(%rbp,%rax), %eax
	cmpb	$1, %al
	jne	.L34
	movl	$32, %edi
	call	putchar@PLT
.L34:
	movl	-140(%rbp), %eax
	cltq
	movzbl	-32(%rbp,%rax), %eax
	cmpb	$1, %al
	jne	.L35
	movl	-140(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$1, -132(%rbp)
.L35:
	addl	$1, -140(%rbp)
.L33:
	cmpl	$9, -140(%rbp)
	jle	.L36
	cmpl	$0, -132(%rbp)
	jne	.L37
	movl	$48, %edi
	call	putchar@PLT
.L37:
	movl	$10, %edi
	call	putchar@PLT
.L24:
	leaq	-22(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	jne	.L38
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L40
	call	__stack_chk_fail@PLT
.L40:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
train
	.file	"temp.c"
	.text
	.globl	min
	.type	min, @function
min:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -4(%rbp)
	movl	%esi, -8(%rbp)
	movl	-4(%rbp), %eax
	cmpl	-8(%rbp), %eax
	jle	.L2
	movl	-8(%rbp), %eax
	jmp	.L3
.L2:
	movl	-4(%rbp), %eax
.L3:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	min, .-min
	.globl	lose
	.type	lose, @function
lose:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$80, %rsp
	movq	%rdi, -72(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -60(%rbp)
	jmp	.L5
.L20:
	movl	$0, -56(%rbp)
	jmp	.L6
.L7:
	movl	-56(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-72(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	addl	$1, -56(%rbp)
.L6:
	cmpl	$9, -56(%rbp)
	jle	.L7
	movl	$0, -56(%rbp)
	jmp	.L8
.L10:
	movl	-56(%rbp), %eax
	movl	-60(%rbp), %edx
	movl	%eax, %ecx
	sarl	%cl, %edx
	movl	%edx, %eax
	andl	$1, %eax
	testl	%eax, %eax
	je	.L9
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	cmpl	$2, %eax
	jle	.L9
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	leal	-3(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
.L9:
	addl	$1, -56(%rbp)
.L8:
	cmpl	$9, -56(%rbp)
	jle	.L10
	movl	$1, -56(%rbp)
	jmp	.L11
.L14:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	leal	-1(%rax), %edx
	movl	-56(%rbp), %eax
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	movl	-56(%rbp), %eax
	addl	$1, %eax
	movslq	%eax, %rdx
	movl	-48(%rbp,%rdx,4), %edx
	subl	$1, %edx
	cltq
	movl	%edx, -48(%rbp,%rax,4)
	movl	-56(%rbp), %eax
	addl	$2, %eax
	movslq	%eax, %rdx
	movl	-48(%rbp,%rdx,4), %edx
	subl	$1, %edx
	cltq
	movl	%edx, -48(%rbp,%rax,4)
.L12:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jle	.L13
	movl	-56(%rbp), %eax
	addl	$1, %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jle	.L13
	movl	-56(%rbp), %eax
	addl	$2, %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	testl	%eax, %eax
	jg	.L14
.L13:
	addl	$1, -56(%rbp)
.L11:
	cmpl	$7, -56(%rbp)
	jle	.L12
	movl	$0, -52(%rbp)
	movl	$1, -56(%rbp)
	jmp	.L16
.L17:
	movl	-56(%rbp), %eax
	cltq
	movl	-48(%rbp,%rax,4), %eax
	addl	%eax, -52(%rbp)
	addl	$1, -56(%rbp)
.L16:
	cmpl	$9, -56(%rbp)
	jle	.L17
	cmpl	$0, -52(%rbp)
	jne	.L18
	movl	$0, %eax
	jmp	.L21
.L18:
	addl	$1, -60(%rbp)
.L5:
	cmpl	$1023, -60(%rbp)
	jle	.L20
	movl	$-1, %eax
.L21:
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	lose, .-lose
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$144, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L24
.L38:
	call	getchar@PLT
	leaq	-128(%rbp), %rax
	movl	$40, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	leaq	-32(%rbp), %rax
	movl	$10, %edx
	movl	$0, %esi
	movq	%rax, %rdi
	call	memset@PLT
	movl	$0, -140(%rbp)
	jmp	.L25
.L26:
	movl	-140(%rbp), %eax
	cltq
	movzbl	-22(%rbp,%rax), %eax
	movsbl	%al, %eax
	subl	$48, %eax
	movslq	%eax, %rdx
	movl	-128(%rbp,%rdx,4), %edx
	addl	$1, %edx
	cltq
	movl	%edx, -128(%rbp,%rax,4)
	addl	$1, -140(%rbp)
.L25:
	cmpl	$12, -140(%rbp)
	jle	.L26
	movq	-128(%rbp), %rax
	movq	-120(%rbp), %rdx
	movq	%rax, -80(%rbp)
	movq	%rdx, -72(%rbp)
	movq	-112(%rbp), %rax
	movq	-104(%rbp), %rdx
	movq	%rax, -64(%rbp)
	movq	%rdx, -56(%rbp)
	movq	-96(%rbp), %rax
	movq	%rax, -48(%rbp)
	movl	$1, -140(%rbp)
	jmp	.L27
.L32:
	movq	-80(%rbp), %rax
	movq	-72(%rbp), %rdx
	movq	%rax, -128(%rbp)
	movq	%rdx, -120(%rbp)
	movq	-64(%rbp), %rax
	movq	-56(%rbp), %rdx
	movq	%rax, -112(%rbp)
	movq	%rdx, -104(%rbp)
	movq	-48(%rbp), %rax
	movq	%rax, -96(%rbp)
	movl	-140(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	cmpl	$3, %eax
	jg	.L28
	movl	-140(%rbp), %eax
	cltq
	movl	-80(%rbp,%rax,4), %eax
	leal	1(%rax), %edx
	movl	-140(%rbp), %eax
	cltq
	movl	%edx, -80(%rbp,%rax,4)
	movl	$1, -136(%rbp)
	jmp	.L29
.L31:
	movq	-80(%rbp), %rax
	movq	-72(%rbp), %rdx
	movq	%rax, -128(%rbp)
	movq	%rdx, -120(%rbp)
	movq	-64(%rbp), %rax
	movq	-56(%rbp), %rdx
	movq	%rax, -112(%rbp)
	movq	%rdx, -104(%rbp)
	movq	-48(%rbp), %rax
	movq	%rax, -96(%rbp)
	movl	-136(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	cmpl	$1, %eax
	jle	.L30
	movl	-136(%rbp), %eax
	cltq
	movl	-128(%rbp,%rax,4), %eax
	leal	-2(%rax), %edx
	movl	-136(%rbp), %eax
	cltq
	movl	%edx, -128(%rbp,%rax,4)
	leaq	-128(%rbp), %rax
	movq	%rax, %rdi
	call	lose
	testl	%eax, %eax
	jne	.L30
	movl	-140(%rbp), %eax
	cltq
	movb	$1, -32(%rbp,%rax)
.L30:
	addl	$1, -136(%rbp)
.L29:
	cmpl	$9, -136(%rbp)
	jle	.L31
	movl	-140(%rbp), %eax
	cltq
	movl	-80(%rbp,%rax,4), %eax
	leal	-1(%rax), %edx
	movl	-140(%rbp), %eax
	cltq
	movl	%edx, -80(%rbp,%rax,4)
.L28:
	addl	$1, -140(%rbp)
.L27:
	cmpl	$9, -140(%rbp)
	jle	.L32
	movl	$0, -132(%rbp)
	movl	$1, -140(%rbp)
	jmp	.L33
.L36:
	cmpl	$1, -132(%rbp)
	jne	.L34
	movl	-140(%rbp), %eax
	cltq
	movzbl	-32(%rbp,%rax), %eax
	cmpb	$1, %al
	jne	.L34
	movl	$32, %edi
	call	putchar@PLT
.L34:
	movl	-140(%rbp), %eax
	cltq
	movzbl	-32(%rbp,%rax), %eax
	cmpb	$1, %al
	jne	.L35
	movl	-140(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$1, -132(%rbp)
.L35:
	addl	$1, -140(%rbp)
.L33:
	cmpl	$9, -140(%rbp)
	jle	.L36
	cmpl	$0, -132(%rbp)
	jne	.L37
	movl	$48, %edi
	call	putchar@PLT
.L37:
	movl	$10, %edi
	call	putchar@PLT
.L24:
	leaq	-22(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$-1, %eax
	jne	.L38
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L40
	call	__stack_chk_fail@PLT
.L40:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
