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>
#define WMAX 1000000
#define WMIN 0


typedef struct _P{
	int x;
	int y;
}POINT;
POINT BASE[200];
POINT TRGT[1000];



int main(){
	int m,n;
	int x,y;
	int i;
	int xmax,xmin,ymax,ymin;
	int xdiff,ydiff;
	int j,k;
	int cnt,cnt0;
	while(1){
		scanf("%d\n",&m);
		if(!m)break;
		xmax=xmin=ymax=ymin=0;
		for(i=0;i<m;i++){
			scanf("%d %d\n",&x,&y);
			BASE[i].x=x;
			BASE[i].y=y;
			if(x<=xmin)xmin=x;
			if(x>=xmax)xmax=x;
			if(y<=ymin)ymin=y;
			if(y>=ymax)ymax=y;
		}
		scanf("%d\n",&n);
		for(i=0;i<n;i++){
			scanf("%d %d\n",&x,&y);
			TRGT[i].x=x;
			TRGT[i].y=y;
		}
		xdiff=ydiff=0;
		//search one by one;
		for(i=0;i<n;i++){
			xdiff=TRGT[i].x-BASE[0].x;
			ydiff=TRGT[i].y-BASE[0].y;
			if(xmax+xdiff<=WMAX && ymax+ydiff<=WMAX && xmax+xdiff>=WMIN && ymax+ydiff>=WMIN){
				cnt=1;
				for(j=1;j<m;j++){
					cnt0=0;
					for(k=0;k<n;k++){
						if(BASE[j].x+xdiff==TRGT[k].x && BASE[j].y+ydiff==TRGT[k].y){
							cnt++;
							cnt0++;
						}
					}
					if(cnt0==0)break;
				}
			}
			if(cnt==m)break;
		}
		printf("%d %d\n",xdiff,ydiff);
	}
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	BASE
	.bss
	.align 32
	.type	BASE, @object
	.size	BASE, 1600
BASE:
	.zero	1600
	.globl	TRGT
	.align 32
	.type	TRGT, @object
	.size	TRGT, 8000
TRGT:
	.zero	8000
	.section	.rodata
.LC0:
	.string	"%d\n"
.LC1:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.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	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
.L23:
	leaq	-68(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-68(%rbp), %eax
	testl	%eax, %eax
	je	.L27
	movl	$0, -36(%rbp)
	movl	-36(%rbp), %eax
	movl	%eax, -40(%rbp)
	movl	-40(%rbp), %eax
	movl	%eax, -44(%rbp)
	movl	-44(%rbp), %eax
	movl	%eax, -48(%rbp)
	movl	$0, -52(%rbp)
	jmp	.L4
.L9:
	leaq	-56(%rbp), %rdx
	leaq	-60(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-60(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	BASE(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-56(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	4+BASE(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-60(%rbp), %eax
	cmpl	%eax, -44(%rbp)
	jl	.L5
	movl	-60(%rbp), %eax
	movl	%eax, -44(%rbp)
.L5:
	movl	-60(%rbp), %eax
	cmpl	%eax, -48(%rbp)
	jg	.L6
	movl	-60(%rbp), %eax
	movl	%eax, -48(%rbp)
.L6:
	movl	-56(%rbp), %eax
	cmpl	%eax, -36(%rbp)
	jl	.L7
	movl	-56(%rbp), %eax
	movl	%eax, -36(%rbp)
.L7:
	movl	-56(%rbp), %eax
	cmpl	%eax, -40(%rbp)
	jg	.L8
	movl	-56(%rbp), %eax
	movl	%eax, -40(%rbp)
.L8:
	addl	$1, -52(%rbp)
.L4:
	movl	-68(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L9
	leaq	-64(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -52(%rbp)
	jmp	.L10
.L11:
	leaq	-56(%rbp), %rdx
	leaq	-60(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-60(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	TRGT(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-56(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	4+TRGT(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -52(%rbp)
.L10:
	movl	-64(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L11
	movl	$0, -28(%rbp)
	movl	-28(%rbp), %eax
	movl	%eax, -32(%rbp)
	movl	$0, -52(%rbp)
	jmp	.L12
.L22:
	movl	-52(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	BASE(%rip), %edx
	subl	%edx, %eax
	movl	%eax, -32(%rbp)
	movl	-52(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	4+BASE(%rip), %edx
	subl	%edx, %eax
	movl	%eax, -28(%rbp)
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%edx, %eax
	cmpl	$1000000, %eax
	jg	.L13
	movl	-40(%rbp), %edx
	movl	-28(%rbp), %eax
	addl	%edx, %eax
	cmpl	$1000000, %eax
	jg	.L13
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%edx, %eax
	testl	%eax, %eax
	js	.L13
	movl	-40(%rbp), %edx
	movl	-28(%rbp), %eax
	addl	%edx, %eax
	testl	%eax, %eax
	js	.L13
	movl	$1, -16(%rbp)
	movl	$1, -24(%rbp)
	jmp	.L14
.L19:
	movl	$0, -12(%rbp)
	movl	$0, -20(%rbp)
	jmp	.L15
.L17:
	movl	-24(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	BASE(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-32(%rbp), %eax
	leal	(%rdx,%rax), %ecx
	movl	-20(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, %ecx
	jne	.L16
	movl	-24(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+BASE(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-28(%rbp), %eax
	leal	(%rdx,%rax), %ecx
	movl	-20(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, %ecx
	jne	.L16
	addl	$1, -16(%rbp)
	addl	$1, -12(%rbp)
.L16:
	addl	$1, -20(%rbp)
.L15:
	movl	-64(%rbp), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L17
	cmpl	$0, -12(%rbp)
	je	.L28
	addl	$1, -24(%rbp)
.L14:
	movl	-68(%rbp), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L19
	jmp	.L13
.L28:
	nop
.L13:
	movl	-68(%rbp), %eax
	cmpl	%eax, -16(%rbp)
	je	.L29
	addl	$1, -52(%rbp)
.L12:
	movl	-64(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L22
	jmp	.L21
.L29:
	nop
.L21:
	movl	-28(%rbp), %edx
	movl	-32(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	jmp	.L23
.L27:
	nop
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L25
	call	__stack_chk_fail@PLT
.L25:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
user
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d\n"
.LC1:
	.string	"%d %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC1(%rip), %r15
	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	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movq	%rax, 24(%rsp)
	.p2align 4,,10
	.p2align 3
.L12:
	movq	24(%rsp), %rsi
	leaq	.LC0(%rip), %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movl	40(%rsp), %edx
	testl	%edx, %edx
	je	.L2
	jle	.L14
	xorl	%r12d, %r12d
	xorl	%ebp, %ebp
	leaq	52(%rsp), %r14
	xorl	%ebx, %ebx
	leaq	48(%rsp), %r13
	.p2align 4,,10
	.p2align 3
.L4:
	movq	%r14, %rdx
	movq	%r15, %rdi
	xorl	%eax, %eax
	movq	%r13, %rsi
	call	__isoc99_scanf@PLT
	movl	48(%rsp), %edx
	movl	52(%rsp), %eax
	leaq	BASE(%rip), %rdi
	cmpl	%edx, %ebx
	movd	%edx, %xmm0
	movd	%eax, %xmm1
	cmovl	%edx, %ebx
	punpckldq	%xmm1, %xmm0
	cmpl	%eax, %ebp
	cmovl	%eax, %ebp
	movq	%xmm0, (%rdi,%r12,8)
	addq	$1, %r12
	cmpl	%r12d, 40(%rsp)
	jg	.L4
.L3:
	leaq	44(%rsp), %rsi
	leaq	.LC0(%rip), %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movl	44(%rsp), %eax
	testl	%eax, %eax
	jle	.L16
	xorl	%r12d, %r12d
	leaq	52(%rsp), %r14
	leaq	48(%rsp), %r13
	.p2align 4,,10
	.p2align 3
.L6:
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r15, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movd	48(%rsp), %xmm0
	movd	52(%rsp), %xmm2
	leaq	TRGT(%rip), %rax
	punpckldq	%xmm2, %xmm0
	movq	%xmm0, (%rax,%r12,8)
	movl	44(%rsp), %eax
	addq	$1, %r12
	cmpl	%r12d, %eax
	jg	.L6
	testl	%eax, %eax
	jle	.L16
	leaq	BASE(%rip), %rcx
	subl	$1, %eax
	movl	%ebp, 4(%rsp)
	movl	8(%rsp), %r11d
	movl	(%rcx), %r14d
	movl	40(%rsp), %ecx
	leaq	8+TRGT(%rip), %rsi
	leaq	(%rsi,%rax,8), %rsi
	leaq	16+BASE(%rip), %rax
	movl	4+BASE(%rip), %r13d
	leal	-2(%rcx), %edx
	movl	%ecx, %ebp
	leaq	(%rax,%rdx,8), %rax
	leaq	TRGT(%rip), %rdx
	movq	%rax, 16(%rsp)
	jmp	.L11
	.p2align 4,,10
	.p2align 3
.L32:
	addq	$8, %rdx
	cmpq	%rsi, %rdx
	je	.L28
.L11:
	movl	(%rdx), %r8d
	movl	4(%rdx), %ecx
	subl	%r14d, %r8d
	subl	%r13d, %ecx
	leal	(%r8,%rbx), %eax
	cmpl	$1000000, %eax
	ja	.L7
	movl	4(%rsp), %eax
	addl	%ecx, %eax
	cmpl	$1000000, %eax
	jbe	.L31
.L7:
	cmpl	%ebp, %r11d
	jne	.L32
.L28:
	movl	%r11d, 8(%rsp)
.L5:
	movl	%r8d, %edx
	movq	%r15, %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L12
	.p2align 4,,10
	.p2align 3
.L31:
	cmpl	$1, %ebp
	jle	.L17
	movq	%rdx, 8(%rsp)
	movq	16(%rsp), %rdx
	leaq	8+BASE(%rip), %r9
	movl	$1, %r11d
	.p2align 4,,10
	.p2align 3
.L10:
	movl	(%r9), %edi
	leaq	TRGT(%rip), %rax
	xorl	%r12d, %r12d
	addl	%r8d, %edi
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L8:
	addq	$8, %rax
	cmpq	%rsi, %rax
	je	.L33
.L9:
	cmpl	(%rax), %edi
	jne	.L8
	movl	4(%r9), %r10d
	addl	%ecx, %r10d
	cmpl	4(%rax), %r10d
	jne	.L8
	addq	$8, %rax
	addl	$1, %r11d
	addl	$1, %r12d
	cmpq	%rsi, %rax
	jne	.L9
	.p2align 4,,10
	.p2align 3
.L33:
	testl	%r12d, %r12d
	je	.L27
	addq	$8, %r9
	cmpq	%rdx, %r9
	jne	.L10
.L27:
	movq	8(%rsp), %rdx
	jmp	.L7
.L2:
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L34
	addq	$72, %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
.L16:
	.cfi_restore_state
	xorl	%ecx, %ecx
	xorl	%r8d, %r8d
	jmp	.L5
.L14:
	xorl	%ebp, %ebp
	xorl	%ebx, %ebx
	jmp	.L3
.L17:
	movl	$1, %r11d
	jmp	.L7
.L34:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.globl	TRGT
	.bss
	.align 32
	.type	TRGT, @object
	.size	TRGT, 8000
TRGT:
	.zero	8000
	.globl	BASE
	.align 32
	.type	BASE, @object
	.size	BASE, 1600
BASE:
	.zero	1600
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

rule
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d\n"
.LC1:
	.string	"%d %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC1(%rip), %r15
	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	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movq	%rax, 24(%rsp)
	.p2align 4,,10
	.p2align 3
.L12:
	movq	24(%rsp), %rsi
	leaq	.LC0(%rip), %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movl	40(%rsp), %edx
	testl	%edx, %edx
	je	.L2
	jle	.L14
	xorl	%r12d, %r12d
	xorl	%ebp, %ebp
	leaq	52(%rsp), %r14
	xorl	%ebx, %ebx
	leaq	48(%rsp), %r13
	.p2align 4,,10
	.p2align 3
.L4:
	movq	%r14, %rdx
	movq	%r15, %rdi
	xorl	%eax, %eax
	movq	%r13, %rsi
	call	__isoc99_scanf@PLT
	movl	48(%rsp), %edx
	movl	52(%rsp), %eax
	leaq	BASE(%rip), %rdi
	cmpl	%edx, %ebx
	movd	%edx, %xmm0
	movd	%eax, %xmm1
	cmovl	%edx, %ebx
	punpckldq	%xmm1, %xmm0
	cmpl	%eax, %ebp
	cmovl	%eax, %ebp
	movq	%xmm0, (%rdi,%r12,8)
	addq	$1, %r12
	cmpl	%r12d, 40(%rsp)
	jg	.L4
.L3:
	leaq	44(%rsp), %rsi
	leaq	.LC0(%rip), %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movl	44(%rsp), %eax
	testl	%eax, %eax
	jle	.L16
	xorl	%r12d, %r12d
	leaq	52(%rsp), %r14
	leaq	48(%rsp), %r13
	.p2align 4,,10
	.p2align 3
.L6:
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r15, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movd	48(%rsp), %xmm0
	movd	52(%rsp), %xmm2
	leaq	TRGT(%rip), %rax
	punpckldq	%xmm2, %xmm0
	movq	%xmm0, (%rax,%r12,8)
	movl	44(%rsp), %eax
	addq	$1, %r12
	cmpl	%r12d, %eax
	jg	.L6
	testl	%eax, %eax
	jle	.L16
	leaq	BASE(%rip), %rcx
	subl	$1, %eax
	movl	%ebp, 4(%rsp)
	movl	8(%rsp), %r11d
	movl	(%rcx), %r14d
	movl	40(%rsp), %ecx
	leaq	8+TRGT(%rip), %rsi
	leaq	(%rsi,%rax,8), %rsi
	leaq	16+BASE(%rip), %rax
	movl	4+BASE(%rip), %r13d
	leal	-2(%rcx), %edx
	movl	%ecx, %ebp
	leaq	(%rax,%rdx,8), %rax
	leaq	TRGT(%rip), %rdx
	movq	%rax, 16(%rsp)
	jmp	.L11
	.p2align 4,,10
	.p2align 3
.L32:
	addq	$8, %rdx
	cmpq	%rsi, %rdx
	je	.L28
.L11:
	movl	(%rdx), %r8d
	movl	4(%rdx), %ecx
	subl	%r14d, %r8d
	subl	%r13d, %ecx
	leal	(%r8,%rbx), %eax
	cmpl	$1000000, %eax
	ja	.L7
	movl	4(%rsp), %eax
	addl	%ecx, %eax
	cmpl	$1000000, %eax
	jbe	.L31
.L7:
	cmpl	%ebp, %r11d
	jne	.L32
.L28:
	movl	%r11d, 8(%rsp)
.L5:
	movl	%r8d, %edx
	movq	%r15, %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L12
	.p2align 4,,10
	.p2align 3
.L31:
	cmpl	$1, %ebp
	jle	.L17
	movq	%rdx, 8(%rsp)
	movq	16(%rsp), %rdx
	leaq	8+BASE(%rip), %r9
	movl	$1, %r11d
	.p2align 4,,10
	.p2align 3
.L10:
	movl	(%r9), %edi
	leaq	TRGT(%rip), %rax
	xorl	%r12d, %r12d
	addl	%r8d, %edi
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L8:
	addq	$8, %rax
	cmpq	%rsi, %rax
	je	.L33
.L9:
	cmpl	(%rax), %edi
	jne	.L8
	movl	4(%r9), %r10d
	addl	%ecx, %r10d
	cmpl	4(%rax), %r10d
	jne	.L8
	addq	$8, %rax
	addl	$1, %r11d
	addl	$1, %r12d
	cmpq	%rsi, %rax
	jne	.L9
	.p2align 4,,10
	.p2align 3
.L33:
	testl	%r12d, %r12d
	je	.L27
	addq	$8, %r9
	cmpq	%rdx, %r9
	jne	.L10
.L27:
	movq	8(%rsp), %rdx
	jmp	.L7
.L2:
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L34
	addq	$72, %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
.L16:
	.cfi_restore_state
	xorl	%ecx, %ecx
	xorl	%r8d, %r8d
	jmp	.L5
.L14:
	xorl	%ebp, %ebp
	xorl	%ebx, %ebx
	jmp	.L3
.L17:
	movl	$1, %r11d
	jmp	.L7
.L34:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.globl	TRGT
	.bss
	.align 32
	.type	TRGT, @object
	.size	TRGT, 8000
TRGT:
	.zero	8000
	.globl	BASE
	.align 32
	.type	BASE, @object
	.size	BASE, 1600
BASE:
	.zero	1600
	.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>
#define WMAX 1000000
#define WMIN 0


typedef struct _P{
	int x;
	int y;
}POINT;
POINT BASE[200];
POINT TRGT[1000];



int main(){
	int m,n;
	int x,y;
	int i;
	int xmax,xmin,ymax,ymin;
	int xdiff,ydiff;
	int j,k;
	int cnt,cnt0;
	while(1){
		scanf("%d\n",&m);
		if(!m)break;
		xmax=xmin=ymax=ymin=0;
		for(i=0;i<m;i++){
			scanf("%d %d\n",&x,&y);
			BASE[i].x=x;
			BASE[i].y=y;
			if(x<=xmin)xmin=x;
			if(x>=xmax)xmax=x;
			if(y<=ymin)ymin=y;
			if(y>=ymax)ymax=y;
		}
		scanf("%d\n",&n);
		for(i=0;i<n;i++){
			scanf("%d %d\n",&x,&y);
			TRGT[i].x=x;
			TRGT[i].y=y;
		}
		xdiff=ydiff=0;
		//search one by one;
		for(i=0;i<n;i++){
			xdiff=TRGT[i].x-BASE[0].x;
			ydiff=TRGT[i].y-BASE[0].y;
			if(xmax+xdiff<=WMAX && ymax+ydiff<=WMAX && xmax+xdiff>=WMIN && ymax+ydiff>=WMIN){
				cnt=1;
				for(j=1;j<m;j++){
					cnt0=0;
					for(k=0;k<n;k++){
						if(BASE[j].x+xdiff==TRGT[k].x && BASE[j].y+ydiff==TRGT[k].y){
							cnt++;
							cnt0++;
						}
					}
					if(cnt0==0)break;
				}
			}
			if(cnt==m)break;
		}
		printf("%d %d\n",xdiff,ydiff);
	}
	return 0;
}
5
8 5
6 4
4 3
7 10
0 10
10
10 5
2 7
10 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
674361 448440
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
7 10
0 10
10
10 5
2 7
9 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
919396 989458
461089 424480
674361 448440
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
7 10
0 10
10
10 5
2 7
9 7
8 10
10 2
1 2
8 1
6 7
6 0
0 0
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
674361 448440
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
11 10
0 10
10
10 5
2 7
10 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
674361 448440
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
11 10
0 10
10
10 5
2 4
10 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
674361 448440
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
11 10
0 10
10
10 5
2 4
10 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
1244032 448440
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
11 10
0 10
10
10 5
2 4
10 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
1244032 646221
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
7 10
0 10
10
10 5
2 7
10 7
8 10
10 2
1 2
8 1
6 8
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
674361 448440
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
11 10
0 10
10
10 5
2 7
10 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
674361 448440
81851 150384
459107 795405
299682 499
254125 362183
50795 541942
0
 5
8 5
6 4
4 3
11 10
0 10
10
10 5
2 4
8 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
5
904207 809784
845370 244806
499091 59863
638406 182509
435076 362268
10
757559 866424
114810 239537
519926 989458
461089 424480
674361 448440
81851 150384
459107 795405
299682 6700
254125 362183
50795 541942
0

-8 4
-384281 179674
 2 -3
-853412 -267842
 2 -3
-384281 179674
 -8 4
-384281 179674
 -8 4
-384281 179674
 -8 4
-384281 179674
 -8 4
-384281 179674
 -8 4
-384281 179674
 -8 4
-384281 179674
 -8 4
-384281 179674

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>
#define WMAX 1000000
#define WMIN 0


typedef struct _P{
	int x;
	int y;
}POINT;
POINT BASE[200];
POINT TRGT[1000];



int main(){
	int m,n;
	int x,y;
	int i;
	int xmax,xmin,ymax,ymin;
	int xdiff,ydiff;
	int j,k;
	int cnt,cnt0;
	while(1){
		scanf("%d\n",&m);
		if(!m)break;
		xmax=xmin=ymax=ymin=0;
		for(i=0;i<m;i++){
			scanf("%d %d\n",&x,&y);
			BASE[i].x=x;
			BASE[i].y=y;
			if(x<=xmin)xmin=x;
			if(x>=xmax)xmax=x;
			if(y<=ymin)ymin=y;
			if(y>=ymax)ymax=y;
		}
		scanf("%d\n",&n);
		for(i=0;i<n;i++){
			scanf("%d %d\n",&x,&y);
			TRGT[i].x=x;
			TRGT[i].y=y;
		}
		xdiff=ydiff=0;
		//search one by one;
		for(i=0;i<n;i++){
			xdiff=TRGT[i].x-BASE[0].x;
			ydiff=TRGT[i].y-BASE[0].y;
			if(xmax+xdiff<=WMAX && ymax+ydiff<=WMAX && xmax+xdiff>=WMIN && ymax+ydiff>=WMIN){
				cnt=1;
				for(j=1;j<m;j++){
					cnt0=0;
					for(k=0;k<n;k++){
						if(BASE[j].x+xdiff==TRGT[k].x && BASE[j].y+ydiff==TRGT[k].y){
							cnt++;
							cnt0++;
						}
					}
					if(cnt0==0)break;
				}
			}
			if(cnt==m)break;
		}
		printf("%d %d\n",xdiff,ydiff);
	}
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	BASE
	.bss
	.align 32
	.type	BASE, @object
	.size	BASE, 1600
BASE:
	.zero	1600
	.globl	TRGT
	.align 32
	.type	TRGT, @object
	.size	TRGT, 8000
TRGT:
	.zero	8000
	.section	.rodata
.LC0:
	.string	"%d\n"
.LC1:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.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	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
.L23:
	leaq	-68(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-68(%rbp), %eax
	testl	%eax, %eax
	je	.L27
	movl	$0, -36(%rbp)
	movl	-36(%rbp), %eax
	movl	%eax, -40(%rbp)
	movl	-40(%rbp), %eax
	movl	%eax, -44(%rbp)
	movl	-44(%rbp), %eax
	movl	%eax, -48(%rbp)
	movl	$0, -52(%rbp)
	jmp	.L4
.L9:
	leaq	-56(%rbp), %rdx
	leaq	-60(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-60(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	BASE(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-56(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	4+BASE(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-60(%rbp), %eax
	cmpl	%eax, -44(%rbp)
	jl	.L5
	movl	-60(%rbp), %eax
	movl	%eax, -44(%rbp)
.L5:
	movl	-60(%rbp), %eax
	cmpl	%eax, -48(%rbp)
	jg	.L6
	movl	-60(%rbp), %eax
	movl	%eax, -48(%rbp)
.L6:
	movl	-56(%rbp), %eax
	cmpl	%eax, -36(%rbp)
	jl	.L7
	movl	-56(%rbp), %eax
	movl	%eax, -36(%rbp)
.L7:
	movl	-56(%rbp), %eax
	cmpl	%eax, -40(%rbp)
	jg	.L8
	movl	-56(%rbp), %eax
	movl	%eax, -40(%rbp)
.L8:
	addl	$1, -52(%rbp)
.L4:
	movl	-68(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L9
	leaq	-64(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -52(%rbp)
	jmp	.L10
.L11:
	leaq	-56(%rbp), %rdx
	leaq	-60(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-60(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	TRGT(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-56(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	4+TRGT(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -52(%rbp)
.L10:
	movl	-64(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L11
	movl	$0, -28(%rbp)
	movl	-28(%rbp), %eax
	movl	%eax, -32(%rbp)
	movl	$0, -52(%rbp)
	jmp	.L12
.L22:
	movl	-52(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	BASE(%rip), %edx
	subl	%edx, %eax
	movl	%eax, -32(%rbp)
	movl	-52(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	4+BASE(%rip), %edx
	subl	%edx, %eax
	movl	%eax, -28(%rbp)
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%edx, %eax
	cmpl	$1000000, %eax
	jg	.L13
	movl	-40(%rbp), %edx
	movl	-28(%rbp), %eax
	addl	%edx, %eax
	cmpl	$1000000, %eax
	jg	.L13
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%edx, %eax
	testl	%eax, %eax
	js	.L13
	movl	-40(%rbp), %edx
	movl	-28(%rbp), %eax
	addl	%edx, %eax
	testl	%eax, %eax
	js	.L13
	movl	$1, -16(%rbp)
	movl	$1, -24(%rbp)
	jmp	.L14
.L19:
	movl	$0, -12(%rbp)
	movl	$0, -20(%rbp)
	jmp	.L15
.L17:
	movl	-24(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	BASE(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-32(%rbp), %eax
	leal	(%rdx,%rax), %ecx
	movl	-20(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, %ecx
	jne	.L16
	movl	-24(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+BASE(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-28(%rbp), %eax
	leal	(%rdx,%rax), %ecx
	movl	-20(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, %ecx
	jne	.L16
	addl	$1, -16(%rbp)
	addl	$1, -12(%rbp)
.L16:
	addl	$1, -20(%rbp)
.L15:
	movl	-64(%rbp), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L17
	cmpl	$0, -12(%rbp)
	je	.L28
	addl	$1, -24(%rbp)
.L14:
	movl	-68(%rbp), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L19
	jmp	.L13
.L28:
	nop
.L13:
	movl	-68(%rbp), %eax
	cmpl	%eax, -16(%rbp)
	je	.L29
	addl	$1, -52(%rbp)
.L12:
	movl	-64(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L22
	jmp	.L21
.L29:
	nop
.L21:
	movl	-28(%rbp), %edx
	movl	-32(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	jmp	.L23
.L27:
	nop
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L25
	call	__stack_chk_fail@PLT
.L25:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.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	BASE
	.bss
	.align 32
	.type	BASE, @object
	.size	BASE, 1600
BASE:
	.zero	1600
	.globl	TRGT
	.align 32
	.type	TRGT, @object
	.size	TRGT, 8000
TRGT:
	.zero	8000
	.section	.rodata
.LC0:
	.string	"%d\n"
.LC1:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.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	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
.L23:
	leaq	-68(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-68(%rbp), %eax
	testl	%eax, %eax
	je	.L27
	movl	$0, -36(%rbp)
	movl	-36(%rbp), %eax
	movl	%eax, -40(%rbp)
	movl	-40(%rbp), %eax
	movl	%eax, -44(%rbp)
	movl	-44(%rbp), %eax
	movl	%eax, -48(%rbp)
	movl	$0, -52(%rbp)
	jmp	.L4
.L9:
	leaq	-56(%rbp), %rdx
	leaq	-60(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-60(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	BASE(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-56(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	4+BASE(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-60(%rbp), %eax
	cmpl	%eax, -44(%rbp)
	jl	.L5
	movl	-60(%rbp), %eax
	movl	%eax, -44(%rbp)
.L5:
	movl	-60(%rbp), %eax
	cmpl	%eax, -48(%rbp)
	jg	.L6
	movl	-60(%rbp), %eax
	movl	%eax, -48(%rbp)
.L6:
	movl	-56(%rbp), %eax
	cmpl	%eax, -36(%rbp)
	jl	.L7
	movl	-56(%rbp), %eax
	movl	%eax, -36(%rbp)
.L7:
	movl	-56(%rbp), %eax
	cmpl	%eax, -40(%rbp)
	jg	.L8
	movl	-56(%rbp), %eax
	movl	%eax, -40(%rbp)
.L8:
	addl	$1, -52(%rbp)
.L4:
	movl	-68(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L9
	leaq	-64(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -52(%rbp)
	jmp	.L10
.L11:
	leaq	-56(%rbp), %rdx
	leaq	-60(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-60(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	TRGT(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	movl	-56(%rbp), %eax
	movl	-52(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	4+TRGT(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -52(%rbp)
.L10:
	movl	-64(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L11
	movl	$0, -28(%rbp)
	movl	-28(%rbp), %eax
	movl	%eax, -32(%rbp)
	movl	$0, -52(%rbp)
	jmp	.L12
.L22:
	movl	-52(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	BASE(%rip), %edx
	subl	%edx, %eax
	movl	%eax, -32(%rbp)
	movl	-52(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	4+BASE(%rip), %edx
	subl	%edx, %eax
	movl	%eax, -28(%rbp)
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%edx, %eax
	cmpl	$1000000, %eax
	jg	.L13
	movl	-40(%rbp), %edx
	movl	-28(%rbp), %eax
	addl	%edx, %eax
	cmpl	$1000000, %eax
	jg	.L13
	movl	-48(%rbp), %edx
	movl	-32(%rbp), %eax
	addl	%edx, %eax
	testl	%eax, %eax
	js	.L13
	movl	-40(%rbp), %edx
	movl	-28(%rbp), %eax
	addl	%edx, %eax
	testl	%eax, %eax
	js	.L13
	movl	$1, -16(%rbp)
	movl	$1, -24(%rbp)
	jmp	.L14
.L19:
	movl	$0, -12(%rbp)
	movl	$0, -20(%rbp)
	jmp	.L15
.L17:
	movl	-24(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	BASE(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-32(%rbp), %eax
	leal	(%rdx,%rax), %ecx
	movl	-20(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, %ecx
	jne	.L16
	movl	-24(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+BASE(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-28(%rbp), %eax
	leal	(%rdx,%rax), %ecx
	movl	-20(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+TRGT(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, %ecx
	jne	.L16
	addl	$1, -16(%rbp)
	addl	$1, -12(%rbp)
.L16:
	addl	$1, -20(%rbp)
.L15:
	movl	-64(%rbp), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L17
	cmpl	$0, -12(%rbp)
	je	.L28
	addl	$1, -24(%rbp)
.L14:
	movl	-68(%rbp), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L19
	jmp	.L13
.L28:
	nop
.L13:
	movl	-68(%rbp), %eax
	cmpl	%eax, -16(%rbp)
	je	.L29
	addl	$1, -52(%rbp)
.L12:
	movl	-64(%rbp), %eax
	cmpl	%eax, -52(%rbp)
	jl	.L22
	jmp	.L21
.L29:
	nop
.L21:
	movl	-28(%rbp), %edx
	movl	-32(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	jmp	.L23
.L27:
	nop
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L25
	call	__stack_chk_fail@PLT
.L25:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.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:
