// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathmsc.cpp
// Function: fmt_date(int)
char *fmt_date(int big_flag)
{
static char date[32];
double jd;
long x;
int month;
int day;
int year;
int d, iso_year, iso_week, iso_day;
char *date_flag;

   // return a string of the current date formatted for the selected calendar

   if(big_flag) date_flag = "";
   else if(rolled || user_set_rollover) date_flag = " ro";
   else date_flag = "   ";

#ifdef GREET_STUFF
   if(alt_calendar == HEBREW) {  // convert current date to Jewish Standard Time
      jd = jdate(pri_year,pri_month,pri_day);
      for(month=0; month<=13; month++) {
         if(jtimes[month] == 0.0) continue;  // its not a leap year
         if((jd >= jtimes[month]) && (jd < jtimes[month+1])) {
            day = ((int) (jd - jtimes[month])) + 1;
            year = 5770 + (pri_year-2010);
            if(month >= 9) ++year;
            sprintf(date, "%02d %s %04d%s", day, jmonths[month], year, date_flag);
            return &date[0];
         }
      }
   }
   else if(alt_calendar == INDIAN) {  // convert date to Indian civil calendar
      jd = jdate(pri_year,pri_month,pri_day);
      for(month=0; month<=12; month++) {
         if((jd >= itimes[month]) && (jd < itimes[month+1])) {
            day = ((int) (jd - itimes[month])) + 1;
            year = (pri_year-78-1);
            if(jd >= itimes[3]) ++year;
            sprintf(date, "%02d %s %04d%s", day, imonths[month], year, date_flag); 
            return &date[0];
         }
      }
   }
   else if(alt_calendar == ISLAMIC) {
      jd = jdate(pri_year,pri_month,pri_day);
      for(month=0; month<36; month++) {
         if((jd >= mtimes[month]) && (jd < mtimes[month+1])) {
            day = ((int) (jd - mtimes[month])) + 1;
            year = myears[month];
            sprintf(date, "%02d %s %04d%s", day, mmonths[month], year, date_flag); 
            return &date[0];
         }
      }
   }
   else if(alt_calendar == CHINESE) {
      jd = jdate(pri_year,pri_month,pri_day);
      for(month=0; month<36; month++) {
         if((jd >= ctimes[month]) && (jd < ctimes[month+1])) {
            day = ((int) (jd - ctimes[month])) + 1;
            year = cyear[month] + (int) chinese_epoch;
            if(cmonth[month] < 0)  sprintf(out, "%d*", 0-cmonth[month]);
            else                   sprintf(out, "%d", cmonth[month]);
            sprintf(date, "%04d/%s/%02d%s   ", year, out, day, date_flag); 
            return &date[0];
         }
      }
   }
   else if((alt_calendar == PERSIAN) || (alt_calendar == AFGHAN) || (alt_calendar == KURDISH)) {
      jd = jdate(pri_year,pri_month,pri_day);
      for(month=0; month<36; month++) {
         if((jd >= ptimes[month]) && (jd < ptimes[month+1])) {
            day = ((int) (jd - ptimes[month])) + 1;
            year = pyears[month];
            if     (alt_calendar == PERSIAN) sprintf(date, "%02d %s %04d%s", day, pmonths[month], year, date_flag); 
            else if(alt_calendar == KURDISH) sprintf(date, "%02d %s %04d%s", day, kmonths[month], year, date_flag); 
            else                             sprintf(date, "%02d %s %04d%s", day, amonths[month], year, date_flag); 
            return &date[0];
         }
      }
   }
   else if(alt_calendar == DRUID) {  // pseudo-Druid calendar
      jd = jdate(pri_year,pri_month,pri_day);
      for(month=0; month<15; month++) {
         if((jd >= dtimes[month]) && (jd < dtimes[month+1])) {
            day = ((int) (jd - dtimes[month])) + 1;
            year = dyears[month];
//          sprintf(date, "%02d %s %04d", day, dmonths[month], year);
            sprintf(date, "%02d %s%s", day, dmonths[month], date_flag); 
            return &date[0];
         }
      }
   }
   else if(alt_calendar == MJD) {
      jd = jdate(pri_year,pri_month,pri_day) - JD_MJD;
      sprintf(date, "MJD:  %5ld%s", (long) (jd+0.5), date_flag); 
      return &date[0];
   }
   else if(alt_calendar == JULIAN) {
      jd = jdate(pri_year,pri_month,pri_day);
      sprintf(date, "JD%9.1f%s", jd, date_flag); 
      return &date[0];
   }
   else if(alt_calendar == ISO) {
      jd = jdate(pri_year,pri_month,pri_day)-jdate(pri_year,1,1)+1;
      sprintf(date, "%04d-%03d%s   ", pri_year,(int)jd, date_flag); 
      return &date[0];
   }
   else if(alt_calendar == ISO_WEEK) {
      d = nth_dow_in(1, 1, 1, pri_year); // first monday in the year
      jd = jdate(pri_year,pri_month,pri_day) - jdate(pri_year,1,d);
      iso_week = ((int) jd) / 7;
      iso_day = ((int) jd) % 7;
      iso_year = pri_year;
      if(iso_day < 0) {
         iso_day += 7;
         iso_week += 51;
         iso_year -= 1;
      }
//sprintf(debug_text, "doy:%g  pri:%d/%d/%d  iy:%d iw:%d  id:%d  d:%d", jd, pri_year,pri_month,pri_day, iso_year,iso_week,iso_day, d);
      sprintf(date, "%04d-W%02d-%d%s", iso_year, iso_week+1,iso_day+1, date_flag); 

      return &date[0];
   }
   else if(alt_calendar == MAYAN) {  // long count
      get_mayan_date();
      sprintf(date, "%02d.%02d.%02d.%02d.%02d%s", baktun,katun,tun,uinal,kin, date_flag); 
      return &date[0];
   }
   else if(alt_calendar == HAAB) {
      x = (long) (jdate(pri_year, pri_month, pri_day) - jdate(2009, 4, 3));
      x = adjust_mayan(x);
      x = (x % 365L);
      day = (int) (x % 20L);
      month = (int) ((x / 20L) % 19L);
      sprintf(date, "%02d %s%s  ", day, haab[month], date_flag); 
      return &date[0];
   }
   else if(alt_calendar == TZOLKIN) {
      get_mayan_date();
      x = (long) (jdate(pri_year, pri_month, pri_day) - jdate(2001, 4, 3));
      x = adjust_mayan(x);
      x %= 13L;
      day = (int) (x+1);
      sprintf(date, "%02d %s%s ", day, tzolkin[kin], date_flag); 
      return &date[0];
   }
   else if(alt_calendar == AZTEC) {  // Tzolkin type dates
      x = (long) (jdate(pri_year, pri_month, pri_day) - jdate(2009,9,9));
      x += aztec_epoch;
      x %= (260L);
      day   = (int) (x % 13);
      month = (int) (x % 20L);
      sprintf(date, "%02d %s%s ", day+1, aztec[month], date_flag); 
      return &date[0];
   }
   else if(alt_calendar == AZTEC_HAAB) {  // Aztec haab style dates
      x = (long) (jdate(pri_year, pri_month, pri_day) - jdate(2009, 10, 7));
      x += aztec_epoch;
      x = (x % 365L);
      day = (int) (x % 20L);
      month = (int) ((x / 20L) % 19L);
      sprintf(date, "%02d %s%s  ", day+1, aztec_haab[month], date_flag); 
      return &date[0];
   }
   else if(alt_calendar == BOLIVIAN) {
      jd = (jdate(pri_year+5001, pri_month, pri_day) - jdate(1492, 6, 21));
      jd += (double) bolivian_epoch;
      year = (int) (jd/365.25);
      pri_month = fix_month(pri_month);
      sprintf(date, "%02d %s %04d%s", pri_day, months[pri_month], year, date_flag);
      return &date[0];
   }
   else if(use_hjd) {
      jd = jd_astro - JD_MJD;  // modified Julian date
      if((zoom_screen == 'C') || (rcvr_type == NO_RCVR)) {
         sprintf(date, "HJD:%ld%s", (long) (jd+0.5), date_flag); 
      }
      else {
         sprintf(date, "HJD:  %5ld%s", (long) (jd+0.5), date_flag); 
      }
      return &date[0];
   }
   else if(use_msd) {  // Mars timess
      planet:
      if((zoom_screen == 'C') || (rcvr_type == NO_RCVR)) {
         sprintf(date, "%s:%ld%s", std_string, (long) jd_astro, date_flag); 
      }
      else {
         sprintf(date, "%s:  %5ld%s", std_string, (long) jd_astro, date_flag); 
      }
      return &date[0];
   }
   else if(use_merc) { // Mercury time
      jd_astro = jd_astro / 87.968;
      goto planet;
   }
   else if(use_pluto) { // Pluto time
      jd_astro = jd_astro / 90560.0;
      goto planet;
   }
   else if(use_ven) { // Venus time
      jd_astro = jd_astro / 224.695;
      goto planet;
   }
   else if(use_bessel) {
      goto planet;
   }
#endif

   if(show_euro_dates) {
      sprintf(date, "%02d.%02d.%04d%s ", pri_day, pri_month, pri_year, date_flag);
   }
   else if(show_iso_dates) {
      sprintf(date, "%04d.%02d.%02d%s ", pri_year, pri_month, pri_day, date_flag);
   }
   else {
      pri_month = fix_month(pri_month);
      sprintf(date, "%02d %s %04d%s", pri_day, months[pri_month], pri_year, date_flag);
   }
   return &date[0];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testl %edi, %edi
je 0xef1cb
leaq 0x427dd(%rip), %rbx     # 0x1319a6
jmp 0xef1ef
leaq 0x21e23e(%rip), %rax    # 0x30d410
leaq 0x12c28f(%rip), %rcx    # 0x21b468
movl (%rcx), %ecx
orl (%rax), %ecx
leaq 0x45ad3(%rip), %rax     # 0x134cb7
leaq 0x33887(%rip), %rbx     # 0x122a72
cmovneq %rax, %rbx
leaq 0x12c23a(%rip), %rax    # 0x21b430
movzbl (%rax), %r14d
leal -0x1(%r14), %eax
cmpl $0x11, %eax
ja 0xef9d4
leaq 0x3befa(%rip), %rcx     # 0x12b108
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x21e2f6(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21e2e9(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21e2dc(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
leaq 0x28c072(%rip), %rcx    # 0x37b2b0
xorl %eax, %eax
leaq 0x28bf39(%rip), %rdx    # 0x37b180
movsd (%rax,%rdx), %xmm1
ucomisd %xmm1, %xmm0
jb 0xef25e
movsd 0x8(%rax,%rdx), %xmm2
ucomisd %xmm0, %xmm2
ja 0xef273
addq $0x4, %rcx
addq $0x8, %rax
cmpq $0x120, %rax            # imm = 0x120
jne 0xef247
jmp 0xef714
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
incl %edx
movl (%rcx), %r8d
cmpl $0x6, %r14d
je 0xefcba
cmpl $0x4, %r14d
jne 0xefd80
leaq 0x7e065(%rip), %rcx     # 0x16d300
jmp 0xefd87
leaq 0x21e26d(%rip), %rax    # 0x30d514
movl $0x1389, %edi           # imm = 0x1389
addl (%rax), %edi
leaq 0x21e25b(%rip), %r12    # 0x30d510
movl (%r12), %r14d
leaq 0x21e24c(%rip), %r13    # 0x30d50c
movl (%r13), %edx
movl %r14d, %esi
callq 0xd4110
addsd 0x3d34c(%rip), %xmm0    # 0x12c620
leaq 0x12c17d(%rip), %rax    # 0x21b458
cvtsi2sdq (%rax), %xmm1
addsd %xmm0, %xmm1
divsd 0x3c3d4(%rip), %xmm1    # 0x12b6c0
cvttsd2si %xmm1, %r15d
movl %r14d, %edi
callq 0x724e5
movl %eax, (%r12)
movl (%r13), %edx
cltq
leaq 0x7b436(%rip), %rcx     # 0x16a740
movq (%rcx,%rax,8), %rcx
leaq 0x28c60b(%rip), %rdi    # 0x37b920
leaq 0x4599f(%rip), %rsi     # 0x134cbb
movl %r15d, %r8d
jmp 0xefde7
leaq 0x21e1e9(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21e1dc(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21e1cf(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
xorl %eax, %eax
leaq 0x28c003(%rip), %rcx    # 0x37b350
movsd (%rax,%rcx), %xmm1
ucomisd %xmm1, %xmm0
jb 0xef368
movsd 0x8(%rax,%rcx), %xmm2
ucomisd %xmm0, %xmm2
ja 0xefc92
addq $0x8, %rax
cmpq $0x78, %rax
jne 0xef34d
jmp 0xef714
callq 0xe543b
leaq 0x21e191(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21e184(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21e177(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
addsd 0x3d294(%rip), %xmm0    # 0x12c638
cvttsd2si %xmm0, %rcx
leaq 0x12c088(%rip), %rax    # 0x21b438
movq (%rax), %rax
movq %rcx, %rsi
subq %rax, %rsi
leaq 0x8ea5b(%rsi), %rdx
xorl %edi, %edi
testq %rdx, %rdx
cmovleq %rdi, %rdx
addq %rdx, %rax
addq $-0x8ea5b, %rax         # imm = 0xFFF715A5
xorl %edi, %edi
subq %rcx, %rax
setne %dil
subq %rdi, %rax
movabsq $-0x45962422c53ec283, %rcx # imm = 0xBA69DBDD3AC13D7D
mulq %rcx
shrq $0x15, %rdx
addq %rdi, %rdx
imulq $0x2bf200, %rdx, %rax   # imm = 0x2BF200
leaq (%rsi,%rax), %r8
addq $0x8ea5b, %r8           # imm = 0x8EA5B
movabsq $0x4ec4ec4ec4ec4ec5, %rcx # imm = 0x4EC4EC4EC4EC4EC5
movq %r8, %rax
mulq %rcx
shrq $0x2, %rdx
leal (%rdx,%rdx,2), %eax
leal (%rdx,%rax,4), %eax
subl %eax, %r8d
incl %r8d
movslq 0x28c011(%rip), %rax    # 0x37b43c
leaq 0x7e2be(%rip), %rcx     # 0x16d6f0
movq (%rcx,%rax,8), %rcx
leaq 0x28c4e3(%rip), %rdi    # 0x37b920
leaq 0x45903(%rip), %rsi     # 0x134d47
jmp 0xefb3e
leaq 0x21e0c4(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21e0b7(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21e0aa(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
addsd 0x3d1bf(%rip), %xmm0    # 0x12c630
cvttsd2si %xmm0, %rcx
leaq 0x12bfc3(%rip), %rax    # 0x21b440
addq (%rax), %rcx
movabsq $0xfc0fc0fc0fc0fc1, %rdx # imm = 0xFC0FC0FC0FC0FC1
movq %rcx, %rax
imulq %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x4, %rdx
addq %rax, %rdx
movq %rdx, %rax
shlq $0x8, %rax
leaq (%rax,%rdx,4), %rax
subq %rax, %rcx
movabsq $0x4ec4ec4ec4ec4ec5, %rdx # imm = 0x4EC4EC4EC4EC4EC5
movq %rcx, %rax
imulq %rdx
movq %rdx, %rax
shrq $0x3f, %rax
shrq $0x2, %rdx
addl %eax, %edx
leal (%rdx,%rdx,2), %eax
leal (%rdx,%rax,4), %esi
movabsq $0x6666666666666667, %rdx # imm = 0x6666666666666667
movq %rcx, %rax
imulq %rdx
movl %ecx, %eax
subl %esi, %eax
movq %rdx, %rsi
shrq $0x3f, %rsi
shrq $0x3, %rdx
addq %rsi, %rdx
shlq $0x2, %rdx
leaq (%rdx,%rdx,4), %rdx
subq %rdx, %rcx
incl %eax
leaq 0x7e32b(%rip), %rdx     # 0x16d830
movq (%rdx,%rcx,8), %rcx
leaq 0x28c410(%rip), %rdi    # 0x37b920
leaq 0x45830(%rip), %rsi     # 0x134d47
movl %eax, %edx
jmp 0xefb41
callq 0xe543b
movl 0x28bf23(%rip), %edx    # 0x37b44c
movl 0x28bf19(%rip), %ecx    # 0x37b448
movl 0x28bf0e(%rip), %r8d    # 0x37b444
movl 0x28bf03(%rip), %r9d    # 0x37b440
movl 0x28bef8(%rip), %r10d   # 0x37b43c
leaq 0x28c3d5(%rip), %rdi    # 0x37b920
leaq 0x457ce(%rip), %rsi     # 0x134d20
xorl %eax, %eax
pushq %rbx
pushq %r10
callq 0x9060
addq $0x10, %rsp
jmp 0xefdf1
leaq 0x21dfa8(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21df9b(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21df8e(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
leaq 0x7dc54(%rip), %rax     # 0x16d1e0
xorl %ecx, %ecx
leaq 0x28ba1b(%rip), %rdx    # 0x37afb0
movsd (%rdx,%rcx,2), %xmm1
ucomisd %xmm1, %xmm0
jb 0xef5b0
movsd 0x8(%rdx,%rcx,2), %xmm2
ucomisd %xmm0, %xmm2
ja 0xefcc6
addq $0x4, %rcx
addq $0x8, %rax
cmpq $0x90, %rcx
jne 0xef595
jmp 0xef714
leaq 0x21df47(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21df3a(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21df2d(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
xorl %eax, %eax
leaq 0x28b4c1(%rip), %rcx    # 0x37aab0
movsd (%rcx,%rax,2), %xmm1
ucomisd %xmm1, %xmm0
jb 0xef60a
movsd 0x8(%rcx,%rax,2), %xmm2
ucomisd %xmm0, %xmm2
ja 0xefce3
addq $0x4, %rax
cmpq $0x90, %rax
jne 0xef5ef
jmp 0xef714
leaq 0x21def2(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21dee5(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21ded8(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
leaq 0x28c2de(%rip), %rdi    # 0x37b920
leaq 0x456ae(%rip), %rsi     # 0x134cf7
movq %rbx, %rdx
movb $0x1, %al
callq 0x9060
jmp 0xefdf1
leaq 0x21deb5(%rip), %rax    # 0x30d514
movl (%rax), %r14d
leaq 0x21dea7(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21de9a(%rip), %rax    # 0x30d50c
movl (%rax), %edx
movl %r14d, %edi
callq 0xd4110
leaq 0x7da7d(%rip), %rax     # 0x16d100
xorl %ecx, %ecx
leaq 0x28b834(%rip), %rdx    # 0x37aec0
xorpd %xmm1, %xmm1
movsd (%rdx,%rcx,8), %xmm2
ucomisd %xmm1, %xmm2
jne 0xef69d
jnp 0xef6b3
ucomisd %xmm2, %xmm0
jb 0xef6b3
movsd 0x8(%rdx,%rcx,8), %xmm3
ucomisd %xmm0, %xmm3
ja 0xefd29
incq %rcx
addq $0x8, %rax
cmpq $0xe, %rcx
jne 0xef690
jmp 0xef714
leaq 0x21de4b(%rip), %rax    # 0x30d514
movl (%rax), %r14d
leaq 0x21de3d(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21de30(%rip), %rax    # 0x30d50c
movl (%rax), %edx
movl %r14d, %edi
callq 0xd4110
xorl %eax, %eax
leaq 0x28b851(%rip), %rcx    # 0x37af40
movsd (%rax,%rcx), %xmm1
ucomisd %xmm1, %xmm0
jb 0xef70a
movsd 0x8(%rax,%rcx), %xmm2
ucomisd %xmm0, %xmm2
ja 0xefd47
addq $0x8, %rax
cmpq $0x68, %rax
jne 0xef6ef
leaq 0x21e99e(%rip), %rax    # 0x30e0b9
cmpb $0x0, (%rax)
je 0xef74f
leaq 0x21dde5(%rip), %rax    # 0x30d50c
movl (%rax), %edx
leaq 0x21dde0(%rip), %rax    # 0x30d510
movl (%rax), %ecx
leaq 0x21dddb(%rip), %rax    # 0x30d514
movl (%rax), %r8d
leaq 0x28c1dd(%rip), %rdi    # 0x37b920
leaq 0x45634(%rip), %rsi     # 0x134d7e
jmp 0xef8bc
leaq 0x21e964(%rip), %rax    # 0x30e0ba
cmpb $0x0, (%rax)
je 0xefc2e
leaq 0x21ddae(%rip), %rax    # 0x30d514
movl (%rax), %edx
leaq 0x21dda1(%rip), %rax    # 0x30d510
movl (%rax), %ecx
leaq 0x21dd94(%rip), %rax    # 0x30d50c
movl (%rax), %r8d
leaq 0x28c19e(%rip), %rdi    # 0x37b920
leaq 0x45607(%rip), %rsi     # 0x134d90
jmp 0xef8bc
leaq 0x21dd7f(%rip), %r14    # 0x30d514
movl (%r14), %ecx
movl $0x1, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0xdfd9e
movl %eax, %r15d
movslq (%r14), %r14
leaq 0x21dd57(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21dd4a(%rip), %rax    # 0x30d50c
movl (%rax), %edx
movl %r14d, %edi
callq 0xd4110
leaq -0x1(%r14), %r9
movabsq $-0x5c28f5c28f5c28f5, %rcx # imm = 0xA3D70A3D70A3D70B
movq %r9, %rax
imulq %rcx
leaq (%rdx,%r14), %rax
decq %rax
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x6, %rax
addq %rdx, %rax
imulq $-0x64, %rax, %rdx
addq %r14, %rdx
decq %rdx
imulq $0x23ab1, %rax, %rax    # imm = 0x23AB1
leaq 0x3(%rax), %rdi
testq %rax, %rax
cmovnsq %rax, %rdi
sarq $0x2, %rdi
imulq $0x8ead, %rdx, %rsi     # imm = 0x8EAD
movq %rsi, %rax
imulq %rcx
addq %rsi, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
cvtsi2sd %rdi, %xmm1
addsd 0x3becb(%rip), %xmm1    # 0x12b708
addq %rax, %rdx
cvtsi2sd %rdx, %xmm2
addsd %xmm1, %xmm2
addsd 0x3c0c7(%rip), %xmm2    # 0x12b918
xorps %xmm1, %xmm1
cvtsi2sd %r15d, %xmm1
addsd %xmm2, %xmm1
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
cltq
imulq $-0x6db6db6d, %rax, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
leal (%rcx,%rdx), %esi
leal (,%rsi,8), %edi
movl %esi, %r10d
subl %edi, %r10d
leal (%rax,%r10), %r8d
addl $0x7, %r8d
addl %r10d, %eax
leal 0x33(%rcx,%rdx), %ecx
cmovnsl %r14d, %r9d
cmovnsl %esi, %ecx
cmovnsl %eax, %r8d
incl %ecx
incl %r8d
leaq 0x28c06e(%rip), %rdi    # 0x37b920
leaq 0x45457(%rip), %rsi     # 0x134d10
movl %r9d, %edx
movq %rbx, %r9
xorl %eax, %eax
callq 0x9060
jmp 0xefdf1
leaq 0x21dc42(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21dc35(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21dc28(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
addsd 0x3cd35(%rip), %xmm0    # 0x12c628
cvttsd2si %xmm0, %r8
leaq 0x12bb41(%rip), %rax    # 0x21b440
addq (%rax), %r8
movabsq $0x2ce33e6c02ce33e7, %rcx # imm = 0x2CE33E6C02CE33E7
movq %r8, %rax
imulq %rcx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
addq %rax, %rdx
imulq $0x16d, %rdx, %rax      # imm = 0x16D
subq %rax, %r8
movabsq $0x6666666666666667, %rcx # imm = 0x6666666666666667
movq %r8, %rax
imulq %rcx
movq %rdx, %rsi
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x3, %rsi
addq %rax, %rsi
leal (,%rsi,4), %eax
leal (%rax,%rax,4), %eax
subl %eax, %r8d
movabsq $0xd79435e50d79436, %rcx # imm = 0xD79435E50D79436
movq %rsi, %rax
imulq %rcx
movq %rdx, %rax
shrq $0x3f, %rax
addq %rdx, %rax
leaq (%rax,%rax,8), %rcx
leaq (%rax,%rcx,2), %rax
subq %rax, %rsi
incl %r8d
leaq 0x7df49(%rip), %rax     # 0x16d8d0
jmp 0xefb2c
leaq 0x21db81(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21db74(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21db67(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
addsd 0x1bebc(%rip), %xmm0    # 0x10b870
addsd 0x196ac(%rip), %xmm0    # 0x109068
cvttsd2si %xmm0, %rdx
leaq 0x28bf58(%rip), %rdi    # 0x37b920
leaq 0x4531b(%rip), %rsi     # 0x134cea
jmp 0xefda9
leaq 0x21df2d(%rip), %rax    # 0x30d908
cmpb $0x0, (%rax)
je 0xefc65
leaq 0x21db6d(%rip), %rax    # 0x30d558
movsd (%rax), %xmm0
addsd 0x1be79(%rip), %xmm0    # 0x10b870
leaq 0x21cdaa(%rip), %rax    # 0x30c7a8
cmpb $0x43, (%rax)
addsd 0x1965f(%rip), %xmm0    # 0x109068
cvttsd2si %xmm0, %rdx
je 0xefd9b
leaq 0x128eb5(%rip), %rax    # 0x2188d0
cmpq $0x400, (%rax)          # imm = 0x400
je 0xefd9b
leaq 0x28bef1(%rip), %rdi    # 0x37b920
leaq 0x45326(%rip), %rsi     # 0x134d5c
jmp 0xefda9
leaq 0x21dad2(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21dac5(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21dab8(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd4110
addsd 0x3cbdd(%rip), %xmm0    # 0x12c640
cvttsd2si %xmm0, %rcx
leaq 0x12b9c9(%rip), %rax    # 0x21b438
movq (%rax), %rax
movq %rcx, %rsi
subq %rax, %rsi
leaq 0x8ea5b(%rsi), %rdx
xorl %edi, %edi
testq %rdx, %rdx
cmovleq %rdi, %rdx
addq %rdx, %rax
addq $-0x8ea5b, %rax         # imm = 0xFFF715A5
xorl %edi, %edi
subq %rcx, %rax
setne %dil
subq %rdi, %rax
movabsq $-0x45962422c53ec283, %rcx # imm = 0xBA69DBDD3AC13D7D
mulq %rcx
shrq $0x15, %rdx
addq %rdi, %rdx
imulq $0x2bf200, %rdx, %rax   # imm = 0x2BF200
leaq (%rsi,%rax), %r8
addq $0x8ea5b, %r8           # imm = 0x8EA5B
movabsq $0x6719f36016719f37, %rcx # imm = 0x6719F36016719F37
movq %r8, %rax
mulq %rcx
movq %r8, %rax
subq %rdx, %rax
shrq %rax
addq %rdx, %rax
shrq $0x8, %rax
imulq $0x16d, %rax, %rax      # imm = 0x16D
subq %rax, %r8
movabsq $0xccccccccccccccd, %rcx # imm = 0xCCCCCCCCCCCCCCD
movq %r8, %rax
mulq %rcx
movq %rdx, %rsi
leal (,%rdx,4), %eax
leal (%rax,%rax,4), %eax
subl %eax, %r8d
movabsq $0xd79435e50d79436, %rcx # imm = 0xD79435E50D79436
movq %rdx, %rax
mulq %rcx
leal (%rdx,%rdx,8), %eax
leal (%rdx,%rax,2), %eax
subl %eax, %esi
leaq 0x7dc64(%rip), %rax     # 0x16d790
movq (%rax,%rsi,8), %rcx
leaq 0x28bde9(%rip), %rdi    # 0x37b920
leaq 0x451fd(%rip), %rsi     # 0x134d3b
movl %r8d, %edx
movq %rbx, %r8
xorl %eax, %eax
callq 0x9060
jmp 0xefdf1
leaq 0x21d9bd(%rip), %rax    # 0x30d514
movslq (%rax), %r14
leaq 0x21d9af(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d9a2(%rip), %rax    # 0x30d50c
movl (%rax), %edx
movl %r14d, %edi
callq 0xd4110
leaq -0x1(%r14), %rax
movabsq $-0x5c28f5c28f5c28f5, %rsi # imm = 0xA3D70A3D70A3D70B
imulq %rsi
leaq (%rdx,%r14), %rax
decq %rax
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x6, %rax
addq %rcx, %rax
imulq $-0x64, %rax, %rcx
addq %r14, %rcx
decq %rcx
imulq $0x23ab1, %rax, %rax    # imm = 0x23AB1
leaq 0x3(%rax), %rdi
testq %rax, %rax
cmovnsq %rax, %rdi
sarq $0x2, %rdi
imulq $0x8ead, %rcx, %rcx     # imm = 0x8EAD
movq %rcx, %rax
imulq %rsi
addq %rcx, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
cvtsi2sd %rdi, %xmm1
addsd 0x3bb26(%rip), %xmm1    # 0x12b708
addq %rax, %rdx
cvtsi2sd %rdx, %xmm2
addsd %xmm1, %xmm2
addsd 0x3bd22(%rip), %xmm2    # 0x12b918
movsd 0x19472(%rip), %xmm1    # 0x109070
addsd %xmm1, %xmm2
subsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
leaq 0x28bd0b(%rip), %rdi    # 0x37b920
leaq 0x450e5(%rip), %rsi     # 0x134d01
movl %r14d, %edx
movq %rbx, %r8
xorl %eax, %eax
callq 0x9060
jmp 0xefdf1
leaq 0x21d8db(%rip), %r14    # 0x30d510
movl (%r14), %edi
callq 0x724e5
movl %eax, (%r14)
leaq 0x21d8c5(%rip), %rcx    # 0x30d50c
movl (%rcx), %edx
cltq
leaq 0x7aaee(%rip), %rcx     # 0x16a740
movq (%rcx,%rax,8), %rcx
leaq 0x21d8b7(%rip), %rax    # 0x30d514
movl (%rax), %r8d
jmp 0xefd8b
leaq 0x21dca0(%rip), %rax    # 0x30d90c
cmpb $0x0, (%rax)
jne 0xefe44
leaq 0x21dc91(%rip), %rax    # 0x30d90d
cmpb $0x0, (%rax)
je 0xefe07
movsd 0x3c9bb(%rip), %xmm0    # 0x12c648
jmp 0xefe31
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
incl %edx
leaq 0x7d9bd(%rip), %rcx     # 0x16d660
movq (%rax,%rcx), %rcx
leaq 0x28bc72(%rip), %rdi    # 0x37b920
leaq 0x4502b(%rip), %rsi     # 0x134ce0
jmp 0xefb41
leaq 0x7d87f(%rip), %rcx     # 0x16d540
jmp 0xefd87
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
incl %edx
leaq 0x28b409(%rip), %rsi    # 0x37b0e0
movl (%rcx,%rsi), %r8d
movq (%rax), %rcx
jmp 0xefd8b
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %r14d
leaq 0x28aefd(%rip), %rcx    # 0x37abf0
movl (%rax,%rcx), %r15d
leaq 0x12b74a(%rip), %rcx    # 0x21b448
addl (%rcx), %r15d
incl %r14d
leaq 0x28af85(%rip), %rcx    # 0x37ac90
movl (%rax,%rcx), %edx
testl %edx, %edx
js 0xefdb5
leaq 0x24c503(%rip), %rdi    # 0x33c220
leaq 0x34150(%rip), %rsi     # 0x123e74
jmp 0xefdc5
subsd %xmm2, %xmm0
cvttsd2si %xmm0, %edx
incl %edx
cmpq $0x9, %rcx
sbbl $-0x1, %r14d
addl $0xeb0, %r14d           # imm = 0xEB0
movq (%rax), %rcx
jmp 0xefd70
movapd %xmm0, %xmm2
subsd %xmm1, %xmm2
cvttsd2si %xmm2, %edx
incl %edx
ucomisd 0x28b1fb(%rip), %xmm0   # 0x37af58
sbbl $0x0, %r14d
addl $-0x4e, %r14d
leaq 0x7d404(%rip), %rcx     # 0x16d170
movq (%rax,%rcx), %rcx
leaq 0x28bba9(%rip), %rdi    # 0x37b920
leaq 0x44f3d(%rip), %rsi     # 0x134cbb
jmp 0xefde4
leaq 0x7d699(%rip), %rcx     # 0x16d420
movq (%rax,%rcx), %rcx
leaq 0x28bb8e(%rip), %rdi    # 0x37b920
leaq 0x44f22(%rip), %rsi     # 0x134cbb
jmp 0xefde7
leaq 0x28bb7e(%rip), %rdi    # 0x37b920
leaq 0x44fa9(%rip), %rsi     # 0x134d52
movq %rbx, %rcx
xorl %eax, %eax
callq 0x9060
jmp 0xefdf1
negl %edx
leaq 0x24c462(%rip), %rdi    # 0x33c220
leaq 0x44f05(%rip), %rsi     # 0x134cca
xorl %eax, %eax
callq 0x9060
leaq 0x28bb4d(%rip), %rdi    # 0x37b920
leaq 0x44ef4(%rip), %rsi     # 0x134cce
leaq 0x24c43f(%rip), %rcx    # 0x33c220
movl %r15d, %edx
movl %r14d, %r8d
movq %rbx, %r9
xorl %eax, %eax
callq 0x9060
leaq 0x28bb28(%rip), %rax    # 0x37b920
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x21db01(%rip), %rax    # 0x30d90f
cmpb $0x0, (%rax)
je 0xefe1d
movsd 0x3c835(%rip), %xmm0    # 0x12c650
jmp 0xefe31
leaq 0x21daea(%rip), %rax    # 0x30d90e
cmpb $0x0, (%rax)
je 0xefea0
movsd 0x3c827(%rip), %xmm0    # 0x12c658
leaq 0x21d720(%rip), %rax    # 0x30d558
movsd (%rax), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, (%rax)
leaq 0x21c95d(%rip), %rax    # 0x30c7a8
cmpb $0x43, (%rax)
leaq 0x21d703(%rip), %rax    # 0x30d558
cvttsd2si (%rax), %rcx
je 0xefe7c
leaq 0x128a6d(%rip), %rax    # 0x2188d0
cmpq $0x400, (%rax)          # imm = 0x400
je 0xefe7c
leaq 0x28baad(%rip), %rdi    # 0x37b920
leaq 0x44ef8(%rip), %rsi     # 0x134d72
jmp 0xefe8a
leaq 0x28ba9d(%rip), %rdi    # 0x37b920
leaq 0x44edf(%rip), %rsi     # 0x134d69
leaq 0x21da8f(%rip), %rdx    # 0x30d920
movq %rbx, %r8
xorl %eax, %eax
callq 0x9060
jmp 0xefdf1
leaq 0x21da69(%rip), %rax    # 0x30d910
cmpb $0x0, (%rax)
jne 0xefe44
jmp 0xef714