// File: /workspace/github_cpp_makefile_star2_O2/jkingan[P]ladyheather/heathgps.cpp
// Function: show_sat_table(int, int, int, int, int, int)
void show_sat_table(int row,int col, int col_switch, int col2, int top_row, int rows_avail)
{
int prn;
int i, j;
float az;
float el;
char c, cc;
u08 az_dir;
u08 el_dir;

double dop;
double phase;
int state;
float sig;
float clock;
float acc;

int datum_crapum;
int crap_count;
char el_string[10];
char az_string[10];
char bias_string[20];
int len, max_len;
char fmt[256];
int n;

   // show the satellite info table

   datum_crapum = 0;
   crap_count = 0;
   max_len = 0;
   fmt[0] = 0;

   if(ms_row) {  // clear out the "More sats..." line
      vidstr(ms_row,ms_col, WHITE,   "                             ");
      ms_row = ms_col = 0;
   }

   j = 0;

   for(prn=1; prn<=MAX_PRN; prn++) {
      if(sat[prn].disabled) ; 
      else if(sat[prn].level_msg == 0x00) continue;
      if(0 && (zoom_screen == 'I')) ;
      else if(tracked_only) {
         if(sat[prn].tracking <= 0) continue;
         if(sat[prn].health_flag == 1) continue;
      }

      if     (sort_by == SORT_ELEV)    i = sat_sort[j].prn;
      else if(sort_by == SORT_SIGS)    i = sat_sort[j].prn;
      else if(sort_by == SORT_AZ)      i = sat_sort[j].prn;
      else if(sort_by == SORT_PRN)     i = sat_sort[j].prn;
      else if(sort_by == SORT_DOPPLER) i = sat_sort[j].prn;
      else if(sort_by == SORT_CARRIER) i = sat_sort[j].prn;
      else if(sort_by == SORT_RANGE)   i = sat_sort[j].prn;
      else if(sort_by == SORT_BIAS)    i = sat_sort[j].prn;
      else if(sort_by == SORT_STATE)   i = sat_sort[j].prn;
      else if(sort_by == SORT_URA)     i = sat_sort[j].prn;
      else                             i = prn;

      if(zoom_screen == 'I') {  // zoomed sat info
         ++j;
      }
      else if(sat_cols > 1) {   // two column sat info display
         ++j;
         if(j >= (rows_avail*2)) {
            vidstr(row,col, WHITE,   "More sats... click sat table!");
            ms_row = row;
            ms_col = col;
            break;
         }

         if(all_adevs && (j > 8)) break;  // only room for 8 sats here
      } 
      else {  // single column sat info display
         ++j;
         if(j >= SAT_SHOW_ROWS) {
            vidstr(row,col, WHITE,   "                             ");
         }
         if(j > SAT_SHOW_ROWS) { 
            vidstr(row,col, WHITE,   "More sats... click sat table.");
            ms_row = row;
            ms_col = col;
            break;
         }
         else if(row >= (MOUSE_ROW)) {
            vidstr(row,col, WHITE,   "More sats... click sat table ");
            ms_row = row;
            ms_col = col;
            break;
         }

         if(j > SAT_SHOW_ROWS) break;
         if(all_adevs && (j > 8)) break;  // only room for 8 sats here
         if((col < (TEXT_COLS/2)) && (row >= MOUSE_ROW)) break;
      }

      // filter out potentially bogus data
      az = sat[i].azimuth;
      if(az != 0.0) ++datum_crapum;
      if((az < 0.0) || (az > 360.0)) az = 0.0;

      az_dir = sat[i].az_dir;
      if(az_dir == 0) az_dir = ' ';
      else if(az == 0.0) az_dir = ' ';

      el = sat[i].elevation;
      if(el != 0.0) ++datum_crapum;
      if((el < 0.0) || (el > 90.0)) el = 0.0;

      el_dir = sat[i].el_dir;
      if(el_dir == 0) el_dir = ' ';
      else if(el == 0.0) el_dir = ' ';

      dop = sat[i].doppler;
      if(1 || (rcvr_type == ESIP_RCVR)) ;
      else if((dop <= -9999.0) || (dop >= 99999.0)) dop = 0.0;

      phase = sat[i].code_phase;
      state = sat[i].state;
      sig = sat[i].sig_level;
      if((rcvr_type == MOTO_RCVR) || (rcvr_type == SCPI_RCVR)) {
         if(sig > 255.0F) sig = 0.0F;
         if(sig <= (0.0F)) sig = 0.0F;
      }
      else {
         if(sig > 100.0F) sig = 0.0F;
         if(sig <= (-100.0F)) sig = 0.0F;
         if(sig < 0.0F) sig = 0.0F - sig;
      }

      clock = sat[i].sat_bias;

      acc = sat[i].sv_accuracy;

      out[0] = 0;


      if((az == 0.0) && (el == 0.0)) {
         strcpy(el_string, "N/A  ");
         strcpy(az_string, " N/A ");
      }
      else if(rcvr_type == RFTG_RCVR) {
         strcpy(el_string, "N/A  ");
         strcpy(az_string, " N/A ");
      }
      else {
         if(az == 0.0) strcpy(az_string, " N/A ");
         else          sprintf(az_string, "%5.1f", az);

         if(el == 0.0F)      strcpy(el_string,  " N/A");
         else if(el < 10.0F) sprintf(el_string, " %-3.1f", el);
         else                sprintf(el_string, "%-4.1f", el);
         if(el_string[3] == ' ') el_string[3] = el_dir;
         else                    el_string[4] = el_dir;
         el_string[5] = 0;
      }

      bias_string[0] = 0;
      if(have_range) {
         if(sat[i].range == 0.0)         sprintf(bias_string, "    N/A     ");
         else if(rcvr_type == ESIP_RCVR) sprintf(bias_string, "%12.3f", sat[i].range);
         else                            sprintf(bias_string, "%12.3f", sat[i].range);
      }
      else if(clock == 0.0) strcpy(bias_string,  "    N/A    ");
      else                  sprintf(bias_string, "%#11.4g", clock);

      
      // show the sat info columns
      c = gnss_letter(i);
      if(i == plot_prn) cc = '*';  // plotting this sat's az/el/sig
      else              cc = ' ';

      if(sig == 0.0) {
         if(i > 99)   sprintf(out,  "%03d%c%c  %s  %s   N/A",  i,cc,c, az_string, el_string);
         else         sprintf(out, " %02d%c%c  %s  %s   N/A",  i,cc,c, az_string, el_string);
      }
      else if(i > 99) sprintf(out,  "%03d%c%c  %s  %s %5.1f",  i,cc,c, az_string, el_string, sig);
      else            sprintf(out, " %02d%c%c  %s  %s %5.1f",  i,cc,c, az_string, el_string, sig);

      if(have_doppler && (sat_cols <= 1)) {
         if(dop == 0.0F) sprintf(fmt, "      N/A");
//       else if(rcvr_type == ESIP_RCVR) sprintf(fmt, " %8.0f", dop);
         else if((dop <= -999999.0) || (dop >= 9999999.0)) sprintf(fmt, " %8.0f", dop);
         else if((dop <= -99999.0) || (dop >= 999999.0))   sprintf(fmt, " %8.0f", dop);
         else if((dop <= -9999.0) || (dop >= 99999.0))     sprintf(fmt, " %8.1f", dop);
         else                                              sprintf(fmt, " %8.2f", dop);
         strcat(out, fmt);
      }

//    if((rcvr_type == FURUNO_RCVR) && (sat_cols < 2)) {
      if(show_short_info && ura_title && (sat_cols < 2)) {  // FURUNO_RCVR, ACU_GG, and ACU_360
         goto show_accu;  // we have room to show the URA data
      }
      else if(show_short_info == 0) {
         if(have_phase && (no_raw_table == 0)) {
            if     (phase == 0.0)           sprintf(fmt, "    N/A   ");
            else if(phase <= (-1000000.0F)) sprintf(fmt, " %9ld", (long)phase);
            else if(phase <= (-100000.0F))  sprintf(fmt, " %9.1f", phase);
            else if(phase >= (10000000.0F)) sprintf(fmt, " %9ld", (long)phase);
            else if(phase >= (1000000.0F))  sprintf(fmt, " %9.1f", phase);
            else                            sprintf(fmt, " %9.2f", phase);
            strcat(out, fmt);
         }
         else if(have_state) {
            format_sat_state(state);
         }

         if(no_raw_table) ;
         else if(have_bias || have_range) {
            sprintf(fmt, " %s", bias_string);
            strcat(out, fmt);
         }

         show_accu:
         if(have_accu) {
            if(acc <= 0.0)           sprintf(fmt, "  N/A ");
            else if(acc == 255.0)    sprintf(fmt, "  UNKN");
            else if(acc >= 10000.0F) sprintf(fmt, " LARGE");
            else if(acc >= 1000.0F)  sprintf(fmt, " %5.0f", acc);
            else if(acc >= 100.0F)   sprintf(fmt, " %5.1f", acc);
            else                     sprintf(fmt, " %5.2f", acc);
            strcat(out, fmt);
         }
      }
      else if(have_state && (have_doppler == 0)) {
         format_sat_state(state);
      }

      if(sat_cols > 1) {
         if((j == (col_switch+1)) || (row >= MOUSE_ROW)) {  // switch to next column
            if(col >= col2) ; // column already switched            
            else if(zoom_screen == 'I') ;
            else {
               col = col2;
               row = top_row+1;
            }
         }
      }

      if(sat[i].disabled) {               // user disabled satellite
         vidstr(row++, col, BLUE, out);
      }
      else if(sat[i].health_flag == 1) {  // unhealthy sat
         vidstr(row++, col, RED, out);
      }
      else if(sat[i].tracking <= 0) {     // sat is visible but not tracked
         vidstr(row++, col, YELLOW, out);
      }
      else {                              // sat is being tracked
         vidstr(row++, col, GREEN, out);
         ++crap_count;
      }
      last_sat_row = (row+1);

      len = strlen(out);
      if(len > max_len) max_len = len;

      if(plot_title[0]) n = 2;
      else              n = 1;
++n; // !!!!! should only happen on very short screens
      if(row >= (TEXT_ROWS-n)) {
         vidstr(row,col, WHITE, "More sats skipped...");
         break;
      }
   }

   if((rcvr_type == TSIP_RCVR) && (tsip_type == TBOLT_TYPE) && (res_t == 0) && detect_rcvr_type) { 
      if(datum_flag && have_sat_azel && (datum_crapum == 0) && (crap_count > 2)) { 
         tsip_type = STARLOC_TYPE;
         config_msg_ofs();
         have_el_mask = have_amu = 0;
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %r9, -0x70(%rbp)
movl %r8d, %r15d
movl %ecx, -0x74(%rbp)
movl %edx, -0x60(%rbp)
movl %esi, -0x2c(%rbp)
movl %edi, %r13d
movb $0x0, -0x1f0(%rbp)
leaq 0x254d6d(%rip), %r14    # 0x2f678c
movl (%r14), %edi
testl %edi, %edi
je 0xa1a45
leaq 0x254d63(%rip), %rbx    # 0x2f6790
movl (%rbx), %esi
leaq 0x7c032(%rip), %rcx     # 0x11da68
pushq $0xf
popq %rdx
callq 0xe2d2
andl $0x0, (%rbx)
andl $0x0, (%r14)
movq -0x70(%rbp), %rax
addl %eax, %eax
movl %eax, -0x7c(%rbp)
incl -0x60(%rbp)
incl %r15d
movl %r15d, -0x78(%rbp)
pushq $0x1
popq %rcx
leaq 0x18754e(%rip), %rdx    # 0x228fb0
xorps %xmm2, %xmm2
xorl %r12d, %r12d
xorl %ebx, %ebx
xorl %r15d, %r15d
movl $0x0, -0x5c(%rbp)
movq %r13, %r14
cmpq $0xccdf8, %r12          # imm = 0xCCDF8
je 0xa23de
cmpb $0x0, 0x349(%rdx,%r12)
jne 0xa1a9e
cmpl $0x0, 0x364(%rdx,%r12)
je 0xa2259
leaq 0x18746f(%rip), %rax    # 0x228f14
cmpl $0x0, (%rax)
je 0xa1ac8
cmpl $0x0, 0x560(%rdx,%r12)
jle 0xa2259
cmpb $0x1, 0x348(%rdx,%r12)
je 0xa2259
leaq 0x254ccd(%rip), %rax    # 0x2f679c
movl (%rax), %eax
addl $-0x41, %eax
movl %ecx, %r13d
cmpl $0x16, %eax
ja 0xa1afb
movl $0x56901b, %esi         # imm = 0x56901B
btl %eax, %esi
movl %ecx, %r13d
jae 0xa1afb
movslq %ebx, %rax
shlq $0x4, %rax
leaq 0x2baba9(%rip), %rsi    # 0x35c6a0
movl (%rax,%rsi), %r13d
leaq 0x254ca6(%rip), %rax    # 0x2f67a8
cmpb $0x49, (%rax)
movl %ecx, -0x84(%rbp)
jne 0xa1b17
incl %ebx
movl %ebx, -0x4c(%rbp)
jmp 0xa1bad
leal 0x1(%rbx), %esi
leaq 0x254c63(%rip), %rax    # 0x2f6784
cmpl $0x2, (%rax)
movl %esi, -0x4c(%rbp)
jl 0xa1b33
cmpl -0x7c(%rbp), %esi
jl 0xa1b92
jmp 0xa23ab
leaq 0x18746a(%rip), %rax    # 0x228fa4
movl (%rax), %eax
movq -0x70(%rbp), %rcx
cmpl %ecx, %eax
cmovgel %ecx, %eax
cmpl %eax, %esi
jl 0xa1b7a
movl %r14d, %edi
movl -0x2c(%rbp), %esi
pushq $0xf
popq %rdx
leaq 0x7bf0f(%rip), %rcx     # 0x11da68
callq 0xe2d2
xorps %xmm2, %xmm2
leaq 0x187448(%rip), %rdx    # 0x228fb0
leaq 0x187435(%rip), %rax    # 0x228fa4
movl (%rax), %eax
movq -0x70(%rbp), %rcx
cmpl %ecx, %eax
cmovgel %ecx, %eax
cmpl %eax, %ebx
jge 0xa23a2
leaq 0x160c1f(%rip), %rax    # 0x2027a8
cmpl (%rax), %r14d
jge 0xa23b4
leaq 0x1851a5(%rip), %rax    # 0x226d3e
cmpb $0x0, (%rax)
setne %al
cmpl $0x8, %ebx
setge %cl
testb %cl, %al
jne 0xa23de
movq %r14, -0xb0(%rbp)
movslq %r13d, %rax
imulq $0x348, %rax, %rax      # imm = 0x348
movss 0x20c(%rdx,%rax), %xmm1
movss 0x55535(%rip), %xmm0    # 0xf7104
cmpltss %xmm1, %xmm0
andnps %xmm1, %xmm0
movaps %xmm1, -0xf0(%rbp)
movaps %xmm1, %xmm3
cmpltss %xmm2, %xmm3
andnps %xmm0, %xmm3
movb 0x210(%rdx,%rax), %r14b
testb %r14b, %r14b
je 0xa1bfd
ucomiss %xmm2, %xmm3
jne 0xa1c00
jp 0xa1c00
movb $0x20, %r14b
leaq (%rdx,%rax), %rbx
movss 0x20(%rbx), %xmm0
leaq 0x160cc0(%rip), %rcx    # 0x2028d0
movq (%rcx), %rcx
cmpq $0x20, %rcx
je 0xa1c1f
cmpq $0x10, %rcx
jne 0xa1c39
movss 0x66dc9(%rip), %xmm1    # 0x1089f0
cmpltss %xmm0, %xmm1
andnps %xmm0, %xmm1
ucomiss %xmm1, %xmm2
jb 0xa1c6a
xorps %xmm1, %xmm1
jmp 0xa1c6a
movss 0x554af(%rip), %xmm1    # 0xf70f0
cmpltss %xmm0, %xmm1
andnps %xmm0, %xmm1
movaps %xmm1, %xmm0
cmpnless 0x66d9f(%rip), %xmm0    # 0x1089f4
andps %xmm1, %xmm0
movaps %xmm0, %xmm1
ucomiss %xmm0, %xmm2
jbe 0xa1c6a
xorps %xmm0, %xmm0
subss %xmm1, %xmm0
movaps %xmm0, %xmm1
movaps %xmm1, -0xd0(%rbp)
movss 0x208(%rdx,%rax), %xmm0
movss 0x66d22(%rip), %xmm1    # 0x1089a4
cmpltss %xmm0, %xmm1
andnps %xmm0, %xmm1
movaps %xmm0, -0xe0(%rbp)
cmpltss %xmm2, %xmm0
andnps %xmm1, %xmm0
movsd 0x30(%rbx), %xmm1
movsd %xmm1, -0xa8(%rbp)
movsd 0x28(%rbx), %xmm1
movsd %xmm1, -0x58(%rbp)
ucomiss %xmm2, %xmm0
movl 0x18(%rbx), %eax
movl %eax, -0x64(%rbp)
movss 0x1fc(%rbx), %xmm1
movss %xmm1, -0x80(%rbp)
movss 0x238(%rbx), %xmm1
leaq 0x28454b(%rip), %rax    # 0x326220
movb $0x0, (%rax)
jne 0xa1ce3
jp 0xa1ce3
ucomiss %xmm2, %xmm3
jne 0xa1ce3
jnp 0xa1cec
cmpq $0x400000, %rcx         # imm = 0x400000
jne 0xa1d0b
movw $0x20, %ax
movw %ax, -0x34(%rbp)
movl $0x20412f4e, -0x38(%rbp) # imm = 0x20412F4E
movw %ax, -0x44(%rbp)
movl $0x412f4e20, -0x48(%rbp) # imm = 0x412F4E20
jmp 0xa1db4
ucomiss %xmm2, %xmm0
jne 0xa1d21
jp 0xa1d21
movw $0x20, -0x44(%rbp)
movl $0x412f4e20, -0x48(%rbp) # imm = 0x412F4E20
jmp 0xa1d52
cvtss2sd %xmm0, %xmm0
leaq -0x48(%rbp), %rdi
leaq 0x771a6(%rip), %rsi     # 0x118ed6
movb $0x1, %al
movaps %xmm3, -0xc0(%rbp)
movss %xmm1, -0x3c(%rbp)
callq 0x9060
movss -0x3c(%rbp), %xmm1
movaps -0xc0(%rbp), %xmm3
xorps %xmm2, %xmm2
ucomiss %xmm2, %xmm3
jne 0xa1d66
jp 0xa1d66
movb $0x0, -0x34(%rbp)
movl $0x412f4e20, -0x38(%rbp) # imm = 0x412F4E20
jmp 0xa1d9f
movss %xmm1, -0x3c(%rbp)
movss 0x5535d(%rip), %xmm0    # 0xf70d0
ucomiss %xmm3, %xmm0
cvtss2sd %xmm3, %xmm0
leaq -0x38(%rbp), %rdi
jbe 0xa1d89
leaq 0x6f304(%rip), %rsi     # 0x11108b
jmp 0xa1d90
leaq 0x6f303(%rip), %rsi     # 0x111093
movb $0x1, %al
callq 0x9060
xorps %xmm2, %xmm2
movss -0x3c(%rbp), %xmm1
xorl %eax, %eax
cmpb $0x20, -0x35(%rbp)
sete %al
negq %rax
movb %r14b, -0x34(%rbp,%rax)
movb $0x0, -0x33(%rbp)
movb $0x0, -0xa0(%rbp)
leaq 0x255586(%rip), %rax    # 0x2f7348
cmpl $0x0, (%rax)
movq -0xb0(%rbp), %r14
je 0xa1e03
movsd 0x38(%rbx), %xmm0
ucomisd 0x5133d(%rip), %xmm0    # 0xf3118
jne 0xa1e27
jp 0xa1e27
movabsq $0x2020202020412f, %rax # imm = 0x2020202020412F
movq %rax, -0x9b(%rbp)
movabsq $0x20412f4e20202020, %rax # imm = 0x20412F4E20202020
movq %rax, -0xa0(%rbp)
jmp 0xa1e50
ucomiss %xmm2, %xmm1
jne 0xa1e37
jp 0xa1e37
movabsq $0x20412f4e20202020, %rax # imm = 0x20412F4E20202020
movq %rax, -0xa0(%rbp)
movl $0x202020, -0x98(%rbp)  # imm = 0x202020
jmp 0xa1e50
leaq -0xa0(%rbp), %rdi
leaq 0x6f272(%rip), %rsi     # 0x1110a7
jmp 0xa1e49
cvtss2sd %xmm1, %xmm0
leaq -0xa0(%rbp), %rdi
leaq 0x6f271(%rip), %rsi     # 0x1110ba
movb $0x1, %al
callq 0x9060
movl %r13d, %edi
callq 0xca4ee
leaq 0x254935(%rip), %rcx    # 0x2f6794
cmpl (%rcx), %r13d
pushq $0x20
popq %rcx
pushq $0x2a
popq %rdx
cmovel %edx, %ecx
xorpd %xmm0, %xmm0
movaps -0xd0(%rbp), %xmm1
ucomiss %xmm0, %xmm1
movsbl %al, %r8d
jne 0xa1e9f
jp 0xa1e9f
leaq -0x38(%rbp), %rax
cmpl $0x64, %r13d
jl 0xa1ec1
movq %rax, (%rsp)
leaq 0x28438a(%rip), %rdi    # 0x326220
leaq 0x6f225(%rip), %rsi     # 0x1110c2
jmp 0xa1ed3
cvtss2sd %xmm1, %xmm0
leaq -0x38(%rbp), %rax
cmpl $0x64, %r13d
jl 0xa1ee3
movq %rax, (%rsp)
leaq 0x284368(%rip), %rdi    # 0x326220
leaq 0x6f232(%rip), %rsi     # 0x1110f1
jmp 0xa1ef5
movq %rax, (%rsp)
leaq 0x284354(%rip), %rdi    # 0x326220
leaq 0x6f206(%rip), %rsi     # 0x1110d9
movl %r13d, %edx
leaq -0x48(%rbp), %r9
xorl %eax, %eax
callq 0x9060
jmp 0xa1f03
movq %rax, (%rsp)
leaq 0x284332(%rip), %rdi    # 0x326220
leaq 0x6f213(%rip), %rsi     # 0x111108
movl %r13d, %edx
leaq -0x48(%rbp), %r9
movb $0x1, %al
callq 0x9060
leaq 0x255436(%rip), %rax    # 0x2f7340
cmpl $0x0, (%rax)
setne %cl
leaq 0x25486d(%rip), %rax    # 0x2f6784
movl (%rax), %eax
cmpl $0x2, %eax
setl %dl
andb %cl, %dl
cmpb $0x1, %dl
leaq -0x1f0(%rbp), %r13
movsd -0xa8(%rbp), %xmm1
jne 0xa1fea
ucomisd 0x511d7(%rip), %xmm1    # 0xf3118
jne 0xa1f61
jp 0xa1f61
movabsq $0x2f4e202020202020, %rax # imm = 0x2F4E202020202020
movq %rax, -0x1f0(%rbp)
movw $0x41, -0x1e8(%rbp)
jmp 0xa1fd2
movsd 0x66827(%rip), %xmm0    # 0x108790
ucomisd %xmm1, %xmm0
jae 0xa1fbd
ucomisd 0x66821(%rip), %xmm1    # 0x108798
jae 0xa1fbd
movsd 0x6681f(%rip), %xmm0    # 0x1087a0
ucomisd %xmm1, %xmm0
jae 0xa1fbd
ucomisd 0x539e1(%rip), %xmm1    # 0xf5970
jae 0xa1fbd
movsd 0x6680f(%rip), %xmm0    # 0x1087a8
ucomisd %xmm1, %xmm0
jae 0xa22c8
ucomisd 0x51165(%rip), %xmm1    # 0xf3110
jae 0xa22c8
movq %r13, %rdi
leaq 0x6f17d(%rip), %rsi     # 0x111138
jmp 0xa1fc7
movq %r13, %rdi
leaq 0x6f163(%rip), %rsi     # 0x11112a
movapd %xmm1, %xmm0
movb $0x1, %al
callq 0x9060
leaq 0x284247(%rip), %rdi    # 0x326220
movq %r13, %rsi
callq 0x96c0
leaq 0x25479c(%rip), %rax    # 0x2f6784
movl (%rax), %eax
movl 0x2ba6a4(%rip), %ecx    # 0x35c694
testl %ecx, %ecx
xorps %xmm0, %xmm0
je 0xa204b
cmpl $0x0, 0x2ba692(%rip)    # 0x35c690
je 0xa204b
cmpl $0x2, %eax
jge 0xa204b
leaq 0x2553b4(%rip), %rax    # 0x2f73c0
cmpl $0x0, (%rax)
je 0xa2098
movss -0x80(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jae 0xa2075
movaps %xmm1, %xmm0
ucomiss 0x669c7(%rip), %xmm1    # 0x1089f0
jne 0xa219b
jp 0xa219b
movl $0x4e4b4e, -0x1ed(%rbp) # imm = 0x4E4B4E
movl $0x4e552020, -0x1f0(%rbp) # imm = 0x4E552020
jmp 0xa2089
testl %ecx, %ecx
je 0xa210a
leaq 0x2552e2(%rip), %rax    # 0x2f733c
cmpl $0x0, (%rax)
je 0xa2098
leaq 0x2552da(%rip), %rax    # 0x2f7340
cmpl $0x0, (%rax)
jne 0xa2098
movl -0x64(%rbp), %edi
callq 0xa16e6
jmp 0xa2098
movl $0x20412f, -0x1ed(%rbp) # imm = 0x20412F
movl $0x2f4e2020, -0x1f0(%rbp) # imm = 0x2F4E2020
leaq 0x284190(%rip), %rdi    # 0x326220
movq %r13, %rsi
callq 0x96c0
leaq 0x2546e5(%rip), %rax    # 0x2f6784
cmpl $0x2, (%rax)
jl 0xa20e1
movl -0x4c(%rbp), %r13d
cmpl -0x60(%rbp), %r13d
je 0xa20ba
leaq 0x1606f3(%rip), %rax    # 0x2027a8
cmpl (%rax), %r14d
jl 0xa20e5
movl -0x2c(%rbp), %edx
movl -0x74(%rbp), %esi
cmpl %esi, %edx
setge %al
leaq 0x2546dc(%rip), %rcx    # 0x2f67a8
cmpb $0x49, (%rcx)
sete %cl
orb %al, %cl
cmovel %esi, %edx
movl %edx, -0x2c(%rbp)
cmovel -0x78(%rbp), %r14d
jmp 0xa20e5
movl -0x4c(%rbp), %r13d
cmpb $0x0, 0x1(%rbx)
je 0xa20f8
movl %r14d, %edi
movl -0x2c(%rbp), %esi
pushq $0x9
jmp 0xa21e0
cmpb $0x1, (%rbx)
jne 0xa215b
movl %r14d, %edi
movl -0x2c(%rbp), %esi
pushq $0xc
jmp 0xa21e0
leaq 0x255233(%rip), %rax    # 0x2f7344
cmpl $0x0, (%rax)
je 0xa217e
leaq 0x254687(%rip), %rax    # 0x2f67a4
cmpl $0x0, (%rax)
jne 0xa217e
movsd -0x58(%rbp), %xmm0
ucomisd 0x50fe9(%rip), %xmm0    # 0xf3118
jne 0xa2280
jp 0xa2280
movabsq $0x20412f4e20202020, %rax # imm = 0x20412F4E20202020
movq %rax, -0x1f0(%rbp)
movl $0x202020, -0x1e9(%rbp) # imm = 0x202020
jmp 0xa230f
cmpl $0x0, 0x218(%rbx)
jle 0xa21d8
movl %r14d, %edi
movl -0x2c(%rbp), %esi
pushq $0xa
popq %rdx
leaq 0x2840ac(%rip), %rcx    # 0x326220
callq 0xe2d2
incl -0x5c(%rbp)
jmp 0xa21ed
leaq 0x2551b7(%rip), %rax    # 0x2f733c
cmpl $0x0, (%rax)
je 0xa2321
movl -0x64(%rbp), %edi
callq 0xa16e6
jmp 0xa231e
ucomiss 0x66856(%rip), %xmm0    # 0x1089f8
jae 0xa2267
movaps %xmm0, %xmm1
cvtss2sd %xmm0, %xmm0
ucomiss 0x667f2(%rip), %xmm1    # 0x1089a8
jae 0xa22ef
ucomiss 0x54f2d(%rip), %xmm1    # 0xf70f0
jae 0xa2378
movq %r13, %rdi
leaq 0x6efa7(%rip), %rsi     # 0x11117a
jmp 0xa2382
movl %r14d, %edi
movl -0x2c(%rbp), %esi
pushq $0xe
popq %rdx
leaq 0x284038(%rip), %rcx    # 0x326220
callq 0xe2d2
xorps %xmm2, %xmm2
movaps -0xe0(%rbp), %xmm0
cmpneqss %xmm2, %xmm0
movd %xmm0, %eax
subl %eax, %r15d
movaps -0xf0(%rbp), %xmm0
cmpneqss %xmm2, %xmm0
movd %xmm0, %eax
subl %eax, %r15d
leal 0x1(%r14), %edi
addl $0x2, %r14d
leaq 0x186cf7(%rip), %rax    # 0x228f1c
movl %r14d, (%rax)
leaq 0x286621(%rip), %rax    # 0x328850
cmpb $0x1, (%rax)
leaq 0x1605d3(%rip), %rax    # 0x20280c
movl (%rax), %eax
adcl $-0x3, %eax
cmpl %eax, %edi
jge 0xa238e
movl %r13d, %ebx
movl %edi, %r14d
movl -0x84(%rbp), %ecx
leaq 0x186d57(%rip), %rdx    # 0x228fb0
addq $0x348, %r12            # imm = 0x348
incl %ecx
jmp 0xa1a77
movl $0x454752, -0x1ed(%rbp) # imm = 0x454752
movl $0x52414c20, -0x1f0(%rbp) # imm = 0x52414C20
jmp 0xa2089
movsd 0x66528(%rip), %xmm0    # 0x1087b0
ucomisd -0x58(%rbp), %xmm0
movsd -0x58(%rbp), %xmm0
jae 0xa22d7
movsd 0x6651c(%rip), %xmm0    # 0x1087b8
ucomisd -0x58(%rbp), %xmm0
movsd -0x58(%rbp), %xmm0
jae 0xa22fe
ucomisd 0x536a0(%rip), %xmm0    # 0xf5950
jae 0xa22d7
ucomisd 0x50d96(%rip), %xmm0    # 0xf3050
jae 0xa22fe
movq %r13, %rdi
leaq 0x6ee91(%rip), %rsi     # 0x111157
jmp 0xa2308
movq %r13, %rdi
leaq 0x6ee5f(%rip), %rsi     # 0x111131
jmp 0xa1fc7
cvttsd2si %xmm0, %rdx
movq %r13, %rdi
leaq 0x6ee64(%rip), %rsi     # 0x11114a
xorl %eax, %eax
callq 0x9060
jmp 0xa230f
movq %r13, %rdi
leaq 0x6ee7a(%rip), %rsi     # 0x111173
jmp 0xa2382
movq %r13, %rdi
leaq 0x6ee48(%rip), %rsi     # 0x111150
movb $0x1, %al
callq 0x9060
leaq 0x283f0a(%rip), %rdi    # 0x326220
movq %r13, %rsi
callq 0x96c0
xorps %xmm0, %xmm0
leaq 0x25447c(%rip), %rax    # 0x2f67a4
cmpl $0x0, (%rax)
jne 0xa2005
leaq 0x255010(%rip), %rax    # 0x2f7348
movl (%rax), %eax
leaq 0x25507b(%rip), %rcx    # 0x2f73bc
orl (%rcx), %eax
je 0xa2005
movq %r13, %rdi
leaq 0x75bfd(%rip), %rsi     # 0x117f50
leaq -0xa0(%rbp), %rdx
xorl %eax, %eax
callq 0x9060
leaq 0x283eb8(%rip), %rdi    # 0x326220
movq %r13, %rsi
callq 0x96c0
xorps %xmm0, %xmm0
jmp 0xa2005
movq %r13, %rdi
leaq 0x76b53(%rip), %rsi     # 0x118ed5
movb $0x1, %al
callq 0x9060
jmp 0xa2089
leaq 0x6edec(%rip), %rcx     # 0x111181
pushq $0xf
popq %rdx
movl -0x2c(%rbp), %esi
callq 0xe2d2
jmp 0xa23de
leaq 0x6eca0(%rip), %rcx     # 0x111049
jmp 0xa23bb
leaq 0x6ec79(%rip), %rcx     # 0x11102b
jmp 0xa23bb
leaq 0x6ecac(%rip), %rcx     # 0x111067
pushq $0xf
popq %rdx
movl %r14d, %edi
movl -0x2c(%rbp), %ebx
movl %ebx, %esi
callq 0xe2d2
leaq 0x2543ba(%rip), %rax    # 0x2f678c
movl %r14d, (%rax)
leaq 0x2543b4(%rip), %rax    # 0x2f6790
movl %ebx, (%rax)
leaq 0x1604eb(%rip), %rax    # 0x2028d0
cmpq $0x1, (%rax)
jne 0xa2464
leaq 0x162be2(%rip), %rax    # 0x204fd4
cmpl $0x0, (%rax)
jne 0xa2464
leaq 0x160506(%rip), %rcx    # 0x202904
cmpb $0x0, (%rcx)
jne 0xa2464
leaq 0x162bbe(%rip), %rcx    # 0x204fc8
cmpl $0x0, (%rcx)
je 0xa2464
leaq 0x162bc2(%rip), %rcx    # 0x204fd8
cmpl $0x0, (%rcx)
setne %cl
leaq 0x254e71(%rip), %rdx    # 0x2f7294
cmpl $0x0, (%rdx)
setne %dl
andb %cl, %dl
testl %r15d, %r15d
sete %cl
cmpl $0x3, -0x5c(%rbp)
setge %sil
andb %cl, %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0xa2464
movl $0x53, (%rax)
callq 0x43898
leaq 0x254fa1(%rip), %rax    # 0x2f73f8
andl $0x0, (%rax)
leaq 0x254f9b(%rip), %rax    # 0x2f73fc
andl $0x0, (%rax)
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq