// File: /workspace/github_cpp_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movsd 0x296510(%rip), %xmm0   # 0x37aa88
callq 0xe55e3
leaq 0x229124(%rip), %r13    # 0x30d6a8
movl (%r13), %edx
leaq 0x22911d(%rip), %r15    # 0x30d6ac
movl (%r15), %ecx
leaq 0x296797(%rip), %rbx    # 0x37ad30
leaq 0x50645(%rip), %rsi     # 0x134be5
leaq 0x257c79(%rip), %r8     # 0x33c220
xorl %r12d, %r12d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2290e1(%rip), %rax    # 0x30d69c
movl (%rax), %eax
leaq 0x2290dc(%rip), %rcx    # 0x30d6a0
movl (%rcx), %ecx
leaq 0x8688b(%rip), %rdx     # 0x16ae58
cmpl $0x64, -0x8(%rdx)
je 0xe45eb
incq %r12
addq $0x18, %rdx
cmpq $0x16e, %r12            # imm = 0x16E
jne 0xe45cd
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
jmp 0xe45f5
cmpl $0x0, (%rdx)
je 0xe45f5
movl %eax, (%rdx)
movl %ecx, -0x4(%rdx)
leaq 0x86854(%rip), %r14     # 0x16ae50
testl %r12d, %r12d
js 0xe460d
movl %r12d, %eax
leaq (%rax,%rax,2), %rax
movq %rbx, 0x10(%r14,%rax,8)
movsd 0x29647b(%rip), %xmm0   # 0x37aa90
callq 0xe55e3
movl (%r13), %edx
movl (%r15), %ecx
leaq 0x296758(%rip), %rbx    # 0x37ad80
leaq 0x505de(%rip), %rsi     # 0x134c0d
leaq 0x257bea(%rip), %r8     # 0x33c220
xorl %r12d, %r12d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x229052(%rip), %rax    # 0x30d69c
movl (%rax), %eax
leaq 0x22904d(%rip), %rcx    # 0x30d6a0
movl (%rcx), %ecx
leaq 0x867fc(%rip), %rdx     # 0x16ae58
cmpl $0x65, -0x8(%rdx)
je 0xe467a
incq %r12
addq $0x18, %rdx
cmpq $0x16e, %r12            # imm = 0x16E
jne 0xe465c
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
jmp 0xe4684
cmpl $0x0, (%rdx)
je 0xe4684
movl %eax, (%rdx)
movl %ecx, -0x4(%rdx)
testl %r12d, %r12d
js 0xe4695
movl %r12d, %eax
leaq (%rax,%rax,2), %rax
movq %rbx, 0x10(%r14,%rax,8)
movsd 0x2963fb(%rip), %xmm0   # 0x37aa98
callq 0xe55e3
movl (%r13), %edx
movl (%r15), %ecx
leaq 0x296720(%rip), %rbx    # 0x37add0
leaq 0x5057e(%rip), %rsi     # 0x134c35
leaq 0x257b62(%rip), %r8     # 0x33c220
xorl %r12d, %r12d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x228fca(%rip), %rax    # 0x30d69c
movl (%rax), %eax
leaq 0x228fc5(%rip), %rcx    # 0x30d6a0
movl (%rcx), %ecx
leaq 0x86774(%rip), %rdx     # 0x16ae58
cmpl $0x66, -0x8(%rdx)
je 0xe4702
incq %r12
addq $0x18, %rdx
cmpq $0x16e, %r12            # imm = 0x16E
jne 0xe46e4
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
jmp 0xe470c
cmpl $0x0, (%rdx)
je 0xe470c
movl %eax, (%rdx)
movl %ecx, -0x4(%rdx)
testl %r12d, %r12d
js 0xe471d
movl %r12d, %eax
leaq (%rax,%rax,2), %rax
movq %rbx, 0x10(%r14,%rax,8)
movsd 0x29637b(%rip), %xmm0   # 0x37aaa0
callq 0xe55e3
movl (%r13), %edx
movl (%r15), %ecx
leaq 0x2966e8(%rip), %rbx    # 0x37ae20
leaq 0x5051e(%rip), %rsi     # 0x134c5d
leaq 0x257ada(%rip), %r8     # 0x33c220
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x228f42(%rip), %r12    # 0x30d69c
movl (%r12), %eax
leaq 0x228f3b(%rip), %r13    # 0x30d6a0
movl (%r13), %ecx
leaq 0x866e8(%rip), %rdx     # 0x16ae58
cmpl $0x67, -0x8(%rdx)
je 0xe478e
incq %r15
addq $0x18, %rdx
cmpq $0x16e, %r15            # imm = 0x16E
jne 0xe4770
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0xe4798
cmpl $0x0, (%rdx)
je 0xe4798
movl %eax, (%rdx)
movl %ecx, -0x4(%rdx)
testl %r15d, %r15d
js 0xe47a9
movl %r15d, %eax
leaq (%rax,%rax,2), %rax
movq %rbx, 0x10(%r14,%rax,8)
callq 0xe42f3
xorl %r15d, %r15d
xorl %edi, %edi
callq 0xd0c46
leaq 0x228d61(%rip), %rax    # 0x30d520
movslq (%rax), %rax
imulq $0x2aaaaaab, %rax, %rcx # imm = 0x2AAAAAAB
movq %rcx, %rdx
shrq $0x3f, %rdx
shrq $0x21, %rcx
addl %edx, %ecx
shll $0x2, %ecx
leal (%rcx,%rcx,2), %ecx
subl %ecx, %eax
cltq
leaq 0x888b9(%rip), %rcx     # 0x16d0a0
movq (%rcx,%rax,8), %rdx
leaq 0x29667e(%rip), %rbx    # 0x37ae70
leaq 0x5048c(%rip), %rsi     # 0x134c85
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
movl (%r12), %eax
movl (%r13), %ecx
leaq 0x86646(%rip), %rdx     # 0x16ae58
cmpl $0x7b, -0x8(%rdx)
je 0xe4830
incq %r15
addq $0x18, %rdx
cmpq $0x16e, %r15            # imm = 0x16E
jne 0xe4812
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0xe483a
cmpl $0x0, (%rdx)
je 0xe483a
movl %eax, (%rdx)
movl %ecx, -0x4(%rdx)
testl %r15d, %r15d
js 0xe484b
movl %r15d, %eax
leaq (%rax,%rax,2), %rax
movq %rbx, 0x10(%r14,%rax,8)
leaq 0x228cce(%rip), %r15    # 0x30d520
movl (%r15), %edi
callq 0xedbb1
callq 0xe0cb0
testl %eax, %eax
je 0xe487e
movl $0x8, %eax
cmpl $0x6a, -0x8(%rax,%r14)
je 0xe48c5
addq $0x18, %rax
cmpq $0x2258, %rax           # imm = 0x2258
jne 0xe4868
jmp 0xe48db
movl (%r15), %edi
movl 0x29617d(%rip), %esi    # 0x37aa04
movl 0x296173(%rip), %edx    # 0x37aa00
callq 0xd4110
addsd 0x2485e(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x6a, -0x8(%rdx,%r14)
je 0xe490b
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe48ae
jmp 0xe491b
cmpl $0x0, (%rax,%r14)
je 0xe48db
movabsq $0x300000000, %rcx      # imm = 0x300000000
movq %rcx, -0x4(%rax,%r14)
leaq 0x86576(%rip), %rax     # 0x16ae58
xorl %ebx, %ebx
cmpl $0x6b, -0x8(%rax)
je 0xe48fc
incq %rbx
addq $0x18, %rax
cmpq $0x16e, %rbx            # imm = 0x16E
jne 0xe48e4
jmp 0xe4977
cmpl $0x0, (%rax)
je 0xe4977
movl $0xb, (%rax)
xorl %eax, %eax
jmp 0xe496e
cmpl $0x0, (%rdx,%r14)
je 0xe491b
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r15), %edi
movl 0x2960e8(%rip), %esi    # 0x37aa0c
movl 0x2960de(%rip), %edx    # 0x37aa08
callq 0xd4110
addsd 0x247c1(%rip), %xmm0    # 0x1090f8
xorl %ebx, %ebx
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %ecx
movl (%r13), %eax
leaq 0x86509(%rip), %rdx     # 0x16ae58
cmpl $0x6b, -0x8(%rdx)
je 0xe4967
incq %rbx
addq $0x18, %rdx
cmpq $0x16e, %rbx            # imm = 0x16E
jne 0xe494f
jmp 0xe4977
cmpl $0x0, (%rdx)
je 0xe4977
movl %ecx, (%rdx)
leaq (%rbx,%rbx,2), %rcx
movl %eax, 0x4(%r14,%rcx,8)
movl (%r15), %ecx
movl $0x1, %edi
movl $0x1, %esi
movl $0x9, %edx
callq 0xdfd9e
movl %eax, %ecx
movslq (%r15), %rsi
movabsq $-0x5c28f5c28f5c28f5, %rdi # imm = 0xA3D70A3D70A3D70B
movq %rsi, %rax
imulq %rdi
addq %rsi, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
addq %rax, %rdx
imulq $-0x64, %rdx, %rax
addq %rsi, %rax
imulq $0x23ab1, %rdx, %rdx    # imm = 0x23AB1
leaq 0x3(%rdx), %r8
testq %rdx, %rdx
cmovnsq %rdx, %r8
sarq $0x2, %r8
imulq $0x8ead, %rax, %rsi     # imm = 0x8EAD
movq %rsi, %rax
imulq %rdi
addq %rsi, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
xorps %xmm0, %xmm0
cvtsi2sd %r8, %xmm0
addsd 0x46d0c(%rip), %xmm0    # 0x12b708
addq %rax, %rdx
cvtsi2sd %rdx, %xmm1
addsd %xmm0, %xmm1
addsd 0x47120(%rip), %xmm1    # 0x12bb30
xorps %xmm0, %xmm0
cvtsi2sd %ecx, %xmm0
addsd %xmm1, %xmm0
addsd 0x39ccd(%rip), %xmm0    # 0x11e6f0
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x70, -0x8(%rdx,%r14)
je 0xe4a4e
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4a37
jmp 0xe4a5e
cmpl $0x0, (%rdx,%r14)
je 0xe4a5e
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r15), %ecx
movl $0x1, %edi
movl $0x1, %esi
movl $0xb, %edx
callq 0xdfd9e
incl %eax
movl $0x8, %ecx
cmpl $0x69, -0x8(%rcx,%r14)
je 0xe4a93
addq $0x18, %rcx
cmpq $0x2258, %rcx           # imm = 0x2258
jne 0xe4a7c
jmp 0xe4aa7
cmpl $0x0, (%rcx,%r14)
je 0xe4aa7
movl $0xb, (%rcx,%r14)
movl %eax, -0x4(%rcx,%r14)
movslq (%r15), %rdi
leal 0x3(%rdi), %ecx
testl %edi, %edi
cmovnsl %edi, %ecx
sarl $0x2, %ecx
imulq $-0x51eb851f, %rdi, %rax # imm = 0xAE147AE1
movq %rax, %rdx
shrq $0x3f, %rdx
shrq $0x20, %rax
sarl $0x5, %eax
addl %edx, %eax
imulq $0x51eb851f, %rdi, %rdx # imm = 0x51EB851F
movq %rdx, %rsi
shrq $0x3f, %rsi
shrq $0x20, %rdx
sarl $0x7, %edx
addl %esi, %edx
addl %edi, %ecx
addl %eax, %ecx
leal (%rcx,%rdx), %eax
addl $0xf, %eax
leal (%rcx,%rdx), %esi
addl $0x14, %esi
addl %edx, %ecx
movslq %esi, %rdx
imulq $-0x6db6db6d, %rdx, %rdx # imm = 0x92492493
shrq $0x20, %rdx
addl %ecx, %edx
addl $0x14, %edx
movl %edx, %esi
shrl $0x1f, %esi
sarl $0x2, %edx
addl %esi, %edx
leal (,%rdx,8), %esi
subl %esi, %edx
addl %edx, %ecx
addl $0x14, %ecx
xorl %edx, %edx
cmpl $0x1, %ecx
adcl $0xf, %edx
cmpl $0x6, %ecx
movl $0x11, %ecx
cmovnel %edx, %ecx
movl $0x8, %edx
cmpl $0x68, -0x8(%rdx,%r14)
je 0xe4b4f
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4b38
jmp 0xe4b63
cmpl $0x0, (%rdx,%r14)
je 0xe4b63
movl $0x4, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
leal 0x3(%rax), %ecx
movslq %ecx, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
addl $0x3, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
leal (,%rcx,8), %edx
subl %edx, %ecx
addl %eax, %ecx
addl $0x3, %ecx
xorl %edx, %edx
cmpl $0x1, %ecx
adcl $0xf, %edx
cmpl $0x6, %ecx
movl $0x11, %ecx
cmovnel %edx, %ecx
movl $0x8, %edx
cmpl $0x82, -0x8(%rdx,%r14)
je 0xe4bc3
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4ba9
jmp 0xe4bd7
cmpl $0x0, (%rdx,%r14)
je 0xe4bd7
movl $0x6, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
leal 0x4(%rax), %ecx
movslq %ecx, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
addl $0x4, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
leal (,%rcx,8), %edx
subl %edx, %ecx
addl %eax, %ecx
addl $0x4, %ecx
xorl %edx, %edx
cmpl $0x1, %ecx
adcl $0xf, %edx
cmpl $0x6, %ecx
movl $0x11, %ecx
cmovnel %edx, %ecx
movl $0x8, %edx
cmpl $0x83, -0x8(%rdx,%r14)
je 0xe4c37
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4c1d
jmp 0xe4c4b
cmpl $0x0, (%rdx,%r14)
je 0xe4c4b
movl $0x9, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
leal -0x1(%rdi), %edx
leal 0x2(%rdi), %ecx
testl %edx, %edx
cmovnsl %edx, %ecx
sarl $0x2, %ecx
movslq %edx, %rdx
imulq $-0x51eb851f, %rdx, %rsi # imm = 0xAE147AE1
movq %rsi, %r8
shrq $0x3f, %r8
shrq $0x20, %rsi
sarl $0x5, %esi
addl %r8d, %esi
imulq $0x51eb851f, %rdx, %rdx # imm = 0x51EB851F
movq %rdx, %r8
shrq $0x3f, %r8
shrq $0x20, %rdx
sarl $0x7, %edx
addl %r8d, %edx
addl %edi, %ecx
addl %esi, %ecx
leal (%rcx,%rdx), %esi
addl $0xe, %esi
addl %edx, %ecx
movslq %esi, %rdx
imulq $-0x6db6db6d, %rdx, %rdx # imm = 0x92492493
shrq $0x20, %rdx
addl %ecx, %edx
addl $0xe, %edx
movl %edx, %esi
shrl $0x1f, %esi
sarl $0x2, %edx
addl %esi, %edx
leal (,%rdx,8), %esi
subl %esi, %edx
addl %edx, %ecx
addl $0xe, %ecx
xorl %edx, %edx
cmpl $0x1, %ecx
adcl $0xf, %edx
cmpl $0x6, %ecx
movl $0x11, %ecx
cmovnel %edx, %ecx
movl $0x8, %edx
cmpl $0x81, -0x8(%rdx,%r14)
je 0xe4cf5
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4cdb
jmp 0xe4d09
cmpl $0x0, (%rdx,%r14)
je 0xe4d09
movl $0x1, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl %eax, %ecx
addl $0x6, %ecx
movslq %ecx, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
addl $0x6, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
leal (,%rcx,8), %edx
subl %edx, %ecx
addl %ecx, %eax
addl $0x6, %eax
xorl %ecx, %ecx
cmpl $0x1, %eax
adcl $0xf, %ecx
cmpl $0x6, %eax
movl $0x11, %eax
cmovnel %ecx, %eax
movl $0x8, %ecx
cmpl $0x84, -0x8(%rcx,%r14)
je 0xe4d6b
addq $0x18, %rcx
cmpq $0x2258, %rcx           # imm = 0x2258
jne 0xe4d51
jmp 0xe4d7f
cmpl $0x0, (%rcx,%r14)
je 0xe4d7f
movl $0xa, (%rcx,%r14)
movl %eax, -0x4(%rcx,%r14)
movl $0x1, %esi
movl $0x1, %edx
callq 0xee548
testl %eax, %eax
je 0xe4dc6
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x77, -0x8(%rdx,%r14)
je 0xe4db6
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4d9f
jmp 0xe4dc6
cmpl $0x0, (%rdx,%r14)
je 0xe4dc6
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r15), %edi
movl $0x1, %esi
movl $0xa, %edx
callq 0xee548
testl %eax, %eax
je 0xe4e10
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x78, -0x8(%rdx,%r14)
je 0xe4e00
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4de9
jmp 0xe4e10
cmpl $0x0, (%rdx,%r14)
je 0xe4e10
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r15), %edi
movl $0x9, %esi
movl $0x1, %edx
callq 0xee548
testl %eax, %eax
je 0xe4e5a
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x79, -0x8(%rdx,%r14)
je 0xe4e4a
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4e33
jmp 0xe4e5a
cmpl $0x0, (%rdx,%r14)
je 0xe4e5a
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r15), %edi
movl $0xc, %esi
movl $0xa, %edx
callq 0xee548
testl %eax, %eax
je 0xe4ea4
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x7a, -0x8(%rdx,%r14)
je 0xe4e94
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4e7d
jmp 0xe4ea4
cmpl $0x0, (%rdx,%r14)
je 0xe4ea4
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r15), %edi
callq 0xede89
movapd %xmm0, %xmm1
movsd 0x24240(%rip), %xmm0    # 0x1090f8
movsd %xmm1, -0x30(%rbp)
addsd %xmm1, %xmm0
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x71, -0x8(%rdx,%r14)
je 0xe4eec
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4ed5
jmp 0xe4efc
cmpl $0x0, (%rdx,%r14)
je 0xe4efc
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd 0x39854(%rip), %xmm0    # 0x11e758
addsd -0x30(%rbp), %xmm0
addsd 0x241e7(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x72, -0x8(%rdx,%r14)
je 0xe4f3c
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4f25
jmp 0xe4f4c
cmpl $0x0, (%rdx,%r14)
je 0xe4f4c
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd 0x46be4(%rip), %xmm0    # 0x12bb38
movsd -0x30(%rbp), %xmm2
addsd %xmm0, %xmm2
movsd 0x46bdb(%rip), %xmm1    # 0x12bb40
addsd %xmm1, %xmm2
addsd %xmm0, %xmm2
addsd %xmm1, %xmm2
addsd %xmm0, %xmm2
addsd %xmm1, %xmm2
movsd %xmm2, -0x38(%rbp)
addsd %xmm2, %xmm0
addsd 0x46906(%rip), %xmm0    # 0x12b890
addsd 0x24166(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x75, -0x8(%rdx,%r14)
je 0xe4fbd
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4fa6
jmp 0xe4fcd
cmpl $0x0, (%rdx,%r14)
je 0xe4fcd
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd -0x38(%rbp), %xmm0
addsd 0x46b6e(%rip), %xmm0    # 0x12bb48
addsd 0x24116(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x73, -0x8(%rdx,%r14)
je 0xe500d
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe4ff6
jmp 0xe501d
cmpl $0x0, (%rdx,%r14)
je 0xe501d
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd -0x30(%rbp), %xmm0
addsd 0x46b26(%rip), %xmm0    # 0x12bb50
addsd 0x240c6(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x74, -0x8(%rdx,%r14)
je 0xe505d
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5046
jmp 0xe506d
cmpl $0x0, (%rdx,%r14)
je 0xe506d
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd 0x295e93(%rip), %xmm0   # 0x37af08
addsd 0x46acb(%rip), %xmm0    # 0x12bb48
addsd 0x24073(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x7f, -0x8(%rdx,%r14)
je 0xe50b0
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5099
jmp 0xe50c0
cmpl $0x0, (%rdx,%r14)
je 0xe50c0
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd 0x295e20(%rip), %xmm0   # 0x37aee8
addsd 0x24068(%rip), %xmm0    # 0x109138
addsd 0x24020(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x80, -0x8(%rdx,%r14)
je 0xe5106
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe50ec
jmp 0xe5116
cmpl $0x0, (%rdx,%r14)
je 0xe5116
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
leaq 0x13631b(%rip), %r13    # 0x21b438
movl $0x8ea5b, %eax          # imm = 0x8EA5B
subq (%r13), %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
addsd 0x46a22(%rip), %xmm0    # 0x12bb58
movsd %xmm0, -0x30(%rbp)
leaq 0x228406(%rip), %r15    # 0x30d548
movsd (%r15), %xmm0
xorl %edi, %edi
callq 0xd0c46
leaq 0x22854f(%rip), %rbx    # 0x30d6a4
movl (%rbx), %edi
movl (%r12), %esi
leaq 0x22853e(%rip), %rax    # 0x30d6a0
movl (%rax), %edx
callq 0xd4110
leaq 0x2283b0(%rip), %rax    # 0x30d520
movl (%rax), %eax
cmpl $0x7d8, %eax            # imm = 0x7D8
jl 0xe51a6
movsd -0x30(%rbp), %xmm2
ucomisd %xmm0, %xmm2
jae 0xe51ab
addl $0x2, %eax
movl $0x7da, %ecx            # imm = 0x7DA
movsd 0x469cc(%rip), %xmm1    # 0x12bb60
addsd %xmm1, %xmm2
cmpl %eax, %ecx
jge 0xe51ab
incl %ecx
ucomisd %xmm0, %xmm2
jb 0xe5194
jmp 0xe51ab
movsd -0x30(%rbp), %xmm2
xorl %edi, %edi
movapd %xmm2, %xmm0
callq 0xd0c46
movl (%r12), %eax
leaq 0x2284df(%rip), %rcx    # 0x30d6a0
movl (%rcx), %ecx
movl $0x8, %edx
cmpl $0x7c, -0x8(%rdx,%r14)
je 0xe51df
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe51c8
jmp 0xe51ef
cmpl $0x0, (%rdx,%r14)
je 0xe51ef
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl $0x8ea5b, %eax          # imm = 0x8EA5B
subq (%r13), %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
addsd 0x46960(%rip), %xmm0    # 0x12bb68
xorl %edi, %edi
callq 0xd0c46
movl (%rbx), %eax
leaq 0x228308(%rip), %rcx    # 0x30d520
cmpl (%rcx), %eax
jne 0xe524b
movl (%r12), %edx
leaq 0x228479(%rip), %r13    # 0x30d6a0
movl (%r13), %ecx
leaq 0x85c26(%rip), %rsi     # 0x16ae58
xorl %eax, %eax
cmpl $0x7e, -0x8(%rsi)
je 0xe5272
incq %rax
addq $0x18, %rsi
cmpq $0x16e, %rax            # imm = 0x16E
jne 0xe5234
jmp 0xe5291
leaq 0x85c06(%rip), %rcx     # 0x16ae58
xorl %eax, %eax
leaq 0x228445(%rip), %r13    # 0x30d6a0
cmpl $0x7e, -0x8(%rcx)
je 0xe527b
incq %rax
addq $0x18, %rcx
cmpq $0x16e, %rax            # imm = 0x16E
jne 0xe525b
jmp 0xe5291
cmpl $0x0, (%rsi)
je 0xe5291
movl %edx, (%rsi)
jmp 0xe5288
cmpl $0x0, (%rcx)
je 0xe5291
movl $0x0, (%rcx)
xorl %ecx, %ecx
leaq (%rax,%rax,2), %rax
movl %ecx, 0x4(%r14,%rax,8)
leaq 0x1361a8(%rip), %rax    # 0x21b440
xorps %xmm0, %xmm0
cvtsi2sdq (%rax), %xmm0
addsd 0x468c8(%rip), %xmm0    # 0x12bb70
movsd %xmm0, -0x30(%rbp)
movsd (%r15), %xmm0
xorl %edi, %edi
callq 0xd0c46
movl (%rbx), %edi
movl (%r12), %esi
movl (%r13), %edx
callq 0xd4110
leaq 0x228251(%rip), %r15    # 0x30d520
movl (%r15), %ecx
movl $0x7d9, %eax            # imm = 0x7D9
cmpl $0x7d7, %ecx            # imm = 0x7D7
jl 0xe530a
movsd -0x30(%rbp), %xmm2
ucomisd %xmm0, %xmm2
jae 0xe530f
addl $0x2, %ecx
movsd 0x46883(%rip), %xmm1    # 0x12bb78
movl %eax, %edx
addsd %xmm1, %xmm2
leal 0x1(%rdx), %eax
cmpl %ecx, %edx
jge 0xe530f
ucomisd %xmm0, %xmm2
jb 0xe52f5
jmp 0xe530f
movsd -0x30(%rbp), %xmm2
movl %eax, (%rbx)
xorl %edi, %edi
movapd %xmm2, %xmm0
callq 0xd0c46
movl (%r12), %eax
movl (%r13), %ecx
movl $0x8, %edx
cmpl $0x7d, -0x8(%rdx,%r14)
je 0xe5340
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5329
jmp 0xe5350
cmpl $0x0, (%rdx,%r14)
je 0xe5350
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
cmpl $0x7f6, (%r15)          # imm = 0x7F6
jne 0xe537c
leaq 0x85af8(%rip), %rcx     # 0x16ae58
xorl %eax, %eax
cmpl $0x85, -0x8(%rcx)
je 0xe539f
incq %rax
addq $0x18, %rcx
cmpq $0x16e, %rax            # imm = 0x16E
jne 0xe5362
jmp 0xe53c7
leaq 0x85ad5(%rip), %rcx     # 0x16ae58
xorl %eax, %eax
cmpl $0x85, -0x8(%rcx)
je 0xe53b1
incq %rax
addq $0x18, %rcx
cmpq $0x16e, %rax            # imm = 0x16E
jne 0xe5385
jmp 0xe53c7
cmpl $0x0, (%rcx)
je 0xe53c7
movl $0x1, (%rcx)
movl $0x12, %ecx
jmp 0xe53be
cmpl $0x0, (%rcx)
je 0xe53c7
movl $0x0, (%rcx)
xorl %ecx, %ecx
leaq (%rax,%rax,2), %rax
movl %ecx, 0x4(%r14,%rax,8)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq