// File: /workspace/github_cpp_makefile_star2_O3/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 0x29593f(%rip), %xmm0   # 0x37aa88
callq 0xe6131
leaq 0x228553(%rip), %r13    # 0x30d6a8
movl (%r13), %edx
leaq 0x22854c(%rip), %r15    # 0x30d6ac
movl (%r15), %ecx
leaq 0x295bc6(%rip), %rbx    # 0x37ad30
leaq 0x4fb64(%rip), %rsi     # 0x134cd5
leaq 0x2570a8(%rip), %r8     # 0x33c220
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x228513(%rip), %rax    # 0x30d69c
movl (%rax), %ecx
leaq 0x22850e(%rip), %r12    # 0x30d6a0
movl (%r12), %edx
movl $0x10, %eax
leaq 0x85cae(%rip), %r14     # 0x16ae50
cmpl $0x64, -0x10(%rax,%r14)
je 0xe51b8
addq $0x18, %rax
cmpq $0x2260, %rax           # imm = 0x2260
jne 0xe51a2
jmp 0xe51ce
cmpl $0x0, -0x8(%rax,%r14)
je 0xe51ca
movl %ecx, -0x8(%rax,%r14)
movl %edx, -0xc(%rax,%r14)
movq %rbx, (%rax,%r14)
movsd 0x2958ba(%rip), %xmm0   # 0x37aa90
callq 0xe6131
movl (%r13), %edx
movl (%r15), %ecx
leaq 0x295b97(%rip), %rbx    # 0x37ad80
leaq 0x4fb0d(%rip), %rsi     # 0x134cfd
leaq 0x257029(%rip), %r8     # 0x33c220
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x228494(%rip), %rax    # 0x30d69c
movl (%rax), %ecx
movl (%r12), %edx
movl $0x10, %eax
cmpl $0x65, -0x10(%rax,%r14)
je 0xe5229
addq $0x18, %rax
cmpq $0x2260, %rax           # imm = 0x2260
jne 0xe5213
jmp 0xe523f
cmpl $0x0, -0x8(%rax,%r14)
je 0xe523b
movl %ecx, -0x8(%rax,%r14)
movl %edx, -0xc(%rax,%r14)
movq %rbx, (%rax,%r14)
movsd 0x295851(%rip), %xmm0   # 0x37aa98
callq 0xe6131
movl (%r13), %edx
movl (%r15), %ecx
leaq 0x295b76(%rip), %rbx    # 0x37add0
leaq 0x4fac4(%rip), %rsi     # 0x134d25
leaq 0x256fb8(%rip), %r8     # 0x33c220
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x228423(%rip), %rax    # 0x30d69c
movl (%rax), %ecx
movl (%r12), %edx
movl $0x10, %eax
cmpl $0x66, -0x10(%rax,%r14)
je 0xe529a
addq $0x18, %rax
cmpq $0x2260, %rax           # imm = 0x2260
jne 0xe5284
jmp 0xe52b0
cmpl $0x0, -0x8(%rax,%r14)
je 0xe52ac
movl %ecx, -0x8(%rax,%r14)
movl %edx, -0xc(%rax,%r14)
movq %rbx, (%rax,%r14)
movsd 0x2957e8(%rip), %xmm0   # 0x37aaa0
callq 0xe6131
movl (%r13), %edx
movl (%r15), %ecx
leaq 0x295b55(%rip), %rbx    # 0x37ae20
leaq 0x4fa7b(%rip), %rsi     # 0x134d4d
leaq 0x256f47(%rip), %r8     # 0x33c220
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2283b2(%rip), %r15    # 0x30d69c
movl (%r15), %ecx
movl (%r12), %edx
movl $0x10, %eax
cmpl $0x67, -0x10(%rax,%r14)
je 0xe530c
addq $0x18, %rax
cmpq $0x2260, %rax           # imm = 0x2260
jne 0xe52f6
jmp 0xe5322
cmpl $0x0, -0x8(%rax,%r14)
je 0xe531e
movl %ecx, -0x8(%rax,%r14)
movl %edx, -0xc(%rax,%r14)
movq %rbx, (%rax,%r14)
callq 0xe4ec4
xorl %edi, %edi
callq 0xd12da
leaq 0x2281eb(%rip), %r13    # 0x30d520
movslq (%r13), %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 0x87d42(%rip), %rcx     # 0x16d0a0
movq (%rcx,%rax,8), %rdx
leaq 0x295b07(%rip), %rbx    # 0x37ae70
leaq 0x4fa05(%rip), %rsi     # 0x134d75
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
movl (%r15), %ecx
movl (%r12), %edx
movl $0x10, %eax
cmpl $0x7b, -0x10(%rax,%r14)
je 0xe539c
addq $0x18, %rax
cmpq $0x2260, %rax           # imm = 0x2260
jne 0xe5386
jmp 0xe53b2
cmpl $0x0, -0x8(%rax,%r14)
je 0xe53ae
movl %ecx, -0x8(%rax,%r14)
movl %edx, -0xc(%rax,%r14)
movq %rbx, (%rax,%r14)
movl (%r13), %edi
callq 0xee1f5
callq 0xe17ea
testl %eax, %eax
je 0xe53df
movl $0x8, %eax
cmpl $0x6a, -0x8(%rax,%r14)
je 0xe5426
addq $0x18, %rax
cmpq $0x2258, %rax           # imm = 0x2258
jne 0xe53c9
jmp 0xe543c
movl (%r13), %edi
movl 0x29561b(%rip), %esi    # 0x37aa04
movl 0x295611(%rip), %edx    # 0x37aa00
callq 0xd485e
addsd 0x23cfc(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x6a, -0x8(%rdx,%r14)
je 0xe546c
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe540f
jmp 0xe547c
cmpl $0x0, (%rax,%r14)
je 0xe543c
movabsq $0x300000000, %rcx      # imm = 0x300000000
movq %rcx, -0x4(%rax,%r14)
leaq 0x85a15(%rip), %rax     # 0x16ae58
xorl %ebx, %ebx
cmpl $0x6b, -0x8(%rax)
je 0xe545d
incq %rbx
addq $0x18, %rax
cmpq $0x16e, %rbx            # imm = 0x16E
jne 0xe5445
jmp 0xe54d8
cmpl $0x0, (%rax)
je 0xe54d8
movl $0xb, (%rax)
xorl %eax, %eax
jmp 0xe54cf
cmpl $0x0, (%rdx,%r14)
je 0xe547c
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r13), %edi
movl 0x295586(%rip), %esi    # 0x37aa0c
movl 0x29557c(%rip), %edx    # 0x37aa08
callq 0xd485e
addsd 0x23c5f(%rip), %xmm0    # 0x1090f8
xorl %ebx, %ebx
xorl %edi, %edi
callq 0xd12da
movl (%r15), %ecx
movl (%r12), %eax
leaq 0x859a8(%rip), %rdx     # 0x16ae58
cmpl $0x6b, -0x8(%rdx)
je 0xe54c8
incq %rbx
addq $0x18, %rdx
cmpq $0x16e, %rbx            # imm = 0x16E
jne 0xe54b0
jmp 0xe54d8
cmpl $0x0, (%rdx)
je 0xe54d8
movl %ecx, (%rdx)
leaq (%rbx,%rbx,2), %rcx
movl %eax, 0x4(%r14,%rcx,8)
movl (%r13), %ecx
movl $0x1, %edi
movl $0x1, %esi
movl $0x9, %edx
callq 0xe085c
movslq (%r13), %rcx
imulq $0x51eb851f, %rcx, %rdx # imm = 0x51EB851F
movq %rdx, %rsi
shrq $0x3f, %rsi
sarq $0x25, %rdx
addl %esi, %edx
movslq %edx, %rdx
imulq $-0x64, %rdx, %rsi
addq %rcx, %rsi
imulq $0x23ab1, %rdx, %rcx    # imm = 0x23AB1
leaq 0x3(%rcx), %rdi
testq %rcx, %rcx
cmovnsq %rcx, %rdi
movl %eax, %ecx
sarq $0x2, %rdi
imulq $0x8ead, %rsi, %rsi     # imm = 0x8EAD
movabsq $-0x5c28f5c28f5c28f5, %rdx # imm = 0xA3D70A3D70A3D70B
movq %rsi, %rax
imulq %rdx
addq %rsi, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
xorps %xmm0, %xmm0
cvtsi2sd %rdi, %xmm0
addsd 0x46289(%rip), %xmm0    # 0x12b7e8
addq %rax, %rdx
cvtsi2sd %rdx, %xmm1
addsd %xmm0, %xmm1
addsd 0x4669d(%rip), %xmm1    # 0x12bc10
xorps %xmm0, %xmm0
cvtsi2sd %ecx, %xmm0
addsd %xmm1, %xmm0
addsd 0x3921a(%rip), %xmm0    # 0x11e7a0
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x70, -0x8(%rdx,%r14)
je 0xe55b0
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5599
jmp 0xe55c0
cmpl $0x0, (%rdx,%r14)
je 0xe55c0
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r13), %ecx
movl $0x1, %edi
movl $0x1, %esi
movl $0xb, %edx
callq 0xe085c
incl %eax
movl $0x8, %ecx
cmpl $0x69, -0x8(%rcx,%r14)
je 0xe55f6
addq $0x18, %rcx
cmpq $0x2258, %rcx           # imm = 0x2258
jne 0xe55df
jmp 0xe560a
cmpl $0x0, (%rcx,%r14)
je 0xe560a
movl $0xb, (%rcx,%r14)
movl %eax, -0x4(%rcx,%r14)
movslq (%r13), %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 0xe56b3
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe569c
jmp 0xe56c7
cmpl $0x0, (%rdx,%r14)
je 0xe56c7
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 0xe5727
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe570d
jmp 0xe573b
cmpl $0x0, (%rdx,%r14)
je 0xe573b
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 0xe579b
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5781
jmp 0xe57af
cmpl $0x0, (%rdx,%r14)
je 0xe57af
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 0xe5859
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe583f
jmp 0xe586d
cmpl $0x0, (%rdx,%r14)
je 0xe586d
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 0xe58cf
addq $0x18, %rcx
cmpq $0x2258, %rcx           # imm = 0x2258
jne 0xe58b5
jmp 0xe58e3
cmpl $0x0, (%rcx,%r14)
je 0xe58e3
movl $0xa, (%rcx,%r14)
movl %eax, -0x4(%rcx,%r14)
movl $0x1, %esi
movl $0x1, %edx
callq 0xeec83
testl %eax, %eax
je 0xe5929
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x77, -0x8(%rdx,%r14)
je 0xe5919
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5902
jmp 0xe5929
cmpl $0x0, (%rdx,%r14)
je 0xe5929
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r13), %edi
movl $0x1, %esi
movl $0xa, %edx
callq 0xeec83
testl %eax, %eax
je 0xe5973
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x78, -0x8(%rdx,%r14)
je 0xe5963
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe594c
jmp 0xe5973
cmpl $0x0, (%rdx,%r14)
je 0xe5973
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r13), %edi
movl $0x9, %esi
movl $0x1, %edx
callq 0xeec83
testl %eax, %eax
je 0xe59bd
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x79, -0x8(%rdx,%r14)
je 0xe59ad
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5996
jmp 0xe59bd
cmpl $0x0, (%rdx,%r14)
je 0xe59bd
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r13), %edi
movl $0xc, %esi
movl $0xa, %edx
callq 0xeec83
testl %eax, %eax
je 0xe5a07
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x7a, -0x8(%rdx,%r14)
je 0xe59f7
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe59e0
jmp 0xe5a07
cmpl $0x0, (%rdx,%r14)
je 0xe5a07
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl (%r13), %edi
callq 0xee5d7
movapd %xmm0, %xmm1
movsd 0x236dc(%rip), %xmm0    # 0x1090f8
movsd %xmm1, -0x30(%rbp)
addsd %xmm1, %xmm0
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x71, -0x8(%rdx,%r14)
je 0xe5a4f
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5a38
jmp 0xe5a5f
cmpl $0x0, (%rdx,%r14)
je 0xe5a5f
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd 0x38da1(%rip), %xmm0    # 0x11e808
addsd -0x30(%rbp), %xmm0
addsd 0x23684(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x72, -0x8(%rdx,%r14)
je 0xe5a9e
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5a87
jmp 0xe5aae
cmpl $0x0, (%rdx,%r14)
je 0xe5aae
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd 0x46162(%rip), %xmm0    # 0x12bc18
movsd -0x30(%rbp), %xmm2
addsd %xmm0, %xmm2
movsd 0x46159(%rip), %xmm1    # 0x12bc20
addsd %xmm1, %xmm2
addsd %xmm0, %xmm2
addsd %xmm1, %xmm2
addsd %xmm0, %xmm2
addsd %xmm1, %xmm2
movsd %xmm2, -0x38(%rbp)
addsd %xmm2, %xmm0
addsd 0x45e84(%rip), %xmm0    # 0x12b970
addsd 0x23604(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x75, -0x8(%rdx,%r14)
je 0xe5b1e
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5b07
jmp 0xe5b2e
cmpl $0x0, (%rdx,%r14)
je 0xe5b2e
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd -0x38(%rbp), %xmm0
addsd 0x460ed(%rip), %xmm0    # 0x12bc28
addsd 0x235b5(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x73, -0x8(%rdx,%r14)
je 0xe5b6d
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5b56
jmp 0xe5b7d
cmpl $0x0, (%rdx,%r14)
je 0xe5b7d
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd -0x30(%rbp), %xmm0
addsd 0x460a6(%rip), %xmm0    # 0x12bc30
addsd 0x23566(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x74, -0x8(%rdx,%r14)
je 0xe5bbc
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5ba5
jmp 0xe5bcc
cmpl $0x0, (%rdx,%r14)
je 0xe5bcc
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd 0x295334(%rip), %xmm0   # 0x37af08
addsd 0x4604c(%rip), %xmm0    # 0x12bc28
addsd 0x23514(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x7f, -0x8(%rdx,%r14)
je 0xe5c0e
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5bf7
jmp 0xe5c1e
cmpl $0x0, (%rdx,%r14)
je 0xe5c1e
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movsd 0x2952c2(%rip), %xmm0   # 0x37aee8
addsd 0x2350a(%rip), %xmm0    # 0x109138
addsd 0x234c2(%rip), %xmm0    # 0x1090f8
xorl %edi, %edi
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x80, -0x8(%rdx,%r14)
je 0xe5c63
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5c49
jmp 0xe5c73
cmpl $0x0, (%rdx,%r14)
je 0xe5c73
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
leaq 0x1357be(%rip), %r15    # 0x21b438
movl $0x8ea5b, %eax          # imm = 0x8EA5B
subq (%r15), %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
addsd 0x45fa6(%rip), %xmm0    # 0x12bc38
movsd %xmm0, -0x30(%rbp)
leaq 0x2278aa(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
xorl %edi, %edi
callq 0xd12da
leaq 0x2279f4(%rip), %rbx    # 0x30d6a4
movl (%rbx), %edi
leaq 0x2279e3(%rip), %rax    # 0x30d69c
movl (%rax), %esi
movl (%r12), %edx
callq 0xd485e
movl (%r13), %eax
cmpl $0x7d8, %eax            # imm = 0x7D8
jl 0xe5cfc
movsd -0x30(%rbp), %xmm2
ucomisd %xmm0, %xmm2
jae 0xe5d01
addl $0x2, %eax
movl $0x7da, %ecx            # imm = 0x7DA
movsd 0x45f56(%rip), %xmm1    # 0x12bc40
addsd %xmm1, %xmm2
cmpl %eax, %ecx
jge 0xe5d01
incl %ecx
ucomisd %xmm0, %xmm2
jb 0xe5cea
jmp 0xe5d01
movsd -0x30(%rbp), %xmm2
xorl %edi, %edi
movapd %xmm2, %xmm0
callq 0xd12da
leaq 0x227989(%rip), %rax    # 0x30d69c
movl (%rax), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x7c, -0x8(%rdx,%r14)
je 0xe5d35
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5d1e
jmp 0xe5d45
cmpl $0x0, (%rdx,%r14)
je 0xe5d45
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
movl $0x8ea5b, %eax          # imm = 0x8EA5B
subq (%r15), %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
addsd 0x45eeb(%rip), %xmm0    # 0x12bc48
xorl %edi, %edi
callq 0xd12da
movl (%rbx), %eax
cmpl (%r13), %eax
jne 0xe5d9a
leaq 0x227929(%rip), %r15    # 0x30d69c
movl (%r15), %edx
movl (%r12), %ecx
leaq 0x850d7(%rip), %rsi     # 0x16ae58
xorl %eax, %eax
cmpl $0x7e, -0x8(%rsi)
je 0xe5dc1
incq %rax
addq $0x18, %rsi
cmpq $0x16e, %rax            # imm = 0x16E
jne 0xe5d83
jmp 0xe5de0
leaq 0x850b7(%rip), %rcx     # 0x16ae58
xorl %eax, %eax
leaq 0x2278f2(%rip), %r15    # 0x30d69c
cmpl $0x7e, -0x8(%rcx)
je 0xe5dca
incq %rax
addq $0x18, %rcx
cmpq $0x16e, %rax            # imm = 0x16E
jne 0xe5daa
jmp 0xe5de0
cmpl $0x0, (%rsi)
je 0xe5de0
movl %edx, (%rsi)
jmp 0xe5dd7
cmpl $0x0, (%rcx)
je 0xe5de0
movl $0x0, (%rcx)
xorl %ecx, %ecx
leaq (%rax,%rax,2), %rax
movl %ecx, 0x4(%r14,%rax,8)
leaq 0x135659(%rip), %rax    # 0x21b440
xorps %xmm0, %xmm0
cvtsi2sdq (%rax), %xmm0
addsd 0x45e59(%rip), %xmm0    # 0x12bc50
movsd %xmm0, -0x30(%rbp)
leaq 0x227745(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
xorl %edi, %edi
callq 0xd12da
movl (%rbx), %edi
movl (%r15), %esi
movl (%r12), %edx
callq 0xd485e
movl (%r13), %ecx
movl $0x7d9, %eax            # imm = 0x7D9
cmpl $0x7d7, %ecx            # imm = 0x7D7
jl 0xe5e58
movsd -0x30(%rbp), %xmm2
ucomisd %xmm0, %xmm2
jae 0xe5e5d
addl $0x2, %ecx
movsd 0x45e15(%rip), %xmm1    # 0x12bc58
movl %eax, %edx
addsd %xmm1, %xmm2
leal 0x1(%rdx), %eax
cmpl %ecx, %edx
jge 0xe5e5d
ucomisd %xmm0, %xmm2
jb 0xe5e43
jmp 0xe5e5d
movsd -0x30(%rbp), %xmm2
movl %eax, (%rbx)
xorl %edi, %edi
movapd %xmm2, %xmm0
callq 0xd12da
movl (%r15), %eax
movl (%r12), %ecx
movl $0x8, %edx
cmpl $0x7d, -0x8(%rdx,%r14)
je 0xe5e8d
addq $0x18, %rdx
cmpq $0x2258, %rdx           # imm = 0x2258
jne 0xe5e76
jmp 0xe5e9d
cmpl $0x0, (%rdx,%r14)
je 0xe5e9d
movl %eax, (%rdx,%r14)
movl %ecx, -0x4(%rdx,%r14)
cmpl $0x7f6, (%r13)          # imm = 0x7F6
jne 0xe5eca
leaq 0x84faa(%rip), %rcx     # 0x16ae58
xorl %eax, %eax
cmpl $0x85, -0x8(%rcx)
je 0xe5eed
incq %rax
addq $0x18, %rcx
cmpq $0x16e, %rax            # imm = 0x16E
jne 0xe5eb0
jmp 0xe5f15
leaq 0x84f87(%rip), %rcx     # 0x16ae58
xorl %eax, %eax
cmpl $0x85, -0x8(%rcx)
je 0xe5eff
incq %rax
addq $0x18, %rcx
cmpq $0x16e, %rax            # imm = 0x16E
jne 0xe5ed3
jmp 0xe5f15
cmpl $0x0, (%rcx)
je 0xe5f15
movl $0x1, (%rcx)
movl $0x12, %ecx
jmp 0xe5f0c
cmpl $0x0, (%rcx)
je 0xe5f15
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