// File: jkingan[P]ladyheather/heathmsc.cpp
// Function: calc_greetings()
void calc_greetings()
{
double t;
int gd;
int i;
double rosh, po, purim;
int m_year;

   // calculate a few useful greetings dates 

   // convert Julian times to Gregorian and update the greetings table
   adjust_season(spring);
   sprintf(spring_s, "Spring starts today around %02d:%02d %s", g_hours,g_minutes, out);
   i = set_holiday(SPRING, g_month, g_day);
   if(i >= 0) holiday[i].text = &spring_s[0];

   adjust_season(summer);
   sprintf(summer_s, "Summer starts today around %02d:%02d %s", g_hours,g_minutes, out);
   i = set_holiday(SUMMER, g_month, g_day);
   if(i >= 0) holiday[i].text = &summer_s[0];

   adjust_season(fall);
   sprintf(autumn_s, "Autumn starts today around %02d:%02d %s", g_hours,g_minutes,out);
   i = set_holiday(AUTUMN, g_month, g_day);
   if(i >= 0) holiday[i].text = &autumn_s[0];

   adjust_season(winter);
   sprintf(winter_s, "Winter starts today around %02d:%02d %s", g_hours,g_minutes,out);
   i = set_holiday(WINTER, g_month, g_day);
   if(i >= 0) holiday[i].text = &winter_s[0];

   t = chinese_ny();
   gregorian(0, t);
   sprintf(china_year, "Happy Chinese New Year!  It's the Year of the %s.", zodiac[this_year%12]);
// sprintf(china_year, "Happy Chinese New Year!  It's the Year of the %s.", zodiac[g_year%12]);
   i = set_holiday(CHINA_NY, g_month, g_day);
   if(i >= 0) holiday[i].text = &china_year[0];

   easter(this_year);     // a few easter based holidays

   if(dst_disabled() == 0) {    // daylight savings time days
      t = jdate(this_year, dst_start_month, dst_start_day) - 1.0;
      gregorian(0, t);
      set_holiday(CLOCK_FWD, g_month, g_day);

      t = jdate(this_year, dst_end_month, dst_end_day) - 1.0;
      gregorian(0, t);
      set_holiday(CLOCK_BACK, g_month, g_day);
   }
   else {  // disable DST message
      set_holiday(CLOCK_FWD, 3, 0);
      set_holiday(CLOCK_BACK, 11, 0);
   }

   // grandprents day
   gd = nth_dow_in(1, 1, 9, this_year);  // first Monday in sept = Labor Day
   t = jdate(this_year, 9, gd) + 6.0;    // the next sunday
   gregorian(0, t);
   set_holiday(GRANNY, g_month, g_day);

   // election day
   gd = nth_dow_in(1, 1, 11, this_year) + 1;
   set_holiday(ELECTION, 11, gd);

   // tax days
   gd = tax_day(this_year,   4,  15);
   set_holiday(TAX_DAY,      4,  gd);
   gd = tax_day(this_year,   6,  15);
   set_holiday(Q2_TAXES,     6,  gd);
   gd = tax_day(this_year,   9,  15);
   set_holiday(Q3_TAXES,     9,  gd);
   gd = tax_day(this_year,   1,  15);
   set_holiday(Q4_TAXES,     1,  gd);
   gd = tax_day(this_year,   10, 15);
   set_holiday(FINAL_TAXES,  10, gd);

   // calculate approximate Islamic holidays (approximate since they can only
   // be offically determined by visual observation of the crescent moon)
   if(get_islam_day(this_year, 1, 1)) {    // Al-Hijra - new year
      set_holiday(AL_HIJRA, g_month, g_day);
   }

   if(get_islam_day(this_year, 1, 10)) {   // Asura
      set_holiday(ASURA, g_month, g_day);
   }

   if(get_islam_day(this_year, 9, 1)) {    // Ramadan - new year
      set_holiday(RAMADAN, g_month, g_day);
   }

   if(get_islam_day(this_year, 12, 10)) {  // Eid al Addha
      set_holiday(EID, g_month, g_day);
   }

   // calculate some jewish holidays
   rosh = rosh_jd(this_year);        // our reference is Rosh Hashahna 
                                     // once you know Rosh Hashahna,  all is revealed

   gregorian(0, rosh-1.0);              // Rosh Hashahna (party starts the night before)
   set_holiday(ROSH, g_month, g_day);

   gregorian(0, rosh+9.0-1.0);          // Yom Kipper is nine days after Rosh Hashanah
   set_holiday(YOM, g_month, g_day);

   po = rosh - 29.0 - 30.0 - 29.0 - 30.0 - 29.0 - 30.0;  // Julian date of Nisan 1
   purim = po - 29.0 + 13.0;   // Purim is Adar 14

   purim -= 1.0;               // start observance the night before
   gregorian(0, purim);
   set_holiday(PURIM, g_month, g_day);

   po += 14.0;                 // Passover is Nisan 15
   po -= 1.0;                  // but starts the night before
   gregorian(0, po);              // convert Julian passover to Gregorian terms
   set_holiday(PASSOVER, g_month, g_day);

   rosh += 30.0 + 29.0 + 24.0;   // Hanukkah is Kislev 25
   rosh -= 1.0;                  // start observance the night before
   gregorian(0, rosh);
   set_holiday(HANUKKAH, g_month, g_day);

   t = jtimes[9] + 14.0 - 1.0;   // 15 Tishrei
// rosh -= 1.0;                  // start observance the night before
   gregorian(0, t);
   set_holiday(SUKKOT, g_month, g_day);

   t = jtimes[5] + 5.0 - 1.0;    // 6 Sivan
// rosh -= 1.0;                  // start observance the night before
   gregorian(0, t);
   set_holiday(SHAVUOT, g_month, g_day);

// get_mayan_date();  // Mayan Tzolkin new year
// t = (360 - ((uinal * 20) + kin)) % 360;
// t += jdate(pri_year, pri_month, pri_day);
// gregorian(0, t);
// set_holiday(MAYAN_NY, g_month, g_day);

   t = jdate(2010,5,27);      // t = known Tzolkin new year
   t += (MAYAN_CORR-mayan_correlation);
   gregorian(0, jd_local);
   po = jdate(g_year,g_month,g_day);  // today
   m_year = 2010;
   while(m_year <= (this_year+2)) {  // find Mayan Tzolkin new year that starts on or after today
      if(t >= po) break;
      t += 260.0;
      ++m_year;
   }
   gregorian(0, t);
   set_holiday(MAYAN_NY, g_month, g_day);

   t = jdate(2012, 12, 20);
   t += (MAYAN_CORR-mayan_correlation);
   gregorian(0, t);
   if(g_year == this_year) set_holiday(DOOMSDAY, g_month, g_day);
   else                    set_holiday(DOOMSDAY, 0, 0);

   t = jdate(2009,10,7);      // t = known Aztec new year
   t += (double) aztec_epoch;
   gregorian(0, jd_local);
   po = jdate(g_year,g_month,g_day);  // today
   g_year = 2009;
   while(g_year <= (this_year+2)) {   // find Aztec new year that starts on or after today
      if(t >= po) break;
      t += 365.0;
      ++g_year;
   }
   gregorian(0, t);
   set_holiday(AZTEC_NY, g_month, g_day);

   if(this_year == 2038) set_holiday(UNIX_CLOCK, 1, 18);
   else                  set_holiday(UNIX_CLOCK, 0, 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movsd 0x2a0cb8(%rip), %xmm0   # 0x3d9ce8
callq 0x139c90
leaq 0x23384c(%rip), %rax    # 0x36c888
movl (%rax), %edx
leaq 0x233847(%rip), %rax    # 0x36c88c
movl (%rax), %ecx
leaq 0x2a0f42(%rip), %rdi    # 0x3d9f90
leaq 0x5e812(%rip), %rsi     # 0x197867
leaq 0x2623a4(%rip), %r8     # 0x39b400
movb $0x0, %al
callq 0x9060
leaq 0x233812(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x23380d(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x64, %edi
callq 0x138e90
movl %eax, -0x10(%rbp)
cmpl $0x0, -0x10(%rbp)
jl 0x1390a5
movslq -0x10(%rbp), %rcx
leaq 0x90dcd(%rip), %rax     # 0x1c9e60
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
leaq 0x2a0eef(%rip), %rcx    # 0x3d9f90
movq %rcx, 0x10(%rax)
movsd 0x2a0c43(%rip), %xmm0   # 0x3d9cf0
callq 0x139c90
leaq 0x2337cf(%rip), %rax    # 0x36c888
movl (%rax), %edx
leaq 0x2337ca(%rip), %rax    # 0x36c88c
movl (%rax), %ecx
leaq 0x2a0f15(%rip), %rdi    # 0x3d9fe0
leaq 0x5e7bd(%rip), %rsi     # 0x19788f
leaq 0x262327(%rip), %r8     # 0x39b400
movb $0x0, %al
callq 0x9060
leaq 0x233795(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233790(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x65, %edi
callq 0x138e90
movl %eax, -0x10(%rbp)
cmpl $0x0, -0x10(%rbp)
jl 0x139122
movslq -0x10(%rbp), %rcx
leaq 0x90d50(%rip), %rax     # 0x1c9e60
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
leaq 0x2a0ec2(%rip), %rcx    # 0x3d9fe0
movq %rcx, 0x10(%rax)
movsd 0x2a0bce(%rip), %xmm0   # 0x3d9cf8
callq 0x139c90
leaq 0x233752(%rip), %rax    # 0x36c888
movl (%rax), %edx
leaq 0x23374d(%rip), %rax    # 0x36c88c
movl (%rax), %ecx
leaq 0x2a0ee8(%rip), %rdi    # 0x3da030
leaq 0x5e768(%rip), %rsi     # 0x1978b7
leaq 0x2622aa(%rip), %r8     # 0x39b400
movb $0x0, %al
callq 0x9060
leaq 0x233718(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233713(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x66, %edi
callq 0x138e90
movl %eax, -0x10(%rbp)
cmpl $0x0, -0x10(%rbp)
jl 0x13919f
movslq -0x10(%rbp), %rcx
leaq 0x90cd3(%rip), %rax     # 0x1c9e60
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
leaq 0x2a0e95(%rip), %rcx    # 0x3da030
movq %rcx, 0x10(%rax)
movsd 0x2a0b59(%rip), %xmm0   # 0x3d9d00
callq 0x139c90
leaq 0x2336d5(%rip), %rax    # 0x36c888
movl (%rax), %edx
leaq 0x2336d0(%rip), %rax    # 0x36c88c
movl (%rax), %ecx
leaq 0x2a0ebb(%rip), %rdi    # 0x3da080
leaq 0x5e713(%rip), %rsi     # 0x1978df
leaq 0x26222d(%rip), %r8     # 0x39b400
movb $0x0, %al
callq 0x9060
leaq 0x23369b(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233696(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x67, %edi
callq 0x138e90
movl %eax, -0x10(%rbp)
cmpl $0x0, -0x10(%rbp)
jl 0x13921c
movslq -0x10(%rbp), %rcx
leaq 0x90c56(%rip), %rax     # 0x1c9e60
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
leaq 0x2a0e68(%rip), %rcx    # 0x3da080
movq %rcx, 0x10(%rax)
callq 0x138be0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x2334c7(%rip), %rax    # 0x36c700
movl (%rax), %eax
movl $0xc, %ecx
cltd
idivl %ecx
movslq %edx, %rcx
leaq 0x92e63(%rip), %rax     # 0x1cc0b0
movq (%rax,%rcx,8), %rdx
leaq 0x2a0e78(%rip), %rdi    # 0x3da0d0
leaq 0x5e6a8(%rip), %rsi     # 0x197907
movb $0x0, %al
callq 0x9060
leaq 0x23360f(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x23360a(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x7b, %edi
callq 0x138e90
movl %eax, -0x10(%rbp)
cmpl $0x0, -0x10(%rbp)
jl 0x1392a8
movslq -0x10(%rbp), %rcx
leaq 0x90bca(%rip), %rax     # 0x1c9e60
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
leaq 0x2a0e2c(%rip), %rcx    # 0x3da0d0
movq %rcx, 0x10(%rax)
leaq 0x233451(%rip), %rax    # 0x36c700
movl (%rax), %edi
callq 0x146ef0
callq 0x134050
cmpl $0x0, %eax
jne 0x13936c
leaq 0x233435(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl 0x2a0999(%rip), %esi    # 0x3d9c6c
movl 0x2a098f(%rip), %edx    # 0x3d9c68
callq 0x122140
movsd 0x35d82(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x23357a(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233575(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x6a, %edi
callq 0x138e90
leaq 0x2333e2(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl 0x2a094e(%rip), %esi    # 0x3d9c74
movl 0x2a0944(%rip), %edx    # 0x3d9c70
callq 0x122140
movsd 0x35d2f(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x233527(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233522(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x6b, %edi
callq 0x138e90
jmp 0x13938e
movl $0x6a, %edi
movl $0x3, %esi
xorl %edx, %edx
callq 0x138e90
movl $0x6b, %edi
movl $0xb, %esi
xorl %edx, %edx
callq 0x138e90
leaq 0x23336b(%rip), %rax    # 0x36c700
movl (%rax), %ecx
movl $0x1, %esi
movl $0x9, %edx
movl %esi, %edi
callq 0x132ae0
movl %eax, -0xc(%rbp)
leaq 0x23334e(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl -0xc(%rbp), %edx
movl $0x9, %esi
callq 0x122140
movsd 0x49ca7(%rip), %xmm1    # 0x183070
addsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x233497(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233492(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x70, %edi
callq 0x138e90
leaq 0x2332ff(%rip), %rax    # 0x36c700
movl (%rax), %ecx
movl $0x1, %esi
movl $0xb, %edx
movl %esi, %edi
callq 0x132ae0
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %edx
movl $0x69, %edi
movl $0xb, %esi
callq 0x138e90
leaq 0x2332cd(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0x4, %esi
movl $0xf, %edx
callq 0x148350
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %edx
movl $0x68, %edi
movl $0x4, %esi
callq 0x138e90
leaq 0x2332a0(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0x6, %esi
movl $0xf, %edx
callq 0x148350
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %edx
movl $0x82, %edi
movl $0x6, %esi
callq 0x138e90
leaq 0x233273(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0x9, %esi
movl $0xf, %edx
callq 0x148350
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %edx
movl $0x83, %edi
movl $0x9, %esi
callq 0x138e90
leaq 0x233246(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0x1, %esi
movl $0xf, %edx
callq 0x148350
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %edx
movl $0x81, %edi
movl $0x1, %esi
callq 0x138e90
leaq 0x233219(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0xa, %esi
movl $0xf, %edx
callq 0x148350
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %edx
movl $0x84, %edi
movl $0xa, %esi
callq 0x138e90
leaq 0x2331ec(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0x1, %edx
movl %edx, %esi
callq 0x147a90
cmpl $0x0, %eax
je 0x139543
leaq 0x23334e(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233349(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x77, %edi
callq 0x138e90
leaq 0x2331b6(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0x1, %esi
movl $0xa, %edx
callq 0x147a90
cmpl $0x0, %eax
je 0x13957c
leaq 0x233315(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233310(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x78, %edi
callq 0x138e90
leaq 0x23317d(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0x9, %esi
movl $0x1, %edx
callq 0x147a90
cmpl $0x0, %eax
je 0x1395b5
leaq 0x2332dc(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x2332d7(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x79, %edi
callq 0x138e90
leaq 0x233144(%rip), %rax    # 0x36c700
movl (%rax), %edi
movl $0xc, %esi
movl $0xa, %edx
callq 0x147a90
cmpl $0x0, %eax
je 0x1395ee
leaq 0x2332a3(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x23329e(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x7a, %edi
callq 0x138e90
leaq 0x23310b(%rip), %rax    # 0x36c700
movl (%rax), %edi
callq 0x147110
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
movsd 0x35a5a(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x23325c(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233257(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x71, %edi
callq 0x138e90
movsd 0x49613(%rip), %xmm0    # 0x182c50
addsd -0x18(%rbp), %xmm0
movsd 0x35a1e(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x233220(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x23321b(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x72, %edi
callq 0x138e90
movsd -0x18(%rbp), %xmm0
movsd 0x5509a(%rip), %xmm1    # 0x18e718
subsd %xmm1, %xmm0
movsd 0x37ff6(%rip), %xmm1    # 0x171680
subsd %xmm1, %xmm0
movsd 0x55082(%rip), %xmm1    # 0x18e718
subsd %xmm1, %xmm0
movsd 0x37fde(%rip), %xmm1    # 0x171680
subsd %xmm1, %xmm0
movsd 0x5506a(%rip), %xmm1    # 0x18e718
subsd %xmm1, %xmm0
movsd 0x37fc6(%rip), %xmm1    # 0x171680
subsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
movsd 0x55048(%rip), %xmm1    # 0x18e718
subsd %xmm1, %xmm0
movsd 0x54cc4(%rip), %xmm1    # 0x18e3a0
addsd %xmm1, %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x28(%rbp), %xmm0
movsd 0x35976(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x28(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x23316e(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233169(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x75, %edi
callq 0x138e90
movsd 0x54fdd(%rip), %xmm0    # 0x18e708
addsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
movsd 0x35926(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x23311e(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233119(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x73, %edi
callq 0x138e90
movsd 0x54f95(%rip), %xmm0    # 0x18e710
addsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
movsd 0x358d6(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x2330ce(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x2330c9(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x74, %edi
callq 0x138e90
movsd 0x54f3d(%rip), %xmm0    # 0x18e708
addsd 0x2a0995(%rip), %xmm0   # 0x3da168
movsd 0x3588d(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x233085(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233080(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x7f, %edi
callq 0x138e90
movsd 0x3594c(%rip), %xmm0    # 0x16f160
addsd 0x2a092c(%rip), %xmm0   # 0x3da148
movsd 0x35844(%rip), %xmm1    # 0x16f068
subsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x23303c(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x233037(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x80, %edi
callq 0x138e90
movl $0x7da, %edi            # imm = 0x7DA
movl $0x5, %esi
movl $0x1b, %edx
callq 0x122140
movsd %xmm0, -0x8(%rbp)
movl $0x8ea5b, %eax          # imm = 0x8EA5B
leaq 0x140d9e(%rip), %rcx    # 0x27a618
subq (%rcx), %rax
cvtsi2sd %rax, %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
leaq 0x232e95(%rip), %rax    # 0x36c728
movsd (%rax), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x232fdf(%rip), %rax    # 0x36c884
movl (%rax), %edi
leaq 0x232fce(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x232fc9(%rip), %rax    # 0x36c880
movl (%rax), %edx
callq 0x122140
movsd %xmm0, -0x20(%rbp)
movl $0x7da, -0x2c(%rbp)     # imm = 0x7DA
movl -0x2c(%rbp), %eax
leaq 0x232e2c(%rip), %rcx    # 0x36c700
movl (%rcx), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jg 0x139908
movsd -0x8(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
jb 0x1398eb
jmp 0x139908
movsd 0x54e2d(%rip), %xmm0    # 0x18e720
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x1398ca
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x232f61(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x232f5c(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x7c, %edi
callq 0x138e90
movl $0x7dc, %edi            # imm = 0x7DC
movl $0xc, %esi
movl $0x14, %edx
callq 0x122140
movsd %xmm0, -0x8(%rbp)
movl $0x8ea5b, %eax          # imm = 0x8EA5B
leaq 0x140cc3(%rip), %rcx    # 0x27a618
subq (%rcx), %rax
cvtsi2sd %rax, %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x232f0a(%rip), %rax    # 0x36c884
movl (%rax), %eax
leaq 0x232d7d(%rip), %rcx    # 0x36c700
cmpl (%rcx), %eax
jne 0x1399a5
leaq 0x232eee(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x232ee9(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x7e, %edi
callq 0x138e90
jmp 0x1399b3
movl $0x7e, %edi
xorl %edx, %edx
movl %edx, %esi
callq 0x138e90
movl $0x7d9, %edi            # imm = 0x7D9
movl $0xa, %esi
movl $0x7, %edx
callq 0x122140
movsd %xmm0, -0x8(%rbp)
leaq 0x140c4d(%rip), %rax    # 0x27a620
cvtsi2sdq (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
leaq 0x232d3f(%rip), %rax    # 0x36c728
movsd (%rax), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x232e89(%rip), %rax    # 0x36c884
movl (%rax), %edi
leaq 0x232e78(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x232e73(%rip), %rax    # 0x36c880
movl (%rax), %edx
callq 0x122140
movsd %xmm0, -0x20(%rbp)
leaq 0x232e64(%rip), %rax    # 0x36c884
movl $0x7d9, (%rax)          # imm = 0x7D9
leaq 0x232e57(%rip), %rax    # 0x36c884
movl (%rax), %eax
leaq 0x232cca(%rip), %rcx    # 0x36c700
movl (%rcx), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jg 0x139a76
movsd -0x8(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
jb 0x139a4d
jmp 0x139a76
movsd 0x54cd3(%rip), %xmm0    # 0x18e728
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
leaq 0x232e1e(%rip), %rax    # 0x36c884
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x232e12(%rip), %rax    # 0x36c884
movl %ecx, (%rax)
jmp 0x139a26
movsd -0x8(%rbp), %xmm0
xorl %edi, %edi
callq 0x11dd00
leaq 0x232df3(%rip), %rax    # 0x36c87c
movl (%rax), %esi
leaq 0x232dee(%rip), %rax    # 0x36c880
movl (%rax), %edx
movl $0x7d, %edi
callq 0x138e90
leaq 0x232c5b(%rip), %rax    # 0x36c700
cmpl $0x7f6, (%rax)          # imm = 0x7F6
jne 0x139ac3
movl $0x85, %edi
movl $0x1, %esi
movl $0x12, %edx
callq 0x138e90
jmp 0x139ad1
movl $0x85, %edi
xorl %edx, %edx
movl %edx, %esi
callq 0x138e90
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)