// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathgps.cpp
// Function: format_lla(double, double, double, int, int, int)
void format_lla(double lat,double lon,double alt,  int row,int col, int disp_tide)
{
u08 color;
char s[4];
double x;
int deg, min;
double sec;
char c1;
char *lat_s, *lon_s, *alt_s;

// test data for UPS projection
//lat = DMS_TO_DEC(84.0, 17.0, 14.024);
//lon = 0.0-DMS_TO_DEC(132.0, 14.0, 52.761);

//lat = DMS_TO_DEC(73.0, 0.0, 0.0);
//lon = DMS_TO_DEC(44.0, 0.0, 0.0);

//lat = -DMS_TO_DEC(87.0, 17.0, 14.400);
//lon = DMS_TO_DEC(132.0, 14.0, 52.303);
// lon *= (-1.0);

   if(luxor) return;
   if(text_mode && first_key) return;
   if(zoom_screen == 'I') ;
   else if(zoom_screen == 'L') ;
   else if(zoom_screen) return;
   else if(0 && disp_tide && show_tides) {
      goto show_tide_info;
   }

   if((SCREEN_WIDTH <= NARROW_SCREEN) && (col > (TEXT_COLS/2))) {
      if(user_set_ref_lla) {
         lat_s = "LAT:";
         lon_s = "LON:";
         alt_s = "ALT:";
      }
      else {
         lat_s = "Lat:";
         lon_s = "Lon:";
         alt_s = "Alt:";
      }
   }
   else {
      if(user_set_ref_lla) {
         lat_s = "LAT: ";
         lon_s = "LON: ";
         alt_s = "ALT: ";
      }
      else {
         lat_s = "Lat: ";
         lon_s = "Lon: ";
         alt_s = "Alt: ";
      }
   }

   color = WHITE;
   if(minor_alarms & MINOR_BAD_POSN) color = YELLOW;
   else if(minor_alarms & MINOR_SURVEY) {  // self-survey in progress
      color = YELLOW;
   }

   if(lat < 0.0) s[0] = s[2] = 'S';
   else          s[0] = s[2] = 'N';

   if(dms == DMS_FMT) s[1] = 0;
   else if((dms == UTM_FMT) || (dms == NATO_FMT)) {
      lla_to_utm(lat, lon);
   }
   else if(dms == GRAD_FMT) {
      s[0] = 'g';
      s[1] = ' ';
      s[3] = 0;
   }
   else if(dms == MIL_FMT) {
      s[0] = 'i';
      s[1] = ' ';
      s[3] = 0;
   }
   else if(dms == RADIAN_FMT) {
      s[0] = 'r';
      s[1] = ' ';
      s[3] = 0;
   }
   else {
      s[0] = DEGREES;
      s[1] = ' ';
      s[3] = 0;
   }

   if(dms == ECEF_FMT) {
      lla_to_ecef(lat, lon, alt);
      lat_s = "X:";
      lon_s = "Y:";
      alt_s = "Z:";
   }


   if(dms == RADIAN_FMT) x = DABS(lat);
   else if(dms == GRAD_FMT) x = DABS(lat*200.0 / PI);
   else if(dms == MIL_FMT) x = DABS(lat*3200.0 / PI);
   else if(dms == ECEF_FMT) x = ecef_x;
   else x = DABS(lat*RAD_TO_DEG);

   if(plot_loc == 0) sprintf(out, "%s (private)    ", lat_s); // (double) (int) x;
   else if(dms == GRIDSQ_FMT) {
      sprintf(out, "MLS: %s", maidenhead_square(lat, lon));
   }
   else if(dms == UTM_FMT) {
      sprintf(out, "%s:%13.4lf E", utm_zone_string, UTMEasting);
   }
   else if(dms == NATO_FMT) {
      sprintf(out, "%s %s      %05d E", utm_zone_string, mgrs_square, (int) UTMEasting);
   }
   else if(dms == DMS_FMT) {
      deg = (int) x;
      min = (int) (60.0 * ((double) x - (double) deg));
      sec = ((x - (double) deg) - ((double) min / 60.0)) * 3600.0;
      sprintf(out, "%s%2d%c%02d'%06.3f\"%s", lat_s, deg, DEGREES, min, sec, s);
   }
   else if(dms == ECEF_FMT) {
      if(x >= 0.0) sprintf(out, "%s %15.6lf  ", lat_s, x);
      else         sprintf(out, "%s%16.6lf  ", lat_s, x);
   }
   else if(dms == MIL_FMT) {
      sprintf(out, "%s%11.6lf%s", lat_s, x, s);
   }
   else sprintf(out, "%s%11.7lf%s", lat_s, x, s);
   vidstr(row+0, col, color, out);

   if(dms == DMS_FMT) {
      if(lon < 0.0) s[0] = 'W';
      else          s[0] = 'E';
   }
   else {
      if(lon < 0.0) s[2] = 'W';
      else          s[2] = 'E';
   }

   if(dms == RADIAN_FMT) x = DABS(lon);
   else if(dms == GRAD_FMT) x = DABS(lon*200.0 / PI);
   else if(dms == MIL_FMT) x = DABS(lon*3200.0 / PI);
   else if(dms == ECEF_FMT) x = ecef_y;
   else x = DABS(lon*RAD_TO_DEG);

   if(plot_loc == 0) sprintf(out, "%s (private)    ", lon_s); // (double) (int) x;
   else if(dms == GRIDSQ_FMT) {
      out[0] = 0;
   }
   else if(dms == UTM_FMT) {
      if((lat >= (84.0*PI/180)) || (lat <= (-80.0*PI/180.0))) {
         sprintf(out, "%s %13.4lf N", "UPS", UTMNorthing);
      }
      else {
         sprintf(out, "%s %13.4lf N", "UTM", UTMNorthing);
      }
   }
   else if(dms == NATO_FMT) {
      sprintf(out, "%s        %05d N", "MGRS", (int) UTMNorthing);
   }
   else if(dms == DMS_FMT) {
      deg = (int) x;
      min = (int) (60.0 * ((double) x - (double) deg));
      sec = ((x - (double) deg) - ((double) min / 60.0)) * 3600.0;
      if(deg >= 100) {
         lon_s = "Lon:";
         sprintf(out, "%s%3d%c%02d'%06.3f\"%s", lon_s, deg, DEGREES, min, sec, s);
      }
      else {
         sprintf(out, "%s%2d%c%02d'%06.3f\"%s", lon_s, deg, DEGREES, min, sec, s);
      }
   }
   else if(dms == ECEF_FMT) {
      if(x >= 0.0) sprintf(out, "%s %15.6lf  ", lon_s, x);
      else         sprintf(out, "%s%16.6lf  ", lon_s, x);
   }
   else if(dms == MIL_FMT) {
      sprintf(out, "%s%11.6lf%s", lon_s, x, s);
   }
   else sprintf(out, "%s%11.7lf%s", lon_s, x, s);
   vidstr(row+1, col, color, out);

   x = alt;
   if(alt_scale[0] == 'f') x *= (100.0/2.54/12.0); // convert meters to feet
   else if(alt_scale[0] == 'l') x *= LG_PER_METER; // convert meters to linguini

   if(0 && (plot_loc == 0)) sprintf(out, "%s (private)      ", alt_s);  // (double) (int) x;
   else if(dms == UTM_FMT) {
      if(x >= 1000.0) {
         if(alt_scale[0] == 'f')      sprintf(out, "%s%12.4lf'   ", alt_s, x);
         else if(alt_scale[0] == 'l') sprintf(out, "%s%11.4lf lg ", alt_s, x);
         else                         sprintf(out, "%s%12.4lf m ",  alt_s, x);
      }
      else {
         if(alt_scale[0] == 'f')      sprintf(out, "%s%12.4lf'   ", alt_s, x);
         else if(alt_scale[0] == 'l') sprintf(out, "%s%11.4lf lg ", alt_s, x);
         else                         sprintf(out, "%s%12.4lf m ",  alt_s, x);
      }
   }
   else if(dms == ECEF_FMT) {
      if(x >= 0.0) sprintf(out, "%s %15.6lf  ", alt_s, ecef_z);
      else         sprintf(out, "%s%16.6lf  ", alt_s, ecef_z);
   }
   else {
      if(x >= 1000.0) {
         if(alt_scale[0] == 'f')      sprintf(out, "%s%11.4lf'   ", alt_s, x);
         else if(alt_scale[0] == 'l') sprintf(out, "%s%11.4lf lg ", alt_s, x);
         else                         sprintf(out, "%s%12.5lf m ",  alt_s, x);
      }
      else {
         if(alt_scale[0] == 'f')      sprintf(out, "%s%11.7lf'   ", alt_s, x);
         else if(alt_scale[0] == 'l') sprintf(out, "%s%11.4lf lg ", alt_s, x);
         else                         sprintf(out, "%s%12.8lf m ",  alt_s, x);
      }
   }
   if(dms == GRIDSQ_FMT) --row;

   vidstr(row+2, col, color, out);
   vidstr(row+3, col, color, "                   ");

   if(disp_tide && show_tides) { // 
      if(zoom_screen == 'I') row += 3;
      goto show_tide_info;
   }

   if(((lat == 0.0) && (lon == 0.0)) || (ugals == 0.0)) ;  // no tide/gravity data available
   else if(zoom_screen == 'I') {
      row += 3;

      show_tide_info:
      color = WHITE;
      if(zoom_screen == 'I') ++row;
      if(lat_tide > last_lat_tide) c1 = UP_ARROW;
      else if(lat_tide < last_lat_tide) c1 = DOWN_ARROW;
      else c1 = '=';
      sprintf(out, "Lat tide:%7.2lfmm%c", lat_tide, c1);
      vidstr(row++, col, color, out);

      if(lon_tide > last_lon_tide) c1 = RIGHT_ARROW;
      else if(lon_tide < last_lon_tide) c1 = LEFT_ARROW;
      else c1 = '=';
      sprintf(out, "Lon tide:%7.2lfmm%c", lon_tide, c1);
      vidstr(row++, col, color, out);

      if(alt_tide > last_alt_tide) c1 = UP_ARROW;
      else if(alt_tide < last_alt_tide) c1 = DOWN_ARROW;
      else c1 = '=';
      sprintf(out, "Alt tide:%7.2lfmm%c", alt_tide, c1);
      vidstr(row++, col, color, out);

      if(zoom_screen == 'I') ++row;
      if(ugals > last_ugals) c1 = UP_ARROW;
      else if(ugals < last_ugals) c1 = DOWN_ARROW;
      else c1 = '=';
      sprintf(out, "Gravity:%8.2lfuG%c", ugals,c1);
      vidstr(row++, col, color, out);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
leaq 0x18ca6d(%rip), %rax    # 0x23ef3e
cmpb $0x0, (%rax)
jne 0xb2ff4
movl %edx, %r15d
movl %edi, %r14d
movapd %xmm0, %xmm4
leaq 0x1662ed(%rip), %rax    # 0x2187d8
cmpl $0x0, (%rax)
je 0xb2500
leaq 0x18ca61(%rip), %rax    # 0x23ef58
cmpl $0x0, (%rax)
jne 0xb2ff4
leaq 0x25a2a1(%rip), %rax    # 0x30c7a8
movzbl (%rax), %eax
testl %eax, %eax
je 0xb251c
cmpl $0x4c, %eax
je 0xb251c
cmpl $0x49, %eax
jne 0xb2ff4
leaq 0x1662dd(%rip), %rax    # 0x218800
leaq 0x17101a(%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
cmpl %ecx, (%rax)
movl %esi, -0x3c(%rbp)
jg 0xb25a2
leaq 0x1662b3(%rip), %rax    # 0x218808
movl (%rax), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
cmpl %esi, %ecx
jge 0xb25a2
leaq 0x288dd5(%rip), %rax    # 0x33b340
cmpl $0x0, (%rax)
leaq 0x74c91(%rip), %rax     # 0x127206
leaq 0x71b4c(%rip), %rdx     # 0x1240c8
cmoveq %rax, %rdx
leaq 0x74c84(%rip), %rax     # 0x12720b
leaq 0x71b49(%rip), %r12     # 0x1240d7
cmoveq %rax, %r12
leaq 0x74c77(%rip), %rax     # 0x127210
leaq 0x74c61(%rip), %rsi     # 0x127201
jmp 0xb25de
leaq 0x288d97(%rip), %rax    # 0x33b340
cmpl $0x0, (%rax)
leaq 0x74c74(%rip), %rax     # 0x127227
leaq 0x74c5b(%rip), %rdx     # 0x127215
cmoveq %rax, %rdx
leaq 0x74c68(%rip), %rax     # 0x12722d
leaq 0x74c4f(%rip), %r12     # 0x12721b
cmoveq %rax, %r12
leaq 0x74c5c(%rip), %rax     # 0x127233
leaq 0x74c43(%rip), %rsi     # 0x127221
cmoveq %rax, %rsi
leaq 0x25abef(%rip), %rax    # 0x30d1d8
testl $0x220, (%rax)          # imm = 0x220
sete %bl
xorpd %xmm0, %xmm0
xorl %eax, %eax
ucomisd %xmm4, %xmm0
seta %al
leal (%rax,%rax,4), %eax
addl $0x4e, %eax
movb %al, -0x2a(%rbp)
movb %al, -0x2c(%rbp)
leaq 0x25a99e(%rip), %rax    # 0x30cfb0
movzbl (%rax), %eax
cmpl $0x1, %eax
movapd %xmm1, -0x50(%rbp)
movapd %xmm4, -0x60(%rbp)
movsd %xmm2, -0x68(%rbp)
jne 0xb262f
movb $0x0, -0x2b(%rbp)
jmp 0xb26a3
leal -0x3(%rax), %ecx
cmpb $0x1, %cl
ja 0xb2672
movapd %xmm4, %xmm0
movq %r14, -0x38(%rbp)
movl %ebx, %r14d
movl %r15d, %ebx
movq %r12, %r15
movq %rsi, %r12
movq %rdx, %r13
callq 0xb38c1
movq %r13, %rdx
movq %r12, %rsi
movq %r15, %r12
movl %ebx, %r15d
movl %r14d, %ebx
movq -0x38(%rbp), %r14
movapd -0x60(%rbp), %xmm4
movapd -0x50(%rbp), %xmm1
jmp 0xb26a3
cmpl $0x7, %eax
je 0xb2691
cmpl $0x6, %eax
je 0xb2689
cmpl $0x5, %eax
jne 0xb2699
movw $0x2067, -0x2c(%rbp)    # imm = 0x2067
jmp 0xb269f
movw $0x2072, -0x2c(%rbp)    # imm = 0x2072
jmp 0xb269f
movw $0x2069, -0x2c(%rbp)    # imm = 0x2069
jmp 0xb269f
movw $0x2001, -0x2c(%rbp)    # imm = 0x2001
movb $0x0, -0x29(%rbp)
leaq 0x25a906(%rip), %rax    # 0x30cfb0
cmpb $0x8, (%rax)
jne 0xb27b2
movapd %xmm4, %xmm0
callq 0x9710
movsd %xmm0, -0x80(%rbp)
movaps -0x60(%rbp), %xmm0
callq 0x9080
movsd %xmm0, -0x38(%rbp)
movaps -0x50(%rbp), %xmm0
callq 0x9710
movsd %xmm0, -0x78(%rbp)
movapd -0x50(%rbp), %xmm0
callq 0x9080
movsd 0x6b9b1(%rip), %xmm1    # 0x11e0a0
movsd -0x38(%rbp), %xmm2
mulsd %xmm2, %xmm1
mulsd %xmm2, %xmm1
addsd 0x5696c(%rip), %xmm1    # 0x109070
movapd %xmm0, %xmm4
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jb 0xb271b
xorps %xmm0, %xmm0
sqrtsd %xmm1, %xmm0
jmp 0xb272e
movapd %xmm1, %xmm0
movsd %xmm4, -0x70(%rbp)
callq 0x9270
movsd -0x70(%rbp), %xmm4
movsd 0x6b972(%rip), %xmm1    # 0x11e0a8
divsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movsd -0x68(%rbp), %xmm2
addsd %xmm2, %xmm0
movsd -0x80(%rbp), %xmm3
mulsd %xmm0, %xmm3
movsd -0x78(%rbp), %xmm0
mulsd %xmm3, %xmm0
leaq 0x25a888(%rip), %rax    # 0x30cfe8
movsd %xmm0, (%rax)
mulsd %xmm3, %xmm4
leaq 0x25a881(%rip), %rax    # 0x30cff0
mulsd 0x6b939(%rip), %xmm1    # 0x11e0b0
movsd %xmm4, (%rax)
addsd %xmm2, %xmm1
movsd -0x38(%rbp), %xmm0
mulsd %xmm1, %xmm0
leaq 0x25a869(%rip), %rax    # 0x30cff8
movsd %xmm0, (%rax)
leaq 0x74aa2(%rip), %rsi     # 0x12723c
leaq 0x71893(%rip), %r12     # 0x124034
leaq 0x74a91(%rip), %rdx     # 0x127239
movapd -0x50(%rbp), %xmm1
movapd -0x60(%rbp), %xmm4
leaq 0x25a7f7(%rip), %rax    # 0x30cfb0
movzbl (%rax), %eax
leal -0x5(%rax), %ecx
cmpl $0x3, %ecx
ja 0xb281c
leaq 0x6d495(%rip), %rdi     # 0x11fc60
movslq (%rdi,%rcx,4), %rcx
addq %rdi, %rcx
jmpq *%rcx
movsd 0x59324(%rip), %xmm3    # 0x10bb00
jmp 0xb27e6
movsd 0x6bfb2(%rip), %xmm3    # 0x11e798
mulsd %xmm4, %xmm3
divsd 0x59026(%rip), %xmm3    # 0x10b818
jmp 0xb2828
leaq 0x25a7ed(%rip), %rcx    # 0x30cfe8
movsd (%rcx), %xmm0
jmp 0xb2845
xorpd %xmm2, %xmm2
movapd %xmm4, %xmm0
cmpltsd %xmm2, %xmm0
subsd %xmm4, %xmm2
andpd %xmm0, %xmm2
andnpd %xmm4, %xmm0
jmp 0xb2841
movsd 0x56934(%rip), %xmm3    # 0x109158
mulsd %xmm4, %xmm3
xorpd %xmm2, %xmm2
movapd %xmm3, %xmm0
cmpltsd %xmm2, %xmm0
subsd %xmm3, %xmm2
andpd %xmm0, %xmm2
andnpd %xmm3, %xmm0
orpd %xmm2, %xmm0
orb $0xe, %bl
leaq 0x168b93(%rip), %rcx    # 0x21b3e2
cmpb $0x0, (%rcx)
movq %rsi, -0x38(%rbp)
je 0xb28dc
decl %eax
cmpl $0x7, %eax
ja 0xb2939
leaq 0x6d402(%rip), %rcx     # 0x11fc70
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cvttsd2si %xmm0, %ecx
cvttpd2dq %xmm0, %xmm1
cvtdq2pd %xmm1, %xmm1
subsd %xmm1, %xmm0
movsd 0x56779(%rip), %xmm1    # 0x109008
movapd %xmm0, %xmm2
mulsd %xmm1, %xmm2
cvttsd2si %xmm2, %r9d
cvttpd2dq %xmm2, %xmm2
cvtdq2pd %xmm2, %xmm2
divsd %xmm1, %xmm2
subsd %xmm2, %xmm0
mulsd 0x5675c(%rip), %xmm0    # 0x109010
leaq -0x2c(%rbp), %rax
movq %rax, (%rsp)
leaq 0x28995d(%rip), %rdi    # 0x33c220
leaq 0x749ad(%rip), %rsi     # 0x127277
movl $0x1, %r8d
movb $0x1, %al
callq 0x9060
jmp 0xb29c0
leaq 0x28993d(%rip), %rdi    # 0x33c220
leaq 0x74955(%rip), %rsi     # 0x12723f
xorl %eax, %eax
callq 0x9060
jmp 0xb29c0
movsd 0x2c3c3a(%rip), %xmm0   # 0x376538
leaq 0x28991b(%rip), %rdi    # 0x33c220
leaq 0x7494c(%rip), %rsi     # 0x127258
leaq 0x2c3c3d(%rip), %rdx    # 0x376550
jmp 0xb29b9
xorpd %xmm1, %xmm1
leaq 0x2898fd(%rip), %rdi    # 0x33c220
ucomisd %xmm1, %xmm0
jae 0xb29b2
leaq 0x74966(%rip), %rsi     # 0x12729a
jmp 0xb29b9
leaq 0x2898e0(%rip), %rdi    # 0x33c220
leaq 0x7496b(%rip), %rsi     # 0x1272b2
jmp 0xb29a5
movapd %xmm4, %xmm0
callq 0xb3003
leaq 0x2898c7(%rip), %rdi    # 0x33c220
leaq 0x748f0(%rip), %rsi     # 0x127250
leaq 0x2c3bb9(%rip), %rdx    # 0x376520
jmp 0xb28ea
cvttsd2si 0x2c3bc6(%rip), %r8d # 0x376538
leaq 0x2898a7(%rip), %rdi    # 0x33c220
leaq 0x748e5(%rip), %rsi     # 0x127265
leaq 0x2c3bc9(%rip), %rdx    # 0x376550
leaq 0x2c3be2(%rip), %rcx    # 0x376570
xorl %eax, %eax
callq 0x9060
jmp 0xb29c0
leaq 0x289882(%rip), %rdi    # 0x33c220
leaq 0x74901(%rip), %rsi     # 0x1272a6
leaq -0x2c(%rbp), %rcx
movb $0x1, %al
callq 0x9060
jmp 0xb29c0
leaq 0x748d4(%rip), %rsi     # 0x12728d
movb $0x1, %al
callq 0x9060
movzbl %bl, %r13d
leaq 0x289855(%rip), %rcx    # 0x33c220
movl %r14d, %edi
movl -0x3c(%rbp), %esi
movl %r13d, %edx
callq 0xe7d0
leaq 0x25a5d0(%rip), %rax    # 0x30cfb0
movzbl (%rax), %eax
xorpd %xmm0, %xmm0
cmpl $0x1, %eax
jne 0xb2a02
movapd -0x50(%rbp), %xmm2
ucomisd %xmm2, %xmm0
movapd -0x60(%rbp), %xmm3
jbe 0xb2a18
movb $0x57, -0x2c(%rbp)
jmp 0xb2a22
movapd -0x50(%rbp), %xmm2
ucomisd %xmm2, %xmm0
movapd -0x60(%rbp), %xmm3
jbe 0xb2a1e
movb $0x57, -0x2a(%rbp)
jmp 0xb2a22
movb $0x45, -0x2c(%rbp)
jmp 0xb2a22
movb $0x45, -0x2a(%rbp)
leal -0x5(%rax), %ecx
cmpl $0x3, %ecx
ja 0xb2a86
leaq 0x6d25f(%rip), %rdx     # 0x11fc90
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movsd 0x590be(%rip), %xmm1    # 0x10bb00
jmp 0xb2a4c
movsd 0x6bd4c(%rip), %xmm1    # 0x11e798
mulsd %xmm2, %xmm1
divsd 0x58dc0(%rip), %xmm1    # 0x10b818
jmp 0xb2a92
leaq 0x25a58f(%rip), %rcx    # 0x30cff0
movsd (%rcx), %xmm0
jmp 0xb2aaf
xorpd %xmm1, %xmm1
movapd %xmm2, %xmm0
cmpltsd %xmm1, %xmm0
subsd %xmm2, %xmm1
andpd %xmm0, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
jmp 0xb2aaf
movsd 0x566ca(%rip), %xmm1    # 0x109158
mulsd %xmm2, %xmm1
xorpd %xmm2, %xmm2
movapd %xmm1, %xmm0
cmpltsd %xmm2, %xmm0
subsd %xmm1, %xmm2
andpd %xmm0, %xmm2
andnpd %xmm1, %xmm0
orpd %xmm2, %xmm0
leaq 0x16892c(%rip), %rcx    # 0x21b3e2
cmpb $0x0, (%rcx)
je 0xb2b42
decl %eax
cmpl $0x7, %eax
ja 0xb2bc2
leaq 0x6d1cf(%rip), %rcx     # 0x11fca0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cvttsd2si %xmm0, %ecx
cvttpd2dq %xmm0, %xmm1
cvtdq2pd %xmm1, %xmm1
subsd %xmm1, %xmm0
movsd 0x56516(%rip), %xmm1    # 0x109008
movapd %xmm0, %xmm2
mulsd %xmm1, %xmm2
cvttsd2si %xmm2, %r9d
cvttpd2dq %xmm2, %xmm2
cvtdq2pd %xmm2, %xmm2
divsd %xmm1, %xmm2
subsd %xmm2, %xmm0
mulsd 0x564f9(%rip), %xmm0    # 0x109010
leaq -0x2c(%rbp), %rax
cmpl $0x64, %ecx
jl 0xb2c4f
movq %rax, (%rsp)
leaq 0x2896f1(%rip), %rdi    # 0x33c220
leaq 0x747b3(%rip), %rsi     # 0x1272e9
leaq 0x746ce(%rip), %rdx     # 0x12720b
jmp 0xb2c64
leaq 0x2896d7(%rip), %rdi    # 0x33c220
leaq 0x746ef(%rip), %rsi     # 0x12723f
movq %r12, %rdx
xorl %eax, %eax
callq 0x9060
jmp 0xb2c71
ucomisd 0x6bc39(%rip), %xmm3    # 0x11e7a0
movsd 0x2c39c1(%rip), %xmm0   # 0x376530
jae 0xb2c25
movsd 0x6bc2b(%rip), %xmm1    # 0x11e7a8
ucomisd %xmm3, %xmm1
jae 0xb2c25
leaq 0x289692(%rip), %rdi    # 0x33c220
leaq 0x74729(%rip), %rsi     # 0x1272be
leaq 0x74733(%rip), %rdx     # 0x1272cf
jmp 0xb2c46
xorpd %xmm1, %xmm1
leaq 0x289674(%rip), %rdi    # 0x33c220
ucomisd %xmm1, %xmm0
jae 0xb2c3c
leaq 0x746dd(%rip), %rsi     # 0x12729a
jmp 0xb2c43
leaq 0x289657(%rip), %rdi    # 0x33c220
leaq 0x746e2(%rip), %rsi     # 0x1272b2
jmp 0xb2c15
leaq 0x289647(%rip), %rax    # 0x33c220
movb $0x0, (%rax)
jmp 0xb2c71
cvttsd2si 0x2c3947(%rip), %ecx # 0x376530
leaq 0x289630(%rip), %rdi    # 0x33c220
leaq 0x746dc(%rip), %rsi     # 0x1272d3
leaq 0x746e6(%rip), %rdx     # 0x1272e4
xorl %eax, %eax
callq 0x9060
jmp 0xb2c71
leaq 0x289612(%rip), %rdi    # 0x33c220
leaq 0x74691(%rip), %rsi     # 0x1272a6
leaq -0x2c(%rbp), %rcx
movq %r12, %rdx
movb $0x1, %al
callq 0x9060
jmp 0xb2c71
leaq 0x2895f4(%rip), %rdi    # 0x33c220
leaq 0x7468b(%rip), %rsi     # 0x1272be
leaq 0x74691(%rip), %rdx     # 0x1272cb
jmp 0xb2c46
leaq 0x7464a(%rip), %rsi     # 0x12728d
movq %r12, %rdx
movb $0x1, %al
callq 0x9060
jmp 0xb2c71
movq %rax, (%rsp)
leaq 0x2895c6(%rip), %rdi    # 0x33c220
leaq 0x74616(%rip), %rsi     # 0x127277
movq %r12, %rdx
movl $0x1, %r8d
movb $0x1, %al
callq 0x9060
leal 0x1(%r14), %edi
leaq 0x2895a4(%rip), %rcx    # 0x33c220
movl -0x3c(%rbp), %esi
movl %r13d, %edx
callq 0xe7d0
leaq 0x25a31a(%rip), %rax    # 0x30cfa8
movq (%rax), %rax
movzbl (%rax), %eax
cmpl $0x6c, %eax
je 0xb2cad
cmpl $0x66, %eax
movsd -0x68(%rbp), %xmm0
jne 0xb2cba
mulsd 0x6bb0d(%rip), %xmm0    # 0x11e7b8
jmp 0xb2cba
movsd -0x68(%rbp), %xmm0
mulsd 0x6baf6(%rip), %xmm0    # 0x11e7b0
leaq 0x25a2ef(%rip), %rcx    # 0x30cfb0
movzbl (%rcx), %ecx
cmpl $0x8, %ecx
je 0xb2cfb
cmpl $0x3, %ecx
jne 0xb2d20
ucomisd 0x56362(%rip), %xmm0    # 0x109038
cmpl $0x6c, %eax
je 0xb2d67
leaq 0x28953a(%rip), %rdi    # 0x33c220
cmpl $0x66, %eax
jne 0xb2d77
leaq 0x74609(%rip), %rsi     # 0x1272ff
jmp 0xb2d90
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
leaq 0x25a2ee(%rip), %rax    # 0x30cff8
movsd (%rax), %xmm0
leaq 0x28950b(%rip), %rdi    # 0x33c220
jae 0xb2d44
leaq 0x7457c(%rip), %rsi     # 0x12729a
jmp 0xb2d90
ucomisd 0x56310(%rip), %xmm0    # 0x109038
jae 0xb2d4d
cmpl $0x6c, %eax
je 0xb2d67
leaq 0x2894ea(%rip), %rdi    # 0x33c220
cmpl $0x66, %eax
jne 0xb2d80
leaq 0x74601(%rip), %rsi     # 0x127343
jmp 0xb2d90
leaq 0x74542(%rip), %rsi     # 0x12728d
jmp 0xb2d90
cmpl $0x6c, %eax
je 0xb2d67
leaq 0x2894c7(%rip), %rdi    # 0x33c220
cmpl $0x66, %eax
jne 0xb2d89
leaq 0x745c3(%rip), %rsi     # 0x127328
jmp 0xb2d90
leaq 0x2894b2(%rip), %rdi    # 0x33c220
leaq 0x74598(%rip), %rsi     # 0x12730d
jmp 0xb2d90
leaq 0x7459d(%rip), %rsi     # 0x12731b
jmp 0xb2d90
leaq 0x745ca(%rip), %rsi     # 0x127351
jmp 0xb2d90
leaq 0x745a6(%rip), %rsi     # 0x127336
movq -0x38(%rbp), %rdx
movb $0x1, %al
callq 0x9060
xorl %eax, %eax
leaq 0x25a20c(%rip), %rcx    # 0x30cfb0
cmpb $0x2, (%rcx)
sete %al
subl %eax, %r14d
leal 0x2(%r14), %edi
leaq 0x289468(%rip), %rcx    # 0x33c220
movl -0x3c(%rbp), %ebx
movl %ebx, %esi
movl %r13d, %edx
callq 0xe7d0
leal 0x3(%r14), %r12d
leaq 0x80c92(%rip), %rcx     # 0x133a62
movl %r12d, %edi
movl %ebx, %esi
movl %r13d, %edx
callq 0xe7d0
testl %r15d, %r15d
je 0xb2e01
leaq 0x25a297(%rip), %rax    # 0x30d080
cmpl $0x0, (%rax)
je 0xb2e01
leaq 0x2599b3(%rip), %rcx    # 0x30c7a8
cmpb $0x49, (%rcx)
cmovel %r12d, %r14d
movl %r14d, %r12d
jmp 0xb2e50
xorpd %xmm0, %xmm0
movapd -0x50(%rbp), %xmm1
cmpeqpd %xmm0, %xmm1
movapd -0x60(%rbp), %xmm2
cmpeqpd %xmm0, %xmm2
andpd %xmm1, %xmm2
movd %xmm2, %eax
testb $0x1, %al
leaq 0x25997e(%rip), %rcx    # 0x30c7a8
jne 0xb2ff4
leaq 0x25a1f9(%rip), %rax    # 0x30d030
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
jne 0xb2e47
jnp 0xb2ff4
cmpb $0x49, (%rcx)
jne 0xb2ff4
xorl %r13d, %r13d
cmpb $0x49, (%rcx)
sete %r13b
leaq 0x25a1e7(%rip), %rax    # 0x30d048
movsd (%rax), %xmm0
leaq 0x25a1f4(%rip), %rax    # 0x30d060
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
movl $0x19, %eax
movl $0x3d, %edx
cmoval %eax, %edx
leal (%r12,%r13), %ebx
movq %rbx, -0x50(%rbp)
movl $0x3d, %r15d
ucomisd %xmm1, %xmm0
movl $0x18, %eax
cmoval %eax, %edx
leaq 0x28937e(%rip), %rdi    # 0x33c220
leaq 0x744b5(%rip), %rsi     # 0x12735e
movb $0x1, %al
callq 0x9060
movl -0x3c(%rbp), %r14d
leal (%r12,%r13), %eax
incl %eax
movl %eax, -0x60(%rbp)
movl %ebx, %edi
movl %r14d, %esi
movl $0xf, %edx
leaq 0x289352(%rip), %rcx    # 0x33c220
movq %rcx, %rbx
callq 0xe7d0
leaq 0x25a173(%rip), %rax    # 0x30d050
movsd (%rax), %xmm0
leaq 0x25a180(%rip), %rax    # 0x30d068
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
movl $0x1b, %eax
cmovbel %r15d, %eax
ucomisd %xmm1, %xmm0
movl $0x1a, %edx
cmovbel %eax, %edx
leaq 0x74466(%rip), %rsi     # 0x127372
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
addl %r13d, %r12d
addl $0x2, %r12d
movl -0x60(%rbp), %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe7d0
leaq 0x25a121(%rip), %rax    # 0x30d058
movsd (%rax), %xmm0
leaq 0x25a12e(%rip), %rax    # 0x30d070
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
movl $0x3d, %edx
movl $0x19, %r13d
cmoval %r13d, %edx
ucomisd %xmm1, %xmm0
movl $0x18, %eax
cmoval %eax, %edx
leaq 0x7441a(%rip), %rsi     # 0x127386
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
movl %r12d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movq %rbx, %r12
callq 0xe7d0
xorl %eax, %eax
leaq 0x259813(%rip), %rcx    # 0x30c7a8
cmpb $0x49, (%rcx)
sete %al
leaq 0x25a08e(%rip), %rcx    # 0x30d030
movsd (%rcx), %xmm0
leaq 0x25a08b(%rip), %rcx    # 0x30d038
movsd (%rcx), %xmm1
ucomisd %xmm0, %xmm1
cmoval %r13d, %r15d
ucomisd %xmm1, %xmm0
movq -0x50(%rbp), %rcx
leal 0x3(%rax,%rcx), %ebx
movl $0x18, %eax
cmoval %eax, %r15d
leaq 0x743c5(%rip), %rsi     # 0x12739a
movq %r12, %rdi
movl %r15d, %edx
movb $0x1, %al
callq 0x9060
movl %ebx, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %r12, %rcx
callq 0xe7d0
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq