// File: /workspace/github_cpp_makefile_star2_O3/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, -0x2c(%rbp)
leaq 0x2451ea(%rip), %rax    # 0x33b3a4
movl (%rax), %esi
leaq 0x2451c9(%rip), %r14    # 0x33b38c
movl (%r14), %r9d
movl %r9d, %r11d
shrl $0x1f, %r11d
addl %r9d, %r11d
sarl %r11d
movl %esi, %eax
subl %r11d, %eax
leaq 0x122635(%rip), %rcx    # 0x218814
movl (%rcx), %edi
cltd
idivl %edi
movl %eax, %ecx
leal 0x1(%rcx), %r12d
addl %r11d, %esi
movl %esi, %eax
cltd
idivl %edi
movl %eax, %esi
leal -0x1(%rsi), %r10d
leaq 0x2451a1(%rip), %rax    # 0x33b3a0
movl (%rax), %r8d
movl %r8d, %eax
subl %r11d, %eax
leaq 0x122601(%rip), %rdx    # 0x218810
movl (%rdx), %ebx
cltd
idivl %ebx
movl %eax, %edi
addl %r11d, %r8d
movl %r8d, %eax
cltd
idivl %ebx
movl %eax, %r13d
leaq 0x12d31b(%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 0x146af2(%rip), %r8     # 0x23cd3e
leaq 0x245195(%rip), %rax    # 0x33b3e8
movb (%rax), %al
orb (%r8), %al
leal 0x2(%rdi), %r11d
setne %al
leaq 0x12259a(%rip), %r8     # 0x218800
cmpl %edx, (%r8)
jle 0xf627b
testb %al, %al
je 0xf629a
addl $-0x4, %r13d
addl $0x3, %edi
movl %edi, %r11d
jmp 0xf62a6
addl $-0x2, %r13d
testb %al, %al
je 0xf62a0
leaq 0x12257a(%rip), %rax    # 0x218804
cmpl $0x258, (%rax)          # imm = 0x258
cmovll %esi, %r10d
cmovll %r12d, %ecx
jmp 0xf62a3
addl $-0x3, %r13d
jmp 0xf62a6
movl %esi, %r10d
movl %ecx, %r12d
xorl %ebx, %ebx
testl %r13d, %r13d
cmovlel %ebx, %r13d
testl %r11d, %r11d
cmovlel %ebx, %r11d
testl %r12d, %r12d
cmovlel %ebx, %r12d
testl %r10d, %r10d
cmovgl %r10d, %ebx
leaq 0x2164dd(%rip), %r15    # 0x30c7a8
movb (%r15), %al
leal -0x55(%rax), %ecx
cmpb $0x1, %cl
ja 0xf62e7
leaq 0x122527(%rip), %rax    # 0x218804
cmpl $0x258, (%rax)          # imm = 0x258
jg 0xf62eb
jmp 0xf6309
testb %al, %al
je 0xf6359
movq %r15, %r14
movq %rbx, %r15
movl %r11d, %ebx
callq 0x17eb5
movl %ebx, %r11d
movq %r15, %rbx
movq %r14, %r15
leaq 0x245083(%rip), %r14    # 0x33b38c
movb (%r15), %al
movl (%r14), %r9d
cmpl $0xa0, %r9d
setge %cl
testb %al, %al
setne %dl
orb %cl, %dl
cmpb $0x1, %dl
jne 0xf6ec1
leaq 0x12252b(%rip), %rdx    # 0x21885b
movb $0x1, %cl
movb %cl, (%rdx)
leaq 0x12251f(%rip), %rdx    # 0x21885a
movb %cl, (%rdx)
testb %al, %al
je 0xf635d
movzbl %al, %eax
cmpl $0x54, %eax
jg 0xf639d
cmpl $0x49, %eax
je 0xf63a7
cmpl $0x53, %eax
je 0xf63dc
jmp 0xf63be
xorl %eax, %eax
jmp 0xf630f
leaq 0x1224a0(%rip), %rax    # 0x218804
cmpl $0x340, (%rax)          # imm = 0x340
jl 0xf6378
leaq 0x1469cb(%rip), %rax    # 0x23cd3e
cmpb $0x0, (%rax)
je 0xf63be
leaq 0x122481(%rip), %rax    # 0x218800
cmpl $0x3e2, (%rax)          # imm = 0x3E2
jl 0xf63f3
leaq 0x245002(%rip), %rax    # 0x33b390
movl (%rax), %eax
leaq 0x1224e5(%rip), %rcx    # 0x21887c
cmpl (%rcx), %eax
jge 0xf63f3
jmp 0xf63be
cmpl $0x55, %eax
je 0xf63dc
cmpl $0x56, %eax
jne 0xf63be
movl %r11d, %r14d
leaq 0x125064(%rip), %rax    # 0x21b415
leal 0x3(%rbx), %esi
cmpb $0x0, (%rax)
je 0xf63d0
movl -0x2c(%rbp), %edi
jmp 0xf63d2
movl %r11d, %r14d
leaq 0x125048(%rip), %rax    # 0x21b410
leal 0x3(%rbx), %esi
cmpb $0x0, (%rax)
je 0xf63b9
xorl %edi, %edi
callq 0xf6ed0
movl %r14d, %r11d
jmp 0xf63f3
leal 0x3(%rbx), %esi
movl -0x2c(%rbp), %edi
movq %rbx, %r14
movl %r11d, %ebx
callq 0xf6ed0
movl %ebx, %r11d
movq %r14, %rbx
movl %r13d, -0x34(%rbp)
leaq 0xbde82(%rip), %rax     # 0x1b4280
movl (%rax), %r13d
leaq 0xbde7c(%rip), %rax     # 0x1b4284
movl (%rax), %eax
movl %eax, -0x3c(%rbp)
movzbl (%r15), %eax
movl %eax, %ecx
andb $-0x2, %cl
cmpb $0x58, %cl
movq %rbx, -0x48(%rbp)
jne 0xf643a
leaq 0x1223da(%rip), %rax    # 0x218800
movl (%rax), %ecx
cmpl $0x1c1, %ecx            # imm = 0x1C1
jg 0xf648a
addl $0x4, -0x34(%rbp)
addl $-0x4, %r11d
jmp 0xf6492
leal -0x42(%rax), %ecx
cmpl $0x14, %ecx
movq %r12, -0x50(%rbp)
ja 0xf67d4
movl $0x180080, %edx         # imm = 0x180080
btl %ecx, %edx
jae 0xf67c2
addl $0x3, -0x34(%rbp)
addl $-0x3, %r11d
leaq 0x124fae(%rip), %rax    # 0x21b415
movzbl (%rax), %eax
testl %eax, %eax
je 0xf67f0
cmpl $0x4, %eax
jne 0xf6ead
leaq 0x12237e(%rip), %rax    # 0x218800
movl (%rax), %ecx
movq -0x50(%rbp), %r12
jmp 0xf6492
addl $0x9, -0x34(%rbp)
addl $-0x9, %r11d
leaq 0x12d0ab(%rip), %rax    # 0x223544
imull $0x31a, (%rax), %eax    # imm = 0x31A
cltq
imulq $0x51eb851f, %rax, %rax # imm = 0x51EB851F
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rax
addl %edx, %eax
leal -0x18(%rax), %edx
cmpl %edx, %ecx
setge %dl
addl $0x18, %eax
cmpl %eax, %ecx
setle %al
andb %dl, %al
movzbl %al, %eax
addl %eax, %r12d
addl $-0x2, -0x34(%rbp)
addl $-0x2, %r11d
leaq 0x148a1c(%rip), %r14    # 0x23eef8
movq (%r14), %rcx
leaq 0x245d3a(%rip), %rbx    # 0x33c220
leaq 0x3eaf8(%rip), %rsi     # 0x134fe5
movq %rbx, %rdi
movl %r13d, %edx
xorl %eax, %eax
movl %r11d, %r15d
callq 0x9060
movl %r12d, %edi
movl %r15d, %esi
movl $0x8, %edx
movq %rbx, %rcx
callq 0xe787
movq (%r14), %rcx
leaq 0x3ead2(%rip), %rsi     # 0x134fec
movq %rbx, %rdi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
movl -0x3c(%rbp), %r14d
addl %r14d, %r13d
leal 0x1(%r12), %edi
movl %edi, -0x38(%rbp)
movzbl 0x74117(%rip), %edx     # 0x16a654
movl %r15d, %esi
movl %r15d, -0x2c(%rbp)
movq %rbx, %rcx
callq 0xe787
leaq 0x1489a5(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3ea8c(%rip), %rsi     # 0x134fec
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
leal 0x2(%r12), %edi
movl %edi, -0x30(%rbp)
movzbl 0x740dc(%rip), %edx     # 0x16a658
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x14896a(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3ea51(%rip), %r15     # 0x134fec
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x740aa(%rip), %edx     # 0x16a65c
movq %r12, -0x50(%rbp)
movl %r12d, %edi
movl -0x34(%rbp), %r12d
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x148929(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x74074(%rip), %edx     # 0x16a660
movl -0x38(%rbp), %edi
movl %r12d, %esi
movl %r12d, -0x34(%rbp)
movq %rbx, %rcx
callq 0xe787
leaq 0x1488f3(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x74042(%rip), %edx     # 0x16a664
movl -0x30(%rbp), %edi
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x1488c1(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movq -0x48(%rbp), %r12
leal -0x2(%r12), %edi
movl %edi, -0x38(%rbp)
movzbl 0x74008(%rip), %edx     # 0x16a668
movl -0x2c(%rbp), %r15d
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x148882(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3e969(%rip), %rsi     # 0x134fec
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
leal -0x1(%r12), %edi
movl %edi, -0x30(%rbp)
movzbl 0x73fcd(%rip), %edx     # 0x16a66c
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x148847(%rip), %rax    # 0x23eef8
movq (%rax), %rcx
movq %rbx, %rdi
leaq 0x3e92e(%rip), %rsi     # 0x134fec
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x73f9e(%rip), %edx     # 0x16a670
movl %r12d, %edi
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x148811(%rip), %r15    # 0x23eef8
movq (%r15), %rcx
movq %rbx, %rdi
leaq 0x3e8f8(%rip), %rsi     # 0x134fec
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x73f6c(%rip), %edx     # 0x16a674
movl -0x38(%rbp), %edi
movl -0x34(%rbp), %r12d
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe787
movq (%r15), %rcx
movq %rbx, %rdi
leaq 0x3e8c5(%rip), %rsi     # 0x134fec
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movl %r12d, %r14d
movzbl 0x73f3a(%rip), %edx     # 0x16a678
movl -0x30(%rbp), %edi
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe787
movq (%r15), %rcx
movq %rbx, %rdi
leaq 0x3e893(%rip), %rsi     # 0x134fec
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
movzbl 0x73f12(%rip), %edx     # 0x16a67c
leaq 0x245aaf(%rip), %rcx    # 0x33c220
movq -0x48(%rbp), %rbx
movl %ebx, %edi
movl %r14d, %esi
callq 0xe787
xorl %eax, %eax
leaq 0x1220d3(%rip), %rcx    # 0x21885b
movb %al, (%rcx)
leaq 0x1220c9(%rip), %rcx    # 0x21885a
movb %al, (%rcx)
leaq 0x21600e(%rip), %rax    # 0x30c7a8
movb (%rax), %al
andb $-0x2, %al
cmpb $0x58, %al
movq -0x50(%rbp), %rax
movl -0x2c(%rbp), %r11d
jne 0xf6ec1
addl $-0x9, %r14d
movl %r14d, -0x34(%rbp)
addl $0x9, %r11d
decl %eax
movq %rax, -0x50(%rbp)
jmp 0xf67f0
movl $0x801, %edx            # imm = 0x801
btl %ecx, %edx
jae 0xf67d4
addl $0x4, -0x34(%rbp)
addl $-0x4, %r11d
movl -0x2c(%rbp), %edx
cmpl $0x53, %eax
je 0xf6c17
leaq 0x124c29(%rip), %rcx    # 0x21b410
cmpb $0x0, (%rcx)
je 0xf6c17
movl $0x560, %r14d           # imm = 0x560
addq 0x59743(%rip), %r14     # 0x14ff40
decl %r11d
movl $0x1, %r13d
leaq 0x7a45b(%rip), %r8      # 0x170c68
leaq 0x148700(%rip), %rsi    # 0x23ef14
xorps %xmm1, %xmm1
movss 0x16865(%rip), %xmm2    # 0x10d084
movl %ebx, -0x38(%rbp)
movq -0x50(%rbp), %rax
movl %eax, -0x3c(%rbp)
xorl %r12d, %r12d
movl %r11d, -0x2c(%rbp)
cmpl $0x0, -0x1fc(%r14)
je 0xf6bed
cmpq $0x3e8, %r13            # imm = 0x3E8
jne 0xf6853
testb $0x1, (%r8)
jne 0xf6bed
jmp 0xf686a
cmpq $0x3e9, %r13            # imm = 0x3E9
jne 0xf686a
movb $0x1, %r15b
testb $0x2, (%r8)
je 0xf686d
jmp 0xf6ead
xorl %r15d, %r15d
movl (%r14), %eax
cmpq $0x3e7, %r13            # imm = 0x3E7
ja 0xf6888
testl %eax, %eax
jg 0xf6888
movl (%rsi), %ecx
andl $0x1, %ecx
jne 0xf6bed
movl %r13d, %ecx
andl $0x3fe, %ecx            # imm = 0x3FE
cmpl $0x3e8, %ecx            # imm = 0x3E8
je 0xf68a7
ucomiss -0x1f8(%r14), %xmm1
jae 0xf6bed
movss -0x10(%r14), %xmm3
movss -0xc(%r14), %xmm0
ucomiss %xmm1, %xmm3
jne 0xf68c5
jp 0xf68c5
ucomiss %xmm1, %xmm0
jne 0xf68c5
jnp 0xf6bed
cmpl $0x3e8, %ecx            # imm = 0x3E8
sete %cl
ucomiss %xmm0, %xmm1
setbe %dl
ucomiss %xmm3, %xmm1
ja 0xf6bed
ucomiss 0x28148(%rip), %xmm3    # 0x11ea2c
jae 0xf6bed
ucomiss %xmm2, %xmm0
ja 0xf6bed
orb %dl, %cl
je 0xf6bed
testl %eax, %eax
jle 0xf6918
leaq 0x244aa2(%rip), %rax    # 0x33b3a8
cmpl $0x4, (%rax)
jne 0xf6918
leaq 0x244a96(%rip), %rax    # 0x33b3a8
movl $0x8, (%rax)
movl -0x8(%r14), %eax
testb %al, %al
movl $0x20, %ecx
cmovel %ecx, %eax
leaq 0x121ed3(%rip), %rcx    # 0x218800
cmpl $0x320, (%rcx)          # imm = 0x320
movq %rbx, -0x48(%rbp)
jg 0xf6961
leaq 0x215e68(%rip), %rcx    # 0x30c7a8
cmpb $0x0, (%rcx)
jne 0xf6961
cmpq $0x3e8, %r13            # imm = 0x3E8
jne 0xf699a
leaq 0x2458cb(%rip), %rax    # 0x33c220
movb $0x0, 0x4(%rax)
movl $0x204e5553, (%rax)     # imm = 0x204E5553
jmp 0xf69b0
cmpq $0x3e8, %r13            # imm = 0x3E8
jne 0xf697d
leaq 0x2458af(%rip), %rax    # 0x33c220
movb $0x0, 0x4(%rax)
movl $0x204e5553, (%rax)     # imm = 0x204E5553
jmp 0xf6993
testb %r15b, %r15b
je 0xf69b7
leaq 0x245897(%rip), %rax    # 0x33c220
movb $0x0, 0x4(%rax)
movl $0x4e4f4f4d, (%rax)     # imm = 0x4E4F4F4D
xorl %ebx, %ebx
jmp 0xf6a2c
testb %r15b, %r15b
je 0xf69d7
leaq 0x24587a(%rip), %rax    # 0x33c220
movb $0x0, 0x4(%rax)
movl $0x4e4f4f4d, (%rax)     # imm = 0x4E4F4F4D
movl $0x1, %ebx
jmp 0xf6a2c
movss %xmm3, -0x30(%rbp)
movsbl %al, %ecx
xorl %ebx, %ebx
leaq 0x245858(%rip), %rdi    # 0x33c220
cmpq $0x64, %r13
jb 0xf69f2
leaq 0x3b43d(%rip), %rsi     # 0x131e12
jmp 0xf69f9
movss %xmm3, -0x30(%rbp)
leaq 0x24583d(%rip), %rdi    # 0x33c220
cmpq $0x64, %r13
jb 0xf6a05
leaq 0x3e618(%rip), %rsi     # 0x135008
jmp 0xf6a0c
leaq 0x3e607(%rip), %rsi     # 0x135000
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
jmp 0xf6a1b
leaq 0x3e602(%rip), %rsi     # 0x13500e
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
movl $0x1, %ebx
movl -0x2c(%rbp), %r11d
movss 0x1665d(%rip), %xmm2    # 0x10d084
movss -0x30(%rbp), %xmm3
cmpq $0x3e8, %r13            # imm = 0x3E8
movl %r12d, %eax
movl $0xe, %ecx
cmovel %ecx, %eax
xorl %ecx, %ecx
leaq 0x216da9(%rip), %rdx    # 0x30d7f0
xorps %xmm0, %xmm0
ucomisd (%rdx), %xmm0
setbe %cl
leal (%rcx,%rcx,2), %ecx
addl $0xb, %ecx
testb %r15b, %r15b
cmovel %eax, %ecx
movslq %ecx, %rax
leaq 0x73c19(%rip), %rcx     # 0x16a680
movl (%rcx,%rax,4), %r15d
leaq 0x215d26(%rip), %rax    # 0x30c798
movl (%rax), %eax
testl %eax, %eax
js 0xf6aa9
testl %eax, %eax
je 0xf6ad4
leaq 0x215d15(%rip), %rax    # 0x30c798
movl (%rax), %eax
testl %eax, %eax
js 0xf6b58
movl %eax, %eax
cmpq %rax, %r13
jne 0xf6ad4
leaq 0x216a2d(%rip), %rax    # 0x30d4c8
testb $0x1, (%rax)
movl $0x0, %eax
cmovnel %eax, %r15d
jmp 0xf6ad4
cmpl $-0x2, %eax
je 0xf6b8f
cmpl $-0x1, %eax
jne 0xf6ad4
movss %xmm3, -0x30(%rbp)
callq 0xae069
movss -0x30(%rbp), %xmm3
movss 0x165b6(%rip), %xmm2    # 0x10d084
movl -0x2c(%rbp), %r11d
jmp 0xf6a78
ucomiss %xmm3, %xmm2
movzbl %r15b, %edx
jbe 0xf6b01
addl -0x34(%rbp), %ebx
movl -0x3c(%rbp), %r15d
movl %r15d, %edi
movl %ebx, %esi
leaq 0x245730(%rip), %rcx    # 0x33c220
callq 0xe787
incl %r15d
movl %r15d, -0x3c(%rbp)
jmp 0xf6bb8
movss 0x27f2f(%rip), %xmm0    # 0x11ea38
ucomiss %xmm3, %xmm0
jbe 0xf6b32
addl -0x34(%rbp), %ebx
movl -0x38(%rbp), %r15d
movl %r15d, %edi
movl %ebx, %esi
leaq 0x2456ff(%rip), %rcx    # 0x33c220
callq 0xe787
decl %r15d
movl %r15d, -0x38(%rbp)
jmp 0xf6bb8
movss 0x35cae(%rip), %xmm0    # 0x12c7e8
ucomiss %xmm3, %xmm0
jbe 0xf6b9d
movq -0x48(%rbp), %rbx
movl %ebx, %edi
movl %r11d, %esi
leaq 0x2456d1(%rip), %rcx    # 0x33c220
callq 0xe787
decl %ebx
jmp 0xf6bbc
cmpl $-0x2, %eax
je 0xf6c09
cmpl $-0x1, %eax
movl $0x0, %eax
jne 0xf6a8d
movss %xmm3, -0x30(%rbp)
callq 0xae069
movss -0x30(%rbp), %xmm3
movss 0x164fe(%rip), %xmm2    # 0x10d084
movl -0x2c(%rbp), %r11d
jmp 0xf6a8d
leaq 0x215bfe(%rip), %rax    # 0x30c794
movl (%rax), %eax
jmp 0xf6a78
movq -0x50(%rbp), %rbx
movl %ebx, %edi
movl %r11d, %esi
leaq 0x245673(%rip), %rcx    # 0x33c220
callq 0xe787
incl %ebx
movq %rbx, -0x50(%rbp)
movq -0x48(%rbp), %rbx
cmpl $0xe, %r12d
leal 0x1(%r12), %eax
movl $0x0, %ecx
cmovgel %ecx, %eax
movl %eax, %r12d
movl -0x2c(%rbp), %r11d
leaq 0x148339(%rip), %rsi    # 0x23ef14
xorps %xmm1, %xmm1
movss 0x1649e(%rip), %xmm2    # 0x10d084
leaq 0x7a07b(%rip), %r8      # 0x170c68
incq %r13
addq $0x348, %r14            # imm = 0x348
cmpq $0x3ea, %r13            # imm = 0x3EA
jne 0xf6830
jmp 0xf6ead
leaq 0x215b84(%rip), %rax    # 0x30c794
movl (%rax), %eax
jmp 0xf6a8d
testl %edx, %edx
setne %cl
cmpl $0x53, %eax
movl %edx, %edi
sete %dl
orb %cl, %dl
leaq 0x1247e8(%rip), %rcx    # 0x21b415
movb (%rcx), %cl
cmpb $0x4, %cl
setae %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0xf6e9b
leaq 0x121bb6(%rip), %rcx    # 0x218800
movl (%rcx), %ecx
testl %eax, %eax
jne 0xf6492
cmpl $0x3e2, %ecx            # imm = 0x3E2
jl 0xf6c74
leaq 0x24472d(%rip), %rax    # 0x33b390
movl (%rax), %eax
leaq 0x121c10(%rip), %rcx    # 0x21887c
cmpl (%rcx), %eax
jl 0xf64cd
leaq 0x2455a5(%rip), %rbx    # 0x33c220
leaq 0x3e371(%rip), %rsi     # 0x134ff3
movq %rbx, %rdi
movl %r13d, %edx
xorl %eax, %eax
movl -0x3c(%rbp), %r14d
movl %r11d, %r15d
callq 0x9060
movl %r12d, %edi
movl %r15d, %esi
movl $0x8, %edx
movq %rbx, %rcx
callq 0xe787
leaq 0x3e347(%rip), %rsi     # 0x134ff7
movq %rbx, %rdi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
leal 0x1(%r12), %edi
movl %edi, -0x38(%rbp)
movzbl 0x73985(%rip), %edx     # 0x16a654
movl %r15d, %esi
movl %r15d, -0x2c(%rbp)
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
leaq 0x3e30f(%rip), %rsi     # 0x134ff7
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
leal 0x2(%r12), %edi
movl %edi, -0x30(%rbp)
movzbl 0x73954(%rip), %edx     # 0x16a658
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
leaq 0x3e2de(%rip), %r15     # 0x134ff7
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x7392c(%rip), %edx     # 0x16a65c
movl %r12d, %edi
movl -0x34(%rbp), %r12d
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x73904(%rip), %edx     # 0x16a660
movl -0x38(%rbp), %edi
movl %r12d, %esi
movl %r12d, -0x34(%rbp)
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x738dc(%rip), %edx     # 0x16a664
movl -0x30(%rbp), %edi
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movq -0x48(%rbp), %r12
leal -0x2(%r12), %edi
movl %edi, -0x38(%rbp)
movzbl 0x738ac(%rip), %edx     # 0x16a668
movl -0x2c(%rbp), %r15d
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
leaq 0x3e222(%rip), %rsi     # 0x134ff7
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
leal -0x1(%r12), %edi
movl %edi, -0x30(%rbp)
movzbl 0x7387b(%rip), %edx     # 0x16a66c
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
leaq 0x3e1f1(%rip), %rsi     # 0x134ff7
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x73856(%rip), %edx     # 0x16a670
movl %r12d, %edi
movl %r15d, %esi
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
leaq 0x3e1c5(%rip), %r15     # 0x134ff7
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movzbl 0x7382b(%rip), %edx     # 0x16a674
movl -0x38(%rbp), %edi
movl -0x34(%rbp), %r12d
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
addl %r14d, %r13d
movl %r12d, %r14d
movzbl 0x73800(%rip), %edx     # 0x16a678
movl -0x30(%rbp), %edi
movl %r12d, %esi
movq %rbx, %rcx
callq 0xe787
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
xorl %eax, %eax
callq 0x9060
jmp 0xf6763
testl %edi, %edi
setne %al
testb %cl, %cl
setne %cl
testb %cl, %al
je 0xf67f0
xorl %eax, %eax
leaq 0x1219a5(%rip), %rcx    # 0x21885b
movb %al, (%rcx)
leaq 0x12199b(%rip), %rcx    # 0x21885a
movb %al, (%rcx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq