// File: /workspace/github_cpp_makefile_star2_O3/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 0x18c76c(%rip), %rax    # 0x23ef3e
cmpb $0x0, (%rax)
jne 0xb3389
movl %edx, %r15d
movl %esi, %ebx
movl %edi, %r14d
movapd %xmm0, %xmm4
leaq 0x165fea(%rip), %rax    # 0x2187d8
cmpl $0x0, (%rax)
je 0xb2803
leaq 0x18c75e(%rip), %rax    # 0x23ef58
cmpl $0x0, (%rax)
jne 0xb3389
leaq 0x259f9e(%rip), %rax    # 0x30c7a8
movzbl (%rax), %eax
testl %eax, %eax
je 0xb281f
cmpl $0x4c, %eax
je 0xb281f
cmpl $0x49, %eax
jne 0xb3389
leaq 0x165fda(%rip), %rax    # 0x218800
leaq 0x170d17(%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)
jg 0xb28a6
leaq 0x165fb3(%rip), %rax    # 0x218808
movl (%rax), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
cmpl %ebx, %ecx
jge 0xb28a6
leaq 0x288ad5(%rip), %rax    # 0x33b340
cmpl $0x0, (%rax)
leaq 0x74a5c(%rip), %rax     # 0x1272d1
leaq 0x7192c(%rip), %r12     # 0x1241a8
cmoveq %rax, %r12
leaq 0x74a4f(%rip), %rax     # 0x1272d6
leaq 0x71929(%rip), %rcx     # 0x1241b7
cmoveq %rax, %rcx
movq %rcx, -0x40(%rbp)
leaq 0x74a3e(%rip), %rax     # 0x1272db
leaq 0x74a28(%rip), %rcx     # 0x1272cc
jmp 0xb28e6
leaq 0x288a93(%rip), %rax    # 0x33b340
cmpl $0x0, (%rax)
leaq 0x74a3b(%rip), %rax     # 0x1272f2
leaq 0x74a22(%rip), %r12     # 0x1272e0
cmoveq %rax, %r12
leaq 0x74a2f(%rip), %rax     # 0x1272f8
leaq 0x74a16(%rip), %rcx     # 0x1272e6
cmoveq %rax, %rcx
movq %rcx, -0x40(%rbp)
leaq 0x74a1f(%rip), %rax     # 0x1272fe
leaq 0x74a06(%rip), %rcx     # 0x1272ec
cmoveq %rax, %rcx
movq %rcx, -0x38(%rbp)
leaq 0x25a8e3(%rip), %rax    # 0x30d1d8
testl $0x220, (%rax)          # imm = 0x220
sete %r13b
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 0x25a691(%rip), %rax    # 0x30cfb0
movzbl (%rax), %eax
cmpl $0x1, %eax
movapd %xmm1, -0x70(%rbp)
movapd %xmm4, -0x60(%rbp)
movsd %xmm2, -0x78(%rbp)
movl %ebx, -0x44(%rbp)
jne 0xb2a06
movb $0x0, -0x2b(%rbp)
movb $0x1, %al
movsd 0x56815(%rip), %xmm3    # 0x109160
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, %r13b
leaq 0x168a6b(%rip), %rbx    # 0x21b3e2
cmpb $0x0, (%rbx)
je 0xb2aa3
movzbl %al, %eax
decl %eax
cmpl $0x7, %eax
ja 0xb2b2d
leaq 0x6d3b3(%rip), %rcx     # 0x11fd48
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cvttsd2si %xmm0, %ecx
cvttpd2dq %xmm0, %xmm1
cvtdq2pd %xmm1, %xmm1
subsd %xmm1, %xmm0
movsd 0x56652(%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 0x56635(%rip), %xmm0    # 0x109010
leaq -0x2c(%rbp), %rax
movq %rax, (%rsp)
leaq 0x289836(%rip), %rdi    # 0x33c220
leaq 0x74951(%rip), %rsi     # 0x127342
movq %r12, %rdx
movl $0x1, %r8d
movb $0x1, %al
callq 0x9060
jmp 0xb2d56
leal -0x3(%rax), %ecx
cmpb $0x1, %cl
ja 0xb2ac0
movapd %xmm4, %xmm0
callq 0xb3c42
movapd -0x60(%rbp), %xmm4
leaq 0x25a589(%rip), %rax    # 0x30cfb0
movb (%rax), %al
cmpb $0x8, %al
jne 0xb2c58
movapd %xmm4, %xmm0
callq 0x9710
movsd %xmm0, -0x40(%rbp)
movaps -0x60(%rbp), %xmm0
callq 0x9080
movsd %xmm0, -0x38(%rbp)
movaps -0x70(%rbp), %xmm0
callq 0x9710
movsd %xmm0, -0x88(%rbp)
movapd -0x70(%rbp), %xmm0
callq 0x9080
movsd 0x6b6d8(%rip), %xmm1    # 0x11e148
movsd -0x38(%rbp), %xmm2
mulsd %xmm2, %xmm1
mulsd %xmm2, %xmm1
addsd 0x565eb(%rip), %xmm1    # 0x109070
movapd %xmm0, %xmm4
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jb 0xb2bb2
xorps %xmm0, %xmm0
sqrtsd %xmm1, %xmm0
jmp 0xb2bc5
leaq 0x289776(%rip), %rdi    # 0x33c220
leaq 0x74859(%rip), %rsi     # 0x12730a
movq %r12, %rdx
xorl %eax, %eax
callq 0x9060
jmp 0xb2d56
cmpl $0x7, %eax
je 0xb2cf4
cmpl $0x6, %eax
je 0xb2cc6
cmpl $0x5, %eax
jne 0xb2d36
movw $0x2067, -0x2c(%rbp)    # imm = 0x2067
movb $0x0, -0x29(%rbp)
jmp 0xb2c7c
movsd 0x2c3a46(%rip), %xmm0   # 0x376538
leaq 0x289727(%rip), %rdi    # 0x33c220
leaq 0x74823(%rip), %rsi     # 0x127323
leaq 0x2c3a49(%rip), %rdx    # 0x376550
jmp 0xb2d4f
xorpd %xmm1, %xmm1
leaq 0x289709(%rip), %rdi    # 0x33c220
ucomisd %xmm1, %xmm0
jae 0xb2d45
leaq 0x7483d(%rip), %rsi     # 0x127365
jmp 0xb2d4c
leaq 0x2896ec(%rip), %rdi    # 0x33c220
leaq 0x74842(%rip), %rsi     # 0x12737d
jmp 0xb2b9f
movapd %xmm4, %xmm0
callq 0xb3398
leaq 0x2896d3(%rip), %rdi    # 0x33c220
leaq 0x747c7(%rip), %rsi     # 0x12731b
leaq 0x2c39c5(%rip), %rdx    # 0x376520
jmp 0xb2ab4
cvttsd2si 0x2c39cf(%rip), %r8d # 0x376538
leaq 0x2896b0(%rip), %rdi    # 0x33c220
leaq 0x747b9(%rip), %rsi     # 0x127330
leaq 0x2c39d2(%rip), %rdx    # 0x376550
leaq 0x2c39eb(%rip), %rcx    # 0x376570
xorl %eax, %eax
callq 0x9060
jmp 0xb2d56
leaq 0x289688(%rip), %rdi    # 0x33c220
leaq 0x747d2(%rip), %rsi     # 0x127371
leaq -0x2c(%rbp), %rcx
movq %r12, %rdx
movb $0x1, %al
callq 0x9060
jmp 0xb2d56
movapd %xmm1, %xmm0
movsd %xmm4, -0x80(%rbp)
callq 0x9270
movsd -0x80(%rbp), %xmm4
movsd 0x6b583(%rip), %xmm1    # 0x11e150
divsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movsd -0x78(%rbp), %xmm2
addsd %xmm2, %xmm0
movsd -0x40(%rbp), %xmm3
mulsd %xmm0, %xmm3
movsd -0x88(%rbp), %xmm0
mulsd %xmm3, %xmm0
leaq 0x25a3ee(%rip), %rax    # 0x30cfe8
movsd %xmm0, (%rax)
mulsd %xmm3, %xmm4
leaq 0x25a3e7(%rip), %rax    # 0x30cff0
movsd %xmm4, (%rax)
mulsd 0x6b543(%rip), %xmm1    # 0x11e158
addsd %xmm2, %xmm1
movsd -0x38(%rbp), %xmm0
mulsd %xmm1, %xmm0
leaq 0x25a3cf(%rip), %rax    # 0x30cff8
movsd %xmm0, (%rax)
leaq 0x25a37c(%rip), %rax    # 0x30cfb0
movb (%rax), %al
leaq 0x746ca(%rip), %rcx     # 0x127307
movq %rcx, -0x38(%rbp)
leaq 0x714cc(%rip), %rcx     # 0x124114
movq %rcx, -0x40(%rbp)
leaq 0x746b1(%rip), %r12     # 0x127304
movapd -0x60(%rbp), %xmm4
movzbl %al, %ecx
addl $-0x5, %ecx
cmpl $0x3, %ecx
movapd -0x70(%rbp), %xmm1
ja 0xb2943
leaq 0x6d0c5(%rip), %rax     # 0x11fd38
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movsd 0x58e5c(%rip), %xmm3    # 0x10bae0
mulsd %xmm4, %xmm3
divsd 0x58b98(%rip), %xmm3    # 0x10b828
xorpd %xmm2, %xmm2
movapd %xmm3, %xmm0
cmpltsd %xmm2, %xmm0
subsd %xmm3, %xmm2
andpd %xmm0, %xmm2
andnpd %xmm3, %xmm0
orpd %xmm2, %xmm0
movb $0x5, %al
jmp 0xb296c
leaq 0x25a32d(%rip), %rax    # 0x30cfe8
movsd (%rax), %xmm0
movb $0x8, %al
jmp 0xb296c
movw $0x2072, -0x2c(%rbp)    # imm = 0x2072
movb $0x0, -0x29(%rbp)
xorpd %xmm2, %xmm2
movapd %xmm4, %xmm0
cmpltsd %xmm2, %xmm0
subsd %xmm4, %xmm2
andpd %xmm0, %xmm2
andnpd %xmm4, %xmm0
orpd %xmm2, %xmm0
movb $0x6, %al
jmp 0xb296c
movw $0x2069, -0x2c(%rbp)    # imm = 0x2069
movb $0x0, -0x29(%rbp)
movsd 0x6bb42(%rip), %xmm3    # 0x11e848
mulsd %xmm4, %xmm3
divsd 0x58b16(%rip), %xmm3    # 0x10b828
xorpd %xmm2, %xmm2
movapd %xmm3, %xmm0
cmpltsd %xmm2, %xmm0
subsd %xmm3, %xmm2
andpd %xmm0, %xmm2
andnpd %xmm3, %xmm0
orpd %xmm2, %xmm0
movb $0x7, %al
jmp 0xb296c
movw $0x2001, -0x2c(%rbp)    # imm = 0x2001
movb $0x0, -0x29(%rbp)
jmp 0xb2a29
leaq 0x7460c(%rip), %rsi     # 0x127358
movq %r12, %rdx
movb $0x1, %al
callq 0x9060
movzbl %r13b, %r12d
leaq 0x2894bf(%rip), %r13    # 0x33c220
movl %r14d, %edi
movl -0x44(%rbp), %esi
movl %r12d, %edx
movq %r13, %rcx
callq 0xe787
leaq 0x25a237(%rip), %rax    # 0x30cfb0
movzbl (%rax), %eax
xorpd %xmm0, %xmm0
cmpl $0x1, %eax
jne 0xb2d9b
movapd -0x70(%rbp), %xmm2
ucomisd %xmm2, %xmm0
movapd -0x60(%rbp), %xmm3
jbe 0xb2ddb
movb $0x57, -0x2c(%rbp)
jmp 0xb2ddf
movapd -0x70(%rbp), %xmm2
ucomisd %xmm2, %xmm0
movl $0x57, %ecx
movl $0x45, %edx
cmoval %ecx, %edx
movb %dl, -0x2a(%rbp)
leal -0x5(%rax), %ecx
cmpl $0x3, %ecx
movapd -0x60(%rbp), %xmm3
ja 0xb2ddf
leaq 0x6cfa0(%rip), %rdx     # 0x11fd68
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movsd 0x58d07(%rip), %xmm1    # 0x10bae0
jmp 0xb2df5
movb $0x45, -0x2c(%rbp)
movsd 0x56379(%rip), %xmm1    # 0x109160
mulsd %xmm2, %xmm1
jmp 0xb2e01
movsd 0x6ba53(%rip), %xmm1    # 0x11e848
mulsd %xmm2, %xmm1
divsd 0x58a27(%rip), %xmm1    # 0x10b828
xorpd %xmm2, %xmm2
movapd %xmm1, %xmm0
cmpltsd %xmm2, %xmm0
subsd %xmm1, %xmm2
andpd %xmm0, %xmm2
andnpd %xmm1, %xmm0
orpd %xmm2, %xmm0
cmpb $0x0, (%rbx)
je 0xb2eaa
decl %eax
cmpl $0x7, %eax
ja 0xb2f56
leaq 0x6cf3f(%rip), %rcx     # 0x11fd78
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cvttsd2si %xmm0, %ecx
cvttpd2dq %xmm0, %xmm1
cvtdq2pd %xmm1, %xmm1
subsd %xmm1, %xmm0
movsd 0x561ae(%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 0x56191(%rip), %xmm0    # 0x109010
leaq -0x2c(%rbp), %rax
cmpl $0x64, %ecx
jl 0xb2fe0
movq %rax, (%rsp)
leaq 0x289389(%rip), %rdi    # 0x33c220
leaq 0x74516(%rip), %rsi     # 0x1273b4
leaq 0x74431(%rip), %rdx     # 0x1272d6
jmp 0xb2ff6
leaq 0x28936f(%rip), %rdi    # 0x33c220
leaq 0x74452(%rip), %rsi     # 0x12730a
movq -0x40(%rbp), %rdx
xorl %eax, %eax
callq 0x9060
jmp 0xb3003
leaq 0x25a121(%rip), %rcx    # 0x30cff0
movsd (%rcx), %xmm0
jmp 0xb2e1e
xorpd %xmm1, %xmm1
movapd %xmm2, %xmm0
cmpltsd %xmm1, %xmm0
subsd %xmm2, %xmm1
andpd %xmm0, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
jmp 0xb2e1e
ucomisd 0x6b94e(%rip), %xmm3    # 0x11e850
movsd 0x2c3626(%rip), %xmm0   # 0x376530
jae 0xb2fb5
movsd 0x6b940(%rip), %xmm1    # 0x11e858
ucomisd %xmm3, %xmm1
jae 0xb2fb5
leaq 0x2892f7(%rip), %rdi    # 0x33c220
leaq 0x74459(%rip), %rsi     # 0x127389
leaq 0x74463(%rip), %rdx     # 0x12739a
jmp 0xb2fd7
xorpd %xmm1, %xmm1
leaq 0x2892d9(%rip), %rdi    # 0x33c220
ucomisd %xmm1, %xmm0
jae 0xb2fcc
leaq 0x74411(%rip), %rsi     # 0x127365
jmp 0xb2fd3
leaq 0x2892c3(%rip), %rdi    # 0x33c220
leaq 0x74419(%rip), %rsi     # 0x12737d
jmp 0xb2fa4
movb $0x0, (%r13)
jmp 0xb3003
cvttsd2si 0x2c35b8(%rip), %ecx # 0x376530
leaq 0x2892a1(%rip), %rdi    # 0x33c220
leaq 0x74418(%rip), %rsi     # 0x12739e
leaq 0x74422(%rip), %rdx     # 0x1273af
xorl %eax, %eax
callq 0x9060
jmp 0xb3003
leaq 0x289283(%rip), %rdi    # 0x33c220
leaq 0x743cd(%rip), %rsi     # 0x127371
leaq -0x2c(%rbp), %rcx
movq -0x40(%rbp), %rdx
movb $0x1, %al
callq 0x9060
jmp 0xb3003
leaq 0x289264(%rip), %rdi    # 0x33c220
leaq 0x743c6(%rip), %rsi     # 0x127389
leaq 0x743cc(%rip), %rdx     # 0x127396
jmp 0xb2fd7
leaq 0x74385(%rip), %rsi     # 0x127358
movq -0x40(%rbp), %rdx
movb $0x1, %al
callq 0x9060
jmp 0xb3003
movq %rax, (%rsp)
leaq 0x289235(%rip), %rdi    # 0x33c220
leaq 0x74350(%rip), %rsi     # 0x127342
movq -0x40(%rbp), %rdx
movl $0x1, %r8d
movb $0x1, %al
callq 0x9060
leal 0x1(%r14), %edi
leaq 0x289212(%rip), %rcx    # 0x33c220
movl -0x44(%rbp), %esi
movl %r12d, %edx
callq 0xe787
leaq 0x259f88(%rip), %rax    # 0x30cfa8
movq (%rax), %rax
movzbl (%rax), %eax
cmpl $0x6c, %eax
je 0xb303f
cmpl $0x66, %eax
movsd -0x78(%rbp), %xmm0
jne 0xb304c
mulsd 0x6b82b(%rip), %xmm0    # 0x11e868
jmp 0xb304c
movsd -0x78(%rbp), %xmm0
mulsd 0x6b814(%rip), %xmm0    # 0x11e860
leaq 0x259f5d(%rip), %rcx    # 0x30cfb0
movzbl (%rcx), %ecx
cmpl $0x8, %ecx
je 0xb308d
cmpl $0x3, %ecx
jne 0xb30b2
ucomisd 0x55fd0(%rip), %xmm0    # 0x109038
cmpl $0x6c, %eax
je 0xb30f9
leaq 0x2891a8(%rip), %rdi    # 0x33c220
cmpl $0x66, %eax
jne 0xb3109
leaq 0x74342(%rip), %rsi     # 0x1273ca
jmp 0xb3122
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
leaq 0x259f5c(%rip), %rax    # 0x30cff8
movsd (%rax), %xmm0
leaq 0x289179(%rip), %rdi    # 0x33c220
jae 0xb30d6
leaq 0x742b5(%rip), %rsi     # 0x127365
jmp 0xb3122
ucomisd 0x55f7e(%rip), %xmm0    # 0x109038
jae 0xb30df
cmpl $0x6c, %eax
je 0xb30f9
leaq 0x289158(%rip), %rdi    # 0x33c220
cmpl $0x66, %eax
jne 0xb3112
leaq 0x7433a(%rip), %rsi     # 0x12740e
jmp 0xb3122
leaq 0x7427b(%rip), %rsi     # 0x127358
jmp 0xb3122
cmpl $0x6c, %eax
je 0xb30f9
leaq 0x289135(%rip), %rdi    # 0x33c220
cmpl $0x66, %eax
jne 0xb311b
leaq 0x742fc(%rip), %rsi     # 0x1273f3
jmp 0xb3122
leaq 0x289120(%rip), %rdi    # 0x33c220
leaq 0x742d1(%rip), %rsi     # 0x1273d8
jmp 0xb3122
leaq 0x742d6(%rip), %rsi     # 0x1273e6
jmp 0xb3122
leaq 0x74303(%rip), %rsi     # 0x12741c
jmp 0xb3122
leaq 0x742df(%rip), %rsi     # 0x127401
movq -0x38(%rbp), %rdx
movb $0x1, %al
callq 0x9060
xorl %eax, %eax
leaq 0x259e7a(%rip), %rcx    # 0x30cfb0
cmpb $0x2, (%rcx)
sete %al
subl %eax, %r14d
leal 0x2(%r14), %edi
leaq 0x2890d6(%rip), %rcx    # 0x33c220
movl -0x44(%rbp), %ebx
movl %ebx, %esi
movl %r12d, %edx
callq 0xe787
leal 0x3(%r14), %r13d
leaq 0x809f0(%rip), %rcx     # 0x133b52
movl %r13d, %edi
movl %ebx, %esi
movl %r12d, %edx
callq 0xe787
testl %r15d, %r15d
je 0xb319a
leaq 0x259f05(%rip), %rax    # 0x30d080
cmpl $0x0, (%rax)
je 0xb319a
xorl %r12d, %r12d
leaq 0x25961e(%rip), %rax    # 0x30c7a8
cmpb $0x49, (%rax)
sete %r12b
cmovel %r13d, %r14d
movl %r14d, %r13d
jmp 0xb31ef
xorpd %xmm0, %xmm0
movapd -0x70(%rbp), %xmm1
cmpeqpd %xmm0, %xmm1
movapd -0x60(%rbp), %xmm2
cmpeqpd %xmm0, %xmm2
andpd %xmm1, %xmm2
movd %xmm2, %eax
testb $0x1, %al
jne 0xb3389
leaq 0x259e67(%rip), %rax    # 0x30d030
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
jne 0xb31d9
jnp 0xb3389
movl $0x1, %r12d
leaq 0x2595c2(%rip), %rax    # 0x30c7a8
cmpb $0x49, (%rax)
jne 0xb3389
leaq 0x259e52(%rip), %rax    # 0x30d048
movsd (%rax), %xmm0
leaq 0x259e5f(%rip), %rax    # 0x30d060
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
movl $0x19, %eax
movl $0x3d, %edx
cmoval %eax, %edx
leal (%r12,%r13), %ebx
movq %rbx, -0x70(%rbp)
movl $0x3d, %r15d
ucomisd %xmm1, %xmm0
movl $0x18, %eax
cmoval %eax, %edx
leaq 0x288fe9(%rip), %rdi    # 0x33c220
leaq 0x741eb(%rip), %rsi     # 0x127429
movb $0x1, %al
callq 0x9060
movl -0x44(%rbp), %r14d
leal (%r12,%r13), %eax
incl %eax
movl %eax, -0x60(%rbp)
movl %ebx, %edi
movl %r14d, %esi
movl $0xf, %edx
leaq 0x288fbd(%rip), %rcx    # 0x33c220
movq %rcx, %rbx
callq 0xe787
leaq 0x259dde(%rip), %rax    # 0x30d050
movsd (%rax), %xmm0
leaq 0x259deb(%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 0x7419c(%rip), %rsi     # 0x12743d
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
addl %r12d, %r13d
addl $0x2, %r13d
movl -0x60(%rbp), %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
callq 0xe787
leaq 0x259d8c(%rip), %rax    # 0x30d058
movsd (%rax), %xmm0
leaq 0x259d99(%rip), %rax    # 0x30d070
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
movl $0x3d, %edx
movl $0x19, %r12d
cmoval %r12d, %edx
ucomisd %xmm1, %xmm0
movl $0x18, %eax
cmoval %eax, %edx
leaq 0x74150(%rip), %rsi     # 0x127451
movq %rbx, %rdi
movb $0x1, %al
callq 0x9060
movl %r13d, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %rbx, %rcx
movq %rbx, %r13
callq 0xe787
xorl %eax, %eax
leaq 0x25947e(%rip), %rcx    # 0x30c7a8
cmpb $0x49, (%rcx)
sete %al
leaq 0x259cf9(%rip), %rcx    # 0x30d030
movsd (%rcx), %xmm0
leaq 0x259cf6(%rip), %rcx    # 0x30d038
movsd (%rcx), %xmm1
ucomisd %xmm0, %xmm1
cmoval %r12d, %r15d
ucomisd %xmm1, %xmm0
movq -0x70(%rbp), %rcx
leal 0x3(%rax,%rcx), %ebx
movl $0x18, %eax
cmoval %eax, %r15d
leaq 0x740fb(%rip), %rsi     # 0x127465
movq %r13, %rdi
movl %r15d, %edx
movb $0x1, %al
callq 0x9060
movl %ebx, %edi
movl %r14d, %esi
movl $0xf, %edx
movq %r13, %rcx
callq 0xe787
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq