// File: /workspace/github_cpp_makefile_star2_O2/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 $0x58, %rsp
movl %esi, %r14d
movl %edi, %ebx
leaq 0x21bee9(%rip), %rax    # 0x2f7508
movl (%rax), %r9d
cmpl $0xc, %r9d
leaq 0x238ad(%rip), %rax     # 0xfeeda
leaq 0x4377e(%rip), %r13     # 0x11edb2
cmovgeq %rax, %r13
leaq 0x131efd(%rip), %rax    # 0x20d53c
leaq 0x12728a(%rip), %rcx    # 0x2028d0
cmpq $0x400, (%rcx)          # imm = 0x400
movl (%rax), %esi
sete %cl
leaq 0x21b14f(%rip), %rax    # 0x2f67a8
movb (%rax), %al
cmpb $0x43, %al
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0xdb687
leaq 0x12716a(%rip), %rcx    # 0x2027d8
leaq 0x14d8e3(%rip), %rdx    # 0x228f58
movl (%rdx), %edx
orl (%rcx), %edx
sete %cl
testb %al, %al
sete %al
andb %cl, %al
cmpb $0x1, %al
jne 0xdb6b5
leaq 0x14b6b0(%rip), %r12    # 0x226d3e
cmpb $0x0, (%r12)
pushq $0x64
popq %rdi
je 0xdb6bd
leaq 0x127161(%rip), %rax    # 0x202800
movl (%rax), %ecx
leaq 0x131e9c(%rip), %rax    # 0x20d544
imull $0x31a, (%rax), %eax    # imm = 0x31A
cltd
idivl %edi
cmpl %eax, %ecx
jge 0xdb6bd
xorl %r14d, %r14d
jmp 0xdc38d
movl %esi, -0x34(%rbp)
leaq 0x131f0d(%rip), %rcx    # 0x20d5d4
movl (%rcx), %eax
movl %eax, -0x48(%rbp)
leaq 0x21c13d(%rip), %rax    # 0x2f7810
cmpl $0x0, (%rax)
je 0xdb6de
movl $0xe, (%rcx)
leaq 0x129d0b(%rip), %rax    # 0x2053f0
cmpl $0x0, (%rax)
leaq 0x129d09(%rip), %rax    # 0x2053f8
pushq $0x2
popq %r15
pushq $0xc
popq %rsi
je 0xdb749
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0xdb708
jnp 0xdb749
leaq 0x21be21(%rip), %rax    # 0x2f7530
movsd (%rax), %xmm0
subsd %xmm1, %xmm0
mulsd 0x17921(%rip), %xmm0    # 0xf3040
movsd 0x178e1(%rip), %xmm1    # 0xf3008
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
addsd 0x1a1c9(%rip), %xmm0    # 0xf5900
leaq 0x24aae2(%rip), %rdi    # 0x326220
leaq 0x43670(%rip), %rsi     # 0x11edb5
movb $0x1, %al
jmp 0xdb79b
pushq $0x1
popq %rcx
leaq 0x129cad(%rip), %rax    # 0x205400
cmpb $0x0, (%rax)
je 0xdb765
leaq 0x21bdf1(%rip), %rax    # 0x2f7550
movsd (%rax), %xmm0
jmp 0xdb788
leaq 0x129c95(%rip), %rax    # 0x205401
cmpb $0x0, (%rax)
je 0xdbcbd
leaq 0x21bdd4(%rip), %rax    # 0x2f7550
movsd (%rax), %xmm0
addsd 0x1a170(%rip), %xmm0    # 0xf58f8
leaq 0x24aa91(%rip), %rdi    # 0x326220
leaq 0x2364d(%rip), %rsi     # 0xfede3
movb $0x1, %al
movl %ecx, %r15d
callq 0x9060
leaq 0x24aa79(%rip), %rdi    # 0x326220
callq 0x9120
movq %rax, %rcx
leaq 0x21aff2(%rip), %r8     # 0x2f67a8
movb (%r8), %dl
cmpb $0x43, %dl
sete %sil
leaq 0x127109(%rip), %rax    # 0x2028d0
movq (%rax), %rax
cmpq $0x400, %rax            # imm = 0x400
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
jne 0xdba94
pushq $0x1
popq %rdi
movq %r8, %rbx
callq 0xdab87
leaq 0x24aa2d(%rip), %r14    # 0x326220
leaq 0x28a046(%rip), %rsi    # 0x365840
movq %r14, %rdi
callq 0x9330
movq %r14, %rdi
callq 0x9120
cmpl $0xf, %eax
pushq $0xe
popq %rsi
cmovgel %eax, %esi
leaq 0x126fe6(%rip), %rax    # 0x202800
movl (%rax), %ecx
pushq $0x8
popq %rdi
movl %ecx, %eax
cltd
idivl %edi
cltd
idivl %esi
movl %eax, %r11d
leaq 0x12709f(%rip), %rax    # 0x2028d0
cmpq $0x400, (%rax)          # imm = 0x400
sete %al
cmpb $0x43, (%rbx)
leaq 0x131cf7(%rip), %rbx    # 0x20d53c
movl %r11d, (%rbx)
setne %r8b
andb %al, %r8b
cmpb $0x1, %r8b
leaq 0x131d7a(%rip), %r15    # 0x20d5d4
jne 0xdb8a5
movl %ecx, %eax
cltd
idivl %esi
leaq 0x126f9c(%rip), %rdx    # 0x202804
imull (%rdx), %eax
shll $0xa, %eax
movl $0x300, %esi            # imm = 0x300
cltd
idivl %esi
leal (,%rcx,8), %esi
cltd
idivl %esi
movl %eax, %r11d
movl %eax, (%rbx)
cmpl $0x1c1, %ecx            # imm = 0x1C1
jg 0xdb8a5
leaq 0x131cb0(%rip), %rax    # 0x20d544
movl (%rax), %eax
imull %r11d, %eax
cltd
pushq $0x64
popq %rsi
idivl %esi
movl %eax, %r11d
movl %eax, (%rbx)
leaq 0x126f40(%rip), %rax    # 0x2027ec
cmpl $0x0, (%rax)
leaq 0x126f4e(%rip), %rax    # 0x202804
movl (%rax), %esi
pushq $0x30
popq %r14
movl %r14d, -0x34(%rbp)
je 0xdbaac
movl %esi, %eax
cltd
idivl %r14d
cmpl %r11d, %eax
jge 0xdb8d6
movl %eax, (%rbx)
movl %eax, %r11d
cmpl $0x4fb, %ecx            # imm = 0x4FB
jl 0xdb8eb
pushq $0x58
popq %rcx
movl %esi, %eax
cltd
idivl %ecx
movl %eax, %r11d
movl %eax, (%rbx)
pushq $0x4
popq %rcx
movl %r11d, %eax
cltd
idivl %ecx
movl %eax, %edi
leaq 0x249a7f(%rip), %r13    # 0x32537c
movl %eax, (%r13)
leaq 0x131ccc(%rip), %rax    # 0x20d5d4
movl (%rax), %edx
movq %rax, %r12
leaq 0x24a90c(%rip), %r15    # 0x326220
movl %edi, -0x38(%rbp)
movq %r11, -0x40(%rbp)
movl %r11d, %esi
movq %r15, %rcx
callq 0xe718
movl (%rbx), %eax
addl %eax, %eax
addl %eax, (%r13)
leaq 0x129ae2(%rip), %rsi    # 0x205417
leaq 0x21bb94(%rip), %rax    # 0x2f74d0
movl (%rax), %ecx
movl %ecx, %eax
cltd
pushq $0xc
popq %r14
idivl %r14d
cmpb $0x0, (%rsi)
cmovel %ecx, %edx
leaq 0x21bb77(%rip), %rax    # 0x2f74cc
movl (%rax), %ecx
leaq 0x21bb6a(%rip), %rax    # 0x2f74c8
movl (%rax), %r8d
leaq 0x43457(%rip), %rsi     # 0x11edbf
movq %r15, %rdi
xorl %eax, %eax
callq 0x9060
movl (%r13), %edi
movl (%rbx), %esi
movl (%r12), %edx
movq %r15, %rcx
callq 0xe718
movl (%rbx), %ecx
pushq $0x2
popq %rsi
movl %ecx, %eax
cltd
idivl %esi
addl %ecx, %eax
addl %eax, (%r13)
leaq 0x21bb6d(%rip), %rax    # 0x2f7508
movl (%rax), %eax
cmpl $0x15, %eax
pushq $-0x15
popq %rcx
pushq $0x3
popq %rdx
cmovgel %ecx, %edx
cmpl $-0x3, %eax
pushq $0x1b
popq %rbx
cmovgel %edx, %ebx
addl %eax, %ebx
leaq 0x21bf75(%rip), %rsi    # 0x2f7930
leaq -0x70(%rbp), %r12
movq %r12, %rdi
callq 0x9330
movb $0x45, (%r12)
movl %ebx, %eax
cltd
idivl %r14d
leaq 0x129a3e(%rip), %rax    # 0x205417
cmpb $0x0, (%rax)
cmovel %ebx, %edx
leaq 0x21bb1e(%rip), %rax    # 0x2f7504
movl (%rax), %ecx
leaq 0x21bb11(%rip), %rax    # 0x2f7500
movl (%rax), %r8d
leaq 0x1914c(%rip), %rsi     # 0xf4b45
movq %r15, %rdi
movq %r12, %r9
leaq 0x131b36(%rip), %r12    # 0x20d53c
xorl %eax, %eax
callq 0x9060
movl (%r13), %edi
movl (%r12), %esi
leaq 0x131bb8(%rip), %rbx    # 0x20d5d4
movl (%rbx), %edx
movq %r15, %rcx
callq 0xe718
movl (%r12), %ecx
movl %ecx, %eax
cltd
pushq $0x2
popq %rsi
idivl %esi
addl %ecx, %eax
addl %eax, (%r13)
leaq 0x21bac9(%rip), %rax    # 0x2f7508
movl (%rax), %ecx
movl %ecx, %eax
cltd
idivl %r14d
leaq 0x1299c9(%rip), %rax    # 0x205417
cmpb $0x0, (%rax)
cmovel %ecx, %edx
leaq 0x21baa9(%rip), %rax    # 0x2f7504
movl (%rax), %ecx
leaq 0x21ba9c(%rip), %rax    # 0x2f7500
movl (%rax), %r8d
movq %r15, %rdi
leaq 0x190d4(%rip), %rsi     # 0xf4b45
leaq 0x21beb8(%rip), %r9     # 0x2f7930
xorl %eax, %eax
callq 0x9060
movl (%r13), %edi
movl (%r12), %esi
movl (%rbx), %edx
movq %r15, %rcx
movq %rbx, %r15
jmp 0xdc106
testb %dl, %dl
je 0xdbc27
pushq $0x1
popq %r14
leaq 0x131b2d(%rip), %r15    # 0x20d5d4
jmp 0xdc387
leaq 0x126d61(%rip), %rax    # 0x202814
movl (%rax), %r9d
movl %esi, %eax
cltd
idivl %r9d
movl %eax, %r12d
pushq $0x2
popq %r10
cltd
idivl %r10d
movl %eax, %edi
movl %r11d, %eax
shll $0x4, %eax
movq %r11, -0x40(%rbp)
leal (%r9,%r9), %r11d
cltd
idivl %r11d
movq -0x40(%rbp), %rsi
subl %eax, %edi
leal (,%rsi,8), %eax
cltd
idivl %r9d
addl %edi, %eax
leaq 0x249887(%rip), %rbx    # 0x32537c
movl %eax, (%rbx)
testb %r8b, %r8b
je 0xdbb6f
imull $0x18, %esi, %eax
cltd
idivl %r9d
subl %eax, %r12d
addl $0x2, %r12d
movl %r12d, (%rbx)
movl %r12d, %eax
imull %r9d, %eax
imull $-0x18, %esi, %r8d
subl %r9d, %r8d
addl %eax, %r8d
pushq $0x3
popq %rdi
movl %ecx, %eax
cltd
idivl %edi
movl %eax, %edi
cmpl %eax, %r8d
cmovll %r8d, %edi
leaq 0x24983a(%rip), %rax    # 0x325370
movl %edi, (%rax)
movl %edi, %eax
cltd
idivl %r10d
addl %r9d, %eax
leaq 0x249830(%rip), %rdx    # 0x325378
movl %eax, (%rdx)
pushq $-0x2
popq %r8
movl %edi, %eax
cltd
idivl %r8d
addl %ecx, %eax
leaq 0x126cb3(%rip), %rcx    # 0x202810
movl (%rcx), %ecx
addl %ecx, %ecx
subl %ecx, %eax
leaq 0x24980a(%rip), %rcx    # 0x325374
movl %eax, (%rcx)
movl %r12d, %eax
movl (%r15), %edx
leaq 0x24a6a7(%rip), %rcx    # 0x326220
movl %eax, -0x38(%rbp)
movl %eax, %edi
callq 0xe718
leaq 0x1319b2(%rip), %rax    # 0x20d53c
movl (%rax), %ecx
imull $0x18, %ecx, %eax
cltd
leaq 0x126c7d(%rip), %rsi    # 0x202814
idivl (%rsi)
subl %eax, (%rbx)
leaq 0x12984e(%rip), %rax    # 0x2053f0
cmpl $0x0, (%rax)
movq %rbx, %r12
je 0xdbc85
leaq 0x129843(%rip), %rax    # 0x2053f8
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0xdbbc9
jnp 0xdbc85
leaq 0x21b960(%rip), %rax    # 0x2f7530
movsd (%rax), %xmm0
subsd %xmm1, %xmm0
mulsd 0x17460(%rip), %xmm0    # 0xf3040
movsd 0x17420(%rip), %xmm1    # 0xf3008
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
addsd 0x19d08(%rip), %xmm0    # 0xf5900
leaq 0x24a621(%rip), %rbx    # 0x326220
leaq 0x431af(%rip), %rsi     # 0x11edb5
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
movl (%r12), %edi
leaq 0x131921(%rip), %r12    # 0x20d53c
movl (%r12), %esi
movl (%r15), %edx
jmp 0xdc103
incl %ecx
movb (%r12), %dil
testb %dil, %dil
je 0xdbce5
leaq 0x126c1c(%rip), %rdx    # 0x202859
xorl %esi, %esi
cmpb $0x2, (%rdx)
sete %sil
xorl %edx, %edx
cmpq $0x10000, %rax          # imm = 0x10000
sete %dl
addl %esi, %edx
pushq $0x6
popq %r12
subl %edx, %r12d
leaq 0x1318db(%rip), %rdx    # 0x20d53c
movl %r12d, (%rdx)
leaq 0x126b95(%rip), %rax    # 0x202800
movl (%rax), %eax
cmpl $0x280, %eax            # imm = 0x280
jg 0xdbe28
movl $0x2, (%rdx)
pushq $0x2
jmp 0xdbe46
leaq 0x129774(%rip), %rax    # 0x205400
cmpb $0x0, (%rax)
je 0xdbf36
leaq 0x21b8ac(%rip), %rax    # 0x2f7548
movsd (%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xdb5c4
leaq 0x24a56f(%rip), %rbx    # 0x326220
leaq 0x4311a(%rip), %rsi     # 0x11edd2
jmp 0xdc0cc
leaq 0x12973e(%rip), %rax    # 0x205402
cmpb $0x0, (%rax)
je 0xdbf97
leaq 0x21b87c(%rip), %rax    # 0x2f7550
movsd (%rax), %xmm0
addsd 0x17368(%rip), %xmm0    # 0xf3048
jmp 0xdbfb6
leaq 0x14d234(%rip), %rax    # 0x228f20
movl (%rax), %eax
leal 0x9(%rbx), %edx
leal 0x1(%rbx), %r8d
cmpl $0x8, %eax
leal 0x1(%rax,%rbx), %eax
cmovll %edx, %eax
leaq 0x21aa7e(%rip), %rdx    # 0x2f6784
leaq 0x21aa7b(%rip), %rsi    # 0x2f6788
addl (%rsi), %r8d
cmpl $0x2, (%rdx)
cmovll %eax, %r8d
leaq 0x126a7e(%rip), %rax    # 0x20279c
movl (%rax), %esi
leaq 0x126ae9(%rip), %rax    # 0x202810
movl (%rax), %r10d
movl %r10d, %eax
imull %esi, %eax
leaq 0x126a71(%rip), %rdx    # 0x2027a8
movl (%rdx), %r9d
movl %r8d, %r11d
notl %r11d
addl %r9d, %r11d
movl %r10d, %r14d
imull %ecx, %r14d
cltd
idivl %r14d
leaq 0x1317eb(%rip), %rdx    # 0x20d540
cmpl $0x0, (%rdx)
setne %r14b
leaq 0x1317e1(%rip), %rdx    # 0x20d544
movl (%rdx), %edx
cmpl $0x64, %edx
setl %r15b
andb %r14b, %r15b
cmpb $0x1, %r15b
jne 0xdbd82
imull %eax, %edx
movl %edx, %eax
cltd
pushq $0x64
popq %r14
idivl %r14d
testl %eax, %eax
pushq $0x1
popq %rdx
cmovsl %edx, %eax
testl %r11d, %r11d
cmovsl %edx, %r11d
cmpl %r11d, %eax
cmovll %eax, %r11d
leaq 0x126a65(%rip), %rax    # 0x202804
cmpl $0x190, (%rax)          # imm = 0x190
pushq $0x2
popq %r15
cmovll %r15d, %r11d
xorl %r14d, %r14d
cmpl %r15d, %r11d
setl %r14b
pushq $0x6
popq %r12
cmovgel %r11d, %r12d
leaq 0x131776(%rip), %rax    # 0x20d53c
movl %r12d, (%rax)
cmovll %ebx, %r8d
movl %ecx, %eax
imull %r12d, %eax
shll $0x3, %eax
cltd
idivl %r10d
subl %eax, %esi
movl %esi, %eax
cltd
idivl %r15d
movl %eax, %esi
leaq 0x249595(%rip), %rax    # 0x325380
movl %esi, (%rax)
movl %r12d, %eax
shll $0x4, %eax
leaq 0x126a1a(%rip), %r10    # 0x202814
cltd
idivl (%r10)
addl %r8d, %eax
movl %r9d, %edx
subl %eax, %edx
movl %edx, %eax
cltd
idivl %r15d
leal (%r8,%rax), %edx
addl %r8d, %eax
incl %eax
subl %eax, %r9d
xorl %eax, %eax
cmpl $0x2, %r9d
setge %al
leal (%rax,%rdx), %ebx
incl %ebx
jmp 0xdbe84
cmpl $0x3e1, %eax            # imm = 0x3E1
ja 0xdbf76
leaq 0x131702(%rip), %rdx    # 0x20d53c
movl $0x3, (%rdx)
addl $-0x6, %r14d
pushq $0x3
popq %r12
leaq 0x1269c1(%rip), %rdx    # 0x202810
movl (%rdx), %esi
cltd
idivl %esi
subl %r14d, %eax
imull %esi, %eax
addl %ecx, %r15d
imull %r12d, %r15d
shll $0x3, %r15d
subl %r15d, %eax
pushq $0x2
popq %r8
cltd
idivl %r8d
cltd
idivl %esi
movl %eax, %esi
addl %r14d, %esi
leaq 0x249501(%rip), %rax    # 0x325380
movl %esi, (%rax)
xorl %r14d, %r14d
leaq 0x131749(%rip), %r15    # 0x20d5d4
leaq 0x2494ea(%rip), %rax    # 0x32537c
movl %ebx, (%rax)
testl %esi, %esi
jns 0xdbea4
leaq 0x2494e1(%rip), %rax    # 0x325380
andl $0x0, (%rax)
xorl %esi, %esi
leaq 0x12953d(%rip), %rax    # 0x2053e8
movl %ebx, (%rax)
leaq 0x1268f4(%rip), %rax    # 0x2027a8
movl (%rax), %eax
subl %ebx, %eax
cmpl $0x1, %eax
jg 0xdbed3
leaq 0x131678(%rip), %rax    # 0x20d53c
movl $0x1, (%rax)
pushq $0x1
popq %r12
movl %r12d, %r8d
jmp 0xdbed7
pushq $0x2
popq %r8
testb %dil, %dil
jne 0xdbef8
leal (,%r12,8), %eax
cltd
idivl %ecx
cmpl %r8d, %eax
cmovgl %eax, %r8d
leaq 0x131647(%rip), %rax    # 0x20d53c
movl %r8d, (%rax)
movzbl (%r15), %edx
leaq 0x24a31d(%rip), %rcx    # 0x326220
movl %ebx, %edi
callq 0xe67f
leaq 0x13162b(%rip), %rax    # 0x20d53c
movl %r12d, (%rax)
cmpl %r12d, -0x34(%rbp)
je 0xdbf27
leaq 0x126923(%rip), %rax    # 0x202844
movl $0x44c, (%rax)          # imm = 0x44C
leaq 0x21c18d(%rip), %rax    # 0x2f80bb
movb $0x1, (%rax)
jmp 0xdc387
leaq 0x1294c4(%rip), %rax    # 0x205401
cmpb $0x0, (%rax)
je 0xdbfe1
leaq 0x21b5fb(%rip), %rax    # 0x2f7548
movsd (%rax), %xmm0
addsd 0x1999f(%rip), %xmm0    # 0xf58f8
movsd %xmm0, -0x30(%rbp)
callq 0xdb5c4
leaq 0x24a2b6(%rip), %rbx    # 0x326220
leaq 0x42e6b(%rip), %rsi     # 0x11eddc
jmp 0xdc0cc
cmpl $0x690, %eax            # imm = 0x690
jb 0xdbe48
leal (,%r12,8), %eax
leaq 0x126880(%rip), %rdx    # 0x202810
movl (%rdx), %esi
jmp 0xdbe70
leaq 0x129465(%rip), %rax    # 0x205403
cmpb $0x0, (%rax)
je 0xdc009
leaq 0x21b5a6(%rip), %rax    # 0x2f7550
movsd (%rax), %xmm0
addsd 0x19952(%rip), %xmm0    # 0xf5908
mulsd 0x17082(%rip), %xmm0    # 0xf3040
movsd 0x17042(%rip), %xmm1    # 0xf3008
mulsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
leaq 0x24a24b(%rip), %rdi    # 0x326220
leaq 0x3d7bb(%rip), %rsi     # 0x119797
jmp 0xdb796
leaq 0x12941a(%rip), %rax    # 0x205402
cmpb $0x0, (%rax)
je 0xdc079
leaq 0x21b550(%rip), %rax    # 0x2f7548
movsd (%rax), %xmm1
addsd 0x17044(%rip), %xmm1    # 0xf3048
jmp 0xdc09c
pushq $0x3
popq %rdx
leaq 0x1293d9(%rip), %rax    # 0x2053ec
cmpb $0x0, (%rax)
leaq 0x1293fa(%rip), %rax    # 0x205417
movb (%rax), %cl
je 0xdc39f
movl %r9d, %eax
movl %edx, %r15d
cltd
idivl %esi
testb %cl, %cl
cmovel %r9d, %edx
leaq 0x21b4c9(%rip), %rax    # 0x2f7504
movl (%rax), %ecx
leaq 0x21b4bc(%rip), %rax    # 0x2f7500
movl (%rax), %r8d
leaq 0x21b4ca(%rip), %rax    # 0x2f7518
movsd (%rax), %xmm0
mulsd 0x16fde(%rip), %xmm0    # 0xf3038
cvttsd2si %xmm0, %r9d
leaq 0x24a1ba(%rip), %rdi    # 0x326220
leaq 0x34488(%rip), %rsi     # 0x1104f5
xorl %eax, %eax
callq 0x9060
jmp 0xdb7a0
leaq 0x129383(%rip), %rax    # 0x205403
cmpb $0x0, (%rax)
je 0xdc3fa
leaq 0x21b4b8(%rip), %rax    # 0x2f7548
movsd (%rax), %xmm1
addsd 0x1986c(%rip), %xmm1    # 0xf5908
mulsd 0x16f9c(%rip), %xmm1    # 0xf3040
movsd 0x16f5c(%rip), %xmm0    # 0xf3008
mulsd %xmm0, %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, -0x30(%rbp)
callq 0xdb5c4
leaq 0x24a15b(%rip), %rbx    # 0x326220
leaq 0x42d1a(%rip), %rsi     # 0x11ede6
movq %rbx, %rdi
movsd -0x30(%rbp), %xmm0
movq %rax, %rdx
movb $0x1, %al
callq 0x9060
movq %rbx, %rdi
callq 0x9120
movq %rax, %rcx
incl %ecx
movl (%r12), %edi
leaq 0x131446(%rip), %r12    # 0x20d53c
imull $0xe, (%r12), %eax
cltd
idivl %ecx
movl (%r15), %edx
movl %eax, %esi
movq %rbx, %rcx
callq 0xe718
leaq 0x21a696(%rip), %rax    # 0x2f67a8
cmpb $0x43, (%rax)
leaq 0x1267b4(%rip), %rax    # 0x2028d0
je 0xdc12b
cmpq $0x400, (%rax)          # imm = 0x400
jne 0xdc375
callq 0x57eca
leaq 0x21a671(%rip), %rcx    # 0x2f67a8
testl %eax, %eax
je 0xdc375
cmpb $0x43, (%rcx)
jne 0xdc19b
movq -0x40(%rbp), %rax
movl -0x38(%rbp), %edx
addl %eax, %edx
leaq 0x1266b0(%rip), %rcx    # 0x202804
movl (%rcx), %r13d
imull %eax, %edx
movl %r13d, %ecx
subl %edx, %ecx
movl $0x80, %esi
movl %ecx, %eax
cltd
idivl %esi
movl %eax, %edx
shll $0x4, %edx
movl %eax, %esi
shll $0x3, %esi
cmpl $0x100, %ecx            # imm = 0x100
leaq 0x126694(%rip), %rcx    # 0x202814
cmovll (%rcx), %edx
leaq 0x126686(%rip), %rcx    # 0x202810
cmovll (%rcx), %esi
shll $0x2, %edx
subl %edx, %r13d
leal (%rsi,%rsi,2), %ecx
movl %ecx, -0x34(%rbp)
jmp 0xdc1a2
pushq $0x7e
popq %r13
pushq $0x3
popq %rax
movq %r12, %r15
movl %eax, (%r12)
leaq 0x21aad8(%rip), %rbx    # 0x2f6c88
movl (%rbx), %r14d
movl $0x2, (%rbx)
leaq 0x21b090(%rip), %rax    # 0x2f7250
cmpl $0x0, (%rax)
je 0xdc1f2
leaq 0x21a9dc(%rip), %rax    # 0x2f6ba8
movsd (%rax), %xmm0
callq 0x12952
leaq 0x21adc9(%rip), %rax    # 0x2f6fa5
movsbl (%rax), %ecx
leaq 0x24a03a(%rip), %rdi    # 0x326220
leaq 0x42c2f(%rip), %rsi     # 0x11ee1c
jmp 0xdc296
leaq 0x21b05b(%rip), %rax    # 0x2f7254
cmpl $0x0, (%rax)
je 0xdc228
leaq 0x21a9ab(%rip), %rax    # 0x2f6bb0
movsd (%rax), %xmm0
callq 0x12952
leaq 0x21ad90(%rip), %rax    # 0x2f6fa5
movsbl (%rax), %ecx
leaq 0x24a001(%rip), %rdi    # 0x326220
leaq 0x42c06(%rip), %rsi     # 0x11ee2c
jmp 0xdc296
leaq 0x21b029(%rip), %rax    # 0x2f7258
cmpl $0x0, (%rax)
je 0xdc25e
leaq 0x21a97d(%rip), %rax    # 0x2f6bb8
movsd (%rax), %xmm0
callq 0x12952
leaq 0x21ad5a(%rip), %rax    # 0x2f6fa5
movsbl (%rax), %ecx
leaq 0x249fcb(%rip), %rdi    # 0x326220
leaq 0x42be0(%rip), %rsi     # 0x11ee3c
jmp 0xdc296
leaq 0x21afe7(%rip), %rax    # 0x2f724c
cmpl $0x0, (%rax)
je 0xdc3e0
leaq 0x21a7a3(%rip), %rax    # 0x2f6a18
movsd (%rax), %xmm0
callq 0x12952
leaq 0x21ad20(%rip), %rax    # 0x2f6fa5
movsbl (%rax), %ecx
leaq 0x249f91(%rip), %rdi    # 0x326220
leaq 0x42bb6(%rip), %rsi     # 0x11ee4c
pushq $0x1
popq %rdx
movb $0x1, %al
callq 0x9060
leaq 0x1265c1(%rip), %rax    # 0x202868
movb $0x1, (%rax)
movl %r14d, (%rbx)
leaq 0x131320(%rip), %rax    # 0x20d5d4
movzbl (%rax), %edx
leaq 0x249f62(%rip), %r14    # 0x326220
movl %r13d, %edi
movl -0x34(%rbp), %esi
movq %r14, %rcx
callq 0xe67f
movl (%r15), %r15d
leaq 0x12653e(%rip), %r12    # 0x202814
cmpl $0x2, %r15d
jge 0xdc2e2
movl (%r12), %r15d
jmp 0xdc2e6
shll $0x4, %r15d
addl %r13d, %r15d
leaq 0x21a8b0(%rip), %rax    # 0x2f6ba0
movsd (%rax), %xmm0
leaq 0x42b62(%rip), %rsi     # 0x11ee5d
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x1312c8(%rip), %rax    # 0x20d5d4
movzbl (%rax), %edx
movl %r15d, %edi
movl -0x34(%rbp), %esi
movq %r14, %rcx
callq 0xe67f
leaq 0x131218(%rip), %rax    # 0x20d53c
movl (%rax), %ebx
cmpl $0x2, %ebx
jge 0xdc331
movl (%r12), %ebx
jmp 0xdc334
shll $0x4, %ebx
addl %r15d, %ebx
leaq 0x21a85a(%rip), %rax    # 0x2f6b98
movsd (%rax), %xmm0
leaq 0x42b23(%rip), %rsi     # 0x11ee6c
movq %r14, %rdi
movb $0x1, %al
callq 0x9060
leaq 0x13127a(%rip), %r15    # 0x20d5d4
movzbl (%r15), %edx
movl %ebx, %edi
movl -0x34(%rbp), %esi
movq %r14, %rcx
callq 0xe67f
leaq 0x1264f6(%rip), %rax    # 0x202868
movb $0x0, (%rax)
leaq 0x21bd3f(%rip), %rax    # 0x2f80bb
movb $0x1, (%rax)
callq 0x1747f
xorl %r14d, %r14d
movl -0x48(%rbp), %eax
movl %eax, (%r15)
movl %r14d, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %cl, %cl
je 0xdc4b8
movl %r9d, %eax
movl %edx, %r15d
cltd
idivl %esi
leaq 0x21b14d(%rip), %rax    # 0x2f7504
movl (%rax), %ecx
leaq 0x21b140(%rip), %rax    # 0x2f7500
movl (%rax), %r8d
leaq 0x249e56(%rip), %rdi    # 0x326220
leaq 0x18774(%rip), %rsi     # 0xf4b45
movq %r13, %r9
xorl %eax, %eax
callq 0x9060
jmp 0xdb7a0
movups 0x4168e(%rip), %xmm0    # 0x11da75
leaq 0x249e32(%rip), %rax    # 0x326220
movaps %xmm0, (%rax)
movb $0x0, 0x10(%rax)
jmp 0xdc2a0
leaq 0x128feb(%rip), %rax    # 0x2053ec
cmpb $0x0, (%rax)
leaq 0x12900c(%rip), %rax    # 0x205417
movb (%rax), %al
je 0xdc4e8
leaq 0x21b0ee(%rip), %rcx    # 0x2f7508
movl (%rcx), %r14d
testb %al, %al
pushq $0xc
popq %rcx
je 0xdc54f
movl %r14d, %eax
cltd
idivl %ecx
movl %edx, -0x30(%rbp)
leaq 0x21b0cc(%rip), %rax    # 0x2f7504
movl (%rax), %eax
movl %eax, -0x44(%rbp)
leaq 0x21b0bc(%rip), %rax    # 0x2f7500
leaq 0x21b0cd(%rip), %rcx    # 0x2f7518
movsd (%rcx), %xmm0
mulsd 0x16be1(%rip), %xmm0    # 0xf3038
movl (%rax), %r13d
cvttsd2si %xmm0, %ebx
callq 0xdb5c4
movq %rax, (%rsp)
leaq 0x249db2(%rip), %r14    # 0x326220
leaq 0x4297b(%rip), %rsi     # 0x11edf0
movq %r14, %rdi
movl -0x30(%rbp), %edx
movl -0x44(%rbp), %ecx
movl %r13d, %r8d
movl %ebx, %r9d
xorl %eax, %eax
callq 0x9060
movq %r14, %rdi
callq 0x9120
movq %rax, %rcx
incl %ecx
movl (%r12), %edi
leaq 0x131099(%rip), %r12    # 0x20d53c
imull $0xe, (%r12), %eax
cltd
idivl %ecx
movl (%r15), %edx
movl %eax, %esi
movq %r14, %rcx
jmp 0xdc106
leaq 0x21b045(%rip), %rax    # 0x2f7504
movl (%rax), %ecx
leaq 0x21b038(%rip), %rax    # 0x2f7500
movl (%rax), %r8d
leaq 0x249d4e(%rip), %rdi    # 0x326220
leaq 0x3d920(%rip), %rsi     # 0x119df9
movl %r9d, %edx
xorl %eax, %eax
callq 0x9060
jmp 0xdb7a0
testb %al, %al
pushq $0xc
popq %rsi
je 0xdc5b2
imull $0xc, %ecx, %eax
pushq $0xf
popq %rcx
cltd
idivl %ecx
leaq 0x131039(%rip), %rcx    # 0x20d53c
movl %eax, (%rcx)
leaq 0x21affc(%rip), %rax    # 0x2f7508
movl (%rax), %eax
cltd
idivl %esi
movl %edx, -0x30(%rbp)
leaq 0x21afe9(%rip), %rax    # 0x2f7504
movl (%rax), %r14d
leaq 0x21afdb(%rip), %rax    # 0x2f7500
movl (%rax), %ebx
callq 0xdb5c4
movq %rax, (%rsp)
leaq 0x249ce9(%rip), %rdi    # 0x326220
leaq 0x428c9(%rip), %rsi     # 0x11ee07
movl -0x30(%rbp), %edx
movl %r14d, %ecx
movl %ebx, %r8d
movq %r13, %r9
jmp 0xdc5ed
leaq 0x21afae(%rip), %rax    # 0x2f7504
movl (%rax), %eax
movl %eax, -0x30(%rbp)
leaq 0x21af9e(%rip), %rax    # 0x2f7500
movl (%rax), %r13d
leaq 0x21afac(%rip), %rax    # 0x2f7518
movsd (%rax), %xmm0
mulsd 0x16ac0(%rip), %xmm0    # 0xf3038
cvttsd2si %xmm0, %ebx
callq 0xdb5c4
movq %rax, (%rsp)
leaq 0x249c94(%rip), %rdi    # 0x326220
leaq 0x4285d(%rip), %rsi     # 0x11edf0
movl %r14d, %edx
movl -0x30(%rbp), %ecx
movl %r13d, %r8d
movl %ebx, %r9d
xorl %eax, %eax
callq 0x9060
leaq 0x249c73(%rip), %rbx    # 0x326220
jmp 0xdc0de
leaq 0x21af4f(%rip), %rax    # 0x2f7508
movl (%rax), %ebx
leaq 0x21af42(%rip), %rax    # 0x2f7504
movl (%rax), %r14d
leaq 0x21af34(%rip), %rax    # 0x2f7500
movl (%rax), %r13d
callq 0xdb5c4
leaq 0x249c45(%rip), %rdi    # 0x326220
leaq 0x18563(%rip), %rsi     # 0xf4b45
movl %ebx, %edx
movl %r14d, %ecx
movl %r13d, %r8d
movq %rax, %r9
xorl %eax, %eax
callq 0x9060
movl (%r12), %edi
leaq 0x130f3d(%rip), %r12    # 0x20d53c
movl (%r12), %esi
movl (%r15), %edx
leaq 0x249c13(%rip), %rcx    # 0x326220
jmp 0xdc106