// File: jkingan[P]ladyheather/heathmsc.cpp
// Function: calc_seasons()
void calc_seasons()
{
double m;
double t;

   // calculate/Julian date/time when each season starts
   m = ((double) (this_year - 2000)) / 1000.0;
   spring = calc_vs(2451623.80984 + 365242.37404*m + 0.05169*m*m - 0.00411*m*m*m - 0.00057*m*m*m*m);
   summer = calc_vs(2451716.56767 + 365241.62603*m + 0.00325*m*m + 0.00888*m*m*m - 0.00030*m*m*m*m);
   fall   = calc_vs(2451810.21715 + 365242.01767*m - 0.11575*m*m + 0.00337*m*m*m + 0.00078*m*m*m*m);
   winter = calc_vs(2451900.05952 + 365242.74049*m - 0.06223*m*m - 0.00823*m*m*m + 0.00032*m*m*m*m);

   if(lat < 0.0) {   // down under the world is bass ackwards
      t = fall;
      fall = spring;
      spring = t;

      t = winter;
      winter = summer;
      summer = t;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x2241a1(%rip), %rax    # 0x36c700
movl (%rax), %eax
subl $0x7d0, %eax            # imm = 0x7D0
cvtsi2sd %eax, %xmm0
movsd 0x26abe(%rip), %xmm1    # 0x16f030
divsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm1
movsd 0x46b88(%rip), %xmm0    # 0x18f110
mulsd %xmm0, %xmm1
movsd 0x46b84(%rip), %xmm0    # 0x18f118
addsd %xmm0, %xmm1
movsd 0x46b68(%rip), %xmm0    # 0x18f108
mulsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x46b46(%rip), %xmm1    # 0x18f100
mulsd -0x8(%rbp), %xmm1
mulsd -0x8(%rbp), %xmm1
movsd -0x8(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x46b08(%rip), %xmm0    # 0x18f0f8
mulsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x1483c0
movsd %xmm0, 0x2916b8(%rip)   # 0x3d9ce8
movsd -0x8(%rbp), %xmm1
movsd 0x46aab(%rip), %xmm0    # 0x18f0e8
mulsd %xmm0, %xmm1
movsd 0x46aa7(%rip), %xmm0    # 0x18f0f0
addsd %xmm0, %xmm1
movsd 0x46a8b(%rip), %xmm0    # 0x18f0e0
mulsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x46a69(%rip), %xmm1    # 0x18f0d8
mulsd -0x8(%rbp), %xmm1
mulsd -0x8(%rbp), %xmm1
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x46a42(%rip), %xmm0    # 0x18f0d0
mulsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x1483c0
movsd %xmm0, 0x291622(%rip)   # 0x3d9cf0
movsd -0x8(%rbp), %xmm1
movsd 0x469e5(%rip), %xmm0    # 0x18f0c0
mulsd %xmm0, %xmm1
movsd 0x469e1(%rip), %xmm0    # 0x18f0c8
addsd %xmm0, %xmm1
movsd 0x469c5(%rip), %xmm0    # 0x18f0b8
mulsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x4698c(%rip), %xmm1    # 0x18f0b0
mulsd -0x8(%rbp), %xmm1
mulsd -0x8(%rbp), %xmm1
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x46965(%rip), %xmm0    # 0x18f0a8
mulsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x1483c0
movsd %xmm0, 0x29158c(%rip)   # 0x3d9cf8
movsd -0x8(%rbp), %xmm1
movsd 0x4691f(%rip), %xmm0    # 0x18f098
mulsd %xmm0, %xmm1
movsd 0x4691b(%rip), %xmm0    # 0x18f0a0
addsd %xmm0, %xmm1
movsd 0x468ff(%rip), %xmm0    # 0x18f090
mulsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x468c6(%rip), %xmm1    # 0x18f088
mulsd -0x8(%rbp), %xmm1
mulsd -0x8(%rbp), %xmm1
movsd -0x8(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x46888(%rip), %xmm0    # 0x18f080
mulsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x1483c0
movsd %xmm0, 0x2914df(%rip)   # 0x3d9d00
xorps %xmm0, %xmm0
leaq 0x223985(%rip), %rax    # 0x36c1b0
ucomisd (%rax), %xmm0
jbe 0x148885
movsd 0x2914bf(%rip), %xmm0   # 0x3d9cf8
movsd %xmm0, -0x10(%rbp)
movsd 0x2914a2(%rip), %xmm0   # 0x3d9ce8
movsd %xmm0, 0x2914aa(%rip)   # 0x3d9cf8
movsd -0x10(%rbp), %xmm0
movsd %xmm0, 0x29148d(%rip)   # 0x3d9ce8
movsd 0x29149d(%rip), %xmm0   # 0x3d9d00
movsd %xmm0, -0x10(%rbp)
movsd 0x291480(%rip), %xmm0   # 0x3d9cf0
movsd %xmm0, 0x291488(%rip)   # 0x3d9d00
movsd -0x10(%rbp), %xmm0
movsd %xmm0, 0x29146b(%rip)   # 0x3d9cf0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)