// File: DoubleString[P]RtConverter/src/Rnxobs/Com.cpp
// Function: bamboo::bl2Gaussxy(double, double, double*, double*, double, double, double, double)
bool bl2Gaussxy(double RadLat, double RadLon, double *x, double *y,
		double RadLon0, double eSquare, double a, double heightchange) {
	long double m0, t, etaSquare, RadDeltaLon;
	long double N, X0;
	long double ePrimeSquare;
	long double aa, da, db; //ykoky2k
	RadDeltaLon = RadLon - RadLon0;
	ePrimeSquare = eSquare / (1 - eSquare);
	N = (a / sqrt(1 - eSquare * sin(RadLat) * sin(RadLat))) + heightchange;
	aa = N * sqrt(1 - eSquare * sin(RadLat) * sin(RadLat));
	da = aa - a;
	db = eSquare * sin(RadLat) * cos(RadLat)
			* (1 - eSquare * sin(RadLat) * cos(RadLat)) * da
			/ (a * (1 - eSquare));
	RadLat = RadLat + db;
	a = aa;
	m0 = RadDeltaLon * cos(RadLat);
	t = tan(RadLat);
	etaSquare = ePrimeSquare * cos(RadLat) * cos(RadLat);
	X0 = GetX(RadLat, eSquare, aa);
	*x = X0 + 1 / 2.0 * N * t * pow(m0, 2)
			+ 1 / 24.0
					* (5.0 - pow(t, 2) + 9 * etaSquare + 4 * pow(etaSquare, 2))
					* N * t * pow(m0, 4)
			+ 1 / 720.0
					* (61.0 - 58 * pow(t, 2) + pow(t, 4) + 270 * etaSquare
							- 330 * etaSquare * pow(t, 2)) * N * t * pow(m0, 6)
			+ 1 / 40320 * N * t * pow(m0, 8)
					* (1385 - 3111 * pow(t, 2) + 543 * pow(t, 4) - pow(t, 6));
	*y = 500000.0 + N * m0
			+ 1 / 6.0 * (1.0 - pow(t, 2) + etaSquare) * N * pow(m0, 3)
			+ 1 / 120.0
					* (5.0 - 18.0 * pow(t, 2) + pow(t, 4) + 14.0 * etaSquare
							- 58.0 * pow(t, 2) * etaSquare) * N * pow(m0, 5)
			+ 1 / 5040.0 * pow(m0, 7)
					* (61 - 479 * pow(t, 2) + 179 * pow(t, 4) - pow(t, 6));
	return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x340, %rsp            # imm = 0x340
movsd %xmm0, -0x8(%rbp)
movsd %xmm1, -0x10(%rbp)
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movsd %xmm2, -0x28(%rbp)
movsd %xmm3, -0x30(%rbp)
movsd %xmm4, -0x38(%rbp)
movsd %xmm5, -0x40(%rbp)
movsd -0x10(%rbp), %xmm0
movsd -0x28(%rbp), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
fldl -0xe8(%rbp)
fstpt -0x80(%rbp)
movsd -0x30(%rbp), %xmm0
movsd 0x84c53(%rip), %xmm1    # 0xbbe60
movsd %xmm1, -0x2d0(%rbp)
subsd %xmm0, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
fldl -0xf0(%rbp)
fstpt -0xb0(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x318(%rbp)
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x328(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x91a0
movaps %xmm0, %xmm1
movsd -0x328(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x320(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x91a0
movsd -0x320(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x2d0(%rbp), %xmm0
mulsd %xmm2, %xmm1
subsd %xmm1, %xmm0
callq 0x95e0
movaps %xmm0, %xmm1
movsd -0x318(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd -0x40(%rbp), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0xf8(%rbp)
fldl -0xf8(%rbp)
fstpt -0x90(%rbp)
fldt -0x90(%rbp)
fstpt -0x2fc(%rbp)
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x310(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x91a0
movaps %xmm0, %xmm1
movsd -0x310(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x308(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x91a0
movsd -0x308(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x2d0(%rbp), %xmm0
mulsd %xmm2, %xmm1
subsd %xmm1, %xmm0
callq 0x95e0
fldt -0x2fc(%rbp)
movsd %xmm0, -0x100(%rbp)
fldl -0x100(%rbp)
fmulp %st, %st(1)
fstpt -0xc0(%rbp)
fldt -0xc0(%rbp)
fldl -0x38(%rbp)
fsubrp %st, %st(1)
fstpt -0xd0(%rbp)
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x2f0(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x91a0
movaps %xmm0, %xmm1
movsd -0x2f0(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x2e8(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x9e00
movaps %xmm0, %xmm1
movsd -0x2e8(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x2c8(%rbp)
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x2e0(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x91a0
movaps %xmm0, %xmm1
movsd -0x2e0(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x2d8(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x9e00
movsd -0x2d8(%rbp), %xmm3
movsd -0x2d0(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x2c8(%rbp), %xmm0
mulsd %xmm2, %xmm3
movaps %xmm1, %xmm2
subsd %xmm3, %xmm2
mulsd %xmm2, %xmm0
movsd %xmm0, -0x108(%rbp)
fldl -0x108(%rbp)
fldt -0xd0(%rbp)
fmulp %st, %st(1)
movsd -0x38(%rbp), %xmm0
movsd -0x30(%rbp), %xmm2
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x110(%rbp)
fldl -0x110(%rbp)
fdivrp %st, %st(1)
fstpt -0xe0(%rbp)
fldl -0x8(%rbp)
fldt -0xe0(%rbp)
faddp %st, %st(1)
fstpl -0x8(%rbp)
fldt -0xc0(%rbp)
fstpl -0x38(%rbp)
fldt -0x80(%rbp)
fstpt -0x2c0(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x9e00
fldt -0x2c0(%rbp)
movsd %xmm0, -0x118(%rbp)
fldl -0x118(%rbp)
fmulp %st, %st(1)
fstpt -0x50(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x93f0
movsd %xmm0, -0x120(%rbp)
fldl -0x120(%rbp)
fstpt -0x60(%rbp)
fldt -0xb0(%rbp)
fstpt -0x2b4(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x9e00
fldt -0x2b4(%rbp)
movsd %xmm0, -0x128(%rbp)
fldl -0x128(%rbp)
fmulp %st, %st(1)
fstpt -0x2a8(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x9e00
fldt -0x2a8(%rbp)
movsd %xmm0, -0x130(%rbp)
fldl -0x130(%rbp)
fmulp %st, %st(1)
fstpt -0x70(%rbp)
movsd -0x8(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
fldt -0xc0(%rbp)
fstpl -0x138(%rbp)
movsd -0x138(%rbp), %xmm2
callq 0x36e40
fstpt -0xa0(%rbp)
fldt -0xa0(%rbp)
fstpt -0x29c(%rbp)
fldt -0x90(%rbp)
flds 0x85cfa(%rip)           # 0xbd230
fmulp %st, %st(1)
fldt -0x60(%rbp)
fmulp %st, %st(1)
fstpt -0x290(%rbp)
fldt -0x50(%rbp)
movq %rsp, %rax
fstpt (%rax)
movl $0x2, %edi
movl %edi, -0x188(%rbp)
callq 0x390f0
fldt -0x29c(%rbp)
movl -0x188(%rbp), %edi
fldt -0x290(%rbp)
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x278(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
movl -0x188(%rbp), %edi
flds 0x85ca4(%rip)           # 0xbd234
fld %st(0)
fstpt -0x1d0(%rbp)
fsubp %st, %st(1)
fldt -0x70(%rbp)
flds 0x85c95(%rip)           # 0xbd238
fmul %st(1), %st
faddp %st, %st(2)
fxch %st(1)
fstpt -0x284(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x284(%rbp)
flds 0x85c77(%rip)           # 0xbd23c
fmulp %st, %st(2)
faddp %st, %st(1)
fldl 0x859b1(%rip)           # 0xbcf80
fmulp %st, %st(1)
fldt -0x90(%rbp)
fmulp %st, %st(1)
fldt -0x60(%rbp)
fmulp %st, %st(1)
fstpt -0x26c(%rbp)
fldt -0x50(%rbp)
movq %rsp, %rax
fstpt (%rax)
movl $0x4, %edi
movl %edi, -0x178(%rbp)
callq 0x390f0
fldt -0x278(%rbp)
movl -0x188(%rbp), %edi
fldt -0x26c(%rbp)
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x23c(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
movl -0x178(%rbp), %edi
flds 0x85c0f(%rip)           # 0xbd240
fld %st(0)
fstpt -0x1b8(%rbp)
fmulp %st, %st(1)
flds 0x85c03(%rip)           # 0xbd244
fld %st(0)
fstpt -0x184(%rbp)
faddp %st, %st(1)
fstpt -0x260(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
movl -0x188(%rbp), %edi
fldt -0x260(%rbp)
faddp %st, %st(1)
fldt -0x70(%rbp)
flds 0x85bd3(%rip)           # 0xbd248
fmul %st(1), %st
faddp %st, %st(2)
fxch %st(1)
fstpt -0x248(%rbp)
flds 0x85bc5(%rip)           # 0xbd24c
fmulp %st, %st(1)
fstpt -0x254(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x254(%rbp)
fldt -0x248(%rbp)
fxch %st(1)
fmulp %st, %st(2)
faddp %st, %st(1)
fldl 0x858d4(%rip)           # 0xbcf88
fmulp %st, %st(1)
fldt -0x90(%rbp)
fmulp %st, %st(1)
fldt -0x60(%rbp)
fmulp %st, %st(1)
fstpt -0x230(%rbp)
fldt -0x50(%rbp)
movq %rsp, %rax
fstpt (%rax)
movl $0x6, %edi
movl %edi, -0x168(%rbp)
callq 0x390f0
fldt -0x23c(%rbp)
fldt -0x230(%rbp)
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x200(%rbp)
fldt -0x90(%rbp)
fldz
fmulp %st, %st(1)
fldt -0x60(%rbp)
fmulp %st, %st(1)
fstpt -0x224(%rbp)
fldt -0x50(%rbp)
movq %rsp, %rax
fstpt (%rax)
movl $0x8, %edi
callq 0x390f0
movl -0x188(%rbp), %edi
fldt -0x224(%rbp)
fmulp %st, %st(1)
fstpt -0x1f4(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
movl -0x178(%rbp), %edi
flds 0x85b05(%rip)           # 0xbd250
fmulp %st, %st(1)
flds 0x85b01(%rip)           # 0xbd254
faddp %st, %st(1)
fstpt -0x218(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x218(%rbp)
movl -0x168(%rbp), %edi
flds 0x85ade(%rip)           # 0xbd258
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x20c(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x20c(%rbp)
fldt -0x200(%rbp)
movl -0x188(%rbp), %edi
fldt -0x1f4(%rbp)
fxch %st(2)
fsubp %st, %st(3)
fxch %st(1)
fmulp %st, %st(2)
faddp %st, %st(1)
movq -0x18(%rbp), %rax
fstpl (%rax)
fldt -0x90(%rbp)
fldt -0x50(%rbp)
fmulp %st, %st(1)
flds 0x85a92(%rip)           # 0xbd25c
faddp %st, %st(1)
fstpt -0x1e8(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fld1
fsubp %st, %st(1)
fldt -0x70(%rbp)
faddp %st, %st(1)
fldl 0x857a2(%rip)           # 0xbcf90
fmulp %st, %st(1)
fldt -0x90(%rbp)
fmulp %st, %st(1)
fstpt -0x1dc(%rbp)
fldt -0x50(%rbp)
movq %rsp, %rax
fstpt (%rax)
movl $0x3, %edi
callq 0x390f0
fldt -0x1e8(%rbp)
movl -0x188(%rbp), %edi
fldt -0x1dc(%rbp)
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x1a0(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x1d0(%rbp)
movl -0x178(%rbp), %edi
flds 0x85a15(%rip)           # 0xbd260
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x1c4(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
movl -0x188(%rbp), %edi
fldt -0x1c4(%rbp)
faddp %st, %st(1)
fldt -0x70(%rbp)
flds 0x859eb(%rip)           # 0xbd264
fmulp %st, %st(1)
faddp %st, %st(1)
fstpt -0x1ac(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x1b8(%rbp)
fldt -0x1ac(%rbp)
fxch %st(2)
fmulp %st, %st(1)
fldt -0x70(%rbp)
fmulp %st, %st(1)
faddp %st, %st(1)
fldl 0x856eb(%rip)           # 0xbcf98
fmulp %st, %st(1)
fldt -0x90(%rbp)
fmulp %st, %st(1)
fstpt -0x194(%rbp)
fldt -0x50(%rbp)
movq %rsp, %rax
fstpt (%rax)
movl $0x5, %edi
callq 0x390f0
fldt -0x1a0(%rbp)
fldt -0x194(%rbp)
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x158(%rbp)
fldt -0x50(%rbp)
movq %rsp, %rax
fstpt (%rax)
movl $0x7, %edi
callq 0x390f0
movl -0x188(%rbp), %edi
fldl 0x8569d(%rip)           # 0xbcfa0
fmulp %st, %st(1)
fstpt -0x14c(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x184(%rbp)
movl -0x178(%rbp), %edi
flds 0x8593e(%rip)           # 0xbd268
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x174(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x174(%rbp)
movl -0x168(%rbp), %edi
flds 0x85919(%rip)           # 0xbd26c
fmulp %st, %st(2)
faddp %st, %st(1)
fstpt -0x164(%rbp)
fldt -0x60(%rbp)
movq %rsp, %rax
fstpt (%rax)
callq 0x390f0
fldt -0x164(%rbp)
fldt -0x158(%rbp)
fldt -0x14c(%rbp)
fxch %st(2)
fsubp %st, %st(3)
fxch %st(1)
fmulp %st, %st(2)
faddp %st, %st(1)
fstpl -0x140(%rbp)
movsd -0x140(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, (%rax)
movb $0x1, %al
andb $0x1, %al
addq $0x340, %rsp            # imm = 0x340
popq %rbp
retq
nopl (%rax)