// File: /workspace/github_cpp_makefile_star2_O3/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 0xef901
leaq 0x42197(%rip), %rbx     # 0x131a96
jmp 0xef925
leaq 0x21db08(%rip), %rax    # 0x30d410
leaq 0x12bb59(%rip), %rcx    # 0x21b468
movl (%rcx), %ecx
orl (%rax), %ecx
leaq 0x4548d(%rip), %rax     # 0x134da7
leaq 0x33231(%rip), %rbx     # 0x122b52
cmovneq %rax, %rbx
leaq 0x12bb04(%rip), %rax    # 0x21b430
movzbl (%rax), %r14d
leal -0x1(%r14), %eax
cmpl $0x11, %eax
ja 0xf00c3
leaq 0x3b894(%rip), %rcx     # 0x12b1d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x21dbc0(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21dbb3(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21dba6(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
leaq 0x28b93c(%rip), %rcx    # 0x37b2b0
xorl %eax, %eax
leaq 0x28b803(%rip), %rdx    # 0x37b180
movsd (%rax,%rdx), %xmm1
ucomisd %xmm1, %xmm0
jb 0xef994
movsd 0x8(%rax,%rdx), %xmm2
ucomisd %xmm0, %xmm2
ja 0xef9a9
addq $0x4, %rcx
addq $0x8, %rax
cmpq $0x120, %rax            # imm = 0x120
jne 0xef97d
jmp 0xefe32
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
incl %edx
movl (%rcx), %r8d
cmpl $0x6, %r14d
je 0xf0385
cmpl $0x4, %r14d
jne 0xf044b
leaq 0x7d92f(%rip), %rcx     # 0x16d300
jmp 0xf0452
leaq 0x21db37(%rip), %rax    # 0x30d514
movl $0x1389, %edi           # imm = 0x1389
addl (%rax), %edi
leaq 0x21db25(%rip), %r12    # 0x30d510
movl (%r12), %r14d
leaq 0x21db16(%rip), %r13    # 0x30d50c
movl (%r13), %edx
movl %r14d, %esi
callq 0xd485e
addsd 0x3ccf6(%rip), %xmm0    # 0x12c700
leaq 0x12ba47(%rip), %rax    # 0x21b458
cvtsi2sdq (%rax), %xmm1
addsd %xmm0, %xmm1
divsd 0x3bd7e(%rip), %xmm1    # 0x12b7a0
cvttsd2si %xmm1, %r15d
movl %r14d, %edi
callq 0x723a5
movl %eax, (%r12)
movl (%r13), %edx
cltq
leaq 0x7ad00(%rip), %rcx     # 0x16a740
movq (%rcx,%rax,8), %rcx
leaq 0x28bdf5(%rip), %rdi    # 0x37b840
leaq 0x45359(%rip), %rsi     # 0x134dab
movl %r15d, %r8d
jmp 0xf04b2
leaq 0x21dab3(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21daa6(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21da99(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
xorl %eax, %eax
leaq 0x28b8cd(%rip), %rcx    # 0x37b350
movsd (%rax,%rcx), %xmm1
ucomisd %xmm1, %xmm0
jb 0xefa9e
movsd 0x8(%rax,%rcx), %xmm2
ucomisd %xmm0, %xmm2
ja 0xf035d
addq $0x8, %rax
cmpq $0x78, %rax
jne 0xefa83
jmp 0xefe32
callq 0xe5f89
leaq 0x21da5b(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21da4e(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21da41(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
addsd 0x3cc3e(%rip), %xmm0    # 0x12c718
cvttsd2si %xmm0, %rcx
leaq 0x12b952(%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 0x28b8db(%rip), %rax    # 0x37b43c
leaq 0x7db88(%rip), %rcx     # 0x16d6f0
movq (%rcx,%rax,8), %rcx
leaq 0x28bccd(%rip), %rdi    # 0x37b840
leaq 0x452bd(%rip), %rsi     # 0x134e37
movl %r8d, %edx
jmp 0xf020b
leaq 0x21d98b(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21d97e(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d971(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
addsd 0x3cb66(%rip), %xmm0    # 0x12c710
cvttsd2si %xmm0, %rcx
leaq 0x12b88a(%rip), %rax    # 0x21b440
addq (%rax), %rcx
movabsq $0xfc0fc0fc0fc0fc1, %rdx # imm = 0xFC0FC0FC0FC0FC1
movq %rcx, %rax
imulq %rdx
movq %rdx, %rax
shrq $0x3f, %rax
shrq $0x4, %rdx
addl %eax, %edx
movl %edx, %eax
shll $0x8, %eax
leal (%rax,%rdx,4), %eax
subl %eax, %ecx
movswl %cx, %eax
imull $0x4ec5, %eax, %edx     # imm = 0x4EC5
movl %edx, %esi
shrl $0x1f, %esi
sarl $0x12, %edx
addl %esi, %edx
leal (%rdx,%rdx,2), %esi
leal (%rdx,%rsi,4), %edx
imull $0x6667, %eax, %eax     # imm = 0x6667
movl %eax, %esi
shrl $0x1f, %esi
sarl $0x13, %eax
addl %esi, %eax
shll $0x2, %eax
leal (%rax,%rax,4), %eax
negl %edx
addl %ecx, %edx
incl %edx
subl %eax, %ecx
movswq %cx, %rax
movswl %dx, %edx
leaq 0x7dc0b(%rip), %rcx     # 0x16d830
movq (%rcx,%rax,8), %rcx
leaq 0x28bc10(%rip), %rdi    # 0x37b840
leaq 0x45200(%rip), %rsi     # 0x134e37
jmp 0xf020b
callq 0xe5f89
movl 0x28b805(%rip), %edx    # 0x37b44c
movl 0x28b7fb(%rip), %ecx    # 0x37b448
movl 0x28b7f0(%rip), %r8d    # 0x37b444
movl 0x28b7e5(%rip), %r9d    # 0x37b440
movl 0x28b7da(%rip), %r10d   # 0x37b43c
leaq 0x28bbd7(%rip), %rdi    # 0x37b840
leaq 0x451a0(%rip), %rsi     # 0x134e10
xorl %eax, %eax
pushq %rbx
pushq %r10
callq 0x9060
addq $0x10, %rsp
jmp 0xf04bc
leaq 0x21d88a(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21d87d(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d870(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
leaq 0x7d536(%rip), %rax     # 0x16d1e0
xorl %ecx, %ecx
leaq 0x28b2fd(%rip), %rdx    # 0x37afb0
movsd (%rdx,%rcx,2), %xmm1
ucomisd %xmm1, %xmm0
jb 0xefcce
movsd 0x8(%rdx,%rcx,2), %xmm2
ucomisd %xmm0, %xmm2
ja 0xf0391
addq $0x4, %rcx
addq $0x8, %rax
cmpq $0x90, %rcx
jne 0xefcb3
jmp 0xefe32
leaq 0x21d829(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21d81c(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d80f(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
xorl %eax, %eax
leaq 0x28ada3(%rip), %rcx    # 0x37aab0
movsd (%rcx,%rax,2), %xmm1
ucomisd %xmm1, %xmm0
jb 0xefd28
movsd 0x8(%rcx,%rax,2), %xmm2
ucomisd %xmm0, %xmm2
ja 0xf03ae
addq $0x4, %rax
cmpq $0x90, %rax
jne 0xefd0d
jmp 0xefe32
leaq 0x21d7d4(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21d7c7(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d7ba(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
leaq 0x28bae0(%rip), %rdi    # 0x37b840
leaq 0x45080(%rip), %rsi     # 0x134de7
movq %rbx, %rdx
movb $0x1, %al
callq 0x9060
jmp 0xf04bc
leaq 0x21d797(%rip), %rax    # 0x30d514
movl (%rax), %r14d
leaq 0x21d789(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d77c(%rip), %rax    # 0x30d50c
movl (%rax), %edx
movl %r14d, %edi
callq 0xd485e
leaq 0x7d35f(%rip), %rax     # 0x16d100
xorl %ecx, %ecx
leaq 0x28b116(%rip), %rdx    # 0x37aec0
xorpd %xmm1, %xmm1
movsd (%rdx,%rcx,8), %xmm2
ucomisd %xmm1, %xmm2
jne 0xefdbb
jnp 0xefdd1
ucomisd %xmm2, %xmm0
jb 0xefdd1
movsd 0x8(%rdx,%rcx,8), %xmm3
ucomisd %xmm0, %xmm3
ja 0xf03f4
incq %rcx
addq $0x8, %rax
cmpq $0xe, %rcx
jne 0xefdae
jmp 0xefe32
leaq 0x21d72d(%rip), %rax    # 0x30d514
movl (%rax), %r14d
leaq 0x21d71f(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d712(%rip), %rax    # 0x30d50c
movl (%rax), %edx
movl %r14d, %edi
callq 0xd485e
xorl %eax, %eax
leaq 0x28b133(%rip), %rcx    # 0x37af40
movsd (%rax,%rcx), %xmm1
ucomisd %xmm1, %xmm0
jb 0xefe28
movsd 0x8(%rax,%rcx), %xmm2
ucomisd %xmm0, %xmm2
ja 0xf0412
addq $0x8, %rax
cmpq $0x68, %rax
jne 0xefe0d
leaq 0x21e280(%rip), %rax    # 0x30e0b9
cmpb $0x0, (%rax)
je 0xefe6d
leaq 0x21d6c7(%rip), %rax    # 0x30d50c
movl (%rax), %edx
leaq 0x21d6c2(%rip), %rax    # 0x30d510
movl (%rax), %ecx
leaq 0x21d6bd(%rip), %rax    # 0x30d514
movl (%rax), %r8d
leaq 0x28b9df(%rip), %rdi    # 0x37b840
leaq 0x45006(%rip), %rsi     # 0x134e6e
jmp 0xeffdc
leaq 0x21e246(%rip), %rax    # 0x30e0ba
cmpb $0x0, (%rax)
je 0xf02f9
leaq 0x21d690(%rip), %rax    # 0x30d514
movl (%rax), %edx
leaq 0x21d683(%rip), %rax    # 0x30d510
movl (%rax), %ecx
leaq 0x21d676(%rip), %rax    # 0x30d50c
movl (%rax), %r8d
leaq 0x28b9a0(%rip), %rdi    # 0x37b840
leaq 0x44fd9(%rip), %rsi     # 0x134e80
jmp 0xeffdc
leaq 0x21d661(%rip), %r14    # 0x30d514
movl (%r14), %ecx
movl $0x1, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0xe085c
movl %eax, %r15d
movslq (%r14), %r14
leaq 0x21d639(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d62c(%rip), %rax    # 0x30d50c
movl (%rax), %edx
movl %r14d, %edi
callq 0xd485e
leaq -0x1(%r14), %rax
movslq %eax, %r9
imulq $0x51eb851f, %r9, %rax  # imm = 0x51EB851F
movq %rax, %rcx
shrq $0x3f, %rcx
shrq $0x20, %rax
sarl $0x5, %eax
addl %ecx, %eax
cltq
imulq $-0x64, %rax, %rcx
imulq $0x23ab1, %rax, %rax    # imm = 0x23AB1
leaq 0x3(%rax), %rdi
testq %rax, %rax
cmovnsq %rax, %rdi
leaq (%rcx,%r14), %rax
decq %rax
sarq $0x2, %rdi
imulq $0x8ead, %rax, %rsi     # imm = 0x8EAD
movabsq $-0x5c28f5c28f5c28f5, %rcx # imm = 0xA3D70A3D70A3D70B
movq %rsi, %rax
imulq %rcx
addq %rsi, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
cvtsi2sd %rdi, %xmm1
addsd 0x3b88b(%rip), %xmm1    # 0x12b7e8
addq %rax, %rdx
cvtsi2sd %rdx, %xmm2
addsd %xmm1, %xmm2
addsd 0x3ba87(%rip), %xmm2    # 0x12b9f8
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 0x28b86e(%rip), %rdi    # 0x37b840
leaq 0x44e27(%rip), %rsi     # 0x134e00
movl %r9d, %edx
movq %rbx, %r9
xorl %eax, %eax
callq 0x9060
jmp 0xf04bc
leaq 0x21d522(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21d515(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d508(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
addsd 0x3c6f5(%rip), %xmm0    # 0x12c708
cvttsd2si %xmm0, %rcx
leaq 0x12b421(%rip), %rax    # 0x21b440
addq (%rax), %rcx
movabsq $0x2ce33e6c02ce33e7, %rdx # imm = 0x2CE33E6C02CE33E7
movq %rcx, %rax
imulq %rdx
movq %rdx, %rax
shrq $0x3f, %rax
shrq $0x6, %rdx
addl %eax, %edx
imull $0x16d, %edx, %eax      # imm = 0x16D
subl %eax, %ecx
movswl %cx, %eax
imull $0x6667, %eax, %eax     # imm = 0x6667
movl %eax, %edx
shrl $0x1f, %edx
sarl $0x13, %eax
addl %edx, %eax
leal (,%rax,4), %edx
leal (%rdx,%rdx,4), %edx
cltq
negl %edx
addl %edx, %ecx
incl %ecx
movswl %cx, %edx
leaq 0x7d85a(%rip), %rcx     # 0x16d8d0
jmp 0xf01f9
leaq 0x21d492(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21d485(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d478(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
addsd 0x1b7dd(%rip), %xmm0    # 0x10b880
addsd 0x18fbd(%rip), %xmm0    # 0x109068
cvttsd2si %xmm0, %rdx
leaq 0x28b789(%rip), %rdi    # 0x37b840
leaq 0x44d1c(%rip), %rsi     # 0x134dda
jmp 0xf0474
leaq 0x21d83e(%rip), %rax    # 0x30d908
cmpb $0x0, (%rax)
je 0xf0330
leaq 0x21d47e(%rip), %rax    # 0x30d558
movsd (%rax), %xmm0
addsd 0x1b79a(%rip), %xmm0    # 0x10b880
leaq 0x21c6bb(%rip), %rax    # 0x30c7a8
cmpb $0x43, (%rax)
addsd 0x18f70(%rip), %xmm0    # 0x109068
cvttsd2si %xmm0, %rdx
je 0xf0466
leaq 0x1287c6(%rip), %rax    # 0x2188d0
cmpq $0x400, (%rax)          # imm = 0x400
je 0xf0466
leaq 0x28b722(%rip), %rdi    # 0x37b840
leaq 0x44d27(%rip), %rsi     # 0x134e4c
jmp 0xf0474
leaq 0x21d3e3(%rip), %rax    # 0x30d514
movl (%rax), %edi
leaq 0x21d3d6(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d3c9(%rip), %rax    # 0x30d50c
movl (%rax), %edx
callq 0xd485e
addsd 0x3c5ce(%rip), %xmm0    # 0x12c720
cvttsd2si %xmm0, %rcx
leaq 0x12b2da(%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), %rcx
addq $0x8ea5b, %rcx          # imm = 0x8EA5B
movabsq $0x6719f36016719f37, %rdx # imm = 0x6719F36016719F37
movq %rcx, %rax
mulq %rdx
movq %rcx, %rax
subq %rdx, %rax
shrq %rax
addq %rdx, %rax
shrq $0x8, %rax
imull $0x16d, %eax, %eax      # imm = 0x16D
subl %eax, %ecx
imull $0xccd, %ecx, %eax      # imm = 0xCCD
shrl $0x10, %eax
leal (,%rax,4), %edx
leal (%rdx,%rdx,4), %edx
subl %edx, %ecx
movzwl %cx, %edx
leaq 0x7d597(%rip), %rcx     # 0x16d790
movq (%rcx,%rax,8), %rcx
leaq 0x28b63c(%rip), %rdi    # 0x37b840
leaq 0x44c20(%rip), %rsi     # 0x134e2b
movq %rbx, %r8
xorl %eax, %eax
callq 0x9060
jmp 0xf04bc
leaq 0x21d2f3(%rip), %rax    # 0x30d514
movslq (%rax), %r14
leaq 0x21d2e5(%rip), %rax    # 0x30d510
movl (%rax), %esi
leaq 0x21d2d8(%rip), %rax    # 0x30d50c
movl (%rax), %edx
movl %r14d, %edi
callq 0xd485e
leaq -0x1(%r14), %rax
cltq
imulq $0x51eb851f, %rax, %rax # imm = 0x51EB851F
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x25, %rax
addl %ecx, %eax
cltq
imulq $-0x64, %rax, %rcx
imulq $0x23ab1, %rax, %rax    # imm = 0x23AB1
leaq 0x3(%rax), %rsi
testq %rax, %rax
cmovnsq %rax, %rsi
leaq (%rcx,%r14), %rax
decq %rax
sarq $0x2, %rsi
imulq $0x8ead, %rax, %rcx     # imm = 0x8EAD
movabsq $-0x5c28f5c28f5c28f5, %rdx # imm = 0xA3D70A3D70A3D70B
movq %rcx, %rax
imulq %rdx
addq %rcx, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x6, %rdx
cvtsi2sd %rsi, %xmm1
addsd 0x3b53b(%rip), %xmm1    # 0x12b7e8
addq %rax, %rdx
cvtsi2sd %rdx, %xmm2
addsd %xmm1, %xmm2
addsd 0x3b737(%rip), %xmm2    # 0x12b9f8
movsd 0x18da7(%rip), %xmm1    # 0x109070
addsd %xmm1, %xmm2
subsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
leaq 0x28b560(%rip), %rdi    # 0x37b840
leaq 0x44b0a(%rip), %rsi     # 0x134df1
movl %r14d, %edx
movq %rbx, %r8
xorl %eax, %eax
callq 0x9060
jmp 0xf04bc
leaq 0x21d210(%rip), %r14    # 0x30d510
movl (%r14), %edi
callq 0x723a5
movl %eax, (%r14)
leaq 0x21d1fa(%rip), %rcx    # 0x30d50c
movl (%rcx), %edx
cltq
leaq 0x7a423(%rip), %rcx     # 0x16a740
movq (%rcx,%rax,8), %rcx
leaq 0x21d1ec(%rip), %rax    # 0x30d514
movl (%rax), %r8d
jmp 0xf0456
leaq 0x21d5d5(%rip), %rax    # 0x30d90c
cmpb $0x0, (%rax)
jne 0xf050f
leaq 0x21d5c6(%rip), %rax    # 0x30d90d
cmpb $0x0, (%rax)
je 0xf04d2
movsd 0x3c3d0(%rip), %xmm0    # 0x12c728
jmp 0xf04fc
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
incl %edx
leaq 0x7d2f2(%rip), %rcx     # 0x16d660
movq (%rax,%rcx), %rcx
leaq 0x28b4c7(%rip), %rdi    # 0x37b840
leaq 0x44a50(%rip), %rsi     # 0x134dd0
jmp 0xf020b
leaq 0x7d1b4(%rip), %rcx     # 0x16d540
jmp 0xf0452
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
incl %edx
leaq 0x28ad3e(%rip), %rsi    # 0x37b0e0
movl (%rcx,%rsi), %r8d
movq (%rax), %rcx
jmp 0xf0456
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %r14d
leaq 0x28a832(%rip), %rcx    # 0x37abf0
movl (%rax,%rcx), %r15d
leaq 0x12b07f(%rip), %rcx    # 0x21b448
addl (%rcx), %r15d
incl %r14d
leaq 0x28a8ba(%rip), %rcx    # 0x37ac90
movl (%rax,%rcx), %edx
testl %edx, %edx
js 0xf0480
leaq 0x24be38(%rip), %rdi    # 0x33c220
leaq 0x33b65(%rip), %rsi     # 0x123f54
jmp 0xf0490
subsd %xmm2, %xmm0
cvttsd2si %xmm0, %edx
incl %edx
cmpq $0x9, %rcx
sbbl $-0x1, %r14d
addl $0xeb0, %r14d           # imm = 0xEB0
movq (%rax), %rcx
jmp 0xf043b
movapd %xmm0, %xmm2
subsd %xmm1, %xmm2
cvttsd2si %xmm2, %edx
incl %edx
ucomisd 0x28ab30(%rip), %xmm0   # 0x37af58
sbbl $0x0, %r14d
addl $-0x4e, %r14d
leaq 0x7cd39(%rip), %rcx     # 0x16d170
movq (%rax,%rcx), %rcx
leaq 0x28b3fe(%rip), %rdi    # 0x37b840
leaq 0x44962(%rip), %rsi     # 0x134dab
jmp 0xf04af
leaq 0x7cfce(%rip), %rcx     # 0x16d420
movq (%rax,%rcx), %rcx
leaq 0x28b3e3(%rip), %rdi    # 0x37b840
leaq 0x44947(%rip), %rsi     # 0x134dab
jmp 0xf04b2
leaq 0x28b3d3(%rip), %rdi    # 0x37b840
leaq 0x449ce(%rip), %rsi     # 0x134e42
movq %rbx, %rcx
xorl %eax, %eax
callq 0x9060
jmp 0xf04bc
negl %edx
leaq 0x24bd97(%rip), %rdi    # 0x33c220
leaq 0x4492a(%rip), %rsi     # 0x134dba
xorl %eax, %eax
callq 0x9060
leaq 0x28b3a2(%rip), %rdi    # 0x37b840
leaq 0x44919(%rip), %rsi     # 0x134dbe
leaq 0x24bd74(%rip), %rcx    # 0x33c220
movl %r15d, %edx
movl %r14d, %r8d
movq %rbx, %r9
xorl %eax, %eax
callq 0x9060
leaq 0x28b37d(%rip), %rax    # 0x37b840
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x21d436(%rip), %rax    # 0x30d90f
cmpb $0x0, (%rax)
je 0xf04e8
movsd 0x3c24a(%rip), %xmm0    # 0x12c730
jmp 0xf04fc
leaq 0x21d41f(%rip), %rax    # 0x30d90e
cmpb $0x0, (%rax)
je 0xf056b
movsd 0x3c23c(%rip), %xmm0    # 0x12c738
leaq 0x21d055(%rip), %rax    # 0x30d558
movsd (%rax), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, (%rax)
leaq 0x21c292(%rip), %rax    # 0x30c7a8
cmpb $0x43, (%rax)
leaq 0x21d038(%rip), %rax    # 0x30d558
cvttsd2si (%rax), %rcx
je 0xf0547
leaq 0x1283a2(%rip), %rax    # 0x2188d0
cmpq $0x400, (%rax)          # imm = 0x400
je 0xf0547
leaq 0x28b302(%rip), %rdi    # 0x37b840
leaq 0x4491d(%rip), %rsi     # 0x134e62
jmp 0xf0555
leaq 0x28b2f2(%rip), %rdi    # 0x37b840
leaq 0x44904(%rip), %rsi     # 0x134e59
leaq 0x21d3c4(%rip), %rdx    # 0x30d920
movq %rbx, %r8
xorl %eax, %eax
callq 0x9060
jmp 0xf04bc
leaq 0x21d39e(%rip), %rax    # 0x30d910
cmpb $0x0, (%rax)
jne 0xf050f
jmp 0xefe32