// File: /workspace/github_cpp_makefile_star2_O3/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 0x21dfa3(%rip), %rax    # 0x30d520
movl $0xfffff830, %ecx       # imm = 0xFFFFF830
addl (%rax), %ecx
cvtsi2sd %ecx, %xmm3
divsd 0x19aa8(%rip), %xmm3    # 0x109038
movsd %xmm3, -0x8(%rbp)
movsd 0x3d0c3(%rip), %xmm0    # 0x12c660
mulsd %xmm3, %xmm0
addsd 0x3d0bf(%rip), %xmm0    # 0x12c668
movsd 0x3d0bf(%rip), %xmm1    # 0x12c670
mulsd %xmm3, %xmm1
mulsd %xmm3, %xmm1
addsd %xmm0, %xmm1
movsd 0x3d0b3(%rip), %xmm2    # 0x12c678
mulsd %xmm3, %xmm2
mulsd %xmm3, %xmm2
mulsd %xmm3, %xmm2
addsd %xmm1, %xmm2
movsd 0x3d0a3(%rip), %xmm0    # 0x12c680
mulsd %xmm3, %xmm0
mulsd %xmm3, %xmm0
mulsd %xmm3, %xmm0
mulsd %xmm3, %xmm0
addsd %xmm2, %xmm0
callq 0xef473
movsd 0x3d08a(%rip), %xmm1    # 0x12c688
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd 0x3d081(%rip), %xmm1    # 0x12c690
movsd %xmm0, 0x28b471(%rip)   # 0x37aa88
movsd 0x3d079(%rip), %xmm0    # 0x12c698
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x3d06d(%rip), %xmm1    # 0x12c6a0
mulsd %xmm2, %xmm1
mulsd %xmm2, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x3d05d(%rip), %xmm0    # 0x12c6a8
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0xef473
movsd 0x3d044(%rip), %xmm1    # 0x12c6b0
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd 0x3d03b(%rip), %xmm1    # 0x12c6b8
movsd %xmm0, 0x28b40b(%rip)   # 0x37aa90
movsd 0x3d033(%rip), %xmm0    # 0x12c6c0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x3d027(%rip), %xmm1    # 0x12c6c8
mulsd %xmm2, %xmm1
mulsd %xmm2, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x3d017(%rip), %xmm0    # 0x12c6d0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0xef473
movsd 0x3cffe(%rip), %xmm1    # 0x12c6d8
movsd -0x8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd 0x3cff5(%rip), %xmm1    # 0x12c6e0
movsd %xmm0, 0x28b3a5(%rip)   # 0x37aa98
movsd 0x3cfed(%rip), %xmm0    # 0x12c6e8
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x3cfe1(%rip), %xmm1    # 0x12c6f0
mulsd %xmm2, %xmm1
mulsd %xmm2, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x3cfd1(%rip), %xmm0    # 0x12c6f8
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0xef473
movsd %xmm0, 0x28b358(%rip)   # 0x37aaa0
leaq 0x21d881(%rip), %rax    # 0x30cfd0
xorpd %xmm1, %xmm1
ucomisd (%rax), %xmm1
jbe 0xef791
movsd 0x28b337(%rip), %xmm1   # 0x37aa98
movsd 0x28b31f(%rip), %xmm2   # 0x37aa88
movsd %xmm2, 0x28b327(%rip)   # 0x37aa98
movsd %xmm1, 0x28b30f(%rip)   # 0x37aa88
movsd 0x28b30f(%rip), %xmm1   # 0x37aa90
movsd %xmm1, 0x28b317(%rip)   # 0x37aaa0
movsd %xmm0, 0x28b2ff(%rip)   # 0x37aa90
addq $0x10, %rsp
popq %rbp
retq