// File: jkingan[P]ladyheather/heathmsc.cpp
// Function: moonxyz_(int*, double*, double*)
int moonxyz_(int *mjd, double *fmjd, double *rm)
{
    /* F2C generated locals */
    double d__1;

    /* Local variables */
    static double ghar, d, f, q, t, oblir, tjdtt, t1, t2, t3, el;
    static double cselat, selatd, cselon, selond, fmjdtt, sselat, el0, 
                  sselon, tsectt, rm1, rm2, rm3, elp, rse;
    static double tsecgps;

    if(mjd == 0) return (-1); 
    if(fmjd == 0) return (-1); 
    if(rm == 0) return (-1); 

/* get low-precision, geocentric coordinates for moon (ECEF) */
/*** input:  mjd/fmjd, is Modified Julian Date (and fractional) in GPS time*/
/* output: rm, is geocentric lunar position vector [m] in ECEF */
/*** 1."satellite orbits: models, methods, applications" montenbruck & gill(2000)*/
/* section 3.3.2, pg. 72-73 */
/*** 2."astronomy on the personal computer, 4th ed." montenbruck & pfleger (2005)*/
/* section 3.2, pg. 38-39  routine MiniMoon */
/* use TT for lunar ephemerides */

    /* Function Body */
    if((tide_options & LOW_RES_TIDES) == 0) {  // use more accurate values from moon_posn()
       selatd = moon_lat;
       selond = moon_lon;
       rse = moon_dist;
       oblir = obliquity(jd_utc, 1);
    }
    else {
       tsecgps = *fmjd * 86400.;
   /* *** GPS time (sec of */
       tsectt = gps2tt_(&tsecgps);
   /* *** TT  time (sec of */
       fmjdtt = tsectt / 86400.;
   /* julian centuries since 1.5 january 2000 (J2000) */
   /*   (note: also low precision use of mjd --> tjd) */
   /* *** TT  time (fract. */
       tjdtt = *mjd + fmjdtt + 2400000.5;
   /* *** Julian Date, TT */
       t = (tjdtt - 2451545.) / 36525.;
   /* el0 -- mean longitude of Moon (deg) */
   /* el  -- mean anomaly of Moon (deg) */
   /* elp -- mean anomaly of Sun  (deg) */
   /* f   -- mean angular distance of Moon from ascending node (deg) */
   /* d   -- difference between mean longitudes of Sun and Moon (deg) */
   /* equations 3.47, p.72 */
   /* *** julian centuries, */
       el0 = t * 481267.88088 + 218.31617 - t * 1.3972f;
       el = t * 477198.86753 + 134.96292;
       elp = t * 35999.04944 + 357.52543;
       f = t * 483202.01873 + 93.27283;
       d = t * 445267.11135 + 297.85027;
   /* longitude w.r.t. equinox and ecliptic of year 2000 */
       selond = el0 + sin(el / stuff_1.rad) * 6.288888888888889 + sin((el + el) /
                stuff_1.rad) * .2136111111111111 - sin((el - d - d) / 
               stuff_1.rad) * 1.273888888888889 + sin((d + d) / stuff_1.rad) * 
               .6583333333333333 - sin(elp / stuff_1.rad) * .1855555555555556 - 
               sin((f + f) / stuff_1.rad) * .1144444444444444 - sin((el + el - d 
               - d) / stuff_1.rad) * .05888888888888889 - sin((el + elp - d - d) 
               / stuff_1.rad) * .05722222222222222 + sin((el + d + d) / 
               stuff_1.rad) * .05333333333333334 - sin((elp - d - d) / 
               stuff_1.rad) * .04583333333333333 + sin((el - elp) / stuff_1.rad) 
               * .04111111111111111 - sin(d / stuff_1.rad) * .03472222222222222 
               - sin((el + elp) / stuff_1.rad) * .03055555555555555 - sin((f + f 
               - d - d) / stuff_1.rad) * .01527777777777778;
   /* latitude w.r.t. equinox and ecliptic of year 2000 */
   /* *** eq 3.48, p.72 */
       q = sin((f + f) / stuff_1.rad) * .1144444444444444 + sin(elp / 
               stuff_1.rad) * .1502777777777778;
   /* *** temporary ter */
       selatd = sin((f + selond - el0 + q) / stuff_1.rad) * 5.144444444444445 - 
               sin((f - d - d) / stuff_1.rad) * .1461111111111111 + sin((el + f 
               - d - d) / stuff_1.rad) * .01222222222222222 - sin((-el + f - d - 
               d) / stuff_1.rad) * .008611111111111111 - sin((-el - el + f) / 
               stuff_1.rad) * .006944444444444444 - sin((elp + f - d - d) / 
               stuff_1.rad) * .006388888888888889 + sin((-el + f) / stuff_1.rad) 
               * .005833333333333334 + sin((-elp + f - d - d) / stuff_1.rad) * 
               .003055555555555556;
   /* distance from Earth center to Moon (m) */
   /* *** eq 3.49, p.72 */
       rse = 3.85e8 - cos(el / stuff_1.rad) * 2.0905e7 - cos((d + d - el) / 
               stuff_1.rad) * 3.699e6 - cos((d + d) / stuff_1.rad) * 2.956e6 - 
               cos((el + el) / stuff_1.rad) * 5.7e5 + cos((el + el - d - d) / 
               stuff_1.rad) * 2.46e5 - cos((elp - d - d) / stuff_1.rad) * 2.05e5 
               - cos((el + d + d) / stuff_1.rad) * 1.71e5 - cos((el + elp - d - 
               d) / stuff_1.rad) * 1.52e5;
       selond += t * 1.3972;
       oblir = 23.43929111 / stuff_1.rad;
    }
//sprintf(debug_text2, "seella:   %.9f %.9f %.9f", fmod(selatd+360.0, 360.0),fmod(selond,360.0), rse);
/* convert spherical ecliptic coordinates to equatorial cartesian */
/* precession of equinox wrt. J2000   (p.71) */
/* *** eq 3.50, p.72 */


/*** position vector of moon (mean equinox & ecliptic of J2000) (EME2000, ICRF)*/
/***                         (plus long. advance due to precession -- eq. above)*/
/* *** degrees */
/* *** obliquity of the J2000 eclipti */
    sselat = sin(selatd / stuff_1.rad);
    cselat = cos(selatd / stuff_1.rad);
    sselon = sin(selond / stuff_1.rad);
    cselon = cos(selond / stuff_1.rad);
    t1 = rse * cselon * cselat;
/* *** meters          !*** eq. 3.51, */
    t2 = rse * sselon * cselat;
/* *** meters          !*** eq. 3.51, */
    t3 = rse * sselat;
//sprintf(debug_text3, "xyzt: %.9f %.9f %.9f  rse:%.9f", t1,t2,t3, rse);
/* *** meters          !*** eq. 3.51, */
    d__1 = -oblir;
    rot1_(&d__1, &t1, &t2, &t3, &rm1, &rm2, &rm3);
/* convert position vector of moon to ECEF  (ignore polar motion/LOD) 
*/
/* *** eq. 3.51, */
    getghar_(mjd, fmjd, &ghar);
/* *** sec 2.3.1, */
    rot3_(&ghar, &rm1, &rm2, &rm3, &rm[0], &rm[1], &rm[2]);
/* *** eq. 2.89, */
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x14154a
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x142355
cmpq $0x0, -0x18(%rbp)
jne 0x14155d
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x142355
cmpq $0x0, -0x20(%rbp)
jne 0x141570
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x142355
leaq 0x22acf5(%rip), %rax    # 0x36c26c
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x1415d3
movsd 0x29912f(%rip), %xmm0   # 0x3da6b8
movsd %xmm0, 0x2996d7(%rip)   # 0x3dac68
movsd 0x299127(%rip), %xmm0   # 0x3da6c0
movsd %xmm0, 0x2996d7(%rip)   # 0x3dac78
movsd 0x29911f(%rip), %xmm0   # 0x3da6c8
movsd %xmm0, 0x299717(%rip)   # 0x3dacc8
leaq 0x22b158(%rip), %rax    # 0x36c710
movsd (%rax), %xmm0
movl $0x1, %edi
callq 0x133790
movsd %xmm0, 0x299662(%rip)   # 0x3dac30
jmp 0x1421da
movq -0x18(%rbp), %rax
movsd 0x2da29(%rip), %xmm0    # 0x16f008
mulsd (%rax), %xmm0
movsd %xmm0, 0x2996e5(%rip)   # 0x3dacd0
leaq 0x2996de(%rip), %rdi    # 0x3dacd0
callq 0x143260
movsd %xmm0, 0x2996a1(%rip)   # 0x3daca0
movsd 0x299699(%rip), %xmm0   # 0x3daca0
movsd 0x2d9f9(%rip), %xmm1    # 0x16f008
divsd %xmm1, %xmm0
movsd %xmm0, 0x299665(%rip)   # 0x3dac80
movq -0x10(%rbp), %rax
cvtsi2sdl (%rax), %xmm0
addsd 0x299655(%rip), %xmm0   # 0x3dac80
movsd 0x2ffdd(%rip), %xmm1    # 0x171610
addsd %xmm1, %xmm0
movsd %xmm0, 0x2995f9(%rip)   # 0x3dac38
movsd 0x2995f1(%rip), %xmm0   # 0x3dac38
movsd 0x4cd39(%rip), %xmm1    # 0x18e388
subsd %xmm1, %xmm0
movsd 0x4cd25(%rip), %xmm1    # 0x18e380
divsd %xmm1, %xmm0
movsd %xmm0, 0x2995c1(%rip)   # 0x3dac28
movsd 0x2995b9(%rip), %xmm1   # 0x3dac28
movsd 0x4d809(%rip), %xmm0    # 0x18ee80
mulsd %xmm0, %xmm1
movsd 0x4d805(%rip), %xmm0    # 0x18ee88
addsd %xmm0, %xmm1
movsd 0x299599(%rip), %xmm0   # 0x3dac28
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d7ca(%rip), %xmm2    # 0x18ee78
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x2995d2(%rip)   # 0x3dac90
movsd 0x299562(%rip), %xmm0   # 0x3dac28
movsd 0x4d79a(%rip), %xmm1    # 0x18ee68
mulsd %xmm1, %xmm0
movsd 0x4d796(%rip), %xmm1    # 0x18ee70
addsd %xmm1, %xmm0
movsd %xmm0, 0x299572(%rip)   # 0x3dac58
movsd 0x29953a(%rip), %xmm0   # 0x3dac28
movsd 0x4d762(%rip), %xmm1    # 0x18ee58
mulsd %xmm1, %xmm0
movsd 0x4d75e(%rip), %xmm1    # 0x18ee60
addsd %xmm1, %xmm0
movsd %xmm0, 0x2995b2(%rip)   # 0x3dacc0
movsd 0x299512(%rip), %xmm0   # 0x3dac28
movsd 0x4d72a(%rip), %xmm1    # 0x18ee48
mulsd %xmm1, %xmm0
movsd 0x4d726(%rip), %xmm1    # 0x18ee50
addsd %xmm1, %xmm0
movsd %xmm0, 0x2994e2(%rip)   # 0x3dac18
movsd 0x2994ea(%rip), %xmm0   # 0x3dac28
movsd 0x4d6f2(%rip), %xmm1    # 0x18ee38
mulsd %xmm1, %xmm0
movsd 0x4d6ee(%rip), %xmm1    # 0x18ee40
addsd %xmm1, %xmm0
movsd %xmm0, 0x2994b2(%rip)   # 0x3dac10
movsd 0x29952a(%rip), %xmm0   # 0x3dac90
movsd %xmm0, -0x110(%rbp)
movsd 0x2994e2(%rip), %xmm0   # 0x3dac58
divsd 0x298f52(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x110(%rbp), %xmm1
movsd 0x4d69d(%rip), %xmm2    # 0x18ee30
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x108(%rbp)
movsd 0x2994ad(%rip), %xmm0   # 0x3dac58
addsd 0x2994a5(%rip), %xmm0   # 0x3dac58
divsd 0x298f15(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x108(%rbp), %xmm1
movsd 0x4d658(%rip), %xmm2    # 0x18ee28
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x100(%rbp)
movsd 0x299470(%rip), %xmm0   # 0x3dac58
subsd 0x299420(%rip), %xmm0   # 0x3dac10
subsd 0x299418(%rip), %xmm0   # 0x3dac10
divsd 0x298ed0(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x100(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d5f4(%rip), %xmm2    # 0x18ee20
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd 0x2993cc(%rip), %xmm0   # 0x3dac10
addsd 0x2993c4(%rip), %xmm0   # 0x3dac10
divsd 0x298e7c(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xf8(%rbp), %xmm1
movsd 0x4d5af(%rip), %xmm2    # 0x18ee18
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd 0x29943f(%rip), %xmm0   # 0x3dacc0
divsd 0x298e47(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xf0(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d55b(%rip), %xmm2    # 0x18ee10
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd 0x29934b(%rip), %xmm0   # 0x3dac18
addsd 0x299343(%rip), %xmm0   # 0x3dac18
divsd 0x298df3(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xe8(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d4b7(%rip), %xmm2    # 0x18edc0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd 0x299337(%rip), %xmm0   # 0x3dac58
addsd 0x29932f(%rip), %xmm0   # 0x3dac58
subsd 0x2992df(%rip), %xmm0   # 0x3dac10
subsd 0x2992d7(%rip), %xmm0   # 0x3dac10
divsd 0x298d8f(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xe0(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d49b(%rip), %xmm2    # 0x18ee08
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd 0x2992d3(%rip), %xmm0   # 0x3dac58
addsd 0x299333(%rip), %xmm0   # 0x3dacc0
subsd 0x29927b(%rip), %xmm0   # 0x3dac10
subsd 0x299273(%rip), %xmm0   # 0x3dac10
divsd 0x298d2b(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xd8(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d42f(%rip), %xmm2    # 0x18ee00
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd 0x29926f(%rip), %xmm0   # 0x3dac58
addsd 0x29921f(%rip), %xmm0   # 0x3dac10
addsd 0x299217(%rip), %xmm0   # 0x3dac10
divsd 0x298ccf(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xd0(%rbp), %xmm1
movsd 0x4d3e2(%rip), %xmm2    # 0x18edf8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd 0x299292(%rip), %xmm0   # 0x3dacc0
subsd 0x2991da(%rip), %xmm0   # 0x3dac10
subsd 0x2991d2(%rip), %xmm0   # 0x3dac10
divsd 0x298c8a(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xc8(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d37e(%rip), %xmm2    # 0x18edf0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd 0x2991ce(%rip), %xmm0   # 0x3dac58
subsd 0x29922e(%rip), %xmm0   # 0x3dacc0
divsd 0x298c36(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xc0(%rbp), %xmm1
movsd 0x4d339(%rip), %xmm2    # 0x18ede8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd 0x299149(%rip), %xmm0   # 0x3dac10
divsd 0x298c01(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xb8(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d2e5(%rip), %xmm2    # 0x18ede0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd 0x299145(%rip), %xmm0   # 0x3dac58
addsd 0x2991a5(%rip), %xmm0   # 0x3dacc0
divsd 0x298bad(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xb0(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d289(%rip), %xmm2    # 0x18edd8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd 0x2990b1(%rip), %xmm0   # 0x3dac18
addsd 0x2990a9(%rip), %xmm0   # 0x3dac18
subsd 0x299099(%rip), %xmm0   # 0x3dac10
subsd 0x299091(%rip), %xmm0   # 0x3dac10
divsd 0x298b49(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0xa8(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d21d(%rip), %xmm2    # 0x18edd0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x2990b5(%rip)   # 0x3dac78
movsd 0x29904d(%rip), %xmm0   # 0x3dac18
addsd 0x299045(%rip), %xmm0   # 0x3dac18
divsd 0x298af5(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd %xmm0, -0xa0(%rbp)
movsd 0x2990d0(%rip), %xmm0   # 0x3dacc0
divsd 0x298ad8(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movaps %xmm0, %xmm1
movsd -0xa0(%rbp), %xmm0
movsd 0x4d1b8(%rip), %xmm2    # 0x18edc8
mulsd %xmm2, %xmm1
movsd 0x4d1a4(%rip), %xmm2    # 0x18edc0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x298ff4(%rip)   # 0x3dac20
movsd 0x298fe4(%rip), %xmm0   # 0x3dac18
addsd 0x29903c(%rip), %xmm0   # 0x3dac78
subsd 0x29904c(%rip), %xmm0   # 0x3dac90
addsd 0x298fd4(%rip), %xmm0   # 0x3dac20
divsd 0x298a7c(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd %xmm0, -0x98(%rbp)
movsd 0x298faf(%rip), %xmm0   # 0x3dac18
subsd 0x298f9f(%rip), %xmm0   # 0x3dac10
subsd 0x298f97(%rip), %xmm0   # 0x3dac10
divsd 0x298a4f(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movaps %xmm0, %xmm1
movsd -0x98(%rbp), %xmm0
movsd 0x4d11f(%rip), %xmm2    # 0x18edb8
mulsd %xmm2, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0x4d0f4(%rip), %xmm2    # 0x18edb0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x298f84(%rip), %xmm0   # 0x3dac58
addsd 0x298f3c(%rip), %xmm0   # 0x3dac18
subsd 0x298f2c(%rip), %xmm0   # 0x3dac10
subsd 0x298f24(%rip), %xmm0   # 0x3dac10
divsd 0x2989dc(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x90(%rbp), %xmm1
movsd 0x4d09f(%rip), %xmm2    # 0x18eda8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x298f37(%rip), %xmm0   # 0x3dac58
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
addsd 0x298ed8(%rip), %xmm0   # 0x3dac18
subsd 0x298ec8(%rip), %xmm0   # 0x3dac10
subsd 0x298ec0(%rip), %xmm0   # 0x3dac10
divsd 0x298978(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x88(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4d01c(%rip), %xmm2    # 0x18eda0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x298ebf(%rip), %xmm0   # 0x3dac58
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
subsd 0x298ea0(%rip), %xmm0   # 0x3dac58
addsd 0x298e58(%rip), %xmm0   # 0x3dac18
divsd 0x298908(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x80(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4cfa7(%rip), %xmm2    # 0x18ed98
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x298eba(%rip), %xmm0   # 0x3dacc0
addsd 0x298e0a(%rip), %xmm0   # 0x3dac18
subsd 0x298dfa(%rip), %xmm0   # 0x3dac10
subsd 0x298df2(%rip), %xmm0   # 0x3dac10
divsd 0x2988aa(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x78(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4cf41(%rip), %xmm2    # 0x18ed90
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x298df4(%rip), %xmm0   # 0x3dac58
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
addsd 0x298d95(%rip), %xmm0   # 0x3dac18
divsd 0x298845(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x70(%rbp), %xmm1
movsd 0x4ceeb(%rip), %xmm2    # 0x18ed88
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x298e0e(%rip), %xmm0   # 0x3dacc0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
addsd 0x298d47(%rip), %xmm0   # 0x3dac18
subsd 0x298d37(%rip), %xmm0   # 0x3dac10
subsd 0x298d2f(%rip), %xmm0   # 0x3dac10
divsd 0x2987e7(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd -0x68(%rbp), %xmm1
movsd 0x4ce85(%rip), %xmm2    # 0x18ed80
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x298d5d(%rip)   # 0x3dac68
movsd 0x298d45(%rip), %xmm0   # 0x3dac58
divsd 0x2987b5(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4ce31(%rip), %xmm1    # 0x18ed70
mulsd %xmm1, %xmm0
movsd 0x4ce2d(%rip), %xmm1    # 0x18ed78
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd 0x298cb4(%rip), %xmm0   # 0x3dac10
addsd 0x298cac(%rip), %xmm0   # 0x3dac10
subsd 0x298cec(%rip), %xmm0   # 0x3dac58
divsd 0x29875c(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd -0x60(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4cdcb(%rip), %xmm2    # 0x18ed68
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd 0x298c5e(%rip), %xmm0   # 0x3dac10
addsd 0x298c56(%rip), %xmm0   # 0x3dac10
divsd 0x29870e(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd -0x58(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4cd75(%rip), %xmm2    # 0x18ed60
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
movsd 0x298c58(%rip), %xmm0   # 0x3dac58
addsd 0x298c50(%rip), %xmm0   # 0x3dac58
divsd 0x2986c0(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd -0x50(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4cd1f(%rip), %xmm2    # 0x18ed58
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd 0x298c0a(%rip), %xmm0   # 0x3dac58
addsd 0x298c02(%rip), %xmm0   # 0x3dac58
subsd 0x298bb2(%rip), %xmm0   # 0x3dac10
subsd 0x298baa(%rip), %xmm0   # 0x3dac10
divsd 0x298662(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd -0x48(%rbp), %xmm1
movsd 0x4ccd0(%rip), %xmm2    # 0x18ed50
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x298c2b(%rip), %xmm0   # 0x3dacc0
subsd 0x298b73(%rip), %xmm0   # 0x3dac10
subsd 0x298b6b(%rip), %xmm0   # 0x3dac10
divsd 0x298623(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd -0x40(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4cc72(%rip), %xmm2    # 0x18ed48
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x298b6d(%rip), %xmm0   # 0x3dac58
addsd 0x298b1d(%rip), %xmm0   # 0x3dac10
addsd 0x298b15(%rip), %xmm0   # 0x3dac10
divsd 0x2985cd(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd -0x38(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4cc14(%rip), %xmm2    # 0x18ed40
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0x298b17(%rip), %xmm0   # 0x3dac58
addsd 0x298b77(%rip), %xmm0   # 0x3dacc0
subsd 0x298abf(%rip), %xmm0   # 0x3dac10
subsd 0x298ab7(%rip), %xmm0   # 0x3dac10
divsd 0x29856f(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd -0x30(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x4cbae(%rip), %xmm2    # 0x18ed38
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x298b2e(%rip)   # 0x3dacc8
movsd 0x298a86(%rip), %xmm0   # 0x3dac28
movsd 0x298ace(%rip), %xmm1   # 0x3dac78
movsd 0x4cb3e(%rip), %xmm2    # 0x18ecf0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x298ab6(%rip)   # 0x3dac78
movsd 0x4cb66(%rip), %xmm0    # 0x18ed30
divsd 0x2984fe(%rip), %xmm0   # 0x3da6d0
movsd %xmm0, 0x298a56(%rip)   # 0x3dac30
movsd 0x298a86(%rip), %xmm0   # 0x3dac68
divsd 0x2984e6(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd %xmm0, 0x298a91(%rip)   # 0x3dac88
movsd 0x298a69(%rip), %xmm0   # 0x3dac68
divsd 0x2984c9(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd %xmm0, 0x298a4c(%rip)   # 0x3dac60
movsd 0x298a5c(%rip), %xmm0   # 0x3dac78
divsd 0x2984ac(%rip), %xmm0   # 0x3da6d0
callq 0x9080
movsd %xmm0, 0x298a67(%rip)   # 0x3dac98
movsd 0x298a3f(%rip), %xmm0   # 0x3dac78
divsd 0x29848f(%rip), %xmm0   # 0x3da6d0
callq 0x96f0
movsd %xmm0, 0x298a22(%rip)   # 0x3dac70
movsd 0x298a72(%rip), %xmm0   # 0x3dacc8
mulsd 0x298a12(%rip), %xmm0   # 0x3dac70
mulsd 0x2989fa(%rip), %xmm0   # 0x3dac60
movsd %xmm0, 0x2989d2(%rip)   # 0x3dac40
movsd 0x298a52(%rip), %xmm0   # 0x3dacc8
mulsd 0x298a1a(%rip), %xmm0   # 0x3dac98
mulsd 0x2989da(%rip), %xmm0   # 0x3dac60
movsd %xmm0, 0x2989ba(%rip)   # 0x3dac48
movsd 0x298a32(%rip), %xmm0   # 0x3dacc8
mulsd 0x2989ea(%rip), %xmm0   # 0x3dac88
movsd %xmm0, 0x2989aa(%rip)   # 0x3dac50
movsd 0x298982(%rip), %xmm0   # 0x3dac30
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x28(%rbp)
leaq -0x28(%rbp), %rdi
leaq 0x29896b(%rip), %rsi    # 0x3dac40
leaq 0x29896c(%rip), %rdx    # 0x3dac48
leaq 0x29896d(%rip), %rcx    # 0x3dac50
leaq 0x2989be(%rip), %r8     # 0x3daca8
leaq 0x2989bf(%rip), %r9     # 0x3dacb0
leaq 0x2989c0(%rip), %rax    # 0x3dacb8
movq %rax, (%rsp)
callq 0x1468d0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x2988f8(%rip), %rdx    # 0x3dac08
callq 0x1469b0
movq -0x20(%rbp), %r8
movq -0x20(%rbp), %r9
addq $0x8, %r9
movq -0x20(%rbp), %rax
addq $0x10, %rax
leaq 0x2988d8(%rip), %rdi    # 0x3dac08
leaq 0x298971(%rip), %rsi    # 0x3daca8
leaq 0x298972(%rip), %rdx    # 0x3dacb0
leaq 0x298973(%rip), %rcx    # 0x3dacb8
movq %rax, (%rsp)
callq 0x146b70
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
nopw %cs:(%rax,%rax)