// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathmsc.cpp
// Function: draw_azel_prns(int)
void draw_azel_prns(int signals)
{
int i, j;
int kl, kr;
char el_dir;
float az,el;
int q1_row,q2_row,q3_row,q4_row;
int q3_q4_col, q1_q2_col;
int l, step;
int color;

   // label the round maps

   q4_row = q1_row = ((AZEL_Y - AZEL_SIZE/2) / TEXT_HEIGHT) + 1;
   q3_row = q2_row = ((AZEL_Y + AZEL_SIZE/2) / TEXT_HEIGHT) - 1;
   q3_q4_col = (AZEL_X-AZEL_SIZE/2)/TEXT_WIDTH+2;
   q1_q2_col = (AZEL_X+AZEL_SIZE/2)/TEXT_WIDTH-2;
   if(SCREEN_WIDTH <= NARROW_SCREEN) {
      if(all_adevs || shared_plot) {  // plot area shared with az/el map
         if(SCREEN_HEIGHT < SHORT_SCREEN) {
            ++q4_row;  ++q1_row;
            ++q3_row;  ++q2_row;
         }
      }
      else {
         ++q3_row; ++q2_row;
      }
      --q4_row; --q1_row;
   }
   else if(all_adevs || shared_plot) {  // az/el map shared with plot area
      q1_q2_col -= 2;
      q3_q4_col += 1;
   }
   else {
      q1_q2_col -= 1;
   }

   if(0 & (SCREEN_HEIGHT < SHORT_SCREEN)) {
      --q2_row;
      --q3_row;
   }

   if(q1_q2_col < 0) q1_q2_col = 0;
   if(q3_q4_col < 0) q3_q4_col = 0;
   if(q1_row < 0) q1_row = 0;
   if(q2_row < 0) q2_row = 0;
   if(q3_row < 0) q3_row = 0;
   if(q4_row < 0) q4_row = 0;

   if((zoom_screen == 'U') || (zoom_screen == 'V')) {
      if(SCREEN_HEIGHT > SHORT_SCREEN) show_title();
   }
   else if(zoom_screen) {
      show_title();
   }

   if(small_azel()) return;  // map is too small to label

   no_x_margin = no_y_margin = 1;

   #ifdef SIG_LEVELS 
      if(zoom_screen || ((SCREEN_HEIGHT >= AZEL_TITLE_THRESH) && (all_adevs == SINGLE_ADEVS)) || ((SCREEN_WIDTH >= MEDIUM_WIDTH) && (AZEL_ROW < PLOT_ROW))) {
         if(zoom_screen == 'S')      label_circles(signals, q2_row+3); 
         else if(zoom_screen == 'U') label_circles(signals, q2_row+3); 
         else if((zoom_screen == 'V') || (zoom_screen == 'I')) {
            if(plot_signals) label_circles(signals, q2_row+3); 
            else             label_circles(0, q2_row+3); 
         }
         else if(map_and_watch) label_circles(0, q2_row+3);
         else                   label_circles(signals, q2_row+3);
      }

      l = min_sig_db;
      step = sig_level_step;

      if((zoom_screen == 'X') || (zoom_screen == 'Y')) {
         if(SCREEN_WIDTH < TINY_TINY_WIDTH) {
            q1_q2_col += 4;
            q3_q4_col -= 4;
         }
         else {
            q1_q2_col += 9;
            q3_q4_col -= 9;
         }
         goto xxxx;
      }
      else if((zoom_screen == 'U') || (zoom_screen == 'V') || (zoom_screen == 'I')) {
         q1_q2_col += 3;
         q3_q4_col -= 3;
         if(plot_signals == 4) goto xxxx;
         else if(plot_signals == 0) goto yyyy;
no_x_margin = no_y_margin = 0;
         return;
      }
      else if((zoom_screen == 'M') || (zoom_screen == 'B')) {
         q1_q2_col += 4;
         q3_q4_col -= 4;
      }

      if(map_and_watch && (zoom_screen != 'S')) ;
      else if((signals || (zoom_screen == 'S')) && (plot_signals >= 4)) {
         if(zoom_screen || ((SCREEN_WIDTH >= MEDIUM_WIDTH) && (AZEL_ROW < PLOT_ROW))) {
            xxxx:
            q1_q2_col-=2;
            q3_q4_col-=2;
            if(zoom_screen && (SCREEN_WIDTH >= (NARROW_SCREEN-24)) && (SCREEN_WIDTH <= (NARROW_SCREEN+24))) {  // !!!!! == NARROW_SCREEN?
               ++q1_row;  ++q4_row;
            }
//sprintf(debug_text, "q1r:%d  q2r:%d  q3r:%d  q4r:%d  q34c:%d  q12c:%d", q1_row,q2_row,q3_row,q4_row, q3_q4_col, q1_q2_col);
//DEBUGSTR(debug_text);

            sprintf(out, "<%d %s", l, level_type);
            vidstr(q4_row+0, q3_q4_col, LOW_SIGNAL,      out);
            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q4_row+1, q3_q4_col, level_color[1],  out);
            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q4_row+2, q3_q4_col, level_color[2],  out);

            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q1_row+0, q1_q2_col, level_color[3],  out);
            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q1_row+1, q1_q2_col, level_color[4],  out);
            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q1_row+2, q1_q2_col, level_color[5],  out);

            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q3_row-2, q3_q4_col, level_color[6],  out);
            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q3_row-1, q3_q4_col, level_color[7],  out);
            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q3_row-0, q3_q4_col, level_color[8],  out);

            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q2_row-2, q1_q2_col, level_color[9],  out);
            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q2_row-1, q1_q2_col, level_color[10], out);
            sprintf(out, ">%d %s", l, level_type); l+=step;
            vidstr(q2_row-0, q1_q2_col, level_color[11], out);
         }
         else {
            sprintf(out, "<%d", l);
            vidstr(q4_row+0, q3_q4_col, LOW_SIGNAL,      out);
            sprintf(out, ">%d", l); l+=step;
            vidstr(q4_row+1, q3_q4_col, level_color[1],  out);   
            sprintf(out, ">%d", l); l+=step;
            vidstr(q4_row+2, q3_q4_col, level_color[2],  out);   

            sprintf(out, ">%d", l); l+=step;
            vidstr(q1_row+0, q1_q2_col, level_color[3],  out);   
            sprintf(out, ">%d", l); l+=step;
            vidstr(q1_row+1, q1_q2_col, level_color[4],  out);   
            sprintf(out, ">%d", l); l+=step;
            vidstr(q1_row+2, q1_q2_col, level_color[5],  out);   

            sprintf(out, ">%d", l); l+=step;
            vidstr(q3_row-2, q3_q4_col, level_color[6],  out);   
            sprintf(out, ">%d", l); l+=step;
            vidstr(q3_row-1, q3_q4_col, level_color[7],  out);   
            sprintf(out, ">%d", l); l+=step;
            vidstr(q3_row-0, q3_q4_col, level_color[8],  out);   

            sprintf(out, ">%d", l); l+=step;
            vidstr(q2_row-2, q1_q2_col, level_color[9],  out);
            sprintf(out, ">%d", l); l+=step;
            vidstr(q2_row-1, q1_q2_col, level_color[10], out);
            sprintf(out, ">%d", l); l+=step;
            vidstr(q2_row-0, q1_q2_col, level_color[11], out);
         }
         no_x_margin = no_y_margin = 0;
