// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathmsc.cpp
// Function: show_digital_clock(int, int)
int show_digital_clock(int row, int col)
{
int time_exit;
int width, height;
int www;
int ofs;
int min_scale;
int top_line;
int len;
int i;
int hh;
char s[32];
char *am_pm;
int old_vs;
int time_top;
int old_time_color;
int date_row, date_scale;
int hhh;
#define TIME_CHARS len

   // show the big digital clock if we can find a place for it

   old_vs = VCHAR_SCALE;
   time_exit = 0;     // assume there is room for the sat info and clock
   www = 0;
   ofs = 2;

   if(pri_hours >= 12) am_pm = "PM";
   else                am_pm = "AM";

   if((rcvr_type == NO_RCVR) && (zoom_screen != 'C')) { 
      if(text_mode) return 0;  // no room on screen to do this
      if(first_key) return 0;
      if(zoom_screen) return 0;
   }

// if(all_adevs && (SCREEN_WIDTH < MEDIUM_WIDTH)) return 0;
   if(all_adevs && (SCREEN_WIDTH < NARROW_SCREEN)) return 0;

   old_time_color = time_color;
   if(eclipsed) time_color = YELLOW;

   // format the time display string
   ofs = 2;
   if(show_elapsed_time && jd_elapsed) { // must be first item in this if statement
      sprintf(out, "%.3f secs", (jd_utc-jd_elapsed)*24.0*60.0*60.0+0.00001);
   }
   else if(show_julian_time) {
      sprintf(out, "%.6f", jd_display);  // 14.
      ofs = 1;
   }
   else if(show_mjd_time) {
      sprintf(out, "%.6f", jd_display-JD_MJD);  // 12.
      ofs = 1;
   }
   else if(show_unix_time) { // 12.
      sprintf(out, "%.3f", (jd_display-LINUX_EPOCH)*24.0*60.0*60.0);
      ofs = 1;
   }
   else if(show_gps_time) {  // 12.
      sprintf(out, "%.3f", (jd_display-GPS_EPOCH)*24.0*60.0*60.0);
      ofs = 1;
   }
   else if(show_msecs) {
      sprintf(out, "%02d:%02d:%02d.%03d", clock_12?(pri_hours%12):pri_hours, pri_minutes, pri_seconds, (int)(pri_frac*1000.0));
      ofs = 3;
   }
   else if(clock_12) {
      sprintf(out, "%02d:%02d:%02d %s", pri_hours%12, pri_minutes, pri_seconds, am_pm);
      ofs = 3;
   }
   else {
      sprintf(out, "%02d:%02d:%02d", pri_hours, pri_minutes, pri_seconds);
   }
   len = strlen(out)+1;

   if((zoom_screen == 'C') || (rcvr_type == NO_RCVR)) { 
      if(0 && show_euro_dates) {
         sprintf(out, "%02d.%02d.%02d", pri_day, pri_month, pri_year%100);
      }
      else {
         strcpy(out, fmt_date(1));
      }
      len = strlen(out);

      if(len < 14) len = 14;
      VCHAR_SCALE = ((SCREEN_WIDTH/8) / len);
      if(rcvr_type == NO_RCVR) {
         if(zoom_screen != 'C') {  // tweak scale factor for wide/short screens
            VCHAR_SCALE = (SCREEN_WIDTH / len);
            VCHAR_SCALE = (((VCHAR_SCALE*SCREEN_HEIGHT*1024)/768)) / (SCREEN_WIDTH*8);
            if(SCREEN_WIDTH < TINY_TINY_WIDTH) {
               VCHAR_SCALE = (VCHAR_SCALE*vc_font_scale/100);
            }
         }
      }

      if(jpl_clock) {
         i = ((SCREEN_HEIGHT) / (6*VCHAR_H));
         if(i < VCHAR_SCALE) VCHAR_SCALE = i;
         if(SCREEN_WIDTH > WIDE_WIDTH) VCHAR_SCALE = ((SCREEN_HEIGHT) / (11*VCHAR_H));

         time_row = VCHAR_SCALE/4;
         date_row = time_row;
         date_scale = VCHAR_SCALE;

         center_vstring(time_row, VCHAR_SCALE, time_color, out);

         time_row += VCHAR_SCALE+VCHAR_SCALE;
         sprintf(out, "%02d:%02d:%02d UTC", clock_12?(hours%12):hours, minutes, seconds);
         center_vstring(time_row, VCHAR_SCALE, time_color, out);

         time_row += VCHAR_SCALE+VCHAR_SCALE/2;
         hh = pri_hours+3;
         if(hh < 0) hh += 24;
         else if(hh > 23) hh -= 24;
         strcpy(s, tz_string);
         s[0] = 'E';
         sprintf(out, "%02d:%02d:%02d %s", clock_12?(hh%12):hh, pri_minutes, pri_seconds, s);
         center_vstring(time_row, VCHAR_SCALE, time_color, out);

         time_row += VCHAR_SCALE+VCHAR_SCALE/2;
         sprintf(out, "%02d:%02d:%02d %s", clock_12?(pri_hours%12):pri_hours, pri_minutes, pri_seconds, tz_string);
         center_vstring(time_row, VCHAR_SCALE, time_color, out);
      }
      else {
         time_row = ((SCREEN_HEIGHT/TEXT_HEIGHT)/2) - ((VCHAR_SCALE*16)/(2*TEXT_HEIGHT));
         time_row += (VCHAR_SCALE*16/2)/TEXT_HEIGHT;

         if((rcvr_type == NO_RCVR) && (zoom_screen != 'C')) {
            time_row = SCREEN_HEIGHT / TEXT_HEIGHT;
            time_row +=2;
            time_row -= (VCHAR_SCALE*16*3/2)/TEXT_HEIGHT;

            time_top = (time_row * TEXT_HEIGHT);  // top line of digital clock display
            time_top -= (VCHAR_SCALE*16*3/2);

            ACLOCK_SIZE = time_top - (TEXT_HEIGHT*1);
            if(ACLOCK_SIZE > (SCREEN_WIDTH/3)) ACLOCK_SIZE = (SCREEN_WIDTH/3);
            aclock_y = (ACLOCK_SIZE/2) + (TEXT_HEIGHT*1);
            aclock_x = SCREEN_WIDTH - (ACLOCK_SIZE/2) - (TEXT_WIDTH*2);
         }

         date_row = time_row;
         date_scale = VCHAR_SCALE;
         center_vstring(time_row, VCHAR_SCALE, time_color, out);

         time_row -= (VCHAR_SCALE*16*3/2)/TEXT_HEIGHT;
         if(show_elapsed_time && jd_elapsed) { // must be first item in this if statement
            sprintf(out, "%.3f secs", (jd_utc-jd_elapsed)*24.0*60.0*60.0+0.00001);
            len = strlen(out)+1;
            center_vstring(time_row, VCHAR_SCALE, time_color, out);
         }
         else if(show_julian_time) {
            sprintf(out, "%14.6f %s", jd_local, tz_info());
            len = strlen(out)+1;
            center_vstring(time_row, VCHAR_SCALE*14/len, time_color, out);
         }
         else if(show_mjd_time) {
            sprintf(out, "%12.6f %s", jd_local-JD_MJD, tz_info());
            len = strlen(out)+1;
            center_vstring(time_row, VCHAR_SCALE*14/len, time_color, out);
         }
         else if(show_unix_time) {
            sprintf(out, "%14.3f %s", (jd_local-LINUX_EPOCH)*24.0*60.0*60.0, tz_info());
            len = strlen(out)+1;
            center_vstring(time_row, VCHAR_SCALE*14/len, time_color, out);
         }
         else if(show_gps_time) {
            sprintf(out, "%14.3f %s", (jd_local-GPS_EPOCH)*24.0*60.0*60.0, tz_info());
            len = strlen(out)+1;
            center_vstring(time_row, VCHAR_SCALE*14/len, time_color, out);
         }
         else if(show_msecs) {
            if(clock_12) {
               sprintf(out, "%02d:%02d:%02d.%03d %s", pri_hours%12,pri_minutes,pri_seconds,(int)(pri_frac*1000.0), tz_info());
               len = strlen(out)+1;
               center_vstring(time_row, VCHAR_SCALE*14/len, time_color, out);
            }
            else {
               sprintf(out, "%02d:%02d:%02d.%03d %s", pri_hours,pri_minutes,pri_seconds,(int)(pri_frac*1000.0), tz_info());
               len = strlen(out)+1;
               center_vstring(time_row, VCHAR_SCALE*14/len, time_color, out);
            }
         }
         else if(clock_12){
            VCHAR_SCALE = (VCHAR_SCALE * 12) / 15;
            sprintf(out, "%02d:%02d:%02d %s %s", pri_hours%12,pri_minutes,pri_seconds, am_pm, tz_info());
            center_vstring(time_row, VCHAR_SCALE, time_color, out);
         }
         else {
            sprintf(out, "%02d:%02d:%02d %s", pri_hours,pri_minutes,pri_seconds, tz_info());
            center_vstring(time_row, VCHAR_SCALE, time_color, out);
         }
      }

      if(1 && ((zoom_screen == 'C') || (rcvr_type == NO_RCVR)) && enviro_mode()) {  // show environmental sensor data on the clock screen
         #define ENV_COL (VCharWidth*3)
         if(zoom_screen == 'C') {
            date_row += (date_scale*1);

            hhh = (SCREEN_HEIGHT - date_row*date_scale) / 8;
            VCHAR_SCALE = (hhh/16);

            date_row = (SCREEN_HEIGHT-VCharHeight*4);
            col = ENV_COL;
         }
         else {
            VCHAR_SCALE = 3; // (hhh/16);
            date_row = (VCharHeight*50)/19;
            col = (VCharWidth*2);
         }


         i = round_temp;
         round_temp = 2;
         if     (have_temperature0) sprintf(out, "Temp0:%7.2f%c%c",  scale_temp(tc0),DEGREES,DEG_SCALE);
         else if(have_temperature1) sprintf(out, "Temp1:%7.2f%c%c",  scale_temp(tc1),DEGREES,DEG_SCALE); 
         else if(have_temperature2) sprintf(out, "Temp2:%7.2f%c%c",  scale_temp(tc2),DEGREES,DEG_SCALE); 
         else if(have_temperature)  sprintf(out, "Temp:  %7.2f%c%c", scale_temp(temperature),DEGREES,DEG_SCALE); 
         else                       sprintf(out, "                ");

         graphics_coords = 1;

         round_temp = i;
         vchar_string(date_row, col, time_color, out);

         date_row += VCharHeight; //VCHAR_SCALE;
         sprintf(out, "Baro: %7.2f mb", pressure);
         vchar_string(date_row, col, time_color, out);

         date_row += VCharHeight; //VCHAR_SCALE;
         sprintf(out, "RH:   %7.2f %%", humidity);
         vchar_string(date_row, col, time_color, out);

         graphics_coords = 0;
      }

      digital_clock_shown = 1;
      show_title();

      time_color = old_time_color;
      return time_exit;
   }
   else if(zoom_screen) {
      time_color = old_time_color;
      return 1;
   }
   else if(all_adevs) { 
      if(small_font == 2) VCHAR_SCALE = 5;  // DOS 8x8 font
      else                VCHAR_SCALE = 6;
      if(rcvr_type == TICC_RCVR) VCHAR_SCALE -= 1;

      if(SCREEN_WIDTH <= 640) { 
         VCHAR_SCALE = 2;
      }
      else if(SCREEN_WIDTH < MEDIUM_WIDTH) {
         VCHAR_SCALE = 3;
         col -= 6;
      }

      if(WIDE_SCREEN) {  // center digital clock over right hand adev tables
         width = VCharWidth;
      }
      else {   // center digital clock in the upper right hand corner space
         width = ((SCREEN_WIDTH/TEXT_WIDTH)-col)*TEXT_WIDTH;
         if(clock_12) i = 3;
         else         i = 2;
         width -= ((TIME_CHARS+ofs) * VCharWidth);
         width /= 2;
      }
      www = width;
      time_col = col + (width/TEXT_WIDTH);
      time_row = row;
   }
   else {  // clock goes in or below sat info area
      if(temp_sats < 8) top_line = (row+1+8);
      else              top_line = (row+1+temp_sats);
      if(sat_cols > 1)  top_line = (row+1+sat_rows);

//    width = (INFO_COL - TIME_CHARS) * TEXT_WIDTH;
      width = (INFO_COL - 0*TIME_CHARS) * TEXT_WIDTH;
      www = width;
      height = (MOUSE_ROW-top_line-1) * TEXT_HEIGHT;

      VCHAR_SCALE = 1;

      height = (height / VCharHeight);
      width = (width / (VCharWidth*TIME_CHARS));
      if(use_vc_fonts && (vc_font_scale < 100)) width = (width*vc_font_scale) / 100;
      if(width < 0) width = 1;
      if(height < 0) height = 1;

      if(width > height) VCHAR_SCALE = height;
      else               VCHAR_SCALE = width;

      if(SCREEN_HEIGHT < TINY_TINY_HEIGHT) {
//       if(VCHAR_SCALE < 2) VCHAR_SCALE = 1;
//       else                VCHAR_SCALE = 2;
         VCHAR_SCALE = 2;
      }

#define MIN_SCALE 2 
      min_scale = MIN_SCALE;

      if(VCHAR_SCALE < MIN_SCALE) {  // no room for time under the sat info
         time_exit = 1;      // so dont draw the sat info table
         top_line = row;
         VCHAR_SCALE = 6;
      }

      time_col = (INFO_COL - 0 - ((TIME_CHARS*VCharWidth)/TEXT_WIDTH)) / 2;
      time_row = (MOUSE_ROW - top_line - (VCharHeight/TEXT_HEIGHT)) / 2;
      time_row += top_line+1;
      if((MOUSE_ROW-time_row) > 1) ++time_row;
   }
   if(time_col < 0) time_col = 0;
   clock_show_row = time_row;
//sprintf(plot_title, "r:%d c:%d  w:%d h:%d www:%d  top:%d  vscale:%d  mscale:%d", time_row,time_col, width,height, www, top_line, VCHAR_SCALE, min_scale);

   if((MOUSE_ROW-time_row) <= 1) {  // very small area for clock display
      min_scale = 1;                // ... use unscaled text format
      VCHAR_SCALE = 1;
   }

   // show the time
   i = VCHAR_SCALE;
   if(all_adevs) {
      VCHAR_SCALE = i;
   }
   else {
      VCHAR_SCALE = (VCHAR_SCALE) * 8 / len;
      if(VCHAR_SCALE < min_scale) VCHAR_SCALE = min_scale;
   }

   vchar_string(time_row, time_col, time_color, out);

   VCHAR_SCALE = i;

   if(old_vs != VCHAR_SCALE) {  // screen config changed
      need_redraw = 1100;
   }

   digital_clock_shown = 1;
   time_color = old_time_color;
   return time_exit;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %esi, %r14d
leaq 0x21d5fe(%rip), %rax    # 0x30d508
movl (%rax), %edx
cmpl $0xc, %edx
leaq 0x24eb0(%rip), %rax     # 0x114dc6
leaq 0x44e85(%rip), %r12     # 0x134da2
cmovgeq %rax, %r12
leaq 0x133614(%rip), %rax    # 0x22353c
leaq 0x1289a1(%rip), %rcx    # 0x2188d0
cmpq $0x400, (%rcx)          # imm = 0x400
movl (%rax), %r8d
sete %cl
leaq 0x21c865(%rip), %rax    # 0x30c7a8
movb (%rax), %al
cmpb $0x43, %al
setne %sil
andb %cl, %sil
cmpb $0x1, %sil
jne 0xeff74
leaq 0x12887d(%rip), %rcx    # 0x2187d8
leaq 0x14eff6(%rip), %rsi    # 0x23ef58
movl (%rsi), %esi
orl (%rcx), %esi
sete %cl
testb %al, %al
sete %al
andb %cl, %al
cmpb $0x1, %al
jne 0xeffb1
leaq 0x14cdc3(%rip), %r13    # 0x23cd3e
cmpb $0x0, (%r13)
je 0xeffb8
leaq 0x128877(%rip), %rax    # 0x218800
leaq 0x1335b4(%rip), %rcx    # 0x223544
imull $0x31a, (%rcx), %ecx    # imm = 0x31A
movslq %ecx, %rcx
imulq $0x51eb851f, %rcx, %rcx # imm = 0x51EB851F
movq %rcx, %rsi
shrq $0x3f, %rsi
sarq $0x25, %rcx
addl %esi, %ecx
cmpl %ecx, (%rax)
jge 0xeffb8
xorl %eax, %eax
jmp 0xf0dd5
leaq 0x133615(%rip), %rcx    # 0x2235d4
movl (%rcx), %eax
movl %eax, -0x3c(%rbp)
leaq 0x21d845(%rip), %rax    # 0x30d810
cmpl $0x0, (%rax)
je 0xeffd6
movl $0xe, (%rcx)
leaq 0x12b413(%rip), %rax    # 0x21b3f0
cmpl $0x0, (%rax)
leaq 0x12b411(%rip), %rax    # 0x21b3f8
movl %r8d, -0x38(%rbp)
movq %rdi, -0x30(%rbp)
je 0xf004c
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0xf0001
jnp 0xf004c
leaq 0x21d528(%rip), %rax    # 0x30d530
movsd (%rax), %xmm0
subsd %xmm1, %xmm0
mulsd 0x19028(%rip), %xmm0    # 0x109040
movsd 0x18fe8(%rip), %xmm1    # 0x109008
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
addsd 0x1b848(%rip), %xmm0    # 0x10b878
leaq 0x24c1e9(%rip), %rdi    # 0x33c220
leaq 0x44d67(%rip), %rsi     # 0x134da5
movb $0x1, %al
callq 0x9060
movl $0x2, %ebx
jmp 0xf00a2
leaq 0x12b3ad(%rip), %rax    # 0x21b400
cmpb $0x0, (%rax)
je 0xf0065
leaq 0x21d4f1(%rip), %rax    # 0x30d550
movsd (%rax), %xmm0
jmp 0xf0088
leaq 0x12b395(%rip), %rax    # 0x21b401
cmpb $0x0, (%rax)
je 0xf0663
leaq 0x21d4d4(%rip), %rax    # 0x30d550
movsd (%rax), %xmm0
addsd 0x1b7e8(%rip), %xmm0    # 0x10b870
leaq 0x24c191(%rip), %rdi    # 0x33c220
leaq 0x24c39(%rip), %rsi     # 0x114ccf
movb $0x1, %al
callq 0x9060
movl $0x1, %ebx
leaq 0x24c177(%rip), %rdi    # 0x33c220
callq 0x9120
movq %rax, %rcx
leaq 0x21c6f0(%rip), %r15    # 0x30c7a8
movb (%r15), %sil
cmpb $0x43, %sil
sete %al
leaq 0x128807(%rip), %r8     # 0x2188d0
movq (%r8), %rdx
cmpq $0x400, %rdx            # imm = 0x400
sete %dil
orb %al, %dil
cmpb $0x1, %dil
jne 0xf041a
movl $0x1, %edi
movq %r8, %rbx
callq 0xef1b0
leaq 0x24c128(%rip), %r14    # 0x33c220
leaq 0x28b821(%rip), %rsi    # 0x37b920
movq %r14, %rdi
callq 0x9340
movq %r14, %rdi
callq 0x9120
cmpl $0xf, %eax
movl $0xe, %esi
cmovgel %eax, %esi
leaq 0x1286df(%rip), %rax    # 0x218800
movl (%rax), %ecx
leal 0x7(%rcx), %eax
testl %ecx, %ecx
cmovnsl %ecx, %eax
sarl $0x3, %eax
cltd
idivl %esi
cmpq $0x400, (%rbx)          # imm = 0x400
sete %dl
cmpb $0x43, (%r15)
leaq 0x1333f6(%rip), %r13    # 0x22353c
movl %eax, (%r13)
setne %r8b
andb %dl, %r8b
cmpb $0x1, %r8b
jne 0xf01b9
movl %ecx, %eax
cltd
idivl %esi
leaq 0x1286a1(%rip), %rdx    # 0x218804
imull (%rdx), %eax
shll $0xa, %eax
cltq
imulq $0x2aaaaaab, %rax, %rax # imm = 0x2AAAAAAB
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x27, %rax
addl %edx, %eax
leal (,%rcx,8), %esi
cltd
idivl %esi
movl %eax, (%r13)
cmpl $0x1c1, %ecx            # imm = 0x1C1
jg 0xf01b9
leaq 0x1333a8(%rip), %rdx    # 0x223544
imull (%rdx), %eax
cltq
imulq $0x51eb851f, %rax, %rax # imm = 0x51EB851F
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rax
addl %edx, %eax
movl %eax, (%r13)
leaq 0x12862c(%rip), %rax    # 0x2187ec
cmpl $0x0, (%rax)
leaq 0x12863a(%rip), %rax    # 0x218804
movl (%rax), %eax
je 0xf0488
cltq
imulq $0x2aaaaaab, %rax, %rdx # imm = 0x2AAAAAAB
movq %rdx, %rsi
shrq $0x3f, %rsi
sarq $0x23, %rdx
addl %esi, %edx
cmpl (%r13), %edx
jge 0xf01f2
movl %edx, (%r13)
cmpl $0x4fb, %ecx            # imm = 0x4FB
jl 0xf0212
imulq $0x2e8ba2e9, %rax, %rax # imm = 0x2E8BA2E9
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x24, %rax
addl %ecx, %eax
movl %eax, (%r13)
movl (%r13), %esi
leal 0x3(%rsi), %edi
testl %esi, %esi
cmovnsl %esi, %edi
sarl $0x2, %edi
leaq 0x24b154(%rip), %r15    # 0x33b37c
movl %edi, (%r15)
leaq 0x1333a2(%rip), %rax    # 0x2235d4
movl (%rax), %edx
movq %rax, %rbx
leaq 0x24bfe2(%rip), %r12    # 0x33c220
movq %rdi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movq %r12, %rcx
callq 0xec99
movl (%r13), %eax
addl %eax, %eax
addl %eax, (%r15)
leaq 0x12b1b9(%rip), %rsi    # 0x21b417
leaq 0x21d26b(%rip), %rax    # 0x30d4d0
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
movl %eax, %edx
subl %ecx, %edx
cmpb $0x0, (%rsi)
cmovel %eax, %edx
leaq 0x21d239(%rip), %rax    # 0x30d4cc
movl (%rax), %ecx
leaq 0x21d22c(%rip), %rax    # 0x30d4c8
movl (%rax), %r8d
leaq 0x44b09(%rip), %rsi     # 0x134daf
movq %r12, %rdi
xorl %eax, %eax
callq 0x9060
movl (%r15), %edi
movl (%r13), %esi
movl (%rbx), %edx
movq %r12, %rcx
callq 0xec99
movl (%r13), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
addl %ecx, (%r15)
leaq 0x21d22e(%rip), %r13    # 0x30d508
movl (%r13), %eax
cmpl $0x15, %eax
movl $0xffffffeb, %ecx       # imm = 0xFFFFFFEB
movl $0x3, %edx
cmovgel %ecx, %edx
cmpl $-0x3, %eax
movl $0x1b, %ebx
cmovgel %edx, %ebx
addl %eax, %ebx
leaq 0x21d62e(%rip), %rsi    # 0x30d930
leaq -0x60(%rbp), %r14
movq %r14, %rdi
callq 0x9340
movb $0x45, (%r14)
movslq %ebx, %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
movl %eax, %edx
subl %ecx, %edx
leaq 0x12b0dd(%rip), %rcx    # 0x21b417
cmpb $0x0, (%rcx)
cmovel %eax, %edx
leaq 0x21d1bd(%rip), %rax    # 0x30d504
movl (%rax), %ecx
leaq 0x21d1b0(%rip), %rax    # 0x30d500
movl (%rax), %r8d
leaq 0x1a760(%rip), %rbx     # 0x10aaba
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %r9
xorl %eax, %eax
callq 0x9060
movl (%r15), %edi
leaq 0x1331c8(%rip), %rax    # 0x22353c
movl (%rax), %esi
leaq 0x133257(%rip), %r14    # 0x2235d4
movl (%r14), %edx
movq %r12, %rcx
callq 0xec99
leaq 0x1331ad(%rip), %rax    # 0x22353c
movl (%rax), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
addl %ecx, (%r15)
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
movl %eax, %edx
subl %ecx, %edx
leaq 0x12b04f(%rip), %rcx    # 0x21b417
cmpb $0x0, (%rcx)
cmovel %eax, %edx
leaq 0x21d12f(%rip), %rax    # 0x30d504
movl (%rax), %ecx
leaq 0x21d122(%rip), %rax    # 0x30d500
movl (%rax), %r8d
leaq 0x133154(%rip), %r13    # 0x22353c
movq %r12, %rdi
movq %rbx, %rsi
leaq 0x21d53b(%rip), %r9     # 0x30d930
xorl %eax, %eax
callq 0x9060
movl (%r15), %edi
movl (%r13), %esi
movl (%r14), %edx
movq %r12, %rcx
callq 0xec99
leaq 0x21c393(%rip), %r15    # 0x30c7a8
jmp 0xf0b47
movl $0x1, %eax
testb %sil, %sil
jne 0xf0dc9
incl %ecx
movb (%r13), %r8b
testb %r8b, %r8b
je 0xf068b
leaq 0x12841b(%rip), %rax    # 0x218859
xorl %esi, %esi
cmpb $0x2, (%rax)
sete %sil
xorl %eax, %eax
cmpq $0x10000, %rdx          # imm = 0x10000
sete %al
addl %esi, %eax
movl $0x6, %edx
subl %eax, %edx
leaq 0x1330d9(%rip), %r12    # 0x22353c
movl %edx, (%r12)
leaq 0x128392(%rip), %rax    # 0x218800
movl (%rax), %eax
cmpl $0x280, %eax            # imm = 0x280
jg 0xf07e8
movl $0x2, (%r12)
jmp 0xf07fb
leaq 0x128385(%rip), %rbx    # 0x218814
movl (%rbx), %r9d
cltd
idivl %r9d
movl %eax, %r11d
movl %eax, %r10d
shrl $0x1f, %r10d
addl %eax, %r10d
sarl %r10d
movl (%r13), %esi
movl %esi, %eax
shll $0x4, %eax
leal (%r9,%r9), %edi
cltd
idivl %edi
subl %eax, %r10d
leal (,%rsi,8), %edi
movl %edi, %eax
cltd
idivl %r9d
addl %r10d, %eax
leaq 0x24aeac(%rip), %r14    # 0x33b37c
movl %eax, (%r14)
testb %r8b, %r8b
je 0xf054a
leal (%rdi,%rdi,2), %edi
movl %edi, %eax
cltd
idivl %r9d
subl %eax, %r11d
addl $0x2, %r11d
movl %r11d, (%r14)
imull %r9d, %r11d
addl %r9d, %edi
subl %edi, %r11d
movslq %ecx, %rax
imulq $0x55555556, %rax, %rax # imm = 0x55555556
movq %rax, %rdx
shrq $0x3f, %rdx
shrq $0x20, %rax
addl %edx, %eax
cmpl %eax, %r11d
cmovll %r11d, %eax
leaq 0x24ae56(%rip), %rdx    # 0x33b370
movl %eax, (%rdx)
movl %eax, %edx
shrl $0x1f, %edx
addl %eax, %edx
sarl %edx
addl %edx, %r9d
leaq 0x24ae49(%rip), %rax    # 0x33b378
movl %r9d, (%rax)
subl %edx, %ecx
leaq 0x1282d5(%rip), %rax    # 0x218810
movl (%rax), %eax
addl %eax, %eax
subl %eax, %ecx
leaq 0x24ae2c(%rip), %rax    # 0x33b374
movl %ecx, (%rax)
movl (%r14), %edi
leaq 0x133080(%rip), %rax    # 0x2235d4
movl (%rax), %edx
leaq 0x24bcc3(%rip), %rcx    # 0x33c220
movq %rdi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
callq 0xec99
movl (%r13), %ecx
leal (,%rcx,8), %eax
leal (%rax,%rax,2), %eax
cltd
idivl (%rbx)
subl %eax, (%r14)
leaq 0x12ae6b(%rip), %rax    # 0x21b3f0
cmpl $0x0, (%rax)
je 0xf05fd
leaq 0x12ae67(%rip), %rax    # 0x21b3f8
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0xf05a1
jnp 0xf05fd
leaq 0x21cf88(%rip), %rax    # 0x30d530
movsd (%rax), %xmm0
subsd %xmm1, %xmm0
mulsd 0x18a88(%rip), %xmm0    # 0x109040
movsd 0x18a48(%rip), %xmm1    # 0x109008
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
addsd 0x1b2a8(%rip), %xmm0    # 0x10b878
leaq 0x24bc49(%rip), %rbx    # 0x33c220
leaq 0x447c7(%rip), %rsi     # 0x134da5
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
movl (%r14), %edi
movl (%r13), %esi
leaq 0x132fde(%rip), %rax    # 0x2235d4
movl (%rax), %edx
jmp 0xf0b3f
leaq 0x12adfc(%rip), %rax    # 0x21b400
cmpb $0x0, (%rax)
je 0xf0854
leaq 0x21cf34(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
leaq 0x21d275(%rip), %rax    # 0x30d894
leaq 0x21d30a(%rip), %rdx    # 0x30d930
leaq 0x21ce77(%rip), %rcx    # 0x30d4a4
testb $0x1, (%rcx)
leaq 0x431ca(%rip), %rcx     # 0x133801
leaq 0x44780(%rip), %rsi     # 0x134dbe
cmoveq %rcx, %rsi
cmpb $0x0, (%rdx)
cmoveq %rsi, %rdx
cmpb $0x0, (%rax)
cmoveq %rsi, %rdx
leaq 0x24bbc9(%rip), %rbx    # 0x33c220
leaq 0x44764(%rip), %rsi     # 0x134dc2
jmp 0xf0b0b
leaq 0x12ad98(%rip), %rax    # 0x21b402
cmpb $0x0, (%rax)
je 0xf0992
leaq 0x21ced6(%rip), %rax    # 0x30d550
movsd (%rax), %xmm0
addsd 0x189c2(%rip), %xmm0    # 0x109048
jmp 0xf09b1
leaq 0x14e88e(%rip), %rax    # 0x23ef20
movl (%rax), %eax
movq -0x30(%rbp), %rbx
leal 0x9(%rbx), %edx
leal 0x1(%rbx), %edi
cmpl $0x8, %eax
leal 0x1(%rax,%rbx), %eax
cmovll %edx, %eax
leaq 0x21c0d5(%rip), %rdx    # 0x30c784
leaq 0x21c0d2(%rip), %rsi    # 0x30c788
addl (%rsi), %edi
cmpl $0x2, (%rdx)
cmovll %eax, %edi
leaq 0x1280d7(%rip), %rax    # 0x21879c
movl (%rax), %r10d
leaq 0x128141(%rip), %rax    # 0x218810
movl (%rax), %r11d
movl %r11d, %eax
imull %r10d, %eax
leaq 0x1280c8(%rip), %rdx    # 0x2187a8
movl (%rdx), %r9d
movl %edi, %esi
notl %esi
addl %r9d, %esi
leaq 0x132e4b(%rip), %r12    # 0x22353c
movl $0x1, (%r12)
movl %r11d, %r14d
imull %ecx, %r14d
cltd
idivl %r14d
leaq 0x132e35(%rip), %rdx    # 0x223540
cmpl $0x0, (%rdx)
setne %r14b
leaq 0x132e2b(%rip), %rdx    # 0x223544
movl (%rdx), %edx
cmpl $0x64, %edx
setl %r15b
andb %r14b, %r15b
cmpb $0x1, %r15b
jne 0xf0745
imull %eax, %edx
movslq %edx, %rax
imulq $0x51eb851f, %rax, %rax # imm = 0x51EB851F
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rax
addl %edx, %eax
testl %eax, %eax
movl $0x1, %edx
cmovsl %edx, %eax
testl %esi, %esi
cmovsl %edx, %esi
cmpl %esi, %eax
cmovll %eax, %esi
leaq 0x1280a4(%rip), %rax    # 0x218804
cmpl $0x190, (%rax)          # imm = 0x190
movl $0x2, %eax
cmovgel %esi, %eax
cmpl $0x2, %eax
setl %r14b
movl $0x6, %esi
cmovgel %eax, %esi
movl %esi, (%r12)
cmovll %ebx, %edi
movl %ecx, %eax
imull %esi, %eax
shll $0x3, %eax
cltd
idivl %r11d
subl %eax, %r10d
movl %r10d, %eax
shrl $0x1f, %eax
addl %r10d, %eax
sarl %eax
leaq 0x24abdb(%rip), %rdx    # 0x33b380
movl %eax, (%rdx)
shll $0x4, %esi
leaq 0x128063(%rip), %r10    # 0x218814
movl %esi, %eax
cltd
idivl (%r10)
addl %edi, %eax
movl %r9d, %edx
subl %eax, %edx
movl %edx, %eax
shrl $0x1f, %eax
addl %edx, %eax
sarl %eax
addl %eax, %edi
incl %edi
leaq 0x24abaa(%rip), %rax    # 0x33b37c
movl %edi, (%rax)
subl %edi, %r9d
cmpl $0x2, %r9d
jl 0xf08eb
incl %edi
jmp 0xf08e2
cmpl $0x3e1, %eax            # imm = 0x3E1
jg 0xf07fb
movl $0x3, (%r12)
addl $-0x6, %r14d
cmpl $0x690, %eax            # imm = 0x690
jl 0xf081d
movl (%r12), %eax
cmpl $0x2, %eax
jge 0xf08c2
leaq 0x127ffa(%rip), %rax    # 0x218810
movl (%rax), %eax
jmp 0xf08c5
leaq 0x127fec(%rip), %rdx    # 0x218810
movl (%rdx), %esi
cltd
idivl %esi
movl %eax, %edx
subl %r14d, %edx
imull %esi, %edx
addl %ecx, %ebx
movl (%r12), %eax
leal (,%rax,8), %edi
cmpl $0x2, %eax
cmovll %esi, %edi
imull %ebx, %edi
subl %edi, %edx
movl %edx, %eax
shrl $0x1f, %eax
addl %edx, %eax
sarl %eax
jmp 0xf08c5
leaq 0x12aba6(%rip), %rax    # 0x21b401
cmpb $0x0, (%rax)
je 0xf09dc
leaq 0x21ccdd(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
addsd 0x1aff9(%rip), %xmm0    # 0x10b870
leaq 0x21d016(%rip), %rax    # 0x30d894
leaq 0x21d0ab(%rip), %rdx    # 0x30d930
leaq 0x21cc18(%rip), %rcx    # 0x30d4a4
testb $0x1, (%rcx)
leaq 0x42f6b(%rip), %rcx     # 0x133801
leaq 0x44521(%rip), %rsi     # 0x134dbe
cmoveq %rcx, %rsi
cmpb $0x0, (%rdx)
cmoveq %rsi, %rdx
cmpb $0x0, (%rax)
cmoveq %rsi, %rdx
leaq 0x24b96a(%rip), %rbx    # 0x33c220
leaq 0x4450f(%rip), %rsi     # 0x134dcc
jmp 0xf0b0b
shll $0x3, %eax
movq -0x30(%rbp), %rdi
leaq 0x127f40(%rip), %rsi    # 0x218810
cltd
idivl (%rsi)
addl %r14d, %eax
leaq 0x24aaa3(%rip), %rdx    # 0x33b380
movl %eax, (%rdx)
xorl %r14d, %r14d
leaq 0x24aa93(%rip), %rax    # 0x33b37c
movl %edi, (%rax)
leaq 0x24aa8e(%rip), %rsi    # 0x33b380
cmpl $0x0, (%rsi)
jns 0xf08fd
movl $0x0, (%rsi)
leaq 0x24aa78(%rip), %rax    # 0x33b37c
movl (%rax), %edi
leaq 0x12aadb(%rip), %rax    # 0x21b3e8
movl %edi, (%rax)
leaq 0x127e92(%rip), %rax    # 0x2187a8
movl (%rax), %eax
subl %edi, %eax
movl $0x2, %r9d
cmpl $0x1, %eax
jg 0xf0933
movl $0x1, (%r12)
movl $0x1, %r9d
movl (%r12), %ebx
testb %r8b, %r8b
jne 0xf0951
leal (,%rbx,8), %eax
cltd
idivl %ecx
cmpl %r9d, %eax
cmovgl %eax, %r9d
movl %r9d, (%r12)
movl (%rsi), %esi
leaq 0x132c7a(%rip), %rax    # 0x2235d4
movzbl (%rax), %edx
leaq 0x24b8bc(%rip), %rcx    # 0x33c220
callq 0xec04
movl %ebx, (%r12)
cmpl %ebx, -0x38(%rbp)
je 0xf097f
leaq 0x127ecb(%rip), %rax    # 0x218844
movl $0x44c, (%rax)          # imm = 0x44C
movzbl %r14b, %eax
leaq 0x21d731(%rip), %rcx    # 0x30e0bb
movb $0x1, (%rcx)
jmp 0xf0dc9
leaq 0x12aa6a(%rip), %rax    # 0x21b403
cmpb $0x0, (%rax)
je 0xf0a04
leaq 0x21cbab(%rip), %rax    # 0x30d550
movsd (%rax), %xmm0
addsd 0x1aecf(%rip), %xmm0    # 0x10b880
mulsd 0x18687(%rip), %xmm0    # 0x109040
movsd 0x18647(%rip), %xmm1    # 0x109008
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
leaq 0x24b850(%rip), %rdi    # 0x33c220
leaq 0x3edb0(%rip), %rsi     # 0x12f787
jmp 0xf0096
leaq 0x12aa1f(%rip), %rax    # 0x21b402
cmpb $0x0, (%rax)
je 0xf0a8a
leaq 0x21cb55(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
addsd 0x18649(%rip), %xmm0    # 0x109048
jmp 0xf0aad
leaq 0x12a9e1(%rip), %rax    # 0x21b3ec
cmpb $0x0, (%rax)
leaq 0x12aa02(%rip), %rax    # 0x21b417
movb (%rax), %cl
je 0xf0de4
movslq %edx, %rax
imulq $0x2aaaaaab, %rax, %rax # imm = 0x2AAAAAAB
movq %rax, %rsi
shrq $0x3f, %rsi
shrq $0x21, %rax
addl %esi, %eax
shll $0x2, %eax
leal (%rax,%rax,2), %esi
movl %edx, %eax
subl %esi, %eax
testb %cl, %cl
cmovel %edx, %eax
leaq 0x21caba(%rip), %rcx    # 0x30d504
movl (%rcx), %ecx
leaq 0x21caad(%rip), %rdx    # 0x30d500
movl (%rdx), %r8d
leaq 0x21cabb(%rip), %rdx    # 0x30d518
movsd (%rdx), %xmm0
mulsd 0x185cf(%rip), %xmm0    # 0x109038
cvttsd2si %xmm0, %r9d
leaq 0x24b7ab(%rip), %rdi    # 0x33c220
leaq 0x35a54(%rip), %rsi     # 0x1264d0
movl %eax, %edx
xorl %eax, %eax
callq 0x9060
jmp 0xf0e36
leaq 0x12a972(%rip), %rax    # 0x21b403
cmpb $0x0, (%rax)
je 0xf0e5a
leaq 0x21caa7(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
addsd 0x1add3(%rip), %xmm0    # 0x10b880
mulsd 0x1858b(%rip), %xmm0    # 0x109040
movsd 0x1854b(%rip), %xmm1    # 0x109008
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
leaq 0x21cdc8(%rip), %rax    # 0x30d894
leaq 0x21ce5d(%rip), %rdx    # 0x30d930
leaq 0x21c9ca(%rip), %rcx    # 0x30d4a4
testb $0x1, (%rcx)
leaq 0x42d1d(%rip), %rcx     # 0x133801
leaq 0x442d3(%rip), %rsi     # 0x134dbe
cmoveq %rcx, %rsi
cmpb $0x0, (%rdx)
cmoveq %rsi, %rdx
cmpb $0x0, (%rax)
cmoveq %rsi, %rdx
leaq 0x24b71c(%rip), %rbx    # 0x33c220
leaq 0x442cb(%rip), %rsi     # 0x134dd6
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
movq %rbx, %rdi
callq 0x9120
movq %rax, %rcx
incl %ecx
movl (%r14), %edi
movl (%r13), %eax
leal (%rax,%rax), %edx
shll $0x4, %eax
subl %edx, %eax
cltd
idivl %ecx
leaq 0x132a99(%rip), %rcx    # 0x2235d4
movl (%rcx), %edx
movl %eax, %esi
movq %rbx, %rcx
callq 0xec99
cmpb $0x43, (%r15)
leaq 0x127d7e(%rip), %rax    # 0x2188d0
je 0xf0b61
cmpq $0x400, (%rax)          # imm = 0x400
jne 0xf0db8
callq 0x5f743
testl %eax, %eax
je 0xf0db8
cmpb $0x43, (%r15)
jne 0xf0bd2
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rdx
addl %ecx, %edx
leaq 0x127c7f(%rip), %rax    # 0x218804
movl (%rax), %r12d
imull %ecx, %edx
movl %r12d, %eax
subl %edx, %eax
negl %edx
leal (%r12,%rdx), %ecx
addl $0x7f, %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
sarl $0x7, %ecx
movl %ecx, (%r13)
movl %ecx, %edx
shll $0x4, %edx
shll $0x3, %ecx
cmpl $0x100, %eax            # imm = 0x100
leaq 0x127c5b(%rip), %rax    # 0x218814
cmovll (%rax), %edx
leaq 0x127c4d(%rip), %rax    # 0x218810
cmovll (%rax), %ecx
shll $0x2, %edx
subl %edx, %r12d
leal (%rcx,%rcx,2), %r14d
jmp 0xf0be6
movl $0x3, (%r13)
movl $0x7e, %r12d
movl $0x30, %r14d
leaq 0x21c09b(%rip), %rbx    # 0x30cc88
movl (%rbx), %r15d
movl $0x2, (%rbx)
leaq 0x21c653(%rip), %rax    # 0x30d250
cmpl $0x0, (%rax)
je 0xf0c2f
leaq 0x21bf9f(%rip), %rax    # 0x30cba8
movsd (%rax), %xmm0
callq 0x1325e
leaq 0x21c38c(%rip), %rax    # 0x30cfa5
movsbl (%rax), %ecx
leaq 0x24b5fd(%rip), %rdi    # 0x33c220
leaq 0x441e2(%rip), %rsi     # 0x134e0c
jmp 0xf0cd3
leaq 0x21c61e(%rip), %rax    # 0x30d254
cmpl $0x0, (%rax)
je 0xf0c65
leaq 0x21bf6e(%rip), %rax    # 0x30cbb0
movsd (%rax), %xmm0
callq 0x1325e
leaq 0x21c353(%rip), %rax    # 0x30cfa5
movsbl (%rax), %ecx
leaq 0x24b5c4(%rip), %rdi    # 0x33c220
leaq 0x441b9(%rip), %rsi     # 0x134e1c
jmp 0xf0cd3
leaq 0x21c5ec(%rip), %rax    # 0x30d258
cmpl $0x0, (%rax)
je 0xf0c9b
leaq 0x21bf40(%rip), %rax    # 0x30cbb8
movsd (%rax), %xmm0
callq 0x1325e
leaq 0x21c31d(%rip), %rax    # 0x30cfa5
movsbl (%rax), %ecx
leaq 0x24b58e(%rip), %rdi    # 0x33c220
leaq 0x44193(%rip), %rsi     # 0x134e2c
jmp 0xf0cd3
leaq 0x21c5aa(%rip), %rax    # 0x30d24c
cmpl $0x0, (%rax)
je 0xf0e40
leaq 0x21bd66(%rip), %rax    # 0x30ca18
movsd (%rax), %xmm0
callq 0x1325e
leaq 0x21c2e3(%rip), %rax    # 0x30cfa5
movsbl (%rax), %ecx
leaq 0x24b554(%rip), %rdi    # 0x33c220
leaq 0x44169(%rip), %rsi     # 0x134e3c
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
leaq 0x127b82(%rip), %rax    # 0x218868
movb $0x1, (%rax)
movl %r15d, (%rbx)
leaq 0x1328e1(%rip), %rax    # 0x2235d4
movzbl (%rax), %edx
leaq 0x24b523(%rip), %rbx    # 0x33c220
movl %r12d, %edi
movl %r14d, %esi
movq %rbx, %rcx
callq 0xec04
movl (%r13), %r15d
leaq 0x127afe(%rip), %r13    # 0x218814
cmpl $0x2, %r15d
jge 0xf0d22
movl (%r13), %r15d
jmp 0xf0d26
shll $0x4, %r15d
addl %r12d, %r15d
leaq 0x21be70(%rip), %rax    # 0x30cba0
movsd (%rax), %xmm0
leaq 0x44112(%rip), %rsi     # 0x134e4d
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x132888(%rip), %rax    # 0x2235d4
movzbl (%rax), %edx
movl %r15d, %edi
movl %r14d, %esi
movq %rbx, %rcx
callq 0xec04
leaq 0x1327d8(%rip), %rax    # 0x22353c
movl (%rax), %r12d
cmpl $0x2, %r12d
jge 0xf0d73
movl (%r13), %r12d
jmp 0xf0d77
shll $0x4, %r12d
addl %r15d, %r12d
leaq 0x21be17(%rip), %rax    # 0x30cb98
movsd (%rax), %xmm0
leaq 0x440d0(%rip), %rsi     # 0x134e5c
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x132837(%rip), %rax    # 0x2235d4
movzbl (%rax), %edx
movl %r12d, %edi
movl %r14d, %esi
movq %rbx, %rcx
callq 0xec04
leaq 0x127ab3(%rip), %rax    # 0x218868
movb $0x0, (%rax)
leaq 0x21d2fc(%rip), %rax    # 0x30e0bb
movb $0x1, (%rax)
callq 0x17e7f
xorl %eax, %eax
leaq 0x132804(%rip), %rcx    # 0x2235d4
movl -0x3c(%rbp), %edx
movl %edx, (%rcx)
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %cl, %cl
je 0xf0f20
movslq %edx, %rax
imulq $0x2aaaaaab, %rax, %rax # imm = 0x2AAAAAAB
movq %rax, %rcx
shrq $0x3f, %rcx
shrq $0x21, %rax
addl %ecx, %eax
shll $0x2, %eax
leal (%rax,%rax,2), %eax
subl %eax, %edx
leaq 0x21c6f2(%rip), %rax    # 0x30d504
movl (%rax), %ecx
leaq 0x21c6e5(%rip), %rax    # 0x30d500
movl (%rax), %r8d
leaq 0x24b3fb(%rip), %rdi    # 0x33c220
leaq 0x19c8e(%rip), %rsi     # 0x10aaba
movq %r12, %r9
xorl %eax, %eax
callq 0x9060
movl $0x3, %ebx
jmp 0xf00a2
movups 0x42c1e(%rip), %xmm0    # 0x133a65
leaq 0x24b3d2(%rip), %rax    # 0x33c220
movaps %xmm0, (%rax)
movb $0x0, 0x10(%rax)
jmp 0xf0cdf
leaq 0x12a58b(%rip), %rax    # 0x21b3ec
cmpb $0x0, (%rax)
leaq 0x12a5ac(%rip), %rax    # 0x21b417
movb (%rax), %al
je 0xf0f4d
leaq 0x21c68e(%rip), %rcx    # 0x30d508
movl (%rcx), %edx
testb %al, %al
je 0xf1006
movslq %edx, %rdx
imulq $0x2aaaaaab, %rdx, %rax # imm = 0x2AAAAAAB
movq %rax, %rcx
shrq $0x3f, %rcx
shrq $0x21, %rax
addl %ecx, %eax
shll $0x2, %eax
leal (%rax,%rax,2), %eax
subl %eax, %edx
leaq 0x21c65a(%rip), %rax    # 0x30d504
movl (%rax), %ecx
leaq 0x21c64d(%rip), %rax    # 0x30d500
leaq 0x21c65e(%rip), %rsi    # 0x30d518
movsd (%rsi), %xmm0
mulsd 0x18172(%rip), %xmm0    # 0x109038
movl (%rax), %r8d
cvttsd2si %xmm0, %r9d
leaq 0x21c9bf(%rip), %rax    # 0x30d894
leaq 0x21ca54(%rip), %rsi    # 0x30d930
leaq 0x21c5c1(%rip), %rdi    # 0x30d4a4
testb $0x1, (%rdi)
leaq 0x42914(%rip), %rdi     # 0x133801
leaq 0x43eca(%rip), %r10     # 0x134dbe
cmoveq %rdi, %r10
cmpb $0x0, (%rsi)
cmoveq %r10, %rsi
cmpb $0x0, (%rax)
cmoveq %r10, %rsi
movq %rsi, (%rsp)
leaq 0x24b30f(%rip), %rbx    # 0x33c220
leaq 0x43ec8(%rip), %rsi     # 0x134de0
movq %rbx, %rdi
jmp 0xf107e
leaq 0x21c5dd(%rip), %rax    # 0x30d504
movl (%rax), %ecx
leaq 0x21c5d0(%rip), %rax    # 0x30d500
movl (%rax), %r8d
leaq 0x24b2e6(%rip), %rdi    # 0x33c220
leaq 0x3eea8(%rip), %rsi     # 0x12fde9
xorl %eax, %eax
callq 0x9060
jmp 0xf0045
testb %al, %al
je 0xf108a
shll $0x2, %ecx
leal (%rcx,%rcx,2), %eax
cltq
imulq $-0x77777777, %rax, %rcx # imm = 0x88888889
shrq $0x20, %rcx
addl %ecx, %eax
movl %eax, %ecx
shrl $0x1f, %ecx
sarl $0x3, %eax
addl %ecx, %eax
movl %eax, (%r13)
leaq 0x21c589(%rip), %rax    # 0x30d508
movslq (%rax), %rdx
imulq $0x2aaaaaab, %rdx, %rax # imm = 0x2AAAAAAB
movq %rax, %rcx
shrq $0x3f, %rcx
shrq $0x21, %rax
addl %ecx, %eax
shll $0x2, %eax
leal (%rax,%rax,2), %eax
subl %eax, %edx
leaq 0x21c55f(%rip), %rax    # 0x30d504
movl (%rax), %ecx
leaq 0x21c552(%rip), %rax    # 0x30d500
movl (%rax), %r8d
leaq 0x21c8dc(%rip), %rax    # 0x30d894
leaq 0x21c971(%rip), %rsi    # 0x30d930
leaq 0x21c4de(%rip), %rdi    # 0x30d4a4
testb $0x1, (%rdi)
leaq 0x42831(%rip), %rdi     # 0x133801
leaq 0x43de7(%rip), %r9      # 0x134dbe
cmoveq %rdi, %r9
cmpb $0x0, (%rsi)
cmoveq %r9, %rsi
cmpb $0x0, (%rax)
cmoveq %r9, %rsi
movq %rsi, (%rsp)
leaq 0x24b22c(%rip), %rbx    # 0x33c220
leaq 0x43dfc(%rip), %rsi     # 0x134df7
movq %rbx, %rdi
movq %r12, %r9
jmp 0xf10f0
leaq 0x21c4f7(%rip), %rax    # 0x30d504
movl (%rax), %ecx
leaq 0x21c4ea(%rip), %rax    # 0x30d500
leaq 0x21c4fb(%rip), %rsi    # 0x30d518
movsd (%rsi), %xmm0
mulsd 0x1800f(%rip), %xmm0    # 0x109038
movl (%rax), %r8d
cvttsd2si %xmm0, %r9d
leaq 0x21c85c(%rip), %rax    # 0x30d894
leaq 0x21c8f1(%rip), %rsi    # 0x30d930
leaq 0x21c45e(%rip), %rdi    # 0x30d4a4
testb $0x1, (%rdi)
leaq 0x427b1(%rip), %rdi     # 0x133801
leaq 0x43d67(%rip), %r10     # 0x134dbe
cmoveq %rdi, %r10
cmpb $0x0, (%rsi)
cmoveq %r10, %rsi
cmpb $0x0, (%rax)
cmoveq %r10, %rsi
movq %rsi, (%rsp)
leaq 0x24b1ac(%rip), %rbx    # 0x33c220
leaq 0x43d65(%rip), %rsi     # 0x134de0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
jmp 0xf0b15
leaq 0x21c477(%rip), %rax    # 0x30d508
movl (%rax), %edx
leaq 0x21c46a(%rip), %rax    # 0x30d504
movl (%rax), %ecx
leaq 0x21c45d(%rip), %rax    # 0x30d500
movl (%rax), %r8d
leaq 0x21c7e7(%rip), %rax    # 0x30d894
leaq 0x21c87c(%rip), %r9     # 0x30d930
leaq 0x21c3e9(%rip), %rsi    # 0x30d4a4
testb $0x1, (%rsi)
leaq 0x4273c(%rip), %rsi     # 0x133801
leaq 0x43cf2(%rip), %rdi     # 0x134dbe
cmoveq %rsi, %rdi
cmpb $0x0, (%r9)
cmoveq %rdi, %r9
cmpb $0x0, (%rax)
cmoveq %rdi, %r9
leaq 0x24b13a(%rip), %rbx    # 0x33c220
leaq 0x199cd(%rip), %rsi     # 0x10aaba
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
jmp 0xf05e8