// File: 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
subq $0x150, %rsp            # imm = 0x150
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
leaq 0x138a34(%rip), %rax    # 0x28271c
movl (%rax), %eax
movl %eax, -0x6c(%rbp)
movl $0x0, -0x10(%rbp)
movl $0x0, -0x1c(%rbp)
movl $0x2, -0x20(%rbp)
leaq 0x2229df(%rip), %rax    # 0x36c6e8
cmpl $0xc, (%rax)
jl 0x149d1b
leaq 0x2fae1(%rip), %rax     # 0x1797f6
movq %rax, -0x68(%rbp)
jmp 0x149d26
leaq 0x4dd02(%rip), %rax     # 0x197a24
movq %rax, -0x68(%rbp)
leaq 0x12dd83(%rip), %rax    # 0x277ab0
cmpq $0x400, (%rax)          # imm = 0x400
jne 0x149d8f
leaq 0x221c4b(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x43, %eax
je 0x149d8f
leaq 0x12dc6c(%rip), %rax    # 0x2779b8
cmpl $0x0, (%rax)
je 0x149d5d
movl $0x0, -0x4(%rbp)
jmp 0x14b89e
leaq 0x1543d4(%rip), %rax    # 0x29e138
cmpl $0x0, (%rax)
je 0x149d75
movl $0x0, -0x4(%rbp)
jmp 0x14b89e
leaq 0x221c0c(%rip), %rax    # 0x36b988
cmpb $0x0, (%rax)
je 0x149d8d
movl $0x0, -0x4(%rbp)
jmp 0x14b89e
jmp 0x149d8f
leaq 0x152188(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x149dd7
leaq 0x12dc3e(%rip), %rax    # 0x2779e0
movl (%rax), %eax
movl %eax, -0x84(%rbp)
leaq 0x138973(%rip), %rax    # 0x282724
imull $0x31a, (%rax), %eax    # imm = 0x31A
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x84(%rbp), %eax
cmpl %ecx, %eax
jge 0x149dd7
movl $0x0, -0x4(%rbp)
jmp 0x14b89e
leaq 0x1389d6(%rip), %rax    # 0x2827b4
movl (%rax), %eax
movl %eax, -0x74(%rbp)
leaq 0x222c06(%rip), %rax    # 0x36c9f0
cmpl $0x0, (%rax)
je 0x149dfc
leaq 0x1389be(%rip), %rax    # 0x2827b4
movl $0xe, (%rax)
movl $0x2, -0x20(%rbp)
leaq 0x1307c6(%rip), %rax    # 0x27a5d0
cmpl $0x0, (%rax)
je 0x149e87
leaq 0x1307c2(%rip), %rax    # 0x27a5d8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x149e27
jp 0x149e27
jmp 0x149e87
leaq 0x2228e2(%rip), %rax    # 0x36c710
movsd (%rax), %xmm0
leaq 0x13079f(%rip), %rax    # 0x27a5d8
subsd (%rax), %xmm0
movsd 0x251f3(%rip), %xmm1    # 0x16f038
mulsd %xmm1, %xmm0
movsd 0x251c7(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x251bb(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x277b7(%rip), %xmm1    # 0x171620
addsd %xmm1, %xmm0
leaq 0x25158c(%rip), %rdi    # 0x39b400
leaq 0x4dbac(%rip), %rsi     # 0x197a27
movb $0x1, %al
callq 0x9060
jmp 0x14a0f8
leaq 0x130752(%rip), %rax    # 0x27a5e0
cmpb $0x0, (%rax)
je 0x149ebf
leaq 0x222896(%rip), %rax    # 0x36c730
movsd (%rax), %xmm0
leaq 0x25155b(%rip), %rdi    # 0x39b400
leaq 0x2f853(%rip), %rsi     # 0x1796ff
movb $0x1, %al
callq 0x9060
movl $0x1, -0x20(%rbp)
jmp 0x14a0f6
leaq 0x13071b(%rip), %rax    # 0x27a5e1
cmpb $0x0, (%rax)
je 0x149f03
leaq 0x22285e(%rip), %rax    # 0x36c730
movsd (%rax), %xmm0
movsd 0x27732(%rip), %xmm1    # 0x171610
subsd %xmm1, %xmm0
leaq 0x251517(%rip), %rdi    # 0x39b400
leaq 0x2f80f(%rip), %rsi     # 0x1796ff
movb $0x1, %al
callq 0x9060
movl $0x1, -0x20(%rbp)
jmp 0x14a0f4
leaq 0x1306d8(%rip), %rax    # 0x27a5e2
cmpb $0x0, (%rax)
je 0x149f6b
leaq 0x22281a(%rip), %rax    # 0x36c730
movsd (%rax), %xmm0
movsd 0x250fe(%rip), %xmm1    # 0x16f020
subsd %xmm1, %xmm0
movsd 0x2510a(%rip), %xmm1    # 0x16f038
mulsd %xmm1, %xmm0
movsd 0x250de(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x250d2(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
leaq 0x2514af(%rip), %rdi    # 0x39b400
leaq 0x4841b(%rip), %rsi     # 0x192373
movb $0x1, %al
callq 0x9060
movl $0x1, -0x20(%rbp)
jmp 0x14a0f2
leaq 0x130671(%rip), %rax    # 0x27a5e3
cmpb $0x0, (%rax)
je 0x149fd3
leaq 0x2227b2(%rip), %rax    # 0x36c730
movsd (%rax), %xmm0
movsd 0x2768e(%rip), %xmm1    # 0x171618
subsd %xmm1, %xmm0
movsd 0x250a2(%rip), %xmm1    # 0x16f038
mulsd %xmm1, %xmm0
movsd 0x25076(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x2506a(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
leaq 0x251447(%rip), %rdi    # 0x39b400
leaq 0x483b3(%rip), %rsi     # 0x192373
movb $0x1, %al
callq 0x9060
movl $0x1, -0x20(%rbp)
jmp 0x14a0f0
leaq 0x1305f2(%rip), %rax    # 0x27a5cc
cmpb $0x0, (%rax)
je 0x14a069
leaq 0x13060d(%rip), %rax    # 0x27a5f7
cmpb $0x0, (%rax)
je 0x14a008
leaq 0x2226f2(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, -0x88(%rbp)
jmp 0x14a017
leaq 0x2226d9(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %edx
leaq 0x2226c0(%rip), %rax    # 0x36c6e4
movl (%rax), %ecx
leaq 0x2226b3(%rip), %rax    # 0x36c6e0
movl (%rax), %r8d
movsd 0x24ff8(%rip), %xmm0    # 0x16f030
leaq 0x2226b9(%rip), %rax    # 0x36c6f8
mulsd (%rax), %xmm0
cvttsd2si %xmm0, %r9d
leaq 0x2513b1(%rip), %rdi    # 0x39b400
leaq 0x3f8f3(%rip), %rsi     # 0x189949
movb $0x0, %al
callq 0x9060
movl $0x3, -0x20(%rbp)
jmp 0x14a0ee
leaq 0x130587(%rip), %rax    # 0x27a5f7
cmpb $0x0, (%rax)
je 0x14a0bb
leaq 0x22266c(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl $0xc, %ecx
cltd
idivl %ecx
leaq 0x222657(%rip), %rax    # 0x36c6e4
movl (%rax), %ecx
leaq 0x22264a(%rip), %rax    # 0x36c6e0
movl (%rax), %r8d
movq -0x68(%rbp), %r9
leaq 0x25135c(%rip), %rdi    # 0x39b400
leaq 0x26a0c(%rip), %rsi     # 0x170ab7
movb $0x0, %al
callq 0x9060
movl $0x3, -0x20(%rbp)
jmp 0x14a0ec
leaq 0x222626(%rip), %rax    # 0x36c6e8
movl (%rax), %edx
leaq 0x222619(%rip), %rax    # 0x36c6e4
movl (%rax), %ecx
leaq 0x22260c(%rip), %rax    # 0x36c6e0
movl (%rax), %r8d
leaq 0x251322(%rip), %rdi    # 0x39b400
leaq 0x488f0(%rip), %rsi     # 0x1929d5
movb $0x0, %al
callq 0x9060
jmp 0x14a0ee
jmp 0x14a0f0
jmp 0x14a0f2
jmp 0x14a0f4
jmp 0x14a0f6
jmp 0x14a0f8
leaq 0x251301(%rip), %rdi    # 0x39b400
callq 0x9120
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
leaq 0x221876(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x43, %eax
je 0x14a12e
leaq 0x12d98f(%rip), %rax    # 0x277ab0
cmpq $0x400, (%rax)          # imm = 0x400
jne 0x14b27e
movl $0x1, %edi
callq 0x148a00
movq %rax, %rsi
leaq 0x2512be(%rip), %rdi    # 0x39b400
callq 0x9350
leaq 0x2512b2(%rip), %rdi    # 0x39b400
callq 0x9120
movl %eax, -0x2c(%rbp)
cmpl $0xe, -0x2c(%rbp)
jge 0x14a163
movl $0xe, -0x2c(%rbp)
leaq 0x12d876(%rip), %rax    # 0x2779e0
movl (%rax), %eax
movl $0x8, %ecx
cltd
idivl %ecx
cltd
idivl -0x2c(%rbp)
movl %eax, %ecx
leaq 0x13859b(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x12d926(%rip), %rax    # 0x277ab0
cmpq $0x400, (%rax)          # imm = 0x400
jne 0x14a233
leaq 0x2217ea(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x43, %eax
je 0x14a231
leaq 0x12d82f(%rip), %rax    # 0x2779e0
movl (%rax), %eax
cltd
idivl -0x2c(%rbp)
movl %eax, %ecx
leaq 0x13855c(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x138553(%rip), %rax    # 0x28271c
movl (%rax), %eax
leaq 0x12d812(%rip), %rcx    # 0x2779e4
imull (%rcx), %eax
shll $0xa, %eax
movl $0x300, %ecx            # imm = 0x300
cltd
idivl %ecx
leaq 0x12d7f9(%rip), %rcx    # 0x2779e0
movl (%rcx), %ecx
shll $0x3, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x138524(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x12d7df(%rip), %rax    # 0x2779e0
cmpl $0x1c2, (%rax)          # imm = 0x1C2
jge 0x14a22f
leaq 0x13850c(%rip), %rax    # 0x28271c
movl (%rax), %eax
leaq 0x13850b(%rip), %rcx    # 0x282724
imull (%rcx), %eax
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x1384ef(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
jmp 0x14a231
jmp 0x14a233
leaq 0x12d792(%rip), %rax    # 0x2779cc
cmpl $0x0, (%rax)
je 0x14a55b
leaq 0x12d79a(%rip), %rax    # 0x2779e4
movl (%rax), %eax
movl $0x30, %ecx
cltd
idivl %ecx
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
leaq 0x1384bb(%rip), %rcx    # 0x28271c
cmpl (%rcx), %eax
jge 0x14a271
movl -0x30(%rbp), %ecx
leaq 0x1384ad(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x12d768(%rip), %rax    # 0x2779e0
cmpl $0x4fa, (%rax)          # imm = 0x4FA
jle 0x14a29c
leaq 0x12d75d(%rip), %rax    # 0x2779e4
movl (%rax), %eax
movl $0x58, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x138482(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x138479(%rip), %rax    # 0x28271c
movl (%rax), %eax
movl $0x4, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x2502a6(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x25029d(%rip), %rax    # 0x39a55c
movl (%rax), %eax
movl %eax, -0x78(%rbp)
leaq 0x138451(%rip), %rax    # 0x28271c
movl (%rax), %eax
movl %eax, -0x7c(%rbp)
leaq 0x250285(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x13843c(%rip), %rax    # 0x28271c
movl (%rax), %esi
leaq 0x1384cb(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x25110e(%rip), %rcx    # 0x39b400
callq 0x11690
leaq 0x13841e(%rip), %rax    # 0x28271c
movl (%rax), %ecx
leaq 0x138415(%rip), %rax    # 0x28271c
addl (%rax), %ecx
leaq 0x25024c(%rip), %rax    # 0x39a55c
addl (%rax), %ecx
leaq 0x250243(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x1302d5(%rip), %rax    # 0x27a5f7
cmpb $0x0, (%rax)
je 0x14a340
leaq 0x222382(%rip), %rax    # 0x36c6b0
movl (%rax), %eax
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, -0x8c(%rbp)
jmp 0x14a34f
leaq 0x222369(%rip), %rax    # 0x36c6b0
movl (%rax), %eax
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %edx
leaq 0x222350(%rip), %rax    # 0x36c6ac
movl (%rax), %ecx
leaq 0x222343(%rip), %rax    # 0x36c6a8
movl (%rax), %r8d
leaq 0x251091(%rip), %rdi    # 0x39b400
leaq 0x4d6bb(%rip), %rsi     # 0x197a31
movb $0x0, %al
callq 0x9060
leaq 0x2501d8(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x13838f(%rip), %rax    # 0x28271c
movl (%rax), %esi
leaq 0x13841e(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x251061(%rip), %rcx    # 0x39b400
callq 0x11690
leaq 0x138371(%rip), %rax    # 0x28271c
movl (%rax), %ecx
leaq 0x138368(%rip), %rax    # 0x28271c
movl (%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
addl %eax, %ecx
leaq 0x250195(%rip), %rax    # 0x39a55c
addl (%rax), %ecx
leaq 0x25018c(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x22230f(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
addl $0x3, %eax
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
jge 0x14a3f2
movl -0x34(%rbp), %eax
addl $0x18, %eax
movl %eax, -0x34(%rbp)
jmp 0x14a403
cmpl $0x17, -0x34(%rbp)
jle 0x14a401
movl -0x34(%rbp), %eax
subl $0x18, %eax
movl %eax, -0x34(%rbp)
jmp 0x14a403
leaq -0x60(%rbp), %rdi
leaq 0x2226fe(%rip), %rsi    # 0x36cb0c
callq 0x9350
movb $0x45, -0x60(%rbp)
leaq 0x1301d9(%rip), %rax    # 0x27a5f7
cmpb $0x0, (%rax)
je 0x14a436
movl -0x34(%rbp), %eax
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, -0x90(%rbp)
jmp 0x14a43f
movl -0x34(%rbp), %eax
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %edx
leaq 0x222298(%rip), %rax    # 0x36c6e4
movl (%rax), %ecx
leaq 0x22228b(%rip), %rax    # 0x36c6e0
movl (%rax), %r8d
leaq -0x60(%rbp), %r9
leaq 0x250f9d(%rip), %rdi    # 0x39b400
leaq 0x2664d(%rip), %rsi     # 0x170ab7
movb $0x0, %al
callq 0x9060
leaq 0x2500e4(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x13829b(%rip), %rax    # 0x28271c
movl (%rax), %esi
leaq 0x13832a(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x250f6d(%rip), %rcx    # 0x39b400
callq 0x11690
leaq 0x13827d(%rip), %rax    # 0x28271c
movl (%rax), %ecx
leaq 0x138274(%rip), %rax    # 0x28271c
movl (%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
addl %eax, %ecx
leaq 0x2500a1(%rip), %rax    # 0x39a55c
addl (%rax), %ecx
leaq 0x250098(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x13012a(%rip), %rax    # 0x27a5f7
cmpb $0x0, (%rax)
je 0x14a4eb
leaq 0x22220f(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, -0x94(%rbp)
jmp 0x14a4fa
leaq 0x2221f6(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %edx
leaq 0x2221dd(%rip), %rax    # 0x36c6e4
movl (%rax), %ecx
leaq 0x2221d0(%rip), %rax    # 0x36c6e0
movl (%rax), %r8d
leaq 0x250ee6(%rip), %rdi    # 0x39b400
leaq 0x26596(%rip), %rsi     # 0x170ab7
leaq 0x2225e4(%rip), %r9     # 0x36cb0c
movb $0x0, %al
callq 0x9060
leaq 0x250026(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x1381dd(%rip), %rax    # 0x28271c
movl (%rax), %esi
leaq 0x13826c(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x250eaf(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae47
leaq 0x12d482(%rip), %rax    # 0x2779e4
movl (%rax), %eax
leaq 0x12d489(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x13819d(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
leaq 0x12d469(%rip), %rdx    # 0x2779f4
movl (%rdx), %esi
shll %esi
cltd
idivl %esi
subl %eax, %ecx
leaq 0x24ffc1(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x138178(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
movl $0x2, %ecx
cltd
idivl %ecx
leaq 0x12d43c(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
movl %eax, %ecx
leaq 0x24ff98(%rip), %rax    # 0x39a55c
addl (%rax), %ecx
leaq 0x24ff8f(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x12d4da(%rip), %rax    # 0x277ab0
cmpq $0x400, (%rax)          # imm = 0x400
jne 0x14a753
leaq 0x22139e(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x43, %eax
je 0x14a753
leaq 0x12d3e7(%rip), %rax    # 0x2779e4
movl (%rax), %eax
leaq 0x12d3ee(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
movl %eax, %ecx
leaq 0x24ff4a(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x24ff41(%rip), %rax    # 0x39a55c
movl (%rax), %ecx
addl $0x2, %ecx
leaq 0x24ff35(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x1380ec(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
imull $0x3, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
leaq 0x12d3ad(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
leaq 0x24ff0b(%rip), %rcx    # 0x39a55c
movl (%rcx), %ecx
subl %eax, %ecx
leaq 0x24ff00(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x24fef7(%rip), %rax    # 0x39a55c
movl (%rax), %eax
leaq 0x12d386(%rip), %rcx    # 0x2779f4
imull (%rcx), %eax
movl %eax, -0x70(%rbp)
leaq 0x1380a1(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
imull $0x3, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x70(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x70(%rbp)
movl -0x70(%rbp), %ecx
leaq 0x12d355(%rip), %rax    # 0x2779f4
movl (%rax), %eax
shll $0x0, %eax
subl %eax, %ecx
leaq 0x24fea3(%rip), %rax    # 0x39a550
movl %ecx, (%rax)
leaq 0x24fe9a(%rip), %rax    # 0x39a550
movl (%rax), %eax
movl %eax, -0x98(%rbp)
leaq 0x12d31b(%rip), %rax    # 0x2779e0
movl (%rax), %eax
movl $0x3, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x98(%rbp), %eax
cmpl %ecx, %eax
jle 0x14a6f7
leaq 0x12d2fe(%rip), %rax    # 0x2779e0
movl (%rax), %eax
movl $0x3, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x24fe5b(%rip), %rax    # 0x39a550
movl %ecx, (%rax)
leaq 0x24fe52(%rip), %rax    # 0x39a550
movl (%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x12d2e3(%rip), %rax    # 0x2779f4
movl (%rax), %eax
shll $0x0, %eax
addl %eax, %ecx
leaq 0x24fe39(%rip), %rax    # 0x39a558
movl %ecx, (%rax)
leaq 0x12d2b8(%rip), %rax    # 0x2779e0
movl (%rax), %ecx
leaq 0x24fe1f(%rip), %rax    # 0x39a550
movl (%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
subl %eax, %ecx
leaq 0x12d2ac(%rip), %rax    # 0x2779f0
movl (%rax), %eax
shll %eax
subl %eax, %ecx
leaq 0x24fe03(%rip), %rax    # 0x39a554
movl %ecx, (%rax)
leaq 0x24fe02(%rip), %rax    # 0x39a55c
movl (%rax), %eax
movl %eax, -0x78(%rbp)
leaq 0x137fb6(%rip), %rax    # 0x28271c
movl (%rax), %eax
movl %eax, -0x7c(%rbp)
leaq 0x24fdea(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137fa1(%rip), %rax    # 0x28271c
movl (%rax), %esi
leaq 0x138030(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x250c73(%rip), %rcx    # 0x39b400
callq 0x11690
leaq 0x137f83(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
imull $0x3, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
leaq 0x12d244(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
leaq 0x24fda2(%rip), %rcx    # 0x39a55c
movl (%rcx), %ecx
subl %eax, %ecx
leaq 0x24fd97(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x12fe02(%rip), %rax    # 0x27a5d0
cmpl $0x0, (%rax)
je 0x14a88c
leaq 0x12fdfa(%rip), %rax    # 0x27a5d8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x14a7f2
jp 0x14a7f2
jmp 0x14a88c
leaq 0x221f17(%rip), %rax    # 0x36c710
movsd (%rax), %xmm0
leaq 0x12fdd4(%rip), %rax    # 0x27a5d8
subsd (%rax), %xmm0
movsd 0x24828(%rip), %xmm1    # 0x16f038
mulsd %xmm1, %xmm0
movsd 0x247fc(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x247f0(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x26dec(%rip), %xmm1    # 0x171620
addsd %xmm1, %xmm0
leaq 0x250bc1(%rip), %rdi    # 0x39b400
leaq 0x4d1e1(%rip), %rsi     # 0x197a27
movb $0x1, %al
callq 0x9060
leaq 0x250bac(%rip), %rdi    # 0x39b400
callq 0x9120
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
leaq 0x24fcf5(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137eac(%rip), %rax    # 0x28271c
movl (%rax), %esi
leaq 0x137f3b(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x250b7e(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae45
leaq 0x12fd4d(%rip), %rax    # 0x27a5e0
cmpb $0x0, (%rax)
je 0x14a916
leaq 0x221e89(%rip), %rax    # 0x36c728
movsd (%rax), %xmm0
movsd %xmm0, -0xa0(%rbp)
callq 0x149c70
movsd -0xa0(%rbp), %xmm0
movq %rax, %rdx
leaq 0x250b3e(%rip), %rdi    # 0x39b400
leaq 0x4d17b(%rip), %rsi     # 0x197a44
movb $0x1, %al
callq 0x9060
leaq 0x250b29(%rip), %rdi    # 0x39b400
callq 0x9120
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
leaq 0x24fc72(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137e29(%rip), %rax    # 0x28271c
imull $0xe, (%rax), %eax
cltd
idivl -0x2c(%rbp)
movl %eax, %esi
leaq 0x137eb1(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x250af4(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae43
leaq 0x12fcc4(%rip), %rax    # 0x27a5e1
cmpb $0x0, (%rax)
je 0x14a9b0
leaq 0x221dfb(%rip), %rax    # 0x36c728
movsd (%rax), %xmm0
movsd 0x26cd7(%rip), %xmm1    # 0x171610
subsd %xmm1, %xmm0
movsd %xmm0, -0xa8(%rbp)
callq 0x149c70
movsd -0xa8(%rbp), %xmm0
movq %rax, %rdx
leaq 0x250aa4(%rip), %rdi    # 0x39b400
leaq 0x4d0eb(%rip), %rsi     # 0x197a4e
movb $0x1, %al
callq 0x9060
leaq 0x250a8f(%rip), %rdi    # 0x39b400
callq 0x9120
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
leaq 0x24fbd8(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137d8f(%rip), %rax    # 0x28271c
imull $0xe, (%rax), %eax
cltd
idivl -0x2c(%rbp)
movl %eax, %esi
leaq 0x137e17(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x250a5a(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae41
leaq 0x12fc2b(%rip), %rax    # 0x27a5e2
cmpb $0x0, (%rax)
je 0x14aa6e
leaq 0x221d61(%rip), %rax    # 0x36c728
movsd (%rax), %xmm0
movsd 0x2464d(%rip), %xmm1    # 0x16f020
subsd %xmm1, %xmm0
movsd 0x24659(%rip), %xmm1    # 0x16f038
mulsd %xmm1, %xmm0
movsd 0x2462d(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x24621(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
callq 0x149c70
movsd -0xb0(%rbp), %xmm0
movq %rax, %rdx
leaq 0x2509e6(%rip), %rdi    # 0x39b400
leaq 0x4d037(%rip), %rsi     # 0x197a58
movb $0x1, %al
callq 0x9060
leaq 0x2509d1(%rip), %rdi    # 0x39b400
callq 0x9120
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
leaq 0x24fb1a(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137cd1(%rip), %rax    # 0x28271c
imull $0xe, (%rax), %eax
cltd
idivl -0x2c(%rbp)
movl %eax, %esi
leaq 0x137d59(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x25099c(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae3f
leaq 0x12fb6e(%rip), %rax    # 0x27a5e3
cmpb $0x0, (%rax)
je 0x14ab2c
leaq 0x221ca3(%rip), %rax    # 0x36c728
movsd (%rax), %xmm0
movsd 0x26b87(%rip), %xmm1    # 0x171618
subsd %xmm1, %xmm0
movsd 0x2459b(%rip), %xmm1    # 0x16f038
mulsd %xmm1, %xmm0
movsd 0x2456f(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd 0x24563(%rip), %xmm1    # 0x16f018
mulsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
callq 0x149c70
movsd -0xb8(%rbp), %xmm0
movq %rax, %rdx
leaq 0x250928(%rip), %rdi    # 0x39b400
leaq 0x4cf79(%rip), %rsi     # 0x197a58
movb $0x1, %al
callq 0x9060
leaq 0x250913(%rip), %rdi    # 0x39b400
callq 0x9120
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
leaq 0x24fa5c(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137c13(%rip), %rax    # 0x28271c
imull $0xe, (%rax), %eax
cltd
idivl -0x2c(%rbp)
movl %eax, %esi
leaq 0x137c9b(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x2508de(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae3d
leaq 0x12fa99(%rip), %rax    # 0x27a5cc
cmpb $0x0, (%rax)
je 0x14ace4
leaq 0x12fab4(%rip), %rax    # 0x27a5f7
cmpb $0x0, (%rax)
je 0x14ac1c
leaq 0x221b95(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, -0xc8(%rbp)
leaq 0x221b7a(%rip), %rax    # 0x36c6e4
movl (%rax), %eax
movl %eax, -0xc4(%rbp)
leaq 0x221b67(%rip), %rax    # 0x36c6e0
movl (%rax), %eax
movl %eax, -0xc0(%rbp)
movsd 0x244a7(%rip), %xmm0    # 0x16f030
leaq 0x221b68(%rip), %rax    # 0x36c6f8
mulsd (%rax), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0xbc(%rbp)
callq 0x149c70
movl -0xc8(%rbp), %edx
movl -0xc4(%rbp), %ecx
movl -0xc0(%rbp), %r8d
movl -0xbc(%rbp), %r9d
leaq 0x25083c(%rip), %rdi    # 0x39b400
leaq 0x4ce97(%rip), %rsi     # 0x197a62
movq %rax, (%rsp)
movb $0x0, %al
callq 0x9060
leaq 0x250823(%rip), %rdi    # 0x39b400
callq 0x9120
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
leaq 0x24f96c(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137b23(%rip), %rax    # 0x28271c
imull $0xe, (%rax), %eax
cltd
idivl -0x2c(%rbp)
movl %eax, %esi
leaq 0x137bab(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x2507ee(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14acdf
leaq 0x221ac5(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl %eax, -0xd8(%rbp)
leaq 0x221ab2(%rip), %rax    # 0x36c6e4
movl (%rax), %eax
movl %eax, -0xd4(%rbp)
leaq 0x221a9f(%rip), %rax    # 0x36c6e0
movl (%rax), %eax
movl %eax, -0xd0(%rbp)
movsd 0x243df(%rip), %xmm0    # 0x16f030
leaq 0x221aa0(%rip), %rax    # 0x36c6f8
mulsd (%rax), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0xcc(%rbp)
callq 0x149c70
movl -0xd8(%rbp), %edx
movl -0xd4(%rbp), %ecx
movl -0xd0(%rbp), %r8d
movl -0xcc(%rbp), %r9d
leaq 0x250774(%rip), %rdi    # 0x39b400
leaq 0x4cdcf(%rip), %rsi     # 0x197a62
movq %rax, (%rsp)
movb $0x0, %al
callq 0x9060
leaq 0x25075b(%rip), %rdi    # 0x39b400
callq 0x9120
addq $0x1, %rax
movl %eax, -0x2c(%rbp)
leaq 0x24f8a4(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137a5b(%rip), %rax    # 0x28271c
imull $0xe, (%rax), %eax
cltd
idivl -0x2c(%rbp)
movl %eax, %esi
leaq 0x137ae3(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x250726(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae3b
leaq 0x12f90c(%rip), %rax    # 0x27a5f7
cmpb $0x0, (%rax)
je 0x14adb5
leaq 0x137a21(%rip), %rax    # 0x28271c
imull $0xc, (%rax), %eax
movl $0xf, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x137a0d(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x2219d0(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, -0xec(%rbp)
leaq 0x2219b5(%rip), %rax    # 0x36c6e4
movl (%rax), %eax
movl %eax, -0xe8(%rbp)
leaq 0x2219a2(%rip), %rax    # 0x36c6e0
movl (%rax), %eax
movl %eax, -0xe4(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0xe0(%rbp)
callq 0x149c70
movl -0xec(%rbp), %edx
movl -0xe8(%rbp), %ecx
movl -0xe4(%rbp), %r8d
movq -0xe0(%rbp), %r9
leaq 0x250689(%rip), %rdi    # 0x39b400
leaq 0x4ccfb(%rip), %rsi     # 0x197a79
movq %rax, (%rsp)
movb $0x0, %al
callq 0x9060
leaq 0x24f7cc(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x137983(%rip), %rax    # 0x28271c
movl (%rax), %esi
leaq 0x137a12(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x250655(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae39
leaq 0x22192c(%rip), %rax    # 0x36c6e8
movl (%rax), %eax
movl %eax, -0xf8(%rbp)
leaq 0x221919(%rip), %rax    # 0x36c6e4
movl (%rax), %eax
movl %eax, -0xf4(%rbp)
leaq 0x221906(%rip), %rax    # 0x36c6e0
movl (%rax), %eax
movl %eax, -0xf0(%rbp)
callq 0x149c70
movl -0xf8(%rbp), %edx
movl -0xf4(%rbp), %ecx
movl -0xf0(%rbp), %r8d
movq %rax, %r9
leaq 0x2505fc(%rip), %rdi    # 0x39b400
leaq 0x25cac(%rip), %rsi     # 0x170ab7
movb $0x0, %al
callq 0x9060
leaq 0x24f743(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x1378fa(%rip), %rax    # 0x28271c
movl (%rax), %esi
leaq 0x137989(%rip), %rax    # 0x2827b4
movl (%rax), %edx
leaq 0x2505cc(%rip), %rcx    # 0x39b400
callq 0x11690
jmp 0x14ae3b
jmp 0x14ae3d
jmp 0x14ae3f
jmp 0x14ae41
jmp 0x14ae43
jmp 0x14ae45
jmp 0x14ae47
leaq 0x220b3a(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x43, %eax
je 0x14ae6a
leaq 0x12cc53(%rip), %rax    # 0x277ab0
cmpq $0x400, (%rax)          # imm = 0x400
jne 0x14b258
callq 0x83ad0
cmpl $0x0, %eax
je 0x14b258
leaq 0x220b09(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x43, %eax
jne 0x14af5c
movl -0x7c(%rbp), %eax
shll $0x0, %eax
addl -0x78(%rbp), %eax
movl %eax, -0x78(%rbp)
leaq 0x12cb46(%rip), %rax    # 0x2779e4
movl (%rax), %eax
movl -0x78(%rbp), %ecx
imull -0x7c(%rbp), %ecx
subl %ecx, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, -0x80(%rbp)
movl -0x80(%rbp), %eax
movl $0x10, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x137854(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x12cb13(%rip), %rax    # 0x2779e4
movl (%rax), %eax
movl %eax, -0xfc(%rbp)
leaq 0x13783c(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14aef9
leaq 0x137830(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
movl %eax, -0x100(%rbp)
jmp 0x14af08
leaq 0x12caf4(%rip), %rax    # 0x2779f4
movl (%rax), %eax
movl %eax, -0x100(%rbp)
movl -0xfc(%rbp), %eax
movl -0x100(%rbp), %ecx
shll $0x2, %ecx
subl %ecx, %eax
movl %eax, -0x78(%rbp)
leaq 0x1377f9(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14af3c
leaq 0x1377ed(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x3, %eax
movl %eax, -0x104(%rbp)
jmp 0x14af4b
leaq 0x12caad(%rip), %rax    # 0x2779f0
movl (%rax), %eax
movl %eax, -0x104(%rbp)
movl -0x104(%rbp), %eax
imull $0x3, %eax, %eax
movl %eax, -0xc(%rbp)
jmp 0x14afe6
leaq 0x1377b9(%rip), %rax    # 0x28271c
movl $0x3, (%rax)
leaq 0x1377ac(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14af89
leaq 0x1377a0(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
movl %eax, -0x108(%rbp)
jmp 0x14af98
leaq 0x12ca64(%rip), %rax    # 0x2779f4
movl (%rax), %eax
movl %eax, -0x108(%rbp)
movl -0x108(%rbp), %eax
imull $0x32, %eax, %eax
movl $0x13, %ecx
cltd
idivl %ecx
movl %eax, -0x78(%rbp)
leaq 0x137769(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14afcc
leaq 0x13775d(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x3, %eax
movl %eax, -0x10c(%rbp)
jmp 0x14afdb
leaq 0x12ca1d(%rip), %rax    # 0x2779f0
movl (%rax), %eax
movl %eax, -0x10c(%rbp)
movl -0x10c(%rbp), %eax
shll %eax
movl %eax, -0xc(%rbp)
leaq 0x220e7b(%rip), %rax    # 0x36be68
movl (%rax), %eax
movl %eax, -0x30(%rbp)
leaq 0x220e6f(%rip), %rax    # 0x36be68
movl $0x2, (%rax)
leaq 0x22142a(%rip), %rax    # 0x36c430
cmpl $0x0, (%rax)
je 0x14b044
leaq 0x220d76(%rip), %rax    # 0x36bd88
movsd (%rax), %xmm0
callq 0x18060
leaq 0x221163(%rip), %rax    # 0x36c185
movsbl (%rax), %ecx
leaq 0x2503d4(%rip), %rdi    # 0x39b400
leaq 0x4ca5b(%rip), %rsi     # 0x197a8e
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x14b128
leaq 0x2213e9(%rip), %rax    # 0x36c434
cmpl $0x0, (%rax)
je 0x14b089
leaq 0x220d39(%rip), %rax    # 0x36bd90
movsd (%rax), %xmm0
callq 0x18060
leaq 0x22111e(%rip), %rax    # 0x36c185
movsbl (%rax), %ecx
leaq 0x25038f(%rip), %rdi    # 0x39b400
leaq 0x4ca26(%rip), %rsi     # 0x197a9e
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x14b126
leaq 0x2213a8(%rip), %rax    # 0x36c438
cmpl $0x0, (%rax)
je 0x14b0cb
leaq 0x220cfc(%rip), %rax    # 0x36bd98
movsd (%rax), %xmm0
callq 0x18060
leaq 0x2210d9(%rip), %rax    # 0x36c185
movsbl (%rax), %ecx
leaq 0x25034a(%rip), %rdi    # 0x39b400
leaq 0x4c9f1(%rip), %rsi     # 0x197aae
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x14b124
leaq 0x22135a(%rip), %rax    # 0x36c42c
cmpl $0x0, (%rax)
je 0x14b10d
leaq 0x220b1a(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
callq 0x18060
leaq 0x221097(%rip), %rax    # 0x36c185
movsbl (%rax), %ecx
leaq 0x250308(%rip), %rdi    # 0x39b400
leaq 0x4c9bf(%rip), %rsi     # 0x197abe
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x14b122
leaq 0x2502ec(%rip), %rdi    # 0x39b400
leaq 0x4b5a2(%rip), %rsi     # 0x1966bd
movb $0x0, %al
callq 0x9060
jmp 0x14b124
jmp 0x14b126
jmp 0x14b128
leaq 0x12c919(%rip), %rax    # 0x277a48
movb $0x1, (%rax)
movl -0x30(%rbp), %ecx
leaq 0x220d2c(%rip), %rax    # 0x36be68
movl %ecx, (%rax)
movl -0x78(%rbp), %edi
movl -0xc(%rbp), %esi
leaq 0x137669(%rip), %rax    # 0x2827b4
movl (%rax), %eax
leaq 0x2502ac(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x11590
leaq 0x1375b9(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14b17c
leaq 0x1375ad(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
movl %eax, -0x110(%rbp)
jmp 0x14b18b
leaq 0x12c871(%rip), %rax    # 0x2779f4
movl (%rax), %eax
movl %eax, -0x110(%rbp)
movl -0x110(%rbp), %eax
addl -0x78(%rbp), %eax
movl %eax, -0x78(%rbp)
leaq 0x220be2(%rip), %rax    # 0x36bd80
movsd (%rax), %xmm0
leaq 0x250257(%rip), %rdi    # 0x39b400
leaq 0x4c91f(%rip), %rsi     # 0x197acf
movb $0x1, %al
callq 0x9060
movl -0x78(%rbp), %edi
movl -0xc(%rbp), %esi
leaq 0x1375f0(%rip), %rax    # 0x2827b4
movl (%rax), %eax
leaq 0x250233(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x11590
leaq 0x137540(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14b1f5
leaq 0x137534(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
movl %eax, -0x114(%rbp)
jmp 0x14b204
leaq 0x12c7f8(%rip), %rax    # 0x2779f4
movl (%rax), %eax
movl %eax, -0x114(%rbp)
movl -0x114(%rbp), %eax
addl -0x78(%rbp), %eax
movl %eax, -0x78(%rbp)
leaq 0x220b61(%rip), %rax    # 0x36bd78
movsd (%rax), %xmm0
leaq 0x2501de(%rip), %rdi    # 0x39b400
leaq 0x4c8b5(%rip), %rsi     # 0x197ade
movb $0x1, %al
callq 0x9060
movl -0x78(%rbp), %edi
movl -0xc(%rbp), %esi
leaq 0x137577(%rip), %rax    # 0x2827b4
movl (%rax), %eax
leaq 0x2501ba(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x11590
leaq 0x12c7f3(%rip), %rax    # 0x277a48
movb $0x0, (%rax)
leaq 0x22203c(%rip), %rax    # 0x36d29b
movb $0x1, (%rax)
callq 0x21820
movl -0x74(%rbp), %ecx
leaq 0x137543(%rip), %rax    # 0x2827b4
movl %ecx, (%rax)
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x14b89e
leaq 0x220703(%rip), %rax    # 0x36b988
cmpb $0x0, (%rax)
je 0x14b2a2
movl -0x74(%rbp), %ecx
leaq 0x137520(%rip), %rax    # 0x2827b4
movl %ecx, (%rax)
movl $0x1, -0x4(%rbp)
jmp 0x14b89e
leaq 0x150c75(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x14b464
leaq 0x12c780(%rip), %rax    # 0x277a39
movzbl (%rax), %eax
cmpl $0x2, %eax
jne 0x14b2d0
leaq 0x137454(%rip), %rax    # 0x28271c
movl $0x5, (%rax)
jmp 0x14b2dd
leaq 0x137445(%rip), %rax    # 0x28271c
movl $0x6, (%rax)
leaq 0x12c7cc(%rip), %rax    # 0x277ab0
cmpq $0x10000, (%rax)        # imm = 0x10000
jne 0x14b302
leaq 0x137428(%rip), %rax    # 0x28271c
movl (%rax), %ecx
subl $0x1, %ecx
leaq 0x13741c(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x12c6d7(%rip), %rax    # 0x2779e0
cmpl $0x280, (%rax)          # imm = 0x280
jg 0x14b320
leaq 0x137404(%rip), %rax    # 0x28271c
movl $0x2, (%rax)
jmp 0x14b347
leaq 0x12c6b9(%rip), %rax    # 0x2779e0
cmpl $0x3e2, (%rax)          # imm = 0x3E2
jge 0x14b345
leaq 0x1373e6(%rip), %rax    # 0x28271c
movl $0x3, (%rax)
movl -0xc(%rbp), %eax
subl $0x6, %eax
movl %eax, -0xc(%rbp)
jmp 0x14b347
leaq 0x12c692(%rip), %rax    # 0x2779e0
cmpl $0x690, (%rax)          # imm = 0x690
jl 0x14b393
leaq 0x1373bf(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14b376
leaq 0x1373b3(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x3, %eax
movl %eax, -0x118(%rbp)
jmp 0x14b385
leaq 0x12c673(%rip), %rax    # 0x2779f0
movl (%rax), %eax
movl %eax, -0x118(%rbp)
movl -0x118(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x14b432
leaq 0x12c646(%rip), %rax    # 0x2779e0
movl (%rax), %eax
leaq 0x12c64d(%rip), %rcx    # 0x2779f0
cltd
idivl (%rcx)
subl -0xc(%rbp), %eax
leaq 0x12c640(%rip), %rcx    # 0x2779f0
imull (%rcx), %eax
movl %eax, -0x14(%rbp)
leaq 0x12f23a(%rip), %rax    # 0x27a5f7
cmpb $0x0, (%rax)
je 0x14b3cb
movl $0x3, -0x30(%rbp)
jmp 0x14b3d2
movl $0x2, -0x30(%rbp)
movl -0x2c(%rbp), %eax
addl -0x20(%rbp), %eax
movl %eax, -0x11c(%rbp)
leaq 0x137337(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14b3fe
leaq 0x13732b(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x3, %eax
movl %eax, -0x120(%rbp)
jmp 0x14b40d
leaq 0x12c5eb(%rip), %rax    # 0x2779f0
movl (%rax), %eax
movl %eax, -0x120(%rbp)
movl -0x11c(%rbp), %ecx
movl -0x120(%rbp), %eax
imull %eax, %ecx
movl -0x14(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %ecx
movl -0x14(%rbp), %eax
leaq 0x12c5ab(%rip), %rsi    # 0x2779f0
cltd
idivl (%rsi)
addl %eax, %ecx
leaq 0x24f10f(%rip), %rax    # 0x39a560
movl %ecx, (%rax)
movl -0x8(%rbp), %ecx
leaq 0x24f0ff(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
jmp 0x14b77a
leaq 0x152c95(%rip), %rax    # 0x29e100
cmpl $0x8, (%rax)
jge 0x14b47e
movl -0x8(%rbp), %eax
addl $0x1, %eax
addl $0x8, %eax
movl %eax, -0x28(%rbp)
jmp 0x14b490
movl -0x8(%rbp), %eax
addl $0x1, %eax
leaq 0x152c75(%rip), %rcx    # 0x29e100
addl (%rcx), %eax
movl %eax, -0x28(%rbp)
leaq 0x2204cd(%rip), %rax    # 0x36b964
cmpl $0x1, (%rax)
jle 0x14b4ae
movl -0x8(%rbp), %eax
addl $0x1, %eax
leaq 0x2204bf(%rip), %rcx    # 0x36b968
addl (%rcx), %eax
movl %eax, -0x28(%rbp)
leaq 0x12c4c7(%rip), %rax    # 0x27797c
movl (%rax), %eax
imull $0x0, -0x2c(%rbp), %ecx
subl %ecx, %eax
leaq 0x12c52c(%rip), %rcx    # 0x2779f0
imull (%rcx), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x1c(%rbp)
leaq 0x12c4b1(%rip), %rax    # 0x277988
movl (%rax), %eax
subl -0x28(%rbp), %eax
subl $0x1, %eax
leaq 0x12c50e(%rip), %rcx    # 0x2779f4
imull (%rcx), %eax
movl %eax, -0x18(%rbp)
leaq 0x137229(%rip), %rax    # 0x28271c
movl $0x1, (%rax)
movl -0x18(%rbp), %eax
movl %eax, -0x124(%rbp)
leaq 0x137213(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14b522
leaq 0x137207(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
movl %eax, -0x128(%rbp)
jmp 0x14b531
leaq 0x12c4cb(%rip), %rax    # 0x2779f4
movl (%rax), %eax
movl %eax, -0x128(%rbp)
movl -0x124(%rbp), %eax
movl -0x128(%rbp), %ecx
cltd
idivl %ecx
movl %eax, -0x18(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x12c(%rbp)
leaq 0x1371c9(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14b56c
leaq 0x1371bd(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x3, %eax
movl %eax, -0x130(%rbp)
jmp 0x14b57b
leaq 0x12c47d(%rip), %rax    # 0x2779f0
movl (%rax), %eax
movl %eax, -0x130(%rbp)
movl -0x12c(%rbp), %eax
movl -0x130(%rbp), %ecx
imull -0x2c(%rbp), %ecx
cltd
idivl %ecx
movl %eax, -0x14(%rbp)
leaq 0x137188(%rip), %rax    # 0x282720
cmpl $0x0, (%rax)
je 0x14b5c1
leaq 0x137180(%rip), %rax    # 0x282724
cmpl $0x64, (%rax)
jge 0x14b5c1
movl -0x14(%rbp), %eax
leaq 0x137171(%rip), %rcx    # 0x282724
imull (%rcx), %eax
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jge 0x14b5ce
movl $0x1, -0x14(%rbp)
cmpl $0x0, -0x18(%rbp)
jge 0x14b5db
movl $0x1, -0x18(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jle 0x14b5f1
movl -0x18(%rbp), %ecx
leaq 0x13712f(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
jmp 0x14b5fd
movl -0x14(%rbp), %ecx
leaq 0x137121(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x12c3e0(%rip), %rax    # 0x2779e4
cmpl $0x190, (%rax)          # imm = 0x190
jge 0x14b619
leaq 0x137109(%rip), %rax    # 0x28271c
movl $0x2, (%rax)
movl $0x2, -0x24(%rbp)
leaq 0x1370f5(%rip), %rax    # 0x28271c
cmpl $0x2, (%rax)
jge 0x14b646
movl $0x1, -0x10(%rbp)
movl -0x8(%rbp), %eax
movl %eax, -0x28(%rbp)
leaq 0x1370dc(%rip), %rax    # 0x28271c
movl $0x6, (%rax)
leaq 0x12c32f(%rip), %rax    # 0x27797c
movl (%rax), %eax
subl $0x0, %eax
movl %eax, -0x138(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x134(%rbp)
leaq 0x1370b4(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14b681
leaq 0x1370a8(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x3, %eax
movl %eax, -0x13c(%rbp)
jmp 0x14b690
leaq 0x12c368(%rip), %rax    # 0x2779f0
movl (%rax), %eax
movl %eax, -0x13c(%rbp)
movl -0x134(%rbp), %eax
movl -0x13c(%rbp), %ecx
imull %ecx, %eax
leaq 0x12c34a(%rip), %rcx    # 0x2779f0
cltd
idivl (%rcx)
movl %eax, %ecx
movl -0x138(%rbp), %eax
subl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x24ee9c(%rip), %rax    # 0x39a560
movl %ecx, (%rax)
leaq 0x12c2bb(%rip), %rax    # 0x277988
movl (%rax), %eax
subl -0x28(%rbp), %eax
movl %eax, -0x140(%rbp)
leaq 0x13703d(%rip), %rax    # 0x28271c
cmpl $0x1, (%rax)
jle 0x14b6f8
leaq 0x137031(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x4, %eax
movl %eax, -0x144(%rbp)
jmp 0x14b707
leaq 0x12c2f5(%rip), %rax    # 0x2779f4
movl (%rax), %eax
movl %eax, -0x144(%rbp)
movl -0x144(%rbp), %eax
leaq 0x12c2e0(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
movl %eax, %ecx
movl -0x140(%rbp), %eax
subl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x24ee2a(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
movl -0x28(%rbp), %ecx
addl $0x1, %ecx
leaq 0x24ee1b(%rip), %rax    # 0x39a55c
addl (%rax), %ecx
leaq 0x24ee12(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
leaq 0x12c235(%rip), %rax    # 0x277988
movl (%rax), %eax
leaq 0x24ee00(%rip), %rcx    # 0x39a55c
subl (%rcx), %eax
cmpl $0x1, %eax
jle 0x14b778
leaq 0x24edf2(%rip), %rax    # 0x39a55c
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x24ede6(%rip), %rax    # 0x39a55c
movl %ecx, (%rax)
jmp 0x14b77a
jmp 0x14b77c
jmp 0x14b77e
leaq 0x24eddb(%rip), %rax    # 0x39a560
cmpl $0x0, (%rax)
jge 0x14b797
leaq 0x24edcf(%rip), %rax    # 0x39a560
movl $0x0, (%rax)
leaq 0x24edbe(%rip), %rax    # 0x39a55c
movl (%rax), %ecx
leaq 0x12ee21(%rip), %rax    # 0x27a5c8
movl %ecx, (%rax)
leaq 0x12c1d8(%rip), %rax    # 0x277988
movl (%rax), %eax
leaq 0x24eda3(%rip), %rcx    # 0x39a55c
subl (%rcx), %eax
cmpl $0x1, %eax
jg 0x14b7d4
movl $0x1, -0x24(%rbp)
leaq 0x136f4e(%rip), %rax    # 0x28271c
movl $0x1, (%rax)
leaq 0x136f41(%rip), %rax    # 0x28271c
movl (%rax), %eax
movl %eax, -0x30(%rbp)
leaq 0x150737(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x14b7fa
movl -0x30(%rbp), %ecx
leaq 0x136f26(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
jmp 0x14b831
leaq 0x136f1b(%rip), %rax    # 0x28271c
movl (%rax), %eax
shll $0x3, %eax
cltd
idivl -0x2c(%rbp)
movl %eax, %ecx
leaq 0x136f09(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
leaq 0x136f00(%rip), %rax    # 0x28271c
movl (%rax), %eax
cmpl -0x24(%rbp), %eax
jge 0x14b82f
movl -0x24(%rbp), %ecx
leaq 0x136eef(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
jmp 0x14b831
leaq 0x24ed24(%rip), %rax    # 0x39a55c
movl (%rax), %edi
leaq 0x24ed1f(%rip), %rax    # 0x39a560
movl (%rax), %esi
leaq 0x136f6a(%rip), %rax    # 0x2827b4
movl (%rax), %eax
leaq 0x24fbad(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x11590
movl -0x30(%rbp), %ecx
leaq 0x136eb7(%rip), %rax    # 0x28271c
movl %ecx, (%rax)
movl -0x6c(%rbp), %eax
leaq 0x136eab(%rip), %rcx    # 0x28271c
cmpl (%rcx), %eax
je 0x14b882
leaq 0x12c1a8(%rip), %rax    # 0x277a24
movl $0x44c, (%rax)          # imm = 0x44C
leaq 0x221a12(%rip), %rax    # 0x36d29b
movb $0x1, (%rax)
movl -0x74(%rbp), %ecx
leaq 0x136f1e(%rip), %rax    # 0x2827b4
movl %ecx, (%rax)
movl -0x10(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
nopw (%rax,%rax)