if((zoom_screen == 'X') || (zoom_screen == 'Y')) {
   q1_q2_col -= 9;
   q3_q4_col += 9;

   --q1_row;
   --q4_row;
}
         else return;
      }
      else if(signals && plot_signals) {
         no_x_margin = no_y_margin = 0;
         return;
      }
   #endif

   yyyy:
   j = 0;
   for(i=1; i<=SUN_MOON_PRN; i++) {  // !!!!!! mooooo first draw the sat PRNs in use
      if(sat[i].level_msg == 0x00) continue;
      if((i == SUN_PRN) && (no_sun_moon & 0x01)) continue;
      if((i == MOON_PRN) && (no_sun_moon & 0x02)) continue;

if(tracked_only & (sat[i].tracking <= 0) && (i != SUN_PRN) && (i != MOON_PRN)) continue;
      if(i == SUN_PRN) ;
      else if(i == MOON_PRN);
      else if(sat[i].sig_level <= 0.0) continue; // zzzzzzzzzzzzzzzzzzzz

      el = sat[i].elevation;
      az = sat[i].azimuth;

      if((az == 0.0F) && (el == 0.0F)) continue;
      if((az < 0.0F) || (az >= 360.0F)) continue;
      if(el > 90.0F) continue;
      if(el < 0.0F) {
         if(i == SUN_PRN) ;
         else if(i == MOON_PRN) ;
         else continue;
         el = 0.0F - el;
      }

//sprintf(debug_text2, "Q1r:%d  Q2r:%d  Q3r:%d  Q4r:%d  Q34c:%d  Q12c:%d", q1_row,q2_row,q3_row,q4_row, q3_q4_col, q1_q2_col);
//DEBUGSTR3(debug_text2);

      if(sat[i].tracking > 0) {  //  we are actively tracking at least one satellite
         if(azel_grid_color == AZEL_ALERT) azel_grid_color = AZEL_COLOR;  
      } 
      el_dir = sat[i].el_dir;
      if(el_dir == 0) el_dir = ' ';

      kl = kr = 0;
//gns if(SCREEN_WIDTH > NARROW_SCREEN) {
      if((SCREEN_WIDTH > 800) || zoom_screen) {
         if(i == SUN_PRN)       sprintf(out, "SUN "); 
         else if(i == MOON_PRN) sprintf(out, "MOON"); 
         else if(i >= 100)      sprintf(out, "%03d%c", i,el_dir);
         else                   sprintf(out, "%02d%c ", i,el_dir);
         kl = 1;
         kr = 0;
      }
      else {
         if(i == SUN_PRN)       sprintf(out, "SUN "); 
         else if(i == MOON_PRN) sprintf(out, "MOON"); 
         else if(i >= 100)      sprintf(out, "%03d ", i);
         else                   sprintf(out, "%02d  ", i);
//gns    kl = 0;
//gns    kr = 1;
//       kl = 2;
         kl = 1;  // helps with small screens with no critical info
         kr = 1;
      }

      color = j;
      if(i == SUN_PRN) color = YELLOW_SAT_COLOR;  // !!!! kludge: force YELLOW for the sun
      if(i == MOON_PRN) {
         if(moon_el < 0) color = GREY_SAT_COLOR;
         else            color = YELLOW_SAT_COLOR;  // !!!! kludge: force YELLOW for the moon
      //sprintf(debug_text, "moon: el:%f  moon_el:%f  color:%d", el, moon_el, color);
      }
      color = sat_colors[color];
      if(blink_sat() && (i == blink_sat()) && (seconds & 1)) {  // blink the specified sat
         color = BLACK;
      }

      if(az < 90.0F) {  // figure out what quadrant they are in
         vidstr(q1_row, q1_q2_col+kr, color, out);
         ++q1_row;
      }
      else if(az < 180.0F) {
         vidstr(q2_row, q1_q2_col+kr, color, out);
         --q2_row;
      }
      else if(az < 270.0F) {
         vidstr(q3_row, q3_q4_col-kl, color, out);
         --q3_row;
      }
      else {
         vidstr(q4_row, q3_q4_col-kl, color, out);
         ++q4_row;
      }

      ++j;
      if(j > MAX_SAT_COLOR) j = 0;
   }

   no_x_margin = no_y_margin = 0;
   return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %edi, -0x40(%rbp)
leaq 0x2458a6(%rip), %rax    # 0x33b3a4
movl (%rax), %esi
leaq 0x245885(%rip), %r14    # 0x33b38c
movl (%r14), %eax
movl %eax, %r10d
shrl $0x1f, %r10d
addl %eax, %r10d
sarl %r10d
movl %esi, %eax
subl %r10d, %eax
leaq 0x122cf1(%rip), %rcx    # 0x218814
movl (%rcx), %edi
cltd
idivl %edi
movl %eax, %ecx
leal 0x1(%rcx), %r12d
addl %r10d, %esi
movl %esi, %eax
cltd
idivl %edi
movl %eax, %esi
leal -0x1(%rsi), %r9d
leaq 0x24585d(%rip), %rax    # 0x33b3a0
movl (%rax), %r8d
movl %r8d, %eax
subl %r10d, %eax
leaq 0x122cbd(%rip), %rdx    # 0x218810
movl (%rdx), %r11d
cltd
idivl %r11d
movl %eax, %edi
leal 0x2(%rdi), %r15d
addl %r10d, %r8d
movl %r8d, %eax
cltd
idivl %r11d
movl %eax, %r13d
leaq 0x12d9d0(%rip), %rax    # 0x223544
imull $0x31a, (%rax), %eax    # imm = 0x31A
cltq
imulq $0x51eb851f, %rax, %rdx # imm = 0x51EB851F
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x25, %rdx
addl %eax, %edx
leaq 0x1471a7(%rip), %rbx    # 0x23cd3e
leaq 0x24584a(%rip), %rax    # 0x33b3e8
movb (%rax), %al
orb (%rbx), %al
leaq 0x122c57(%rip), %r8     # 0x218800
setne %al
cmpl %edx, (%r8)
jle 0xf5bc1
testb %al, %al
je 0xf5be0
addl $-0x4, %r13d
addl $0x3, %edi
movl %edi, %r15d
jmp 0xf5bec
addl $-0x2, %r13d
testb %al, %al
je 0xf5be6
leaq 0x122c34(%rip), %rax    # 0x218804
cmpl $0x258, (%rax)          # imm = 0x258
cmovll %esi, %r9d
cmovll %r12d, %ecx
jmp 0xf5be9
addl $-0x3, %r13d
jmp 0xf5bec
movl %esi, %r9d
movl %ecx, %r12d
xorl %eax, %eax
testl %r13d, %r13d
cmovlel %eax, %r13d
testl %r15d, %r15d
cmovlel %eax, %r15d
testl %r12d, %r12d
cmovlel %eax, %r12d
testl %r9d, %r9d
cmovgl %r9d, %eax
movq %rax, -0x50(%rbp)
leaq 0x216b93(%rip), %rax    # 0x30c7a8
movb (%rax), %al
leal -0x55(%rax), %ecx
cmpb $0x1, %cl
ja 0xf5c30
leaq 0x122bde(%rip), %rax    # 0x218804
cmpl $0x258, (%rax)          # imm = 0x258
jg 0xf5c34
jmp 0xf5c39
testb %al, %al
je 0xf5c39
callq 0x17e7f
cmpl $0xa0, (%r14)
setge %cl
leaq 0x216b5e(%rip), %rax    # 0x30c7a8
movb (%rax), %al
testb %al, %al
setne %dl
orb %cl, %dl
cmpb $0x1, %dl
jne 0xf67dd
movzbl %al, %eax
leaq 0x122bf5(%rip), %rdx    # 0x21885b
movb $0x1, %cl
movb %cl, (%rdx)
leaq 0x122be9(%rip), %rdx    # 0x21885a
movb %cl, (%rdx)
testl %eax, %eax
movq -0x50(%rbp), %rsi
jne 0xf5c8f
leaq 0x122b82(%rip), %rcx    # 0x218804
cmpl $0x340, (%rcx)          # imm = 0x340
jl 0xf5cc3
cmpb $0x0, (%rbx)
jne 0xf5cc3
cmpl $0x54, %eax
jg 0xf5ca0
cmpl $0x49, %eax
je 0xf5caa
cmpl $0x53, %eax
je 0xf5cbb
jmp 0xf5ce8
cmpl $0x55, %eax
je 0xf5cbb
cmpl $0x56, %eax
jne 0xf5ce8
leaq 0x125764(%rip), %rax    # 0x21b415
addl $0x3, %esi
cmpb $0x0, (%rax)
jne 0xf5cbe
jmp 0xf5cf7
addl $0x3, %esi
movl -0x40(%rbp), %edi
jmp 0xf5cf9
leaq 0x122b36(%rip), %rcx    # 0x218800
cmpl $0x3e2, (%rcx)          # imm = 0x3E2
jl 0xf5cfe
leaq 0x2456b7(%rip), %rcx    # 0x33b390
movl (%rcx), %ecx
leaq 0x122b9a(%rip), %rdx    # 0x21887c
cmpl (%rdx), %ecx
jl 0xf5c8f
jmp 0xf5cfe
leaq 0x125721(%rip), %rax    # 0x21b410
addl $0x3, %esi
cmpb $0x0, (%rax)
je 0xf5cbe
xorl %edi, %edi
callq 0xf67ec
movl %r13d, -0x2c(%rbp)
leaq 0xbe577(%rip), %rax     # 0x1b4280
movl (%rax), %r13d
leaq 0xbe571(%rip), %rax     # 0x1b4284
movl (%rax), %r14d
leaq 0x216a8b(%rip), %rax    # 0x30c7a8
movzbl (%rax), %eax
movl %eax, %ecx
andb $-0x2, %cl
cmpb $0x58, %cl
jne 0xf5d43
leaq 0x122acf(%rip), %rcx    # 0x218800
cmpl $0x1c1, (%rcx)          # imm = 0x1C1
jg 0xf5d84
addl $0x4, -0x2c(%rbp)
addl $-0x4, %r15d
jmp 0xf5d8c
leal -0x42(%rax), %ecx
cmpl $0x14, %ecx
ja 0xf60f6
movl $0x180080, %edx         # imm = 0x180080
btl %ecx, %edx
movl -0x40(%rbp), %esi
jae 0xf60e2
addl $0x3, -0x2c(%rbp)
addl $-0x3, %r15d
leaq 0x1256a6(%rip), %rcx    # 0x21b415
movzbl (%rcx), %ecx
testl %ecx, %ecx
je 0xf6112
cmpl $0x4, %ecx
je 0xf5d8c
jmp 0xf67c9
addl $0x9, -0x2c(%rbp)
addl $-0x9, %r15d
movl %r14d, -0x38(%rbp)
addl $-0x2, -0x2c(%rbp)
addl $-0x2, %r15d
testl %eax, %eax
je 0xf5de5
leaq 0x122a5d(%rip), %rax    # 0x218800
movl (%rax), %eax
leaq 0x12d798(%rip), %rcx    # 0x223544
imull $0x31a, (%rcx), %ecx    # imm = 0x31A
movslq %ecx, %rcx
imulq $0x51eb851f, %rcx, %rcx # imm = 0x51EB851F
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rcx
addl %edx, %ecx
leal -0x18(%rcx), %edx
addl $0x18, %ecx
leal 0x1(%r12), %esi
cmpl %ecx, %eax
cmovgl %r12d, %esi
cmpl %edx, %eax
cmovll %r12d, %esi
movl %esi, %r14d
jmp 0xf5de8
movq %r12, %r14
leaq 0x149109(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rax, %r12
leaq 0x246424(%rip), %rbx    # 0x33c220
leaq 0x3f0f2(%rip), %rsi     # 0x134ef5
movq %rbx, %rdi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
movl %r14d, %edi
movl %r15d, %esi
movl $0x8, %edx
movq %rbx, %rcx
callq 0xe7d0
movq (%r12), %rcx
leaq 0x3f0ce(%rip), %rsi     # 0x134efc
movq %rbx, %rdi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
movl -0x38(%rbp), %r12d
addl %r12d, %r13d
leal 0x1(%r14), %edi
movzbl 0x74807(%rip), %edx     # 0x16a654
movl %r15d, %esi
movl %r15d, -0x44(%rbp)
movq %rbx, %rcx
callq 0xe7d0
leaq 0x149095(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3f08c(%rip), %rsi     # 0x134efc
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
leal 0x2(%r14), %edi
movzbl 0x747d0(%rip), %edx     # 0x16a658
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x14905e(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3f055(%rip), %rsi     # 0x134efc
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
movzbl 0x747a1(%rip), %edx     # 0x16a65c
movl %r14d, %edi
movl -0x2c(%rbp), %r15d
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x149024(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3f01b(%rip), %rsi     # 0x134efc
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
leal 0x1(%r14), %edi
movzbl 0x74767(%rip), %edx     # 0x16a660
movl %r15d, %esi
movl %r15d, -0x2c(%rbp)
movq %rbx, %rcx
callq 0xe7d0
leaq 0x148fe9(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3efe0(%rip), %rsi     # 0x134efc
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
movq %r14, -0x40(%rbp)
leal 0x2(%r14), %edi
movzbl 0x7472c(%rip), %edx     # 0x16a664
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x148fae(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3efa5(%rip), %rsi     # 0x134efc
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
movl -0x44(%rbp), %r15d
movq -0x50(%rbp), %r14
leal -0x2(%r14), %edi
movl %edi, -0x34(%rbp)
movzbl 0x746ee(%rip), %edx     # 0x16a668
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x148f6c(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3ef63(%rip), %rsi     # 0x134efc
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
leal -0x1(%r14), %edi
movl %edi, -0x30(%rbp)
movzbl 0x746b8(%rip), %edx     # 0x16a66c
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x148f32(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3ef29(%rip), %rsi     # 0x134efc
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
movzbl 0x74689(%rip), %edx     # 0x16a670
movl %r14d, %edi
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x148efc(%rip), %r15    # 0x23eef8
movq (%r15), %rcx
movq %rbx, %rdi
leaq 0x3eef3(%rip), %r15     # 0x134efc
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
movzbl 0x74654(%rip), %edx     # 0x16a674
movl -0x34(%rbp), %edi
movl -0x2c(%rbp), %r14d
movl %r14d, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x148ebf(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r12d, %r13d
movzbl 0x74622(%rip), %edx     # 0x16a678
movl -0x30(%rbp), %edi
movl %r14d, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x148e8d(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
movzbl 0x745f7(%rip), %edx     # 0x16a67c
leaq 0x246194(%rip), %rcx    # 0x33c220
movq -0x50(%rbp), %rdi
movl %r14d, %esi
callq 0xe7d0
xorl %eax, %eax
leaq 0x1227ba(%rip), %rcx    # 0x21885b
movb %al, (%rcx)
leaq 0x1227b0(%rip), %rcx    # 0x21885a
movb %al, (%rcx)
leaq 0x2166f5(%rip), %rax    # 0x30c7a8
movb (%rax), %al
andb $-0x2, %al
cmpb $0x58, %al
movq -0x40(%rbp), %rax
jne 0xf67dd
addl $-0x9, %r14d
movl %r14d, -0x2c(%rbp)
movl -0x44(%rbp), %r15d
addl $0x9, %r15d
movl %eax, %ecx
decl %eax
decl %ecx
movl %ecx, -0x34(%rbp)
movq %rax, -0x40(%rbp)
jmp 0xf611a
movl $0x801, %edx            # imm = 0x801
btl %ecx, %edx
jae 0xf60f9
addl $0x4, -0x2c(%rbp)
addl $-0x4, %r15d
jmp 0xf60f9
movl -0x40(%rbp), %esi
cmpl $0x53, %eax
je 0xf6530
leaq 0x125307(%rip), %rcx    # 0x21b410
cmpb $0x0, (%rcx)
je 0xf6530
movq %r12, -0x40(%rbp)
movl %r12d, -0x34(%rbp)
decl %r15d
movl $0x560, %r14d           # imm = 0x560
addq 0x59e16(%rip), %r14     # 0x14ff40
movl $0x1, %r13d
leaq 0x7ab31(%rip), %r9      # 0x170c68
leaq 0x148dd6(%rip), %rsi    # 0x23ef14
xorps %xmm1, %xmm1
movss 0x16ea7(%rip), %xmm2    # 0x10cff0
leaq 0x245258(%rip), %rdi    # 0x33b3a8
leaq 0x2460c9(%rip), %rbx    # 0x33c220
movq -0x50(%rbp), %rax
movl %eax, -0x38(%rbp)
xorl %r12d, %r12d
movl %r15d, -0x44(%rbp)
cmpl $0x0, -0x1fc(%r14)
je 0xf6506
cmpq $0x3e8, %r13            # imm = 0x3E8
jne 0xf6186
testb $0x1, (%r9)
jne 0xf6506
cmpq $0x3e9, %r13            # imm = 0x3E9
jne 0xf6199
testb $0x2, (%r9)
jne 0xf6506
movl (%r14), %eax
cmpq $0x3e7, %r13            # imm = 0x3E7
ja 0xf61b4
testl %eax, %eax
jg 0xf61b4
movl (%rsi), %ecx
andl $0x1, %ecx
jne 0xf6506
movl %r13d, %ecx
andl $0x3fe, %ecx            # imm = 0x3FE
cmpq $0x3e8, %rcx            # imm = 0x3E8
je 0xf61d4
ucomiss -0x1f8(%r14), %xmm1
jae 0xf6506
movss -0x10(%r14), %xmm3
movss -0xc(%r14), %xmm0
ucomiss %xmm1, %xmm3
jne 0xf61f2
jp 0xf61f2
ucomiss %xmm1, %xmm0
jne 0xf61f2
jnp 0xf6506
cmpl $0x3e8, %ecx            # imm = 0x3E8
sete %cl
ucomiss %xmm0, %xmm1
setbe %dl
ucomiss %xmm3, %xmm1
ja 0xf6506
ucomiss 0x2876b(%rip), %xmm3    # 0x11e97c
jae 0xf6506
ucomiss %xmm2, %xmm0
ja 0xf6506
orb %dl, %cl
je 0xf6506
testl %eax, %eax
jle 0xf6237
cmpl $0x4, (%rdi)
jne 0xf6237
movl $0x8, (%rdi)
movl -0x8(%r14), %eax
testb %al, %al
movl $0x20, %ecx
cmovel %ecx, %eax
leaq 0x1225b4(%rip), %rcx    # 0x218800
cmpl $0x320, (%rcx)          # imm = 0x320
jg 0xf6275
leaq 0x21654d(%rip), %rcx    # 0x30c7a8
cmpb $0x0, (%rcx)
jne 0xf6275
cmpq $0x3e8, %r13            # imm = 0x3E8
jne 0xf62a4
movb $0x0, 0x4(%rbx)
movl $0x204e5553, (%rbx)     # imm = 0x204E5553
jmp 0xf62b7
cmpq $0x3e8, %r13            # imm = 0x3E8
jne 0xf628a
movb $0x0, 0x4(%rbx)
movl $0x204e5553, (%rbx)     # imm = 0x204E5553
jmp 0xf629d
cmpq $0x3e9, %r13            # imm = 0x3E9
jne 0xf62be
movb $0x0, 0x4(%rbx)
movl $0x4e4f4f4d, (%rbx)     # imm = 0x4E4F4F4D
xorl %ebx, %ebx
jmp 0xf632b
cmpq $0x3e9, %r13            # imm = 0x3E9
jne 0xf62de
movb $0x0, 0x4(%rbx)
movl $0x4e4f4f4d, (%rbx)     # imm = 0x4E4F4F4D
movl $0x1, %ebx
jmp 0xf632b
movss %xmm3, -0x30(%rbp)
movsbl %al, %ecx
xorl %ebx, %ebx
leaq 0x245f51(%rip), %rdi    # 0x33c220
cmpq $0x64, %r13
jb 0xf62f5
leaq 0x3ba46(%rip), %rsi     # 0x131d22
jmp 0xf62fc
movss %xmm3, -0x30(%rbp)
movq %rbx, %rdi
cmpq $0x64, %r13
jb 0xf6308
leaq 0x3ec25(%rip), %rsi     # 0x134f18
jmp 0xf630f
leaq 0x3ec14(%rip), %rsi     # 0x134f10
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
jmp 0xf631e
leaq 0x3ec0f(%rip), %rsi     # 0x134f1e
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
movl $0x1, %ebx
movss 0x16cca(%rip), %xmm2    # 0x10cff0
movss -0x30(%rbp), %xmm3
cmpq $0x3e8, %r13            # imm = 0x3E8
movl %r12d, %eax
movl $0xe, %ecx
cmovel %ecx, %eax
xorl %ecx, %ecx
leaq 0x2174aa(%rip), %rdx    # 0x30d7f0
xorps %xmm0, %xmm0
ucomisd (%rdx), %xmm0
setbe %cl
cmpq $0x3e9, %r13            # imm = 0x3E9
leal 0xb(%rcx,%rcx,2), %ecx
cmovnel %eax, %ecx
movslq %ecx, %rax
leaq 0x74318(%rip), %rcx     # 0x16a680
movl (%rcx,%rax,4), %r15d
leaq 0x216425(%rip), %rax    # 0x30c798
movl (%rax), %eax
testl %eax, %eax
js 0xf6410
testl %eax, %eax
je 0xf63ac
leaq 0x216410(%rip), %rax    # 0x30c798
movl (%rax), %eax
testl %eax, %eax
js 0xf6471
movl %eax, %eax
cmpq %rax, %r13
jne 0xf63ac
leaq 0x217128(%rip), %rax    # 0x30d4c8
testb $0x1, (%rax)
movl $0x0, %eax
cmovnel %eax, %r15d
ucomiss %xmm3, %xmm2
movzbl %r15b, %edx
jbe 0xf63dc
addl -0x2c(%rbp), %ebx
movq -0x40(%rbp), %r15
movl %r15d, %edi
movl %ebx, %esi
leaq 0x245e58(%rip), %rbx    # 0x33c220
movq %rbx, %rcx
callq 0xe7d0
incl %r15d
movq %r15, -0x40(%rbp)
jmp 0xf64d2
movss 0x285a4(%rip), %xmm0    # 0x11e988
ucomiss %xmm3, %xmm0
jbe 0xf6443
addl -0x2c(%rbp), %ebx
movl -0x38(%rbp), %r15d
movl %r15d, %edi
movl %ebx, %esi
leaq 0x245e24(%rip), %rbx    # 0x33c220
movq %rbx, %rcx
callq 0xe7d0
decl %r15d
movl %r15d, -0x38(%rbp)
jmp 0xf64d2
cmpl $-0x2, %eax
je 0xf64a4
cmpl $-0x1, %eax
movl $0x0, %eax
jne 0xf637d
movss %xmm3, -0x30(%rbp)
callq 0xaddb5
movss -0x30(%rbp), %xmm3
movss 0x16bb2(%rip), %xmm2    # 0x10cff0
jmp 0xf637d
movss 0x362b5(%rip), %xmm0    # 0x12c700
ucomiss %xmm3, %xmm0
movl -0x44(%rbp), %r15d
jbe 0xf64b2
movq -0x50(%rbp), %rbx
movl %ebx, %edi
movl %r15d, %esi
leaq 0x245dbc(%rip), %rcx    # 0x33c220
callq 0xe7d0
decl %ebx
movq %rbx, -0x50(%rbp)
jmp 0xf64cb
cmpl $-0x2, %eax
je 0xf6522
cmpl $-0x1, %eax
movl $0x0, %eax
jne 0xf6392
movss %xmm3, -0x30(%rbp)
callq 0xaddb5
movss -0x30(%rbp), %xmm3
movss 0x16b51(%rip), %xmm2    # 0x10cff0
jmp 0xf6392
leaq 0x2162e9(%rip), %rax    # 0x30c794
movl (%rax), %eax
jmp 0xf637d
movl -0x34(%rbp), %ebx
movl %ebx, %edi
movl %r15d, %esi
leaq 0x245d5f(%rip), %rcx    # 0x33c220
callq 0xe7d0
incl %ebx
movl %ebx, -0x34(%rbp)
leaq 0x245d4e(%rip), %rbx    # 0x33c220
cmpl $0xe, %r12d
leal 0x1(%r12), %eax
movl $0x0, %ecx
cmovgel %ecx, %eax
movl %eax, %r12d
leaq 0x148a27(%rip), %rsi    # 0x23ef14
xorps %xmm1, %xmm1
movss 0x16af8(%rip), %xmm2    # 0x10cff0
leaq 0x244ea9(%rip), %rdi    # 0x33b3a8
leaq 0x7a762(%rip), %r9      # 0x170c68
incq %r13
addq $0x348, %r14            # imm = 0x348
cmpq $0x3ea, %r13            # imm = 0x3EA
jne 0xf6165
jmp 0xf67c9
leaq 0x21626b(%rip), %rax    # 0x30c794
movl (%rax), %eax
jmp 0xf6392
testl %esi, %esi
setne %cl
cmpl $0x53, %eax
sete %dl
orb %cl, %dl
leaq 0x124ed1(%rip), %rcx    # 0x21b415
movb (%rcx), %cl
cmpb $0x4, %cl
movl %esi, %edi
setae %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0xf67af
testl %eax, %eax
jne 0xf5d8c
leaq 0x122295(%rip), %rcx    # 0x218800
cmpl $0x3e2, (%rcx)          # imm = 0x3E2
jl 0xf658b
leaq 0x244e16(%rip), %rcx    # 0x33b390
movl (%rcx), %ecx
leaq 0x1222f9(%rip), %rdx    # 0x21887c
cmpl (%rdx), %ecx
jl 0xf5d8c
leaq 0x245c8e(%rip), %rbx    # 0x33c220
leaq 0x3e96a(%rip), %rsi     # 0x134f03
movq %rbx, %rdi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
movl %r12d, %edi
movl %r15d, %esi
movl $0x8, %edx
movq %rbx, %rcx
callq 0xe7d0
leaq 0x3e947(%rip), %rsi     # 0x134f07
movq %rbx, %rdi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
leal 0x1(%r12), %edi
movl %edi, -0x38(%rbp)
movzbl 0x74075(%rip), %edx     # 0x16a654
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
leaq 0x3e913(%rip), %rsi     # 0x134f07
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movl %r15d, -0x44(%rbp)
leal 0x2(%r12), %edi
movl %edi, -0x34(%rbp)
movzbl 0x74044(%rip), %edx     # 0x16a658
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
leaq 0x3e8de(%rip), %r15     # 0x134f07
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x7401c(%rip), %edx     # 0x16a65c
movq %r12, -0x40(%rbp)
movl %r12d, %edi
movl -0x2c(%rbp), %r12d
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x73ff0(%rip), %edx     # 0x16a660
movl -0x38(%rbp), %edi
movl %r12d, %esi
movl %r12d, -0x2c(%rbp)
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x73fc8(%rip), %edx     # 0x16a664
movl -0x34(%rbp), %edi
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movq -0x50(%rbp), %r12
leal -0x2(%r12), %edi
movl %edi, -0x38(%rbp)
movzbl 0x73f98(%rip), %edx     # 0x16a668
movl -0x44(%rbp), %r15d
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
leaq 0x3e81e(%rip), %rsi     # 0x134f07
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
leal -0x1(%r12), %edi
movl %edi, -0x34(%rbp)
movzbl 0x73f67(%rip), %edx     # 0x16a66c
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
leaq 0x3e7ed(%rip), %rsi     # 0x134f07
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x73f42(%rip), %edx     # 0x16a670
movl %r12d, %edi
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
leaq 0x3e7c1(%rip), %rsi     # 0x134f07
movq %rsi, %r15
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x73f17(%rip), %edx     # 0x16a674
movl -0x38(%rbp), %edi
movl -0x2c(%rbp), %r12d
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movl %r12d, %r14d
movzbl 0x73eec(%rip), %edx     # 0x16a678
movl -0x34(%rbp), %edi
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe7d0
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
jmp 0xf607e
testl %edi, %edi
setne %al
testb %cl, %cl
setne %cl
movq %r12, -0x40(%rbp)
movl %r12d, -0x34(%rbp)
testb %cl, %al
je 0xf611a
xorl %eax, %eax
leaq 0x122089(%rip), %rcx    # 0x21885b
movb %al, (%rcx)
leaq 0x12207f(%rip), %rcx    # 0x21885a
movb %al, (%rcx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq