// File: jkingan[P]ladyheather/heathgps.cpp
// Function: show_satinfo()
void show_satinfo()
{
COORD row, col;
u08 time_exit;
u08 info_under_azel;
int prn;
int col2;
int top_row;
int track_count;
int rows_avail;
int msd;
int max_sat_show;
int col_switch;

   // This routine draws the satellite info table.  It also calls the
   // digital clock display routine (since on small screens the digital clock
   // takes the place of the sat info display).  It also controls the alarm
   // clock operation.

   last_sat_row = SAT_ROW+3;
   msd = max_sat_display;
   max_sat_show = max_sats;
   sun_moon_shown = 0;


   track_count = 0;
   for(prn=1; prn<=MAX_PRN; prn++) {  // count actively tracked satellites
      if(sat[prn].level_msg) ++track_count;
   }

   if(text_mode && first_key) {
      find_sat_changes();
      return;
   }
   
   time_exit = 0;
   print_using = 0;

   if(all_adevs && (zoom_screen != 'I')) {   // screen is showing all the adev tables
      if(text_mode) {
         col = 0;
         row = TEXT_ROWS - 8;
      }
      else {
         if(SCREEN_WIDTH >= WIDE_WIDTH) col = CRIT_COL + 19;
         else                           col = CRIT_COL + 12;
         row = 0;
      }
   }
   else {    // normal screen mode
      col = SAT_COL;
      row = SAT_ROW+eofs;
      if(text_mode) ++row;
      else if((TEXT_HEIGHT <= 14) || (SCREEN_HEIGHT >= MEDIUM_HEIGHT)) ++row;
   }

   if(sound_alarm) {
      if(ticker & 0x01)      time_color = ALARM_COLOR;
      else if(dst_ofs)       time_color = DST_TIME_COLOR;
      else if(time_zone_set) time_color = DST_TIME_COLOR;  // !!! std_time_color is rather dim for the big clock
      else                   time_color = WHITE;
   }

   // if sats are not in use show the osc control info
// if(osc_params || (osc_discipline == 0)) {  
   show_short_info = user_set_short;
   if(zoom_screen == 'I') ;
   else if(osc_params && (all_adevs == SINGLE_ADEVS) && (zoom_screen == 0)) {
      show_osc_params(row, col);
      if(rcvr_type == LPFRS_RCVR) goto no_sat_tables;
      if(rcvr_type == PRS_RCVR) goto no_sat_tables;
      if(rcvr_type == SA35_RCVR) goto no_sat_tables;
      if(rcvr_type == SRO_RCVR) goto no_sat_tables;
      if(rcvr_type == RFTG_RCVR) goto no_sat_tables;
      if(rcvr_type == X72_RCVR) goto no_sat_tables;
      find_sat_changes();
      return;
   }
   else if((rcvr_type == RFTG_RCVR) && (zoom_screen == 'C') && osc_params) ; 
//   else if((rcvr_type == RFTG_RCVR) && (zoom_screen == 'I') && osc_params) ; 
   else if(osc_params) {
     if((rcvr_type == LPFRS_RCVR) || (rcvr_type == PRS_RCVR) || (rcvr_type == SA35_RCVR) || (rcvr_type == SRO_RCVR) || (rcvr_type == RFTG_RCVR) || (rcvr_type == X72_RCVR)) {
        if(zoom_screen == 0) show_osc_params(row,col);
        goto no_sat_tables;
     }
     else show_osc_params(row, col);
     find_sat_changes();
     return;
   }

   info_under_azel = 0;
   if(SHARED_AZEL && (AZEL_BOTTOM+(TEXT_HEIGHT*(8+1)) < SCREEN_HEIGHT)) {  
      if(SCREEN_HEIGHT <= MEDIUM_HEIGHT) {
         info_under_azel = 1;
      }
      else if(plot_watch && plot_digital_clock && ebolt) info_under_azel = 1;
      else if(all_adevs) info_under_azel = 1;
   }

   digital_clock_shown = 0;
   #ifdef DIGITAL_CLOCK
      if(zoom_screen == 'I') ;
//    else if(((plot_digital_clock || all_adevs) && ((all_adevs == SINGLE_ADEVS) || (SCREEN_WIDTH > NARROW_SCREEN))) || (zoom_screen == 'C')) {
      else if((plot_digital_clock && ((all_adevs == SINGLE_ADEVS) || (SCREEN_WIDTH > NARROW_SCREEN))) || (zoom_screen == 'C')) {
         time_exit = show_digital_clock(row, col);
         if((time_exit == 0) && (all_adevs == SINGLE_ADEVS)) info_under_azel = 0;

         // there is room to sneak in the sat info table below the az/el map
         if(info_under_azel) {  
            row = AZEL_BOTTOM/TEXT_HEIGHT;
            col = (AZEL_COL/TEXT_WIDTH) + 5; 
            if(ebolt) ;        
            else if(all_adevs) col -= 2;
         }
         else if(time_exit) { // no room on screen for sat info and digital clock
            if(star_sat_sec()) return;
            find_sat_changes();
            return;
         }
      }
   #endif  // DIGITAL_CLOCK

   if(star_sat_sec()) return;

   if(zoom_screen == 'I') {
      erase_screen();
      show_time_info();
      sun_moon_shown = 0;
      if((lat != 0.0) || (lon != 0.0)) {
         show_sun_moon(VAL_ROW-1,VAL_COL);
      }
      format_lla(lat,lon,alt, VAL_ROW,VAL_COL+22, 1);
      row = 10;
   }
   else if(zoom_screen) {
      find_sat_changes();
      return;
   }

   if(luxor) return;
   if(rcvr_type == ACRON_RCVR) {
      warn_info_needed();
   }
   else if(rcvr_type == NO_RCVR) {
      sun_moon_shown = 0;
      if((lat != 0.0) || (lon != 0.0)) {
         show_sun_moon(VAL_ROW-2,VAL_COL);
      }
      else if(rcvr_type != TICC_RCVR) {
         warn_info_needed();
      }
      if(rcvr_type == ACRON_RCVR) ;
      else return;
   }

   if(zoom_screen == 'I') ;
   else if(all_adevs) {  // if no room to show info,  just check for sat changes
      if(text_mode) {
         find_sat_changes();
         return;
      }

      if(first_key && (row >= PLOT_TEXT_ROW)) {
         find_sat_changes();
         return;
      }

      if((digital_clock_shown || ((row+max_sat_show+1) >= all_adev_row))) {
         if(info_under_azel && ((plot_lla == 0) || (all_adevs == SINGLE_ADEVS))) {  
            row = AZEL_BOTTOM/TEXT_HEIGHT;
            col = (AZEL_COL/TEXT_WIDTH) + 5; 
            if(ebolt) ;        
            else if(all_adevs) col -= 2;
         }
         else {
            find_sat_changes();
            return;
         }
      }
   }

   // draw the sat info table header
   if(max_sat_display == 0) return;

   msd = MOUSE_ROW - (SAT_ROW+1) - 1;
   if(plot_digital_clock) msd = clock_show_row - (SAT_ROW+1) - 3;
   if(sat_cols > 1) --msd;
   max_sat_show = msd;

   top_row = SAT_ROW+1;  //row;
   rows_avail = msd;

   if(zoom_screen == 'I') {  // see where to switch display columns
      col_switch = 0;
   }
   else {
      col_switch = rows_avail;
   }

   col2 = col+COL2;

//sprintf(plot_title, "sat cols:%d  rows:%d  max_sats:%d  msd:%d  tracked:%d  sw:%d  avail:%d top:%d mouse:%d", 
//sat_cols, sat_rows,max_sats,max_sat_display, track_count, col_switch,rows_avail,top_row,MOUSE_ROW);

   // build and show the sat info title string
   show_short_info = user_set_short;
   if(all_adevs) show_short_info = 1;
   if(sat_cols > 1) show_short_info = 2;
// else if(rcvr_type == FURUNO_RCVR) show_short_info = 0;
   if(zoom_screen == 'I') show_short_info = 0;

   if(show_info_header(row,col)) {
      goto no_sat_tables;
   }

   top_row = row;
   ++row;

   if(zoom_screen == 'I') {
      show_short_info = 0;
   }
   else if(info_header_col < 40) {   // we don't have much info to display
      show_short_info = 3;  // ... so allow max sig levels to show
   }

   // erase and draw the sat info display
   sort_sat_table();
   erase_sat_table(row,col, col_switch, col2, top_row, rows_avail);
   show_sat_table(row,col,  col_switch, col2, top_row, rows_avail);


   no_sat_tables:
   // all 0 az el values on tracked sats is what a STARLOC_TYPE does... BASTARDS!
   // more than 3 sats with all sats having az/el = 0,0

   find_sat_changes();

   print_using = 0;
   blank_underscore = 0;

#ifdef SIG_LEVELS
   sun_moon_shown = 0;
   if(zoom_screen == 'I') ;
   else if(zoom_screen == 'D') ;
   else if(zoom_screen == 'O') return;
   else if(zoom_screen == 'H') return;
   else if(show_short_info && (sat_cols <= 1)) {
      if(1 || digital_clock_shown) {
         show_sun_moon(DIS_ROW+0+eofs+4, DIS_COL);
      }
      else {
         show_max_signals();
      }
   }
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
leaq 0x22065d(%rip), %rax    # 0x29e0fc
movl $0xd, (%rax)
leaq 0x2206d8(%rip), %rax    # 0x29e184
movl (%rax), %eax
movl %eax, -0x24(%rbp)
leaq 0x220640(%rip), %rax    # 0x29e0f8
movl (%rax), %eax
movl %eax, -0x28(%rbp)
leaq 0x152388(%rip), %rax    # 0x1cfe4c
movl $0x0, (%rax)
movl $0x0, -0x1c(%rbp)
movl $0x1, -0x10(%rbp)
cmpl $0x3e7, -0x10(%rbp)     # imm = 0x3E7
jg 0x7db12
movslq -0x10(%rbp), %rcx
leaq 0x2206a4(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7db05
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x7db07
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x7dad8
leaq 0x1f9e9f(%rip), %rax    # 0x2779b8
cmpl $0x0, (%rax)
je 0x7db34
leaq 0x220613(%rip), %rax    # 0x29e138
cmpl $0x0, (%rax)
je 0x7db34
callq 0x82180
jmp 0x7e542
movb $0x0, -0x9(%rbp)
leaq 0x1f9f01(%rip), %rax    # 0x277a40
movq $0x0, (%rax)
leaq 0x21e3d1(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x7dbbd
leaq 0x2ede2f(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
je 0x7dbbd
leaq 0x1f9e50(%rip), %rax    # 0x2779b8
cmpl $0x0, (%rax)
je 0x7db85
movl $0x0, -0x8(%rbp)
leaq 0x1f9e71(%rip), %rax    # 0x2779ec
movl (%rax), %eax
subl $0x8, %eax
movl %eax, -0x4(%rbp)
jmp 0x7dbbb
leaq 0x1f9e54(%rip), %rax    # 0x2779e0
cmpl $0x4fa, (%rax)          # imm = 0x4FA
jl 0x7dba5
leaq 0x1f9de1(%rip), %rax    # 0x27797c
movl (%rax), %eax
addl $0x13, %eax
movl %eax, -0x8(%rbp)
jmp 0x7dbb4
leaq 0x1f9dd0(%rip), %rax    # 0x27797c
movl (%rax), %eax
addl $0xc, %eax
movl %eax, -0x8(%rbp)
movl $0x0, -0x4(%rbp)
jmp 0x7dc12
movl $0x0, -0x8(%rbp)
leaq 0x220555(%rip), %rax    # 0x29e120
movl (%rax), %eax
addl $0xa, %eax
movl %eax, -0x4(%rbp)
leaq 0x1f9dde(%rip), %rax    # 0x2779b8
cmpl $0x0, (%rax)
je 0x7dbea
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x7dc10
leaq 0x1f9e03(%rip), %rax    # 0x2779f4
cmpl $0xe, (%rax)
jle 0x7dc05
leaq 0x1f9de7(%rip), %rax    # 0x2779e4
cmpl $0x2c6, (%rax)          # imm = 0x2C6
jl 0x7dc0e
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x7dc10
jmp 0x7dc12
leaq 0x2ef50f(%rip), %rax    # 0x36d128
cmpb $0x0, (%rax)
je 0x7dc88
leaq 0x2ef49b(%rip), %rax    # 0x36d0c0
movzbl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x7dc3f
leaq 0x204b7d(%rip), %rax    # 0x2827b4
movl $0xc, (%rax)
jmp 0x7dc86
leaq 0x2eee3a(%rip), %rax    # 0x36ca80
cmpl $0x0, (%rax)
je 0x7dc5a
leaq 0x204b62(%rip), %rax    # 0x2827b4
movl $0xb, (%rax)
jmp 0x7dc84
leaq 0x2eee13(%rip), %rax    # 0x36ca74
cmpb $0x0, (%rax)
je 0x7dc75
leaq 0x204b47(%rip), %rax    # 0x2827b4
movl $0xb, (%rax)
jmp 0x7dc82
leaq 0x204b38(%rip), %rax    # 0x2827b4
movl $0xf, (%rax)
jmp 0x7dc84
jmp 0x7dc86
jmp 0x7dc88
leaq 0x2204f9(%rip), %rax    # 0x29e188
movl (%rax), %eax
movl %eax, 0x353c25(%rip)    # 0x3d18bc
leaq 0x2edcea(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
jne 0x7dcab
jmp 0x7de5a
leaq 0x2ee61a(%rip), %rax    # 0x36c2cc
cmpb $0x0, (%rax)
je 0x7dd7a
leaq 0x21e25c(%rip), %rax    # 0x29bf1e
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x7dd7a
leaq 0x2edcb3(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x7dd7a
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
callq 0xee320
leaq 0x1f9dbd(%rip), %rax    # 0x277ab0
cmpq $0x10000000, (%rax)     # imm = 0x10000000
jne 0x7dd01
jmp 0x7e49e
leaq 0x1f9da8(%rip), %rax    # 0x277ab0
cmpq $0x1000000, (%rax)      # imm = 0x1000000
jne 0x7dd16
jmp 0x7e49e
movabsq $0x1000000000, %rcx     # imm = 0x1000000000
leaq 0x1f9d89(%rip), %rax    # 0x277ab0
cmpq %rcx, (%rax)
jne 0x7dd31
jmp 0x7e49e
leaq 0x1f9d78(%rip), %rax    # 0x277ab0
cmpq $0x8000000, (%rax)      # imm = 0x8000000
jne 0x7dd46
jmp 0x7e49e
leaq 0x1f9d63(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x7dd5b
jmp 0x7e49e
leaq 0x1f9d4e(%rip), %rax    # 0x277ab0
cmpq $0x2000000, (%rax)      # imm = 0x2000000
jne 0x7dd70
jmp 0x7e49e
callq 0x82180
jmp 0x7e542
leaq 0x1f9d2f(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x7ddaa
leaq 0x2edbf7(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x43, %eax
jne 0x7ddaa
leaq 0x2ee52c(%rip), %rax    # 0x36c2cc
cmpb $0x0, (%rax)
je 0x7ddaa
jmp 0x7de56
leaq 0x2ee51b(%rip), %rax    # 0x36c2cc
cmpb $0x0, (%rax)
je 0x7de54
leaq 0x1f9cef(%rip), %rax    # 0x277ab0
cmpq $0x10000000, (%rax)     # imm = 0x10000000
je 0x7de20
leaq 0x1f9cdf(%rip), %rax    # 0x277ab0
cmpq $0x1000000, (%rax)      # imm = 0x1000000
je 0x7de20
movabsq $0x1000000000, %rcx     # imm = 0x1000000000
leaq 0x1f9cc5(%rip), %rax    # 0x277ab0
cmpq %rcx, (%rax)
je 0x7de20
leaq 0x1f9cb9(%rip), %rax    # 0x277ab0
cmpq $0x8000000, (%rax)      # imm = 0x8000000
je 0x7de20
leaq 0x1f9ca9(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
je 0x7de20
leaq 0x1f9c99(%rip), %rax    # 0x277ab0
cmpq $0x2000000, (%rax)      # imm = 0x2000000
jne 0x7de3f
leaq 0x2edb61(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x7de3a
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
callq 0xee320
jmp 0x7e49e
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
callq 0xee320
callq 0x82180
jmp 0x7e542
jmp 0x7de56
jmp 0x7de58
jmp 0x7de5a
movb $0x0, -0xa(%rbp)
leaq 0x1fc78e(%rip), %rax    # 0x27a5f3
cmpb $0x0, (%rax)
je 0x7df2d
leaq 0x31c6fb(%rip), %rax    # 0x39a570
movl (%rax), %eax
leaq 0x31c6ee(%rip), %rcx    # 0x39a56c
addl (%rcx), %eax
leaq 0x1f9bd5(%rip), %rcx    # 0x277a5c
cmpl (%rcx), %eax
jl 0x7df2d
leaq 0x31c6da(%rip), %rax    # 0x39a570
movl (%rax), %eax
leaq 0x31c6cd(%rip), %rcx    # 0x39a56c
addl (%rcx), %eax
leaq 0x1f9b4c(%rip), %rcx    # 0x2779f4
addl (%rcx), %eax
subl $0x1, %eax
leaq 0x1f9b40(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
leaq 0x1f9b36(%rip), %rcx    # 0x2779f4
imull (%rcx), %eax
leaq 0x1f9b2c(%rip), %rcx    # 0x2779f4
imull $0x9, (%rcx), %ecx
addl %ecx, %eax
leaq 0x1f9b10(%rip), %rcx    # 0x2779e4
cmpl (%rcx), %eax
jge 0x7df2d
leaq 0x1f9b05(%rip), %rax    # 0x2779e4
cmpl $0x2c6, (%rax)          # imm = 0x2C6
jg 0x7deed
movb $0x1, -0xa(%rbp)
jmp 0x7df2b
leaq 0x1fc6f4(%rip), %rax    # 0x27a5e8
cmpb $0x0, (%rax)
je 0x7df17
leaq 0x1fc6c5(%rip), %rax    # 0x27a5c5
cmpb $0x0, (%rax)
je 0x7df17
leaq 0x2201f8(%rip), %rax    # 0x29e104
cmpl $0x0, (%rax)
je 0x7df17
movb $0x1, -0xa(%rbp)
jmp 0x7df29
leaq 0x21e000(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x7df27
movb $0x1, -0xa(%rbp)
jmp 0x7df29
jmp 0x7df2b
jmp 0x7df2d
leaq 0x2ef367(%rip), %rax    # 0x36d29b
movb $0x0, (%rax)
leaq 0x2eda4a(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
jne 0x7df4b
jmp 0x7e077
leaq 0x1fc673(%rip), %rax    # 0x27a5c5
cmpb $0x0, (%rax)
je 0x7df90
leaq 0x21dfc0(%rip), %rax    # 0x29bf1e
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x7dfa3
leaq 0x1f9a73(%rip), %rax    # 0x2779e0
movl (%rax), %eax
movl %eax, -0x30(%rbp)
leaq 0x2047ab(%rip), %rax    # 0x282724
imull $0x31a, (%rax), %eax    # imm = 0x31A
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x30(%rbp), %eax
cmpl %ecx, %eax
jg 0x7dfa3
leaq 0x2ed9f1(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x43, %eax
jne 0x7e075
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
callq 0x149cd0
movb %al, -0x9(%rbp)
movzbl -0x9(%rbp), %eax
cmpl $0x0, %eax
jne 0x7dfcd
leaq 0x21df5d(%rip), %rax    # 0x29bf1e
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x7dfcd
movb $0x0, -0xa(%rbp)
cmpb $0x0, -0xa(%rbp)
je 0x7e052
leaq 0x31c596(%rip), %rax    # 0x39a570
movl (%rax), %eax
leaq 0x31c589(%rip), %rcx    # 0x39a56c
addl (%rcx), %eax
leaq 0x1f9a08(%rip), %rcx    # 0x2779f4
addl (%rcx), %eax
subl $0x1, %eax
leaq 0x1f99fc(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
leaq 0x1f99f2(%rip), %rcx    # 0x2779f4
imull (%rcx), %eax
leaq 0x1f99e8(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
movl %eax, -0x4(%rbp)
leaq 0x31c55b(%rip), %rax    # 0x39a574
movl (%rax), %eax
leaq 0x1f99ce(%rip), %rcx    # 0x2779f0
cltd
idivl (%rcx)
addl $0x5, %eax
movl %eax, -0x8(%rbp)
leaq 0x2200d2(%rip), %rax    # 0x29e104
cmpl $0x0, (%rax)
je 0x7e039
jmp 0x7e050
leaq 0x21dede(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x7e04e
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
jmp 0x7e050
jmp 0x7e073
cmpb $0x0, -0x9(%rbp)
je 0x7e071
callq 0x82100
cmpl $0x0, %eax
je 0x7e067
jmp 0x7e542
callq 0x82180
jmp 0x7e542
jmp 0x7e073
jmp 0x7e075
jmp 0x7e077
callq 0x82100
cmpl $0x0, %eax
je 0x7e086
jmp 0x7e542
leaq 0x2ed8fb(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
jne 0x7e128
callq 0x117e0
callq 0x7eeb0
leaq 0x151da2(%rip), %rax    # 0x1cfe4c
movl $0x0, (%rax)
leaq 0x2ee0f9(%rip), %rax    # 0x36c1b0
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7e0de
jp 0x7e0de
leaq 0x2ee0eb(%rip), %rax    # 0x36c1b8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7e0de
jp 0x7e0de
jmp 0x7e0ed
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl $0xf, %esi
callq 0xecf80
leaq 0x2ee0bc(%rip), %rax    # 0x36c1b0
movsd (%rax), %xmm0
leaq 0x2ee0b9(%rip), %rax    # 0x36c1b8
movsd (%rax), %xmm1
leaq 0x2ee0b6(%rip), %rax    # 0x36c1c0
movsd (%rax), %xmm2
xorl %edi, %edi
movl $0x25, %esi
movl $0x1, %edx
callq 0xf2600
movl $0xa, -0x4(%rbp)
jmp 0x7e140
leaq 0x2ed859(%rip), %rax    # 0x36b988
cmpb $0x0, (%rax)
je 0x7e13e
callq 0x82180
jmp 0x7e542
jmp 0x7e140
leaq 0x21ffd7(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x7e151
jmp 0x7e542
leaq 0x1f9958(%rip), %rax    # 0x277ab0
cmpq $0x4000, (%rax)         # imm = 0x4000
jne 0x7e16b
callq 0xefce0
jmp 0x7e1f9
leaq 0x1f993e(%rip), %rax    # 0x277ab0
cmpq $0x400, (%rax)          # imm = 0x400
jne 0x7e1f7
leaq 0x151cca(%rip), %rax    # 0x1cfe4c
movl $0x0, (%rax)
leaq 0x2ee021(%rip), %rax    # 0x36c1b0
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7e1b6
jp 0x7e1b6
leaq 0x2ee013(%rip), %rax    # 0x36c1b8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7e1b6
jp 0x7e1b6
jmp 0x7e1c7
movl $0xfffffffe, %edi       # imm = 0xFFFFFFFE
movl $0xf, %esi
callq 0xecf80
jmp 0x7e1de
leaq 0x1f98e2(%rip), %rax    # 0x277ab0
cmpq $0x10000, (%rax)        # imm = 0x10000
je 0x7e1dc
callq 0xefce0
jmp 0x7e1de
leaq 0x1f98cb(%rip), %rax    # 0x277ab0
cmpq $0x4000, (%rax)         # imm = 0x4000
jne 0x7e1f0
jmp 0x7e1f5
jmp 0x7e542
jmp 0x7e1f7
jmp 0x7e1f9
leaq 0x2ed788(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
jne 0x7e20d
jmp 0x7e332
leaq 0x21dd0a(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x7e330
leaq 0x1f9794(%rip), %rax    # 0x2779b8
cmpl $0x0, (%rax)
je 0x7e233
callq 0x82180
jmp 0x7e542
leaq 0x21fefe(%rip), %rax    # 0x29e138
cmpl $0x0, (%rax)
je 0x7e257
movl -0x4(%rbp), %eax
leaq 0x1f9827(%rip), %rcx    # 0x277a70
cmpl (%rcx), %eax
jl 0x7e257
callq 0x82180
jmp 0x7e542
leaq 0x2ef03d(%rip), %rax    # 0x36d29b
cmpb $0x0, (%rax)
jne 0x7e27b
movl -0x4(%rbp), %eax
addl -0x28(%rbp), %eax
addl $0x1, %eax
leaq 0x1f9721(%rip), %rcx    # 0x277994
cmpl (%rcx), %eax
jl 0x7e32e
cmpb $0x0, -0xa(%rbp)
je 0x7e322
leaq 0x31c204(%rip), %rax    # 0x39a490
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x7e2a3
leaq 0x21dc83(%rip), %rax    # 0x29bf1e
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x7e322
leaq 0x31c2c6(%rip), %rax    # 0x39a570
movl (%rax), %eax
leaq 0x31c2b9(%rip), %rcx    # 0x39a56c
addl (%rcx), %eax
leaq 0x1f9738(%rip), %rcx    # 0x2779f4
addl (%rcx), %eax
subl $0x1, %eax
leaq 0x1f972c(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
leaq 0x1f9722(%rip), %rcx    # 0x2779f4
imull (%rcx), %eax
leaq 0x1f9718(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
movl %eax, -0x4(%rbp)
leaq 0x31c28b(%rip), %rax    # 0x39a574
movl (%rax), %eax
leaq 0x1f96fe(%rip), %rcx    # 0x2779f0
cltd
idivl (%rcx)
addl $0x5, %eax
movl %eax, -0x8(%rbp)
leaq 0x21fe02(%rip), %rax    # 0x29e104
cmpl $0x0, (%rax)
je 0x7e309
jmp 0x7e320
leaq 0x21dc0e(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x7e31e
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
jmp 0x7e320
jmp 0x7e32c
callq 0x82180
jmp 0x7e542
jmp 0x7e32e
jmp 0x7e330
jmp 0x7e332
leaq 0x21fe4b(%rip), %rax    # 0x29e184
cmpl $0x0, (%rax)
jne 0x7e343
jmp 0x7e542
leaq 0x1f963e(%rip), %rax    # 0x277988
movl (%rax), %eax
subl $0xb, %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
leaq 0x1fc269(%rip), %rax    # 0x27a5c5
cmpb $0x0, (%rax)
je 0x7e373
leaq 0x1fc260(%rip), %rax    # 0x27a5c8
movl (%rax), %eax
subl $0xb, %eax
subl $0x3, %eax
movl %eax, -0x24(%rbp)
leaq 0x2ed5ea(%rip), %rax    # 0x36b964
cmpl $0x1, (%rax)
jle 0x7e388
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movl $0xb, -0x18(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x20(%rbp)
leaq 0x2ed5e6(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
jne 0x7e3b3
movl $0x0, -0x2c(%rbp)
jmp 0x7e3b9
movl -0x20(%rbp), %eax
movl %eax, -0x2c(%rbp)
movl -0x8(%rbp), %eax
addl $0x1e, %eax
movl %eax, -0x14(%rbp)
leaq 0x21fdbf(%rip), %rax    # 0x29e188
movl (%rax), %eax
movl %eax, 0x3534eb(%rip)    # 0x3d18bc
leaq 0x21db46(%rip), %rax    # 0x29bf1e
cmpb $0x0, (%rax)
je 0x7e3e7
movl $0x1, 0x3534d5(%rip)    # 0x3d18bc
leaq 0x2ed576(%rip), %rax    # 0x36b964
cmpl $0x1, (%rax)
jle 0x7e3fd
movl $0x2, 0x3534bf(%rip)    # 0x3d18bc
leaq 0x2ed584(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
jne 0x7e416
movl $0x0, 0x3534a6(%rip)    # 0x3d18bc
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
callq 0xf0430
cmpl $0x0, %eax
je 0x7e428
jmp 0x7e49e
movl -0x4(%rbp), %eax
movl %eax, -0x18(%rbp)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
leaq 0x2ed54a(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
jne 0x7e452
movl $0x0, 0x35346c(%rip)    # 0x3d18bc
jmp 0x7e467
cmpl $0x28, 0x353467(%rip)   # 0x3d18c0
jge 0x7e465
movl $0x3, 0x353457(%rip)    # 0x3d18bc
jmp 0x7e467
callq 0xefe50
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
movl -0x2c(%rbp), %edx
movl -0x14(%rbp), %ecx
movl -0x18(%rbp), %r8d
movl -0x20(%rbp), %r9d
callq 0xf0d80
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
movl -0x2c(%rbp), %edx
movl -0x14(%rbp), %ecx
movl -0x18(%rbp), %r8d
movl -0x20(%rbp), %r9d
callq 0xf13e0
callq 0x82180
leaq 0x1f9596(%rip), %rax    # 0x277a40
movq $0x0, (%rax)
leaq 0x1fc151(%rip), %rax    # 0x27a609
movb $0x0, (%rax)
leaq 0x15198a(%rip), %rax    # 0x1cfe4c
movl $0x0, (%rax)
leaq 0x2ed4b9(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x49, %eax
jne 0x7e4d9
jmp 0x7e542
leaq 0x2ed4a8(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x44, %eax
jne 0x7e4ea
jmp 0x7e540
leaq 0x2ed497(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x4f, %eax
jne 0x7e4fb
jmp 0x7e542
leaq 0x2ed486(%rip), %rax    # 0x36b988
movzbl (%rax), %eax
cmpl $0x48, %eax
jne 0x7e50c
jmp 0x7e542
cmpl $0x0, 0x3533a9(%rip)    # 0x3d18bc
je 0x7e53a
leaq 0x2ed448(%rip), %rax    # 0x36b964
cmpl $0x1, (%rax)
jg 0x7e53a
leaq 0x21fbf8(%rip), %rax    # 0x29e120
movl (%rax), %edi
addl $0x6, %edi
addl $0x4, %edi
movl $0x28, %esi
callq 0xecf80
jmp 0x7e53c
jmp 0x7e53e
jmp 0x7e540
jmp 0x7e542
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)