// File: dannycalegari[P]circle_pack/./Layout_routine.cc
// Function: Packing::change_geometry(char)
void Packing::change_geometry(char new_geometry){
	Point Pcent,Pin,Pout,ORIGIN,Q;
	double d,theta;
	double R;
	int i;
	if(verbose){
		cout << "changing geometry from " << geometry << " to " << new_geometry << "\n";
	};
	ORIGIN.x=0.0;
	ORIGIN.y=0.0;
	ORIGIN.z=1.0;
	if(new_geometry=='E' && geometry=='H'){
		for(i=0;i<(int) adj.size();i++){	// for each point
			if(i==INFV){	// special case
				center[i]=ORIGIN;
				rad[i]=-1.0;
			} else {
				Pcent=center[i];	// hyperbolic center
				d=hyp_dist(Pcent);		// hyperbolic distance to 0
				theta=hyp_ang(Pcent);	// hyperbolic angle from 0
				R=rad[i];		// hyperbolic radius
				Pin=(ROT(theta)*HTR(d-R))(ORIGIN);
				Pin=hyperboloid_to_Poincare(Pin);
				Pout=(ROT(theta)*HTR(d+R))(ORIGIN);
				Pout=hyperboloid_to_Poincare(Pout);
				Pcent=midpoint(Pin,Pout);
				R=Euc_dist(Pin,Pout)/2.0;
				center[i]=Pcent;	// Euclidean center
				rad[i]=R;			// Euclidean radius
			};
		};
		geometry='E';
	} else if(new_geometry=='S' && geometry=='H'){
		for(i=0;i<(int) adj.size();i++){	// for each point
			if(i==INFV){	// special case
				center[i]=ORIGIN;
				center[i].z=-1.0;	// actually, we want center at (0,0,-1), i.e. infinity
				rad[i]=PI/2.0;
			} else {
				Pcent=center[i];	// hyperbolic center
				d=hyp_dist(Pcent);		// hyperbolic distance to 0
				theta=hyp_ang(Pcent);	// hyperbolic angle from 0
				R=rad[i];		// hyperbolic radius
				Pin=(ROT(theta)*HTR(d-R))(ORIGIN);
				Pin=hyperboloid_to_sphere(Pin);
				Pout=(ROT(theta)*HTR(d+R))(ORIGIN);
				Pout=hyperboloid_to_sphere(Pout);
				Pcent=midpoint(Pin,Pout);
				Pcent=Pcent/norm(Pcent);
				R=sph_dist(Pin,Pout)/2.0;
				center[i]=Pcent;	// Spherical center
				rad[i]=R;			// Spherical radius
			};
		};
		geometry='S';	
	} else if(new_geometry=='S' && geometry=='E'){
		for(i=0;i<(int) adj.size();i++){	// for each point
			Pcent=center[i];	// Euclidean center
			R=fabs(rad[i]);		// Euclidean radius
			theta=Euc_ang(Pcent);	// Euclidean angle from origin
			Q.x=cos(theta)*R;
			Q.y=sin(theta)*R;
			Q.z=0.0;
			Pin=Pcent-Q;
			Pin=Euclidean_to_sphere(Pin);
			Pout=Pcent+Q;
			Pout=Euclidean_to_sphere(Pout);
			Pcent=midpoint(Pin,Pout);	// new Pcent
			if(norm(Pcent)==0.0){
				Pcent=ORIGIN;
			} else {
				Pcent=Pcent/norm(Pcent);
			};
			R=sph_dist(Pin,Pout)/2.0;
			center[i]=Pcent;	// Spherical center
			rad[i]=R;			// Spherical radius
		};
		geometry='S';	
	};
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x780, %rsp            # imm = 0x780
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x718(%rbp)
testb $0x1, 0xb8(%rax)
je 0x6959
movq 0x116c0(%rip), %rdi     # 0x17fd0
leaq 0xaa82(%rip), %rsi      # 0x11399
callq 0x21f0
movq %rax, %rdi
movq -0x718(%rbp), %rax
movsbl 0x60(%rax), %esi
callq 0x2240
movq %rax, %rdi
leaq 0xaa78(%rip), %rsi      # 0x113b1
callq 0x21f0
movq %rax, %rdi
movsbl -0x9(%rbp), %esi
callq 0x2240
movq %rax, %rdi
leaq 0xada5(%rip), %rsi      # 0x116f9
callq 0x21f0
xorps %xmm0, %xmm0
movsd %xmm0, -0x80(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0xa69f(%rip), %xmm0     # 0x11010
movsd %xmm0, -0x70(%rbp)
movsbl -0x9(%rbp), %eax
cmpl $0x45, %eax
jne 0x7002
movq -0x718(%rbp), %rax
movsbl 0x60(%rax), %eax
cmpl $0x48, %eax
jne 0x7002
movl $0x0, -0xb4(%rbp)
movq -0x718(%rbp), %rdi
movl -0xb4(%rbp), %eax
movl %eax, -0x71c(%rbp)
callq 0xa520
movq %rax, %rcx
movl -0x71c(%rbp), %eax
cmpl %ecx, %eax
jge 0x6ff2
movq -0x718(%rbp), %rcx
movl -0xb4(%rbp), %eax
cmpl 0xbc(%rcx), %eax
jne 0x6a38
movq -0x718(%rbp), %rdi
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq -0x718(%rbp), %rdi
movq -0x80(%rbp), %rcx
movq %rcx, (%rax)
movq -0x78(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x70(%rbp), %rcx
movq %rcx, 0x10(%rax)
addq $0x18, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa270
movsd 0xa5f1(%rip), %xmm0     # 0x11020
movsd %xmm0, (%rax)
jmp 0x6fdc
movq -0x718(%rbp), %rdi
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq 0x10(%rax), %rcx
movq %rcx, -0x20(%rbp)
movups (%rax), %xmm0
movaps %xmm0, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xc0(%rbp)
movaps -0x30(%rbp), %xmm0
movaps %xmm0, -0xd0(%rbp)
movq -0xc0(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0xd0(%rbp), %xmm0
movups %xmm0, (%rax)
callq 0x3590
movsd %xmm0, -0xa0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xe0(%rbp)
movaps -0x30(%rbp), %xmm0
movaps %xmm0, -0xf0(%rbp)
movq -0xe0(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0xf0(%rbp), %xmm0
movups %xmm0, (%rax)
callq 0x35e0
movq -0x718(%rbp), %rdi
movsd %xmm0, -0xa8(%rbp)
addq $0x18, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa270
movsd (%rax), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0xa8(%rbp), %xmm0
leaq -0x138(%rbp), %rdi
callq 0x2980
movsd -0xa0(%rbp), %xmm0
movsd -0xb0(%rbp), %xmm1
subsd %xmm1, %xmm0
leaq -0x150(%rbp), %rdi
callq 0x2fe0
jmp 0x6b30
leaq -0x120(%rbp), %rdi
leaq -0x138(%rbp), %rsi
leaq -0x150(%rbp), %rdx
callq 0xa9f0
jmp 0x6b4c
movq -0x70(%rbp), %rax
movq %rax, -0x170(%rbp)
movups -0x80(%rbp), %xmm0
movaps %xmm0, -0x180(%rbp)
movq -0x170(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0x180(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x108(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0xa750
jmp 0x6b8f
movq -0xf8(%rbp), %rax
movq %rax, -0x40(%rbp)
movups -0x108(%rbp), %xmm0
movaps %xmm0, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
callq 0xa410
leaq -0x150(%rbp), %rdi
callq 0xa410
leaq -0x138(%rbp), %rdi
callq 0xa410
movq -0x40(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movaps -0x50(%rbp), %xmm0
movaps %xmm0, -0x1b0(%rbp)
movq -0x1a0(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0x1b0(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x198(%rbp), %rdi
callq 0x3900
movq -0x188(%rbp), %rax
movq %rax, -0x40(%rbp)
movups -0x198(%rbp), %xmm0
movaps %xmm0, -0x50(%rbp)
movsd -0xa8(%rbp), %xmm0
leaq -0x1f8(%rbp), %rdi
callq 0x2980
movsd -0xa0(%rbp), %xmm0
movsd -0xb0(%rbp), %xmm1
addsd %xmm1, %xmm0
leaq -0x210(%rbp), %rdi
callq 0x2fe0
jmp 0x6c4f
leaq -0x1e0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
leaq -0x210(%rbp), %rdx
callq 0xa9f0
jmp 0x6c6b
movq -0x70(%rbp), %rax
movq %rax, -0x220(%rbp)
movups -0x80(%rbp), %xmm0
movaps %xmm0, -0x230(%rbp)
movq -0x220(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0x230(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x1c8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0xa750
jmp 0x6cae
movq -0x1c8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x1c0(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x1b8(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0xa410
leaq -0x210(%rbp), %rdi
callq 0xa410
leaq -0x1f8(%rbp), %rdi
callq 0xa410
movq -0x68(%rbp), %rax
movq %rax, -0x260(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x258(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0x248(%rbp), %rdi
leaq -0x260(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3900
movq -0x248(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x240(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x238(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x290(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x278(%rbp), %rdi
leaq -0x290(%rbp), %rcx
leaq -0x2a8(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x25e0
movq -0x278(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x270(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x268(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x2b0(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x2d8(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x2c8(%rbp)
leaq -0x2c0(%rbp), %rcx
leaq -0x2d8(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x38b0
movq -0x718(%rbp), %rdi
movsd 0xa160(%rip), %xmm1     # 0x11008
divsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq -0x718(%rbp), %rdi
movq -0x30(%rbp), %rcx
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x10(%rax)
movsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0x728(%rbp)
addq $0x18, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa270
movsd -0x728(%rbp), %xmm0
movsd %xmm0, (%rax)
jmp 0x6fdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x6f68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x6f5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0xa410
leaq -0x150(%rbp), %rdi
callq 0xa410
leaq -0x138(%rbp), %rdi
callq 0xa410
jmp 0x7dff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x6fcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x6fbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0xa410
leaq -0x210(%rbp), %rdi
callq 0xa410
leaq -0x1f8(%rbp), %rdi
callq 0xa410
jmp 0x7dff
jmp 0x6fde
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0x69a1
movq -0x718(%rbp), %rax
movb $0x45, 0x60(%rax)
jmp 0x7df6
movsbl -0x9(%rbp), %eax
cmpl $0x53, %eax
jne 0x776d
movq -0x718(%rbp), %rax
movsbl 0x60(%rax), %eax
cmpl $0x48, %eax
jne 0x776d
movl $0x0, -0xb4(%rbp)
movq -0x718(%rbp), %rdi
movl -0xb4(%rbp), %eax
movl %eax, -0x72c(%rbp)
callq 0xa520
movq %rax, %rcx
movl -0x72c(%rbp), %eax
cmpl %ecx, %eax
jge 0x775d
movq -0x718(%rbp), %rcx
movl -0xb4(%rbp), %eax
cmpl 0xbc(%rcx), %eax
jne 0x70ef
movq -0x718(%rbp), %rdi
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq -0x718(%rbp), %rdi
movq -0x80(%rbp), %rcx
movq %rcx, (%rax)
movq -0x78(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x70(%rbp), %rcx
movq %rcx, 0x10(%rax)
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq -0x718(%rbp), %rdi
movsd 0x9f57(%rip), %xmm0     # 0x11020
movsd %xmm0, 0x10(%rax)
addq $0x18, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa270
movsd 0x9f5a(%rip), %xmm0     # 0x11040
movsd %xmm0, (%rax)
jmp 0x7747
movq -0x718(%rbp), %rdi
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq 0x10(%rax), %rcx
movq %rcx, -0x20(%rbp)
movups (%rax), %xmm0
movaps %xmm0, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x2e0(%rbp)
movaps -0x30(%rbp), %xmm0
movaps %xmm0, -0x2f0(%rbp)
movq -0x2e0(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0x2f0(%rbp), %xmm0
movups %xmm0, (%rax)
callq 0x3590
movsd %xmm0, -0xa0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x300(%rbp)
movaps -0x30(%rbp), %xmm0
movaps %xmm0, -0x310(%rbp)
movq -0x300(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0x310(%rbp), %xmm0
movups %xmm0, (%rax)
callq 0x35e0
movq -0x718(%rbp), %rdi
movsd %xmm0, -0xa8(%rbp)
addq $0x18, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa270
movsd (%rax), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0xa8(%rbp), %xmm0
leaq -0x358(%rbp), %rdi
callq 0x2980
movsd -0xa0(%rbp), %xmm0
movsd -0xb0(%rbp), %xmm1
subsd %xmm1, %xmm0
leaq -0x370(%rbp), %rdi
callq 0x2fe0
jmp 0x71e7
leaq -0x340(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x370(%rbp), %rdx
callq 0xa9f0
jmp 0x7203
movq -0x70(%rbp), %rax
movq %rax, -0x380(%rbp)
movups -0x80(%rbp), %xmm0
movaps %xmm0, -0x390(%rbp)
movq -0x380(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0x390(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x328(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0xa750
jmp 0x7246
movq -0x318(%rbp), %rax
movq %rax, -0x40(%rbp)
movups -0x328(%rbp), %xmm0
movaps %xmm0, -0x50(%rbp)
leaq -0x340(%rbp), %rdi
callq 0xa410
leaq -0x370(%rbp), %rdi
callq 0xa410
leaq -0x358(%rbp), %rdi
callq 0xa410
movq -0x40(%rbp), %rax
movq %rax, -0x3b0(%rbp)
movaps -0x50(%rbp), %xmm0
movaps %xmm0, -0x3c0(%rbp)
movq -0x3b0(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0x3c0(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x3a8(%rbp), %rdi
callq 0x3a70
movq -0x398(%rbp), %rax
movq %rax, -0x40(%rbp)
movups -0x3a8(%rbp), %xmm0
movaps %xmm0, -0x50(%rbp)
movsd -0xa8(%rbp), %xmm0
leaq -0x408(%rbp), %rdi
callq 0x2980
movsd -0xa0(%rbp), %xmm0
movsd -0xb0(%rbp), %xmm1
addsd %xmm1, %xmm0
leaq -0x420(%rbp), %rdi
callq 0x2fe0
jmp 0x7306
leaq -0x3f0(%rbp), %rdi
leaq -0x408(%rbp), %rsi
leaq -0x420(%rbp), %rdx
callq 0xa9f0
jmp 0x7322
movq -0x70(%rbp), %rax
movq %rax, -0x430(%rbp)
movups -0x80(%rbp), %xmm0
movaps %xmm0, -0x440(%rbp)
movq -0x430(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movaps -0x440(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x3d8(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0xa750
jmp 0x7365
movq -0x3d8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x3d0(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x3c8(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0xa410
leaq -0x420(%rbp), %rdi
callq 0xa410
leaq -0x408(%rbp), %rdi
callq 0xa410
movq -0x68(%rbp), %rax
movq %rax, -0x470(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x468(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x460(%rbp)
leaq -0x458(%rbp), %rdi
leaq -0x470(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3a70
movq -0x458(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x450(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x448(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x4a0(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x498(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x490(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x4b8(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x4b0(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x4a8(%rbp)
leaq -0x488(%rbp), %rdi
leaq -0x4a0(%rbp), %rcx
leaq -0x4b8(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x25e0
movq -0x488(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x480(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x478(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x4e8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x4e0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x4d8(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x500(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x4f8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x4f0(%rbp)
leaq -0x500(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x2640
leaq -0x4d0(%rbp), %rdi
leaq -0x4e8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x26c0
movq -0x4d0(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x4c8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x4c0(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x518(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x510(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x508(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x530(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x528(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x520(%rbp)
leaq -0x518(%rbp), %rcx
leaq -0x530(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x37b0
movq -0x718(%rbp), %rdi
movsd 0x99f5(%rip), %xmm1     # 0x11008
divsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq -0x718(%rbp), %rdi
movq -0x30(%rbp), %rcx
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x10(%rax)
movsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0x738(%rbp)
addq $0x18, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa270
movsd -0x738(%rbp), %xmm0
movsd %xmm0, (%rax)
jmp 0x7747
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x76d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x76c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0x340(%rbp), %rdi
callq 0xa410
leaq -0x370(%rbp), %rdi
callq 0xa410
leaq -0x358(%rbp), %rdi
callq 0xa410
jmp 0x7dff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x7736
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x772a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0xa410
leaq -0x420(%rbp), %rdi
callq 0xa410
leaq -0x408(%rbp), %rdi
callq 0xa410
jmp 0x7dff
jmp 0x7749
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0x702d
movq -0x718(%rbp), %rax
movb $0x53, 0x60(%rax)
jmp 0x7df4
movsbl -0x9(%rbp), %eax
cmpl $0x53, %eax
jne 0x7df2
movq -0x718(%rbp), %rax
movsbl 0x60(%rax), %eax
cmpl $0x45, %eax
jne 0x7df2
movl $0x0, -0xb4(%rbp)
movq -0x718(%rbp), %rdi
movl -0xb4(%rbp), %eax
movl %eax, -0x73c(%rbp)
callq 0xa520
movq %rax, %rcx
movl -0x73c(%rbp), %eax
cmpl %ecx, %eax
jge 0x7de7
movq -0x718(%rbp), %rdi
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq -0x718(%rbp), %rdi
movq (%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
addq $0x18, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa270
movsd (%rax), %xmm0
movaps 0x98bc(%rip), %xmm1     # 0x110d0
pand %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x548(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x540(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x538(%rbp)
leaq -0x548(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3670
movsd %xmm0, -0xa8(%rbp)
movsd -0xa8(%rbp), %xmm0
callq 0x23f0
mulsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0xa8(%rbp), %xmm0
callq 0x2060
mulsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x88(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x578(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x570(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x568(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x590(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x588(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x580(%rbp)
leaq -0x560(%rbp), %rdi
leaq -0x578(%rbp), %rcx
leaq -0x590(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x2740
movq -0x560(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x558(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x550(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x5c0(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x5b8(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x5b0(%rbp)
leaq -0x5a8(%rbp), %rdi
leaq -0x5c0(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3950
movq -0x5a8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x5a0(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x598(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x5f0(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x5e8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x5e0(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x608(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x600(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x5f8(%rbp)
leaq -0x5d8(%rbp), %rdi
leaq -0x5f0(%rbp), %rcx
leaq -0x608(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x2700
movq -0x5d8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x5d0(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x5c8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x638(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x630(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x628(%rbp)
leaq -0x620(%rbp), %rdi
leaq -0x638(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3950
movq -0x620(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x618(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x610(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x668(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x660(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x658(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x680(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x678(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x670(%rbp)
leaq -0x650(%rbp), %rdi
leaq -0x668(%rbp), %rcx
leaq -0x680(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x25e0
movq -0x650(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x648(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x640(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x698(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x690(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x688(%rbp)
leaq -0x698(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x2640
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7c1f
jp 0x7c1f
movq -0x80(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x7cd3
movq -0x30(%rbp), %rax
movq %rax, -0x6c8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x6c0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x6b8(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x6e0(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x6d8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x6d0(%rbp)
leaq -0x6e0(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x2640
leaq -0x6b0(%rbp), %rdi
leaq -0x6c8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x26c0
movq -0x6b0(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x6a8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x6a0(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x6f8(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x6f0(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x6e8(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x710(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x708(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x700(%rbp)
leaq -0x6f8(%rbp), %rcx
leaq -0x710(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x37b0
movq -0x718(%rbp), %rdi
movsd 0x929e(%rip), %xmm1     # 0x11008
divsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
addq $0xa0, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa5c0
movq -0x718(%rbp), %rdi
movq -0x30(%rbp), %rcx
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x10(%rax)
movsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0x748(%rbp)
addq $0x18, %rdi
movslq -0xb4(%rbp), %rsi
callq 0xa270
movsd -0x748(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0x7798
movq -0x718(%rbp), %rax
movb $0x53, 0x60(%rax)
jmp 0x7df4
jmp 0x7df6
addq $0x780, %rsp            # imm = 0x780
popq %rbp
retq
movq -0x158(%rbp), %rdi
callq 0x23c0
nopl (%rax,%rax)