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 <stdlib.h>
#include <math.h>
#define min(p,q)((p)<(q)?(p):(q))
#define zahyoutype double
typedef struct Point{zahyoutype x,y;}P;
double distPP(P p,P q){return hypot(p.x-q.x,p.y-q.y);}
double arg(P p,P o){return atan2(p.y-o.y,p.x-o.x);}

void readpoint(P*p){zahyoutype x=1;scanf(x/2?"%lf%lf":"%ld%ld",&p->x,&p->y);}
void printpoint(P p){zahyoutype x=1;printf(x/2?"%.9lf %.9lf\n":"%ld %ld\n",p.x,p.y);}

int main(){
	P p1,p2;
	int r1,r2;
	readpoint(&p1);
	scanf("%d",&r1);
	readpoint(&p2);
	scanf("%d",&r2);
	double dist=distPP(p1,p2);
	double ar=arg(p2,p1);
	double s1=r1*(r1+r2)/dist;
	double s2=r1*(r1-r2)/dist;
	double theta1=acos(s1/r1);
	double theta2=acos(s2/r1);
	P ans[4];
	int cnt=0;
	if(    r1+r2  <dist)ans[cnt].x=p1.x+r1*cos(ar+theta1),ans[cnt].y=p1.y+r1*sin(ar+theta1),cnt++;
	if(    r1+r2 <=dist)ans[cnt].x=p1.x+r1*cos(ar-theta1),ans[cnt].y=p1.y+r1*sin(ar-theta1),cnt++;
	if(abs(r1-r2) <dist)ans[cnt].x=p1.x+r1*cos(ar+theta2),ans[cnt].y=p1.y+r1*sin(ar+theta2),cnt++;
	if(abs(r1-r2)<=dist)ans[cnt].x=p1.x+r1*cos(ar-theta2),ans[cnt].y=p1.y+r1*sin(ar-theta2),cnt++;
	for(int i=0;i<cnt;i++)for(int j=0;j<cnt-1-i;j++){
		if(ans[j].x>ans[j+1].x||ans[j].x==ans[j+1].x&&ans[j].y>ans[j+1].y){
			P temp=ans[j];ans[j]=ans[j+1];ans[j+1]=temp;
		}
	}
	for(int i=0;i<cnt;i++)printpoint(ans[i]);
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	distPP
	.type	distPP, @function
distPP:
.LFB6:
	.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	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -16(%rbp)
	movq	%rdx, -8(%rbp)
	movapd	%xmm2, %xmm1
	movapd	%xmm3, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%xmm1, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	-8(%rbp), %xmm0
	movsd	-24(%rbp), %xmm1
	movapd	%xmm0, %xmm2
	subsd	%xmm1, %xmm2
	movsd	-16(%rbp), %xmm0
	movsd	-32(%rbp), %xmm1
	subsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movapd	%xmm2, %xmm1
	movq	%rax, %xmm0
	call	hypot@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	distPP, .-distPP
	.globl	arg
	.type	arg, @function
arg:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -16(%rbp)
	movq	%rdx, -8(%rbp)
	movapd	%xmm2, %xmm1
	movapd	%xmm3, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%xmm1, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	-16(%rbp), %xmm0
	movsd	-32(%rbp), %xmm1
	movapd	%xmm0, %xmm2
	subsd	%xmm1, %xmm2
	movsd	-8(%rbp), %xmm0
	movsd	-24(%rbp), %xmm1
	subsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movapd	%xmm2, %xmm1
	movq	%rax, %xmm0
	call	atan2@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	arg, .-arg
	.section	.rodata
.LC3:
	.string	"%lf%lf"
.LC4:
	.string	"%ld%ld"
	.text
	.globl	readpoint
	.type	readpoint, @function
readpoint:
.LFB8:
	.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	%rdi, -24(%rbp)
	movsd	.LC0(%rip), %xmm0
	movsd	%xmm0, -8(%rbp)
	movq	-24(%rbp), %rax
	leaq	8(%rax), %rdx
	movq	-24(%rbp), %rcx
	movsd	-8(%rbp), %xmm0
	movsd	.LC1(%rip), %xmm1
	divsd	%xmm1, %xmm0
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L9
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	je	.L6
.L9:
	leaq	.LC3(%rip), %rax
	jmp	.L8
.L6:
	leaq	.LC4(%rip), %rax
.L8:
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	readpoint, .-readpoint
	.section	.rodata
.LC5:
	.string	"%.9lf %.9lf\n"
.LC6:
	.string	"%ld %ld\n"
	.text
	.globl	printpoint
	.type	printpoint, @function
printpoint:
.LFB9:
	.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	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	.LC0(%rip), %xmm0
	movsd	%xmm0, -8(%rbp)
	movsd	-24(%rbp), %xmm2
	movq	-32(%rbp), %rdx
	movsd	-8(%rbp), %xmm0
	movsd	.LC1(%rip), %xmm1
	divsd	%xmm1, %xmm0
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L14
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	je	.L11
.L14:
	leaq	.LC5(%rip), %rax
	jmp	.L13
.L11:
	leaq	.LC6(%rip), %rax
.L13:
	movapd	%xmm2, %xmm1
	movq	%rdx, %xmm0
	movq	%rax, %rdi
	movl	$2, %eax
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	printpoint, .-printpoint
	.section	.rodata
.LC7:
	.string	"%d"
	.text
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$224, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	leaq	-128(%rbp), %rax
	movq	%rax, %rdi
	call	readpoint
	leaq	-200(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC7(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-112(%rbp), %rax
	movq	%rax, %rdi
	call	readpoint
	leaq	-196(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC7(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movsd	-112(%rbp), %xmm2
	movsd	-104(%rbp), %xmm0
	movq	-128(%rbp), %rax
	movsd	-120(%rbp), %xmm1
	movapd	%xmm0, %xmm3
	movq	%rax, %xmm0
	call	distPP
	movq	%xmm0, %rax
	movq	%rax, -176(%rbp)
	movsd	-128(%rbp), %xmm2
	movsd	-120(%rbp), %xmm0
	movq	-112(%rbp), %rax
	movsd	-104(%rbp), %xmm1
	movapd	%xmm0, %xmm3
	movq	%rax, %xmm0
	call	arg
	movq	%xmm0, %rax
	movq	%rax, -168(%rbp)
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%eax, %edx
	movl	-200(%rbp), %eax
	imull	%edx, %eax
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%eax, %xmm0
	divsd	-176(%rbp), %xmm0
	movsd	%xmm0, -160(%rbp)
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %ecx
	subl	%ecx, %eax
	movl	%eax, %edx
	movl	-200(%rbp), %eax
	imull	%edx, %eax
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%eax, %xmm0
	divsd	-176(%rbp), %xmm0
	movsd	%xmm0, -152(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-160(%rbp), %xmm0
	divsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	acos@PLT
	movq	%xmm0, %rax
	movq	%rax, -144(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-152(%rbp), %xmm0
	divsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	acos@PLT
	movq	%xmm0, %rax
	movq	%rax, -136(%rbp)
	movl	$0, -192(%rbp)
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jbe	.L16
	movsd	-128(%rbp), %xmm4
	movsd	%xmm4, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm5, %xmm5
	cvtsi2sdl	%eax, %xmm5
	movsd	%xmm5, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm6
	movsd	%xmm6, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm7, %xmm7
	cvtsi2sdl	%eax, %xmm7
	movsd	%xmm7, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L16:
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jb	.L18
	movsd	-128(%rbp), %xmm3
	movsd	%xmm3, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm4, %xmm4
	cvtsi2sdl	%eax, %xmm4
	movsd	%xmm4, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm5
	movsd	%xmm5, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm6, %xmm6
	cvtsi2sdl	%eax, %xmm6
	movsd	%xmm6, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L18:
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %edx
	subl	%edx, %eax
	movl	%eax, %edx
	negl	%edx
	cmovns	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jbe	.L20
	movsd	-128(%rbp), %xmm7
	movsd	%xmm7, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm2, %xmm2
	cvtsi2sdl	%eax, %xmm2
	movsd	%xmm2, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm3
	movsd	%xmm3, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm4, %xmm4
	cvtsi2sdl	%eax, %xmm4
	movsd	%xmm4, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L20:
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %edx
	subl	%edx, %eax
	movl	%eax, %edx
	negl	%edx
	cmovns	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jb	.L22
	movsd	-128(%rbp), %xmm5
	movsd	%xmm5, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm6, %xmm6
	cvtsi2sdl	%eax, %xmm6
	movsd	%xmm6, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm7
	movsd	%xmm7, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm2, %xmm2
	cvtsi2sdl	%eax, %xmm2
	movsd	%xmm2, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L22:
	movl	$0, -188(%rbp)
	jmp	.L24
.L31:
	movl	$0, -184(%rbp)
	jmp	.L25
.L30:
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L26
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L27
	ucomisd	%xmm1, %xmm0
	jne	.L27
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	(%rax), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L27
.L26:
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	8(%rax), %rdx
	movq	(%rax), %rax
	movq	%rax, -96(%rbp)
	movq	%rdx, -88(%rbp)
	movl	-184(%rbp), %eax
	leal	1(%rax), %edx
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	leaq	-80(%rax), %rcx
	movslq	%edx, %rax
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	8(%rax), %rdx
	movq	(%rax), %rax
	movq	%rax, (%rcx)
	movq	%rdx, 8(%rcx)
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	leaq	-80(%rax), %rcx
	movq	-96(%rbp), %rax
	movq	-88(%rbp), %rdx
	movq	%rax, (%rcx)
	movq	%rdx, 8(%rcx)
.L27:
	addl	$1, -184(%rbp)
.L25:
	movl	-192(%rbp), %eax
	subl	$1, %eax
	subl	-188(%rbp), %eax
	cmpl	%eax, -184(%rbp)
	jl	.L30
	addl	$1, -188(%rbp)
.L24:
	movl	-188(%rbp), %eax
	cmpl	-192(%rbp), %eax
	jl	.L31
	movl	$0, -180(%rbp)
	jmp	.L32
.L33:
	movl	-180(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	(%rax), %rdx
	movsd	8(%rax), %xmm1
	movq	%rdx, %xmm0
	call	printpoint
	addl	$1, -180(%rbp)
.L32:
	movl	-180(%rbp), %eax
	cmpl	-192(%rbp), %eax
	jl	.L33
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC0:
	.long	0
	.long	1072693248
	.align 8
.LC1:
	.long	0
	.long	1073741824
	.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	distPP
	.type	distPP, @function
distPP:
.LFB39:
	.cfi_startproc
	endbr64
	subsd	%xmm2, %xmm0
	subsd	%xmm3, %xmm1
	jmp	hypot@PLT
	.cfi_endproc
.LFE39:
	.size	distPP, .-distPP
	.p2align 4
	.globl	arg
	.type	arg, @function
arg:
.LFB40:
	.cfi_startproc
	endbr64
	movapd	%xmm1, %xmm4
	movapd	%xmm0, %xmm1
	subsd	%xmm3, %xmm4
	subsd	%xmm2, %xmm1
	movapd	%xmm4, %xmm0
	jmp	atan2@PLT
	.cfi_endproc
.LFE40:
	.size	arg, .-arg
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%lf%lf"
	.text
	.p2align 4
	.globl	readpoint
	.type	readpoint, @function
readpoint:
.LFB41:
	.cfi_startproc
	endbr64
	movq	%rdi, %rsi
	leaq	8(%rdi), %rdx
	leaq	.LC0(%rip), %rdi
	xorl	%eax, %eax
	jmp	__isoc99_scanf@PLT
	.cfi_endproc
.LFE41:
	.size	readpoint, .-readpoint
	.section	.rodata.str1.1
.LC1:
	.string	"%.9lf %.9lf\n"
	.text
	.p2align 4
	.globl	printpoint
	.type	printpoint, @function
printpoint:
.LFB42:
	.cfi_startproc
	endbr64
	leaq	.LC1(%rip), %rsi
	movl	$1, %edi
	movl	$2, %eax
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE42:
	.size	printpoint, .-printpoint
	.section	.rodata.str1.1
.LC2:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB43:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%r12, %rdi
	leaq	.LC2(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$208, %rsp
	.cfi_def_cfa_offset 256
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	leaq	104(%rsp), %rdx
	leaq	96(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movq	%rbp, %rdi
	leaq	88(%rsp), %rsi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	leaq	120(%rsp), %rdx
	movq	%r12, %rdi
	xorl	%eax, %eax
	leaq	112(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movq	%rbp, %rdi
	leaq	92(%rsp), %rsi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movapd	96(%rsp), %xmm2
	movsd	112(%rsp), %xmm4
	movapd	%xmm2, %xmm6
	movapd	%xmm2, %xmm3
	movaps	%xmm2, (%rsp)
	movsd	120(%rsp), %xmm2
	unpckhpd	%xmm6, %xmm6
	movapd	%xmm3, %xmm0
	movsd	%xmm3, 56(%rsp)
	movapd	%xmm6, %xmm1
	subsd	%xmm4, %xmm0
	movsd	%xmm6, 32(%rsp)
	subsd	%xmm2, %xmm1
	movsd	%xmm4, 48(%rsp)
	movsd	%xmm2, 24(%rsp)
	call	hypot@PLT
	movsd	24(%rsp), %xmm2
	movsd	32(%rsp), %xmm5
	movsd	48(%rsp), %xmm4
	movsd	%xmm0, 16(%rsp)
	movapd	%xmm2, %xmm3
	subsd	%xmm5, %xmm3
	movapd	%xmm3, %xmm0
	movsd	56(%rsp), %xmm3
	subsd	%xmm3, %xmm4
	movapd	%xmm4, %xmm1
	call	atan2@PLT
	movl	88(%rsp), %ebx
	movl	92(%rsp), %ebp
	pxor	%xmm1, %xmm1
	movsd	%xmm0, 24(%rsp)
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%ebx, %xmm1
	addl	%ebx, %ebp
	movl	%ebx, %eax
	movl	%ebx, %r12d
	imull	%ebp, %eax
	subl	92(%rsp), %r12d
	imull	%r12d, %ebx
	cvtsi2sdl	%eax, %xmm0
	divsd	16(%rsp), %xmm0
	divsd	%xmm1, %xmm0
	movapd	%xmm1, %xmm6
	unpcklpd	%xmm6, %xmm6
	movsd	%xmm1, 56(%rsp)
	movaps	%xmm6, 32(%rsp)
	call	acos@PLT
	movsd	56(%rsp), %xmm1
	movsd	%xmm0, 48(%rsp)
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%ebx, %xmm0
	divsd	16(%rsp), %xmm0
	divsd	%xmm1, %xmm0
	call	acos@PLT
	movsd	16(%rsp), %xmm7
	movsd	%xmm0, 56(%rsp)
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%ebp, %xmm0
	comisd	%xmm0, %xmm7
	jbe	.L81
	movsd	48(%rsp), %xmm5
	addsd	24(%rsp), %xmm5
	leaq	72(%rsp), %r13
	movl	$1, %ebp
	leaq	64(%rsp), %r14
	movq	%r13, %rdi
	movq	%r14, %rsi
	movapd	%xmm5, %xmm0
	call	sincos@PLT
	movupd	64(%rsp), %xmm0
	mulpd	32(%rsp), %xmm0
	addpd	(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp)
.L9:
	movsd	24(%rsp), %xmm0
	subsd	48(%rsp), %xmm0
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	sincos@PLT
	movupd	64(%rsp), %xmm0
	movslq	%ebp, %rax
	addl	$1, %ebp
	mulpd	32(%rsp), %xmm0
	salq	$4, %rax
	movsd	16(%rsp), %xmm5
	addpd	(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp,%rax)
	movl	%r12d, %eax
	pxor	%xmm0, %xmm0
	negl	%eax
	cmovs	%r12d, %eax
	cvtsi2sdl	%eax, %xmm0
	comisd	%xmm0, %xmm5
	jbe	.L91
.L10:
	movsd	56(%rsp), %xmm0
	addsd	24(%rsp), %xmm0
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	sincos@PLT
	movupd	64(%rsp), %xmm0
	movslq	%ebp, %rax
	addl	$1, %ebp
	mulpd	32(%rsp), %xmm0
	salq	$4, %rax
	addpd	(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp,%rax)
.L11:
	movsd	24(%rsp), %xmm0
	subsd	56(%rsp), %xmm0
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	sincos@PLT
	movupd	64(%rsp), %xmm0
	movslq	%ebp, %rax
	addl	$1, %ebp
	mulpd	32(%rsp), %xmm0
	salq	$4, %rax
	addpd	(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp,%rax)
.L15:
	movl	%ebp, %eax
	subl	$1, %eax
	je	.L17
	movsd	128(%rsp), %xmm0
	movsd	144(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L92
	movsd	136(%rsp), %xmm1
.L32:
	movdqa	144(%rsp), %xmm4
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm4, 128(%rsp)
.L33:
	cmpl	$1, %eax
	je	.L17
	movsd	144(%rsp), %xmm0
	movsd	160(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L93
	movsd	152(%rsp), %xmm1
.L28:
	movdqa	160(%rsp), %xmm7
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm7, 144(%rsp)
.L29:
	cmpl	$3, %eax
	jne	.L17
	movsd	160(%rsp), %xmm0
	movsd	176(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L23
	ucomisd	%xmm1, %xmm0
	jp	.L17
	jne	.L17
	movsd	168(%rsp), %xmm1
	comisd	184(%rsp), %xmm1
	ja	.L27
	.p2align 4,,10
	.p2align 3
.L17:
	cmpl	$1, %ebp
	je	.L36
	leal	-2(%rbp), %edx
	testl	%edx, %edx
	jle	.L37
	movsd	128(%rsp), %xmm0
	movsd	144(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L94
	movsd	136(%rsp), %xmm1
.L47:
	movdqa	144(%rsp), %xmm6
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm6, 128(%rsp)
.L48:
	cmpl	$2, %edx
	jne	.L37
	movsd	144(%rsp), %xmm0
	movsd	160(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L95
	ucomisd	%xmm1, %xmm0
	jp	.L37
	jne	.L37
	movsd	152(%rsp), %xmm1
	comisd	168(%rsp), %xmm1
	ja	.L43
.L37:
	cmpl	$2, %ebp
	je	.L51
	cmpl	$3, %eax
	jne	.L51
	movsd	128(%rsp), %xmm0
	movsd	144(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L96
	ucomisd	%xmm1, %xmm0
	jp	.L51
	jne	.L51
	movsd	136(%rsp), %xmm1
	comisd	152(%rsp), %xmm1
	ja	.L55
.L51:
	xorl	%ebx, %ebx
	leaq	128(%rsp), %r14
	leaq	136(%rsp), %r13
	leaq	.LC1(%rip), %r12
	.p2align 4,,10
	.p2align 3
.L59:
	movq	%rbx, %rax
	movq	%r12, %rsi
	movl	$1, %edi
	addq	$1, %rbx
	salq	$4, %rax
	movsd	(%r14,%rax), %xmm0
	movsd	0(%r13,%rax), %xmm1
	movl	$2, %eax
	call	__printf_chk@PLT
	cmpl	%ebx, %ebp
	jg	.L59
.L12:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L97
	addq	$208, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L92:
	.cfi_restore_state
	ucomisd	%xmm1, %xmm0
	jp	.L33
	jne	.L33
	movsd	136(%rsp), %xmm1
	comisd	152(%rsp), %xmm1
	jbe	.L33
	jmp	.L32
.L91:
	jb	.L15
	jmp	.L11
.L81:
	jnb	.L61
	movl	%r12d, %eax
	pxor	%xmm0, %xmm0
	movsd	16(%rsp), %xmm6
	negl	%eax
	cmovs	%r12d, %eax
	cvtsi2sdl	%eax, %xmm0
	comisd	%xmm0, %xmm6
	ja	.L62
	jb	.L12
	xorl	%ebp, %ebp
	leaq	72(%rsp), %r13
	leaq	64(%rsp), %r14
	jmp	.L11
.L62:
	xorl	%ebp, %ebp
	leaq	72(%rsp), %r13
	leaq	64(%rsp), %r14
	jmp	.L10
.L94:
	ucomisd	%xmm1, %xmm0
	jp	.L48
	jne	.L48
	movsd	136(%rsp), %xmm1
	comisd	152(%rsp), %xmm1
	jbe	.L48
	jmp	.L47
.L93:
	ucomisd	%xmm1, %xmm0
	jp	.L29
	jne	.L29
	movsd	152(%rsp), %xmm1
	comisd	168(%rsp), %xmm1
	jbe	.L29
	jmp	.L28
.L96:
	movsd	136(%rsp), %xmm1
.L55:
	movdqa	144(%rsp), %xmm5
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm5, 128(%rsp)
	jmp	.L51
.L95:
	movsd	152(%rsp), %xmm1
.L43:
	movdqa	160(%rsp), %xmm7
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm7, 144(%rsp)
	jmp	.L37
.L23:
	movsd	168(%rsp), %xmm1
.L27:
	movdqa	176(%rsp), %xmm6
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 176(%rsp)
	movaps	%xmm6, 160(%rsp)
	jmp	.L17
.L36:
	movsd	136(%rsp), %xmm1
	movl	$1, %edi
	movl	$2, %eax
	movsd	128(%rsp), %xmm0
	leaq	.LC1(%rip), %rsi
	call	__printf_chk@PLT
	jmp	.L12
.L61:
	xorl	%ebp, %ebp
	leaq	72(%rsp), %r13
	leaq	64(%rsp), %r14
	jmp	.L9
.L97:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE43:
	.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	distPP
	.type	distPP, @function
distPP:
.LFB39:
	.cfi_startproc
	endbr64
	subsd	%xmm2, %xmm0
	subsd	%xmm3, %xmm1
	jmp	hypot@PLT
	.cfi_endproc
.LFE39:
	.size	distPP, .-distPP
	.p2align 4
	.globl	arg
	.type	arg, @function
arg:
.LFB40:
	.cfi_startproc
	endbr64
	movapd	%xmm1, %xmm4
	movapd	%xmm0, %xmm1
	subsd	%xmm3, %xmm4
	subsd	%xmm2, %xmm1
	movapd	%xmm4, %xmm0
	jmp	atan2@PLT
	.cfi_endproc
.LFE40:
	.size	arg, .-arg
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%lf%lf"
	.text
	.p2align 4
	.globl	readpoint
	.type	readpoint, @function
readpoint:
.LFB41:
	.cfi_startproc
	endbr64
	movq	%rdi, %rsi
	leaq	8(%rdi), %rdx
	leaq	.LC0(%rip), %rdi
	xorl	%eax, %eax
	jmp	__isoc99_scanf@PLT
	.cfi_endproc
.LFE41:
	.size	readpoint, .-readpoint
	.section	.rodata.str1.1
.LC1:
	.string	"%.9lf %.9lf\n"
	.text
	.p2align 4
	.globl	printpoint
	.type	printpoint, @function
printpoint:
.LFB42:
	.cfi_startproc
	endbr64
	leaq	.LC1(%rip), %rsi
	movl	$1, %edi
	movl	$2, %eax
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE42:
	.size	printpoint, .-printpoint
	.section	.rodata.str1.1
.LC2:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB43:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%r12, %rdi
	leaq	.LC2(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$208, %rsp
	.cfi_def_cfa_offset 256
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	leaq	104(%rsp), %rdx
	leaq	96(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movq	%rbp, %rdi
	leaq	88(%rsp), %rsi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	leaq	120(%rsp), %rdx
	movq	%r12, %rdi
	xorl	%eax, %eax
	leaq	112(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movq	%rbp, %rdi
	leaq	92(%rsp), %rsi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movapd	96(%rsp), %xmm2
	movsd	112(%rsp), %xmm4
	movapd	%xmm2, %xmm6
	movapd	%xmm2, %xmm3
	movaps	%xmm2, (%rsp)
	movsd	120(%rsp), %xmm2
	unpckhpd	%xmm6, %xmm6
	movapd	%xmm3, %xmm0
	movsd	%xmm3, 56(%rsp)
	movapd	%xmm6, %xmm1
	subsd	%xmm4, %xmm0
	movsd	%xmm6, 32(%rsp)
	subsd	%xmm2, %xmm1
	movsd	%xmm4, 48(%rsp)
	movsd	%xmm2, 24(%rsp)
	call	hypot@PLT
	movsd	24(%rsp), %xmm2
	movsd	32(%rsp), %xmm5
	movsd	48(%rsp), %xmm4
	movsd	%xmm0, 16(%rsp)
	movapd	%xmm2, %xmm3
	subsd	%xmm5, %xmm3
	movapd	%xmm3, %xmm0
	movsd	56(%rsp), %xmm3
	subsd	%xmm3, %xmm4
	movapd	%xmm4, %xmm1
	call	atan2@PLT
	movl	88(%rsp), %ebx
	movl	92(%rsp), %ebp
	pxor	%xmm1, %xmm1
	movsd	%xmm0, 24(%rsp)
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%ebx, %xmm1
	addl	%ebx, %ebp
	movl	%ebx, %eax
	movl	%ebx, %r12d
	imull	%ebp, %eax
	subl	92(%rsp), %r12d
	imull	%r12d, %ebx
	cvtsi2sdl	%eax, %xmm0
	divsd	16(%rsp), %xmm0
	divsd	%xmm1, %xmm0
	movapd	%xmm1, %xmm6
	unpcklpd	%xmm6, %xmm6
	movsd	%xmm1, 56(%rsp)
	movaps	%xmm6, 32(%rsp)
	call	acos@PLT
	movsd	56(%rsp), %xmm1
	movsd	%xmm0, 48(%rsp)
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%ebx, %xmm0
	divsd	16(%rsp), %xmm0
	divsd	%xmm1, %xmm0
	call	acos@PLT
	movsd	16(%rsp), %xmm7
	movsd	%xmm0, 56(%rsp)
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%ebp, %xmm0
	comisd	%xmm0, %xmm7
	jbe	.L81
	movsd	48(%rsp), %xmm5
	addsd	24(%rsp), %xmm5
	leaq	72(%rsp), %r13
	movl	$1, %ebp
	leaq	64(%rsp), %r14
	movq	%r13, %rdi
	movq	%r14, %rsi
	movapd	%xmm5, %xmm0
	call	sincos@PLT
	movupd	64(%rsp), %xmm0
	mulpd	32(%rsp), %xmm0
	addpd	(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp)
.L9:
	movsd	24(%rsp), %xmm0
	subsd	48(%rsp), %xmm0
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	sincos@PLT
	movupd	64(%rsp), %xmm0
	movslq	%ebp, %rax
	addl	$1, %ebp
	mulpd	32(%rsp), %xmm0
	salq	$4, %rax
	movsd	16(%rsp), %xmm5
	addpd	(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp,%rax)
	movl	%r12d, %eax
	pxor	%xmm0, %xmm0
	negl	%eax
	cmovs	%r12d, %eax
	cvtsi2sdl	%eax, %xmm0
	comisd	%xmm0, %xmm5
	jbe	.L91
.L10:
	movsd	56(%rsp), %xmm0
	addsd	24(%rsp), %xmm0
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	sincos@PLT
	movupd	64(%rsp), %xmm0
	movslq	%ebp, %rax
	addl	$1, %ebp
	mulpd	32(%rsp), %xmm0
	salq	$4, %rax
	addpd	(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp,%rax)
.L11:
	movsd	24(%rsp), %xmm0
	subsd	56(%rsp), %xmm0
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	sincos@PLT
	movupd	64(%rsp), %xmm0
	movslq	%ebp, %rax
	addl	$1, %ebp
	mulpd	32(%rsp), %xmm0
	salq	$4, %rax
	addpd	(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp,%rax)
.L15:
	movl	%ebp, %eax
	subl	$1, %eax
	je	.L17
	movsd	128(%rsp), %xmm0
	movsd	144(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L92
	movsd	136(%rsp), %xmm1
.L32:
	movdqa	144(%rsp), %xmm4
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm4, 128(%rsp)
.L33:
	cmpl	$1, %eax
	je	.L17
	movsd	144(%rsp), %xmm0
	movsd	160(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L93
	movsd	152(%rsp), %xmm1
.L28:
	movdqa	160(%rsp), %xmm7
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm7, 144(%rsp)
.L29:
	cmpl	$3, %eax
	jne	.L17
	movsd	160(%rsp), %xmm0
	movsd	176(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L23
	ucomisd	%xmm1, %xmm0
	jp	.L17
	jne	.L17
	movsd	168(%rsp), %xmm1
	comisd	184(%rsp), %xmm1
	ja	.L27
	.p2align 4,,10
	.p2align 3
.L17:
	cmpl	$1, %ebp
	je	.L36
	leal	-2(%rbp), %edx
	testl	%edx, %edx
	jle	.L37
	movsd	128(%rsp), %xmm0
	movsd	144(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L94
	movsd	136(%rsp), %xmm1
.L47:
	movdqa	144(%rsp), %xmm6
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm6, 128(%rsp)
.L48:
	cmpl	$2, %edx
	jne	.L37
	movsd	144(%rsp), %xmm0
	movsd	160(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L95
	ucomisd	%xmm1, %xmm0
	jp	.L37
	jne	.L37
	movsd	152(%rsp), %xmm1
	comisd	168(%rsp), %xmm1
	ja	.L43
.L37:
	cmpl	$2, %ebp
	je	.L51
	cmpl	$3, %eax
	jne	.L51
	movsd	128(%rsp), %xmm0
	movsd	144(%rsp), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L96
	ucomisd	%xmm1, %xmm0
	jp	.L51
	jne	.L51
	movsd	136(%rsp), %xmm1
	comisd	152(%rsp), %xmm1
	ja	.L55
.L51:
	xorl	%ebx, %ebx
	leaq	128(%rsp), %r14
	leaq	136(%rsp), %r13
	leaq	.LC1(%rip), %r12
	.p2align 4,,10
	.p2align 3
.L59:
	movq	%rbx, %rax
	movq	%r12, %rsi
	movl	$1, %edi
	addq	$1, %rbx
	salq	$4, %rax
	movsd	(%r14,%rax), %xmm0
	movsd	0(%r13,%rax), %xmm1
	movl	$2, %eax
	call	__printf_chk@PLT
	cmpl	%ebx, %ebp
	jg	.L59
.L12:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L97
	addq	$208, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L92:
	.cfi_restore_state
	ucomisd	%xmm1, %xmm0
	jp	.L33
	jne	.L33
	movsd	136(%rsp), %xmm1
	comisd	152(%rsp), %xmm1
	jbe	.L33
	jmp	.L32
.L91:
	jb	.L15
	jmp	.L11
.L81:
	jnb	.L61
	movl	%r12d, %eax
	pxor	%xmm0, %xmm0
	movsd	16(%rsp), %xmm6
	negl	%eax
	cmovs	%r12d, %eax
	cvtsi2sdl	%eax, %xmm0
	comisd	%xmm0, %xmm6
	ja	.L62
	jb	.L12
	xorl	%ebp, %ebp
	leaq	72(%rsp), %r13
	leaq	64(%rsp), %r14
	jmp	.L11
.L62:
	xorl	%ebp, %ebp
	leaq	72(%rsp), %r13
	leaq	64(%rsp), %r14
	jmp	.L10
.L94:
	ucomisd	%xmm1, %xmm0
	jp	.L48
	jne	.L48
	movsd	136(%rsp), %xmm1
	comisd	152(%rsp), %xmm1
	jbe	.L48
	jmp	.L47
.L93:
	ucomisd	%xmm1, %xmm0
	jp	.L29
	jne	.L29
	movsd	152(%rsp), %xmm1
	comisd	168(%rsp), %xmm1
	jbe	.L29
	jmp	.L28
.L96:
	movsd	136(%rsp), %xmm1
.L55:
	movdqa	144(%rsp), %xmm5
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm5, 128(%rsp)
	jmp	.L51
.L95:
	movsd	152(%rsp), %xmm1
.L43:
	movdqa	160(%rsp), %xmm7
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm7, 144(%rsp)
	jmp	.L37
.L23:
	movsd	168(%rsp), %xmm1
.L27:
	movdqa	176(%rsp), %xmm6
	unpcklpd	%xmm1, %xmm0
	movaps	%xmm0, 176(%rsp)
	movaps	%xmm6, 160(%rsp)
	jmp	.L17
.L36:
	movsd	136(%rsp), %xmm1
	movl	$1, %edi
	movl	$2, %eax
	movsd	128(%rsp), %xmm0
	leaq	.LC1(%rip), %rsi
	call	__printf_chk@PLT
	jmp	.L12
.L61:
	xorl	%ebp, %ebp
	leaq	72(%rsp), %r13
	leaq	64(%rsp), %r14
	jmp	.L9
.L97:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE43:
	.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 <stdlib.h>
#include <math.h>
#define min(p,q)((p)<(q)?(p):(q))
#define zahyoutype double
typedef struct Point{zahyoutype x,y;}P;
double distPP(P p,P q){return hypot(p.x-q.x,p.y-q.y);}
double arg(P p,P o){return atan2(p.y-o.y,p.x-o.x);}

void readpoint(P*p){zahyoutype x=1;scanf(x/2?"%lf%lf":"%ld%ld",&p->x,&p->y);}
void printpoint(P p){zahyoutype x=1;printf(x/2?"%.9lf %.9lf\n":"%ld %ld\n",p.x,p.y);}

int main(){
	P p1,p2;
	int r1,r2;
	readpoint(&p1);
	scanf("%d",&r1);
	readpoint(&p2);
	scanf("%d",&r2);
	double dist=distPP(p1,p2);
	double ar=arg(p2,p1);
	double s1=r1*(r1+r2)/dist;
	double s2=r1*(r1-r2)/dist;
	double theta1=acos(s1/r1);
	double theta2=acos(s2/r1);
	P ans[4];
	int cnt=0;
	if(    r1+r2  <dist)ans[cnt].x=p1.x+r1*cos(ar+theta1),ans[cnt].y=p1.y+r1*sin(ar+theta1),cnt++;
	if(    r1+r2 <=dist)ans[cnt].x=p1.x+r1*cos(ar-theta1),ans[cnt].y=p1.y+r1*sin(ar-theta1),cnt++;
	if(abs(r1-r2) <dist)ans[cnt].x=p1.x+r1*cos(ar+theta2),ans[cnt].y=p1.y+r1*sin(ar+theta2),cnt++;
	if(abs(r1-r2)<=dist)ans[cnt].x=p1.x+r1*cos(ar-theta2),ans[cnt].y=p1.y+r1*sin(ar-theta2),cnt++;
	for(int i=0;i<cnt;i++)for(int j=0;j<cnt-1-i;j++){
		if(ans[j].x>ans[j+1].x||ans[j].x==ans[j+1].x&&ans[j].y>ans[j+1].y){
			P temp=ans[j];ans[j]=ans[j+1];ans[j+1]=temp;
		}
	}
	for(int i=0;i<cnt;i++)printpoint(ans[i]);
}

0 2 1
4 2 2
 1 2 2
3 2 2
 0 0 2
1 0 2
 1 1 2
6 2 2
 0 2 1
1 2 2
 0 -1 2
1 0 2
 1 1 2
6 4 2
 0 -2 2
1 0 2
 1 1 2
6 6 2
 0 -4 2
1 0 2

-0.250000000 1.031754163
-0.250000000 2.968245837
0.750000000 1.338562172
0.750000000 2.661437828
 1.000000000 0.000000000
1.000000000 4.000000000
 0.000000000 -2.000000000
0.000000000 2.000000000
 0.607767730 2.961161351
1.392232270 -0.961161351
2.295209411 2.523952946
2.781713666 0.091431669
 -1.000000000 2.000000000
 -1.414213562 0.414213562
1.414213562 -2.414213562
 -0.028991511 2.714985851
1.427769291 2.953717849
2.028991511 -0.714985851
2.925171886 0.458046857
 -1.788854382 -1.105572809
1.788854382 -2.894427191
 -0.414213562 2.414213562
0.633809621 2.966190379
2.414213562 -0.414213562
2.966190379 0.633809621
 -1.940285000 -3.514928750
-0.000000000 -2.000000000
0.941176471 -2.235294118
1.940285000 -4.485071250

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 <stdlib.h>
#include <math.h>
#define min(p,q)((p)<(q)?(p):(q))
#define zahyoutype double
typedef struct Point{zahyoutype x,y;}P;
double distPP(P p,P q){return hypot(p.x-q.x,p.y-q.y);}
double arg(P p,P o){return atan2(p.y-o.y,p.x-o.x);}

void readpoint(P*p){zahyoutype x=1;scanf(x/2?"%lf%lf":"%ld%ld",&p->x,&p->y);}
void printpoint(P p){zahyoutype x=1;printf(x/2?"%.9lf %.9lf\n":"%ld %ld\n",p.x,p.y);}

int main(){
	P p1,p2;
	int r1,r2;
	readpoint(&p1);
	scanf("%d",&r1);
	readpoint(&p2);
	scanf("%d",&r2);
	double dist=distPP(p1,p2);
	double ar=arg(p2,p1);
	double s1=r1*(r1+r2)/dist;
	double s2=r1*(r1-r2)/dist;
	double theta1=acos(s1/r1);
	double theta2=acos(s2/r1);
	P ans[4];
	int cnt=0;
	if(    r1+r2  <dist)ans[cnt].x=p1.x+r1*cos(ar+theta1),ans[cnt].y=p1.y+r1*sin(ar+theta1),cnt++;
	if(    r1+r2 <=dist)ans[cnt].x=p1.x+r1*cos(ar-theta1),ans[cnt].y=p1.y+r1*sin(ar-theta1),cnt++;
	if(abs(r1-r2) <dist)ans[cnt].x=p1.x+r1*cos(ar+theta2),ans[cnt].y=p1.y+r1*sin(ar+theta2),cnt++;
	if(abs(r1-r2)<=dist)ans[cnt].x=p1.x+r1*cos(ar-theta2),ans[cnt].y=p1.y+r1*sin(ar-theta2),cnt++;
	for(int i=0;i<cnt;i++)for(int j=0;j<cnt-1-i;j++){
		if(ans[j].x>ans[j+1].x||ans[j].x==ans[j+1].x&&ans[j].y>ans[j+1].y){
			P temp=ans[j];ans[j]=ans[j+1];ans[j+1]=temp;
		}
	}
	for(int i=0;i<cnt;i++)printpoint(ans[i]);
}
```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	distPP
	.type	distPP, @function
distPP:
.LFB6:
	.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	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -16(%rbp)
	movq	%rdx, -8(%rbp)
	movapd	%xmm2, %xmm1
	movapd	%xmm3, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%xmm1, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	-8(%rbp), %xmm0
	movsd	-24(%rbp), %xmm1
	movapd	%xmm0, %xmm2
	subsd	%xmm1, %xmm2
	movsd	-16(%rbp), %xmm0
	movsd	-32(%rbp), %xmm1
	subsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movapd	%xmm2, %xmm1
	movq	%rax, %xmm0
	call	hypot@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	distPP, .-distPP
	.globl	arg
	.type	arg, @function
arg:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -16(%rbp)
	movq	%rdx, -8(%rbp)
	movapd	%xmm2, %xmm1
	movapd	%xmm3, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%xmm1, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	-16(%rbp), %xmm0
	movsd	-32(%rbp), %xmm1
	movapd	%xmm0, %xmm2
	subsd	%xmm1, %xmm2
	movsd	-8(%rbp), %xmm0
	movsd	-24(%rbp), %xmm1
	subsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movapd	%xmm2, %xmm1
	movq	%rax, %xmm0
	call	atan2@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	arg, .-arg
	.section	.rodata
.LC3:
	.string	"%lf%lf"
.LC4:
	.string	"%ld%ld"
	.text
	.globl	readpoint
	.type	readpoint, @function
readpoint:
.LFB8:
	.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	%rdi, -24(%rbp)
	movsd	.LC0(%rip), %xmm0
	movsd	%xmm0, -8(%rbp)
	movq	-24(%rbp), %rax
	leaq	8(%rax), %rdx
	movq	-24(%rbp), %rcx
	movsd	-8(%rbp), %xmm0
	movsd	.LC1(%rip), %xmm1
	divsd	%xmm1, %xmm0
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L9
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	je	.L6
.L9:
	leaq	.LC3(%rip), %rax
	jmp	.L8
.L6:
	leaq	.LC4(%rip), %rax
.L8:
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	readpoint, .-readpoint
	.section	.rodata
.LC5:
	.string	"%.9lf %.9lf\n"
.LC6:
	.string	"%ld %ld\n"
	.text
	.globl	printpoint
	.type	printpoint, @function
printpoint:
.LFB9:
	.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	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	.LC0(%rip), %xmm0
	movsd	%xmm0, -8(%rbp)
	movsd	-24(%rbp), %xmm2
	movq	-32(%rbp), %rdx
	movsd	-8(%rbp), %xmm0
	movsd	.LC1(%rip), %xmm1
	divsd	%xmm1, %xmm0
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L14
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	je	.L11
.L14:
	leaq	.LC5(%rip), %rax
	jmp	.L13
.L11:
	leaq	.LC6(%rip), %rax
.L13:
	movapd	%xmm2, %xmm1
	movq	%rdx, %xmm0
	movq	%rax, %rdi
	movl	$2, %eax
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	printpoint, .-printpoint
	.section	.rodata
.LC7:
	.string	"%d"
	.text
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$224, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	leaq	-128(%rbp), %rax
	movq	%rax, %rdi
	call	readpoint
	leaq	-200(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC7(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-112(%rbp), %rax
	movq	%rax, %rdi
	call	readpoint
	leaq	-196(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC7(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movsd	-112(%rbp), %xmm2
	movsd	-104(%rbp), %xmm0
	movq	-128(%rbp), %rax
	movsd	-120(%rbp), %xmm1
	movapd	%xmm0, %xmm3
	movq	%rax, %xmm0
	call	distPP
	movq	%xmm0, %rax
	movq	%rax, -176(%rbp)
	movsd	-128(%rbp), %xmm2
	movsd	-120(%rbp), %xmm0
	movq	-112(%rbp), %rax
	movsd	-104(%rbp), %xmm1
	movapd	%xmm0, %xmm3
	movq	%rax, %xmm0
	call	arg
	movq	%xmm0, %rax
	movq	%rax, -168(%rbp)
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%eax, %edx
	movl	-200(%rbp), %eax
	imull	%edx, %eax
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%eax, %xmm0
	divsd	-176(%rbp), %xmm0
	movsd	%xmm0, -160(%rbp)
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %ecx
	subl	%ecx, %eax
	movl	%eax, %edx
	movl	-200(%rbp), %eax
	imull	%edx, %eax
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%eax, %xmm0
	divsd	-176(%rbp), %xmm0
	movsd	%xmm0, -152(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-160(%rbp), %xmm0
	divsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	acos@PLT
	movq	%xmm0, %rax
	movq	%rax, -144(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-152(%rbp), %xmm0
	divsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	acos@PLT
	movq	%xmm0, %rax
	movq	%rax, -136(%rbp)
	movl	$0, -192(%rbp)
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jbe	.L16
	movsd	-128(%rbp), %xmm4
	movsd	%xmm4, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm5, %xmm5
	cvtsi2sdl	%eax, %xmm5
	movsd	%xmm5, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm6
	movsd	%xmm6, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm7, %xmm7
	cvtsi2sdl	%eax, %xmm7
	movsd	%xmm7, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L16:
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jb	.L18
	movsd	-128(%rbp), %xmm3
	movsd	%xmm3, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm4, %xmm4
	cvtsi2sdl	%eax, %xmm4
	movsd	%xmm4, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm5
	movsd	%xmm5, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm6, %xmm6
	cvtsi2sdl	%eax, %xmm6
	movsd	%xmm6, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L18:
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %edx
	subl	%edx, %eax
	movl	%eax, %edx
	negl	%edx
	cmovns	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jbe	.L20
	movsd	-128(%rbp), %xmm7
	movsd	%xmm7, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm2, %xmm2
	cvtsi2sdl	%eax, %xmm2
	movsd	%xmm2, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm3
	movsd	%xmm3, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm4, %xmm4
	cvtsi2sdl	%eax, %xmm4
	movsd	%xmm4, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L20:
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %edx
	subl	%edx, %eax
	movl	%eax, %edx
	negl	%edx
	cmovns	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jb	.L22
	movsd	-128(%rbp), %xmm5
	movsd	%xmm5, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm6, %xmm6
	cvtsi2sdl	%eax, %xmm6
	movsd	%xmm6, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm7
	movsd	%xmm7, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm2, %xmm2
	cvtsi2sdl	%eax, %xmm2
	movsd	%xmm2, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L22:
	movl	$0, -188(%rbp)
	jmp	.L24
.L31:
	movl	$0, -184(%rbp)
	jmp	.L25
.L30:
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L26
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L27
	ucomisd	%xmm1, %xmm0
	jne	.L27
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	(%rax), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L27
.L26:
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	8(%rax), %rdx
	movq	(%rax), %rax
	movq	%rax, -96(%rbp)
	movq	%rdx, -88(%rbp)
	movl	-184(%rbp), %eax
	leal	1(%rax), %edx
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	leaq	-80(%rax), %rcx
	movslq	%edx, %rax
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	8(%rax), %rdx
	movq	(%rax), %rax
	movq	%rax, (%rcx)
	movq	%rdx, 8(%rcx)
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	leaq	-80(%rax), %rcx
	movq	-96(%rbp), %rax
	movq	-88(%rbp), %rdx
	movq	%rax, (%rcx)
	movq	%rdx, 8(%rcx)
.L27:
	addl	$1, -184(%rbp)
.L25:
	movl	-192(%rbp), %eax
	subl	$1, %eax
	subl	-188(%rbp), %eax
	cmpl	%eax, -184(%rbp)
	jl	.L30
	addl	$1, -188(%rbp)
.L24:
	movl	-188(%rbp), %eax
	cmpl	-192(%rbp), %eax
	jl	.L31
	movl	$0, -180(%rbp)
	jmp	.L32
.L33:
	movl	-180(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	(%rax), %rdx
	movsd	8(%rax), %xmm1
	movq	%rdx, %xmm0
	call	printpoint
	addl	$1, -180(%rbp)
.L32:
	movl	-180(%rbp), %eax
	cmpl	-192(%rbp), %eax
	jl	.L33
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC0:
	.long	0
	.long	1072693248
	.align 8
.LC1:
	.long	0
	.long	1073741824
	.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	distPP
	.type	distPP, @function
distPP:
.LFB6:
	.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	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -16(%rbp)
	movq	%rdx, -8(%rbp)
	movapd	%xmm2, %xmm1
	movapd	%xmm3, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%xmm1, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	-8(%rbp), %xmm0
	movsd	-24(%rbp), %xmm1
	movapd	%xmm0, %xmm2
	subsd	%xmm1, %xmm2
	movsd	-16(%rbp), %xmm0
	movsd	-32(%rbp), %xmm1
	subsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movapd	%xmm2, %xmm1
	movq	%rax, %xmm0
	call	hypot@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	distPP, .-distPP
	.globl	arg
	.type	arg, @function
arg:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -16(%rbp)
	movq	%rdx, -8(%rbp)
	movapd	%xmm2, %xmm1
	movapd	%xmm3, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%xmm1, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	-16(%rbp), %xmm0
	movsd	-32(%rbp), %xmm1
	movapd	%xmm0, %xmm2
	subsd	%xmm1, %xmm2
	movsd	-8(%rbp), %xmm0
	movsd	-24(%rbp), %xmm1
	subsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movapd	%xmm2, %xmm1
	movq	%rax, %xmm0
	call	atan2@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	arg, .-arg
	.section	.rodata
.LC3:
	.string	"%lf%lf"
.LC4:
	.string	"%ld%ld"
	.text
	.globl	readpoint
	.type	readpoint, @function
readpoint:
.LFB8:
	.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	%rdi, -24(%rbp)
	movsd	.LC0(%rip), %xmm0
	movsd	%xmm0, -8(%rbp)
	movq	-24(%rbp), %rax
	leaq	8(%rax), %rdx
	movq	-24(%rbp), %rcx
	movsd	-8(%rbp), %xmm0
	movsd	.LC1(%rip), %xmm1
	divsd	%xmm1, %xmm0
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L9
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	je	.L6
.L9:
	leaq	.LC3(%rip), %rax
	jmp	.L8
.L6:
	leaq	.LC4(%rip), %rax
.L8:
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	readpoint, .-readpoint
	.section	.rodata
.LC5:
	.string	"%.9lf %.9lf\n"
.LC6:
	.string	"%ld %ld\n"
	.text
	.globl	printpoint
	.type	printpoint, @function
printpoint:
.LFB9:
	.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	%xmm0, %rcx
	movapd	%xmm1, %xmm0
	movl	$0, %eax
	movl	$0, %edx
	movq	%rcx, %rax
	movq	%xmm0, %rdx
	movq	%rax, -32(%rbp)
	movq	%rdx, -24(%rbp)
	movsd	.LC0(%rip), %xmm0
	movsd	%xmm0, -8(%rbp)
	movsd	-24(%rbp), %xmm2
	movq	-32(%rbp), %rdx
	movsd	-8(%rbp), %xmm0
	movsd	.LC1(%rip), %xmm1
	divsd	%xmm1, %xmm0
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L14
	pxor	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	je	.L11
.L14:
	leaq	.LC5(%rip), %rax
	jmp	.L13
.L11:
	leaq	.LC6(%rip), %rax
.L13:
	movapd	%xmm2, %xmm1
	movq	%rdx, %xmm0
	movq	%rax, %rdi
	movl	$2, %eax
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	printpoint, .-printpoint
	.section	.rodata
.LC7:
	.string	"%d"
	.text
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$224, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	leaq	-128(%rbp), %rax
	movq	%rax, %rdi
	call	readpoint
	leaq	-200(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC7(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	leaq	-112(%rbp), %rax
	movq	%rax, %rdi
	call	readpoint
	leaq	-196(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC7(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movsd	-112(%rbp), %xmm2
	movsd	-104(%rbp), %xmm0
	movq	-128(%rbp), %rax
	movsd	-120(%rbp), %xmm1
	movapd	%xmm0, %xmm3
	movq	%rax, %xmm0
	call	distPP
	movq	%xmm0, %rax
	movq	%rax, -176(%rbp)
	movsd	-128(%rbp), %xmm2
	movsd	-120(%rbp), %xmm0
	movq	-112(%rbp), %rax
	movsd	-104(%rbp), %xmm1
	movapd	%xmm0, %xmm3
	movq	%rax, %xmm0
	call	arg
	movq	%xmm0, %rax
	movq	%rax, -168(%rbp)
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%eax, %edx
	movl	-200(%rbp), %eax
	imull	%edx, %eax
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%eax, %xmm0
	divsd	-176(%rbp), %xmm0
	movsd	%xmm0, -160(%rbp)
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %ecx
	subl	%ecx, %eax
	movl	%eax, %edx
	movl	-200(%rbp), %eax
	imull	%edx, %eax
	pxor	%xmm0, %xmm0
	cvtsi2sdl	%eax, %xmm0
	divsd	-176(%rbp), %xmm0
	movsd	%xmm0, -152(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-160(%rbp), %xmm0
	divsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	acos@PLT
	movq	%xmm0, %rax
	movq	%rax, -144(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-152(%rbp), %xmm0
	divsd	%xmm1, %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	acos@PLT
	movq	%xmm0, %rax
	movq	%rax, -136(%rbp)
	movl	$0, -192(%rbp)
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jbe	.L16
	movsd	-128(%rbp), %xmm4
	movsd	%xmm4, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm5, %xmm5
	cvtsi2sdl	%eax, %xmm5
	movsd	%xmm5, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm6
	movsd	%xmm6, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm7, %xmm7
	cvtsi2sdl	%eax, %xmm7
	movsd	%xmm7, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L16:
	movl	-200(%rbp), %edx
	movl	-196(%rbp), %eax
	addl	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jb	.L18
	movsd	-128(%rbp), %xmm3
	movsd	%xmm3, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm4, %xmm4
	cvtsi2sdl	%eax, %xmm4
	movsd	%xmm4, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm5
	movsd	%xmm5, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm6, %xmm6
	cvtsi2sdl	%eax, %xmm6
	movsd	%xmm6, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-144(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L18:
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %edx
	subl	%edx, %eax
	movl	%eax, %edx
	negl	%edx
	cmovns	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jbe	.L20
	movsd	-128(%rbp), %xmm7
	movsd	%xmm7, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm2, %xmm2
	cvtsi2sdl	%eax, %xmm2
	movsd	%xmm2, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm3
	movsd	%xmm3, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm4, %xmm4
	cvtsi2sdl	%eax, %xmm4
	movsd	%xmm4, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	addsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L20:
	movl	-200(%rbp), %eax
	movl	-196(%rbp), %edx
	subl	%edx, %eax
	movl	%eax, %edx
	negl	%edx
	cmovns	%edx, %eax
	pxor	%xmm1, %xmm1
	cvtsi2sdl	%eax, %xmm1
	movsd	-176(%rbp), %xmm0
	comisd	%xmm1, %xmm0
	jb	.L22
	movsd	-128(%rbp), %xmm5
	movsd	%xmm5, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm6, %xmm6
	cvtsi2sdl	%eax, %xmm6
	movsd	%xmm6, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	cos@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	%xmm0, (%rax)
	movsd	-120(%rbp), %xmm7
	movsd	%xmm7, -216(%rbp)
	movl	-200(%rbp), %eax
	pxor	%xmm2, %xmm2
	cvtsi2sdl	%eax, %xmm2
	movsd	%xmm2, -224(%rbp)
	movsd	-168(%rbp), %xmm0
	subsd	-136(%rbp), %xmm0
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	sin@PLT
	mulsd	-224(%rbp), %xmm0
	addsd	-216(%rbp), %xmm0
	movl	-192(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	%xmm0, (%rax)
	addl	$1, -192(%rbp)
.L22:
	movl	$0, -188(%rbp)
	jmp	.L24
.L31:
	movl	$0, -184(%rbp)
	jmp	.L25
.L30:
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm1
	comisd	%xmm1, %xmm0
	ja	.L26
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movsd	(%rax), %xmm1
	ucomisd	%xmm1, %xmm0
	jp	.L27
	ucomisd	%xmm1, %xmm0
	jne	.L27
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	(%rax), %xmm0
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$72, %rax
	movsd	(%rax), %xmm1
	comisd	%xmm1, %xmm0
	jbe	.L27
.L26:
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	8(%rax), %rdx
	movq	(%rax), %rax
	movq	%rax, -96(%rbp)
	movq	%rdx, -88(%rbp)
	movl	-184(%rbp), %eax
	leal	1(%rax), %edx
	movl	-184(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	leaq	-80(%rax), %rcx
	movslq	%edx, %rax
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	8(%rax), %rdx
	movq	(%rax), %rax
	movq	%rax, (%rcx)
	movq	%rdx, 8(%rcx)
	movl	-184(%rbp), %eax
	addl	$1, %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	leaq	-80(%rax), %rcx
	movq	-96(%rbp), %rax
	movq	-88(%rbp), %rdx
	movq	%rax, (%rcx)
	movq	%rdx, 8(%rcx)
.L27:
	addl	$1, -184(%rbp)
.L25:
	movl	-192(%rbp), %eax
	subl	$1, %eax
	subl	-188(%rbp), %eax
	cmpl	%eax, -184(%rbp)
	jl	.L30
	addl	$1, -188(%rbp)
.L24:
	movl	-188(%rbp), %eax
	cmpl	-192(%rbp), %eax
	jl	.L31
	movl	$0, -180(%rbp)
	jmp	.L32
.L33:
	movl	-180(%rbp), %eax
	cltq
	salq	$4, %rax
	addq	%rbp, %rax
	subq	$80, %rax
	movq	(%rax), %rdx
	movsd	8(%rax), %xmm1
	movq	%rdx, %xmm0
	call	printpoint
	addl	$1, -180(%rbp)
.L32:
	movl	-180(%rbp), %eax
	cmpl	-192(%rbp), %eax
	jl	.L33
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC0:
	.long	0
	.long	1072693248
	.align 8
.LC1:
	.long	0
	.long	1073741824
	.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:
