// File: thierry7100[P]CutOptim/include/nanosvg.h
// Function: nsvg__pathArcTo(NSVGparser*, double*, double*, double*, int)
static void nsvg__pathArcTo(NSVGparser* p, double* cpx, double* cpy, double* args, int rel)
{
	// Ported from canvg (https://code.google.com/p/canvg/)
	double rx, ry, rotx;
	double x1, y1, x2, y2, cx, cy, dx, dy, d;
	double x1p, y1p, cxp, cyp, s, sa, sb;
	double ux, uy, vx, vy, a1, da;
	double x, y, tanx, tany, a, px = 0, py = 0, ptanx = 0, ptany = 0, t[6];
	double sinrx, cosrx;
	int fa, fs;
	int i, ndivs;
	double hda, kappa;

	rx = fabs(args[0]);				// y radius
	ry = fabs(args[1]);				// x radius
	rotx = args[2] / 180.0 * NSVG_PI;		// x rotation angle
	fa = fabs(args[3]) > 1e-6 ? 1 : 0;	// Large arc
	fs = fabs(args[4]) > 1e-6 ? 1 : 0;	// Sweep direction
	x1 = *cpx;							// start point
	y1 = *cpy;
	if (rel) {							// end point
		x2 = *cpx + args[5];
		y2 = *cpy + args[6];
	} else {
		x2 = args[5];
		y2 = args[6];
	}

	dx = x1 - x2;
	dy = y1 - y2;
	d = sqrt(dx*dx + dy*dy);
	if (d < 1e-6 || rx < 1e-6 || ry < 1e-6) {
		// The arc degenerates to a line
		nsvg__lineTo(p, x2, y2);
		*cpx = x2;
		*cpy = y2;
		return;
	}

	sinrx = sin(rotx);
	cosrx = cos(rotx);

	// Convert to center point parameterization.
	// http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
	// 1) Compute x1', y1'
	x1p = cosrx * dx / 2.0 + sinrx * dy / 2.0;
	y1p = -sinrx * dx / 2.0 + cosrx * dy / 2.0;
	d = nsvg__sqr(x1p)/nsvg__sqr(rx) + nsvg__sqr(y1p)/nsvg__sqr(ry);
	if (d > 1) {
		d = sqrt(d);
		rx *= d;
		ry *= d;
	}
	// 2) Compute cx', cy'
	s = 0.0;
	sa = nsvg__sqr(rx)*nsvg__sqr(ry) - nsvg__sqr(rx)*nsvg__sqr(y1p) - nsvg__sqr(ry)*nsvg__sqr(x1p);
	sb = nsvg__sqr(rx)*nsvg__sqr(y1p) + nsvg__sqr(ry)*nsvg__sqr(x1p);
	if (sa < 0.0) sa = 0.0;
	if (sb > 0.0)
		s = sqrt(sa / sb);
	if (fa == fs)
		s = -s;
	cxp = s * rx * y1p / ry;
	cyp = s * -ry * x1p / rx;

	// 3) Compute cx,cy from cx',cy'
	cx = (x1 + x2)/2.0 + cosrx*cxp - sinrx*cyp;
	cy = (y1 + y2)/2.0 + sinrx*cxp + cosrx*cyp;

	// 4) Calculate theta1, and delta theta.
	ux = (x1p - cxp) / rx;
	uy = (y1p - cyp) / ry;
	vx = (-x1p - cxp) / rx;
	vy = (-y1p - cyp) / ry;
	a1 = nsvg__vecang(1.0,0.0, ux,uy);	// Initial angle
	da = nsvg__vecang(ux,uy, vx,vy);		// Delta angle

//	if (vecrat(ux,uy,vx,vy) <= -1.0) da = NSVG_PI;
//	if (vecrat(ux,uy,vx,vy) >= 1.0) da = 0;

	if (fs == 0 && da > 0)
		da -= 2 * NSVG_PI;
	else if (fs == 1 && da < 0)
		da += 2 * NSVG_PI;

	// Approximate the arc using cubic spline segments.
	t[0] = cosrx; t[1] = sinrx;
	t[2] = -sinrx; t[3] = cosrx;
	t[4] = cx; t[5] = cy;

	// Split arc into max 90 degree segments.
	// The loop assumes an iteration per end point (including start and end), this +1.
	ndivs = (int)(fabs(da) / (NSVG_PI*0.5f) + 1.0);
	hda = (da / (double)ndivs) / 2.0;
	kappa = fabs(4.0 / 3.0 * (1.0 - cos(hda)) / sin(hda));
	if (da < 0.0)
		kappa = -kappa;

	for (i = 0; i <= ndivs; i++) {
		a = a1 + da * ((double)i/(double)ndivs);
		dx = cos(a);
		dy = sin(a);
		nsvg__xformPoint(&x, &y, dx*rx, dy*ry, t); // position
		nsvg__xformVec(&tanx, &tany, -dy*rx * kappa, dx*ry * kappa, t); // tangent
		if (i > 0)
			nsvg__cubicBezTo(p, px+ptanx,py+ptany, x-tanx, y-tany, x, y);
		px = x;
		py = y;
		ptanx = tanx;
		ptany = tany;
	}

	*cpx = x2;
	*cpy = y2;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x200, %rsp            # imm = 0x200
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x120(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x128(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x130(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x138(%rbp)
movq -0x20(%rbp), %rax
movsd (%rax), %xmm0
movaps 0x74b6(%rip), %xmm1     # 0x840b0
pand %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movq -0x20(%rbp), %rax
movsd 0x8(%rax), %xmm0
movaps 0x749d(%rip), %xmm1     # 0x840b0
pand %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movq -0x20(%rbp), %rax
movsd 0x10(%rax), %xmm0
movsd 0x758b(%rip), %xmm1     # 0x841b8
divsd %xmm1, %xmm0
movsd 0x75f7(%rip), %xmm1     # 0x84230
mulsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movq -0x20(%rbp), %rax
movsd 0x18(%rax), %xmm0
movaps 0x745e(%rip), %xmm1     # 0x840b0
pand %xmm1, %xmm0
movsd 0x753a(%rip), %xmm1     # 0x84198
xorl %eax, %eax
movl $0x1, %ecx
ucomisd %xmm1, %xmm0
cmoval %ecx, %eax
movl %eax, -0x184(%rbp)
movq -0x20(%rbp), %rax
movsd 0x20(%rax), %xmm0
movaps 0x742e(%rip), %xmm1     # 0x840b0
pand %xmm1, %xmm0
movsd 0x750a(%rip), %xmm1     # 0x84198
xorl %eax, %eax
movl $0x1, %ecx
ucomisd %xmm1, %xmm0
cmoval %ecx, %eax
movl %eax, -0x188(%rbp)
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x48(%rbp)
movq -0x18(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x50(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x7ccf0
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
movq -0x20(%rbp), %rax
addsd 0x28(%rax), %xmm0
movsd %xmm0, -0x58(%rbp)
movq -0x18(%rbp), %rax
movsd (%rax), %xmm0
movq -0x20(%rbp), %rax
addsd 0x30(%rax), %xmm0
movsd %xmm0, -0x60(%rbp)
jmp 0x7cd0c
movq -0x20(%rbp), %rax
movsd 0x28(%rax), %xmm0
movsd %xmm0, -0x58(%rbp)
movq -0x20(%rbp), %rax
movsd 0x30(%rax), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x48(%rbp), %xmm0
subsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x50(%rbp), %xmm0
subsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd -0x78(%rbp), %xmm0
movsd -0x78(%rbp), %xmm2
movsd -0x80(%rbp), %xmm1
mulsd -0x80(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x9460
movsd %xmm0, -0x88(%rbp)
movsd 0x743d(%rip), %xmm0     # 0x84198
ucomisd -0x88(%rbp), %xmm0
ja 0x7cd83
movsd 0x742b(%rip), %xmm0     # 0x84198
ucomisd -0x30(%rbp), %xmm0
ja 0x7cd83
movsd 0x741c(%rip), %xmm0     # 0x84198
ucomisd -0x38(%rbp), %xmm0
jbe 0x7cdb5
movq -0x8(%rbp), %rdi
movsd -0x58(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
callq 0x7e230
movsd -0x58(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x60(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x7d6a0
movsd -0x40(%rbp), %xmm0
callq 0x9120
movsd %xmm0, -0x178(%rbp)
movsd -0x40(%rbp), %xmm0
callq 0x99f0
movsd %xmm0, -0x180(%rbp)
movsd -0x180(%rbp), %xmm0
mulsd -0x78(%rbp), %xmm0
movsd 0x72b2(%rip), %xmm1     # 0x840a0
divsd %xmm1, %xmm0
movsd -0x178(%rbp), %xmm1
mulsd -0x80(%rbp), %xmm1
movsd 0x7299(%rip), %xmm2     # 0x840a0
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x178(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd -0x78(%rbp), %xmm0
movsd 0x725d(%rip), %xmm1     # 0x840a0
divsd %xmm1, %xmm0
movsd -0x180(%rbp), %xmm1
mulsd -0x80(%rbp), %xmm1
movsd 0x7244(%rip), %xmm2     # 0x840a0
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x90(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1b8(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x7e400
movaps %xmm0, %xmm1
movsd -0x1b8(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x98(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1b0(%rbp)
movsd -0x38(%rbp), %xmm0
callq 0x7e400
movsd -0x1b0(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x1a8(%rbp), %xmm0
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x88(%rbp)
movsd -0x88(%rbp), %xmm0
movsd 0x7204(%rip), %xmm1     # 0x840f8
ucomisd %xmm1, %xmm0
jbe 0x7cf33
movsd -0x88(%rbp), %xmm0
callq 0x9460
movsd %xmm0, -0x88(%rbp)
movsd -0x88(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x88(%rbp), %xmm0
mulsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1e8(%rbp)
movsd -0x38(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1f0(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1f8(%rbp)
movsd -0x98(%rbp), %xmm0
callq 0x7e400
movsd -0x1f8(%rbp), %xmm1
movsd -0x1f0(%rbp), %xmm2
movaps %xmm0, %xmm3
movsd -0x1e8(%rbp), %xmm0
mulsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1e0(%rbp)
movsd -0x38(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1d8(%rbp)
movsd -0x90(%rbp), %xmm0
callq 0x7e400
movsd -0x1e0(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x1d8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1c0(%rbp)
movsd -0x98(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1c8(%rbp)
movsd -0x38(%rbp), %xmm0
callq 0x7e400
movsd %xmm0, -0x1d0(%rbp)
movsd -0x90(%rbp), %xmm0
callq 0x7e400
movsd -0x1d0(%rbp), %xmm1
movsd -0x1c8(%rbp), %xmm2
movaps %xmm0, %xmm3
movsd -0x1c0(%rbp), %xmm0
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xc0(%rbp)
xorps %xmm0, %xmm0
ucomisd -0xb8(%rbp), %xmm0
jbe 0x7d0ad
xorps %xmm0, %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd -0xc0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x7d0db
movsd -0xb8(%rbp), %xmm0
divsd -0xc0(%rbp), %xmm0
callq 0x9460
movsd %xmm0, -0xb0(%rbp)
movl -0x184(%rbp), %eax
cmpl -0x188(%rbp), %eax
jne 0x7d110
movsd -0xb0(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0xb0(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
mulsd -0x98(%rbp), %xmm0
divsd -0x38(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0xb0(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm1, %xmm0
mulsd -0x90(%rbp), %xmm0
divsd -0x30(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0x48(%rbp), %xmm0
addsd -0x58(%rbp), %xmm0
movsd 0x6f1f(%rip), %xmm1     # 0x840a0
divsd %xmm1, %xmm0
movsd -0x180(%rbp), %xmm1
movsd -0xa0(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x178(%rbp), %xmm0
movsd -0xa8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x50(%rbp), %xmm0
addsd -0x60(%rbp), %xmm0
movsd 0x6ebd(%rip), %xmm1     # 0x840a0
divsd %xmm1, %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0xa0(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0xa8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x70(%rbp)
movsd -0x90(%rbp), %xmm0
subsd -0xa0(%rbp), %xmm0
divsd -0x30(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0x98(%rbp), %xmm0
subsd -0xa8(%rbp), %xmm0
divsd -0x38(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0x90(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
subsd -0xa0(%rbp), %xmm0
divsd -0x30(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0x98(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
subsd -0xa8(%rbp), %xmm0
divsd -0x38(%rbp), %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0xc8(%rbp), %xmm2
movsd -0xd0(%rbp), %xmm3
movsd 0x6e22(%rip), %xmm0     # 0x840f8
xorps %xmm1, %xmm1
callq 0x7e420
movsd %xmm0, -0xe8(%rbp)
movsd -0xc8(%rbp), %xmm0
movsd -0xd0(%rbp), %xmm1
movsd -0xd8(%rbp), %xmm2
movsd -0xe0(%rbp), %xmm3
callq 0x7e420
movsd %xmm0, -0xf0(%rbp)
cmpl $0x0, -0x188(%rbp)
jne 0x7d34b
movsd -0xf0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x7d34b
movsd -0xf0(%rbp), %xmm0
movsd 0x6f03(%rip), %xmm1     # 0x84240
subsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
jmp 0x7d37b
cmpl $0x1, -0x188(%rbp)
jne 0x7d379
xorps %xmm0, %xmm0
ucomisd -0xf0(%rbp), %xmm0
jbe 0x7d379
movsd 0x6ed7(%rip), %xmm0     # 0x84240
addsd -0xf0(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
jmp 0x7d37b
movsd -0x180(%rbp), %xmm0
movsd %xmm0, -0x170(%rbp)
movsd -0x178(%rbp), %xmm0
movsd %xmm0, -0x168(%rbp)
movsd -0x178(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x160(%rbp)
movsd -0x180(%rbp), %xmm0
movsd %xmm0, -0x158(%rbp)
movsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x150(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x148(%rbp)
movsd -0xf0(%rbp), %xmm0
movaps 0x6cb5(%rip), %xmm1     # 0x840b0
pand %xmm1, %xmm0
movsd 0x6e49(%rip), %xmm1     # 0x84250
divsd %xmm1, %xmm0
movsd 0x6ce5(%rip), %xmm1     # 0x840f8
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x190(%rbp)
movsd -0xf0(%rbp), %xmm0
cvtsi2sdl -0x190(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd 0x6c63(%rip), %xmm1     # 0x840a0
divsd %xmm1, %xmm0
movsd %xmm0, -0x198(%rbp)
movsd -0x198(%rbp), %xmm0
callq 0x99f0
movsd 0x6c9a(%rip), %xmm1     # 0x840f8
subsd %xmm0, %xmm1
movsd 0x6dde(%rip), %xmm0     # 0x84248
mulsd %xmm1, %xmm0
movsd %xmm0, -0x200(%rbp)
movsd -0x198(%rbp), %xmm0
callq 0x9120
movaps %xmm0, %xmm1
movsd -0x200(%rbp), %xmm0
divsd %xmm1, %xmm0
movaps 0x6c17(%rip), %xmm1     # 0x840b0
pand %xmm1, %xmm0
movsd %xmm0, -0x1a0(%rbp)
xorps %xmm0, %xmm0
ucomisd -0xf0(%rbp), %xmm0
jbe 0x7d4d9
movsd -0x1a0(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x1a0(%rbp)
movl $0x0, -0x18c(%rbp)
movl -0x18c(%rbp), %eax
cmpl -0x190(%rbp), %eax
jg 0x7d686
movsd -0xe8(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm0
cvtsi2sdl -0x18c(%rbp), %xmm2
cvtsi2sdl -0x190(%rbp), %xmm3
divsd %xmm3, %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x118(%rbp)
movsd -0x118(%rbp), %xmm0
callq 0x99f0
movsd %xmm0, -0x78(%rbp)
movsd -0x118(%rbp), %xmm0
callq 0x9120
movsd %xmm0, -0x80(%rbp)
movsd -0x78(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
movsd -0x80(%rbp), %xmm1
mulsd -0x38(%rbp), %xmm1
leaq -0x170(%rbp), %rdx
leaq -0xf8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x7e4f0
movsd -0x80(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd -0x30(%rbp), %xmm0
mulsd -0x1a0(%rbp), %xmm0
movsd -0x78(%rbp), %xmm1
mulsd -0x38(%rbp), %xmm1
mulsd -0x1a0(%rbp), %xmm1
leaq -0x170(%rbp), %rdx
leaq -0x108(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x7e580
cmpl $0x0, -0x18c(%rbp)
jle 0x7d632
movq -0x8(%rbp), %rdi
movsd -0x120(%rbp), %xmm0
addsd -0x130(%rbp), %xmm0
movsd -0x128(%rbp), %xmm1
addsd -0x138(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
subsd -0x108(%rbp), %xmm2
movsd -0x100(%rbp), %xmm3
subsd -0x110(%rbp), %xmm3
movsd -0xf8(%rbp), %xmm4
movsd -0x100(%rbp), %xmm5
callq 0x7e3a0
movsd -0xf8(%rbp), %xmm0
movsd %xmm0, -0x120(%rbp)
movsd -0x100(%rbp), %xmm0
movsd %xmm0, -0x128(%rbp)
movsd -0x108(%rbp), %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x110(%rbp), %xmm0
movsd %xmm0, -0x138(%rbp)
movl -0x18c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18c(%rbp)
jmp 0x7d4e3
movsd -0x58(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x60(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
addq $0x200, %rsp            # imm = 0x200
popq %rbp
retq
nopl (%rax)