// File: /workspace/github_cpp_makefile_star2_O3/jkingan[P]ladyheather/heathgps.cpp
// Function: secondary_timing(int)
void secondary_timing(int get_tsip)
{
u08 spare1, spare2;
u32 dac_value;
u08 spare3[8];
int i;
int color;
u08 spare_data;
u08 survey_err;
double jit;
DATA_SIZE val;
DATA_SIZE x_dac;
double x_pps;
double x_osc;
double x_lat;
double x_lon;
double x_alt;
long   x_val;
int seq_err;

   // process the secondary timing message from the receiver (if any) and
   // validate the various receiver data values.  For TSIP devices, this routine
   // gets the secondary timing message from the device.
   if(get_tsip) log_packet_id("Packet 0x8F.AC (Secondary timing)");

   ++timing_seen;

   if(tsip_type == STARLOC_TYPE) {   // this turd can send secondary timing packets
      seq_err = this_pri_tow-(last_pri_tow+1);
      if(seq_err < (-1000)) seq_err += (7*24*60*60);  // week wrap
      if(seq_err == (-2)) return;  // skipped time stamp
      if(skip_starloc_time) return;  // without a preceeding primary timing packet
      skip_starloc_time = 1;
   }

   color = 0;

   if(get_tsip) {
      rcvr_mode = tsip_byte();
      discipline_mode = tsip_byte();
      if(SV6_FAMILY || ACUTIME || ACU_GG || ACU_360 || PALISADE) discipline_mode = DIS_MODE_NORMAL;
      survey_progress = tsip_byte();
      have_progress = 1;
      holdover = tsip_dword();
      critical_alarms = tsip_word();
      last_ma = minor_alarms;
      minor_alarms = tsip_word();
//if(last_ma != minor_alarms) sprintf(debug_text, "ma:%04X  last_ma:%04X", minor_alarms, last_ma); // rrrrr
      gps_status = tsip_byte();
      discipline = tsip_byte();
      spare1 = tsip_byte();
      spare2 = tsip_byte();
      x_pps = (double) tsip_single();
      x_osc = (double) tsip_single();
      x_val = tsip_dword();
      x_dac = tsip_single();
      if(res_t || ACU_GG || ACU_360 || ACUTIME) {
         have_sawtooth = 1;
         if(x_dac < 200e-9) x_dac *= 1.0E9;  // !!!! old firmware outputs sawtooth in seconds, convert to nsec
      }
      else have_dac = 1;
//      last_temp_val = temperature;
      last_xt = x_temp;
      x_temp = tsip_single();
      if(x_temp) have_temperature = 100;

      if(last_xt == 0.0F) last_xt = x_temp;
//      if(last_temp_val == 0.0F) last_temp_val = temperature;
      x_lat = tsip_double();
      x_lon = tsip_double();
      x_alt = tsip_double();

      pps_quant = tsip_single();  // res_t
      if(res_t || ACU_GG || ACU_360 || ACUTIME) x_dac = pps_quant;

      spare_data = 0;  // flag set if any non-zero spare data fields 
      for(i=0; i<4; i++) {
         spare3[i] = tsip_byte();  // ACUTIME spare3[0] -> 0=NO PPS GEN  1=PPS generated
         if(spare3[i]) ++spare_data;
      }

      check_tsip_end(1);

      if(!have_critical_alarms) need_redraw = 7701;

      have_antenna = 1;
      have_osc_age = 1;
      have_osc_offset = 1;
      have_pps_offset = 1;
      have_rcvr_pps = 1;
      have_rcvr_osc = 1;
      have_saved_posn = 1;
      have_tracking = 1;
      have_leap_info = 1;
      have_op_mode = 1;
      have_almanac = 1;
      have_critical_alarms = 1;
      have_gps_status = 1;
      have_sec_timing = 1;

      poll_raw_data();
//adadad    do_pps_adev(x_pps / 100.0);
//adadad    do_osc_adev(x_osc / 100.0);

      if(just_read) return;
      if(tsip_error) return;
   }
   else {
poll_raw_data();
      x_pps = pps_offset;
      x_osc = osc_offset;
      x_dac = dac_voltage;
      x_temp = temperature;
      last_xt = x_temp;
      x_val = 0;
   }

   pps_offset = x_pps;
   osc_offset = x_osc;
   dac_value = x_val;
   dac_voltage = x_dac;

if((jitter_adev == 0) && (TICC_USED == 0) && (pause_data == 0)) {
   add_rcvr_adev_point(0);
}

   last_temp_val = temperature;
// temperature = x_temp;
if(undo_fw_temp_filter && (luxor == 0) && (rcvr_type != UCCM_RCVR)) {
   temperature = (SENSOR_TC*x_temp) - ((SENSOR_TC-1.0F)*last_xt);  // unaverage the firmware reported temperature
   if((temperature < -100.0) || (temperature > 100.0F)) temperature = x_temp;  // filter problem
}
else if(have_temperature) {
   temperature = x_temp;
}

   if(last_temp_val == 0.0F) last_temp_val = temperature;
   if(get_tsip) {
      lat = x_lat;
      lon = x_lon;
      alt = x_alt;
   }

   if(plot[TEMP].plot_center == NEED_CENTER) plot[TEMP].plot_center = scale_temp((double) temperature);
   if(enviro_mode()) {
      if(plot[PRESSURE].plot_center == NEED_CENTER) plot[PRESSURE].plot_center = scale_pressure((double) pressure);
   }
   if(plot[BATTV].plot_center  == NEED_CENTER) plot[BATTV].plot_center  = dac_voltage;
   if(luxor && (plot[TC2].plot_center == NEED_CENTER)) plot[TC2].plot_center = scale_temp((double) luxor_tc2);
   if(luxor && (plot[LUX1].plot_center == NEED_CENTER)) plot[LUX1].plot_center = (float) (pps_offset * lux_scale);
   if(luxor && (plot[LUX2].plot_center == NEED_CENTER)) plot[LUX2].plot_center = (float) (pps_offset * lum_scale);

   if(survey_progress == 100) surveying = 0;
   if(doing_survey != last_survey) {  // self survey changed
      if(trimble_save) ;
      else if(precision_survey) ;
      else need_redraw = 2010;
   }
   last_survey = doing_survey;

   #ifdef PRECISE_STUFF
      precise_check();
   #endif

   if(crude_temp) {   // simulate the crude temperature sensor for temp ctrl pid testing
      val = temperature - (DATA_SIZE) (int) temperature;
      val -= 0.75;
      if((val >= 0.02) || (val < (-0.02))) {  // allow some noise around the switch point
         temperature = ((DATA_SIZE) (int) temperature) + (DATA_SIZE) 0.75;
      }
   }

   if(tsip_error) {  // don't pollute log with potentially bad data
      pps_offset = last_pps_offset;
      osc_offset = last_osc_offset;
      dac_voltage = last_dac_voltage;
      temperature = last_temp_val;
   }
   else {  // filter out bogus values
      if(TIMING_RCVR) ;
      else if(rcvr_type == THERMO_RCVR) ;
      else if(rcvr_type == TICC_RCVR) ;
      else if((ticc_type == LARS_TICC) && TICC_USED) ;
      else if(rcvr_type == UCCM_RCVR) ;  // kkkkkk
      else if(res_t == 0) {
         #ifdef __386__
            if(ABS(dac_voltage) <= 1.0E-4F) dac_voltage = 0.0F;
            if(ABS(temperature) <= 1.0E-4F) temperature = 0.0F;
         #endif

         if(luxor == 0) {
            if(dac_voltage == 0.0F) dac_voltage = last_dac_voltage;
            if(temperature == 0.0F) temperature = last_temp_val;
////        if(pps_offset == 0.0F)  pps_offset = last_pps_offset;
////        if(osc_offset == 0.0F)  osc_offset = last_osc_offset;
            if(DAC_PCT) {
               if((dac_voltage < (-100.0F)) || (dac_voltage > 100.0F)) dac_voltage = last_dac_voltage;
            }
            else if(rcvr_type == RFTG_RCVR) {
               if((dac_voltage < (-20.0F)) || (dac_voltage > 20.0F)) dac_voltage = last_dac_voltage;
            }
            else if((dac_voltage < (-10.0F)) || (dac_voltage > 10.0F)) dac_voltage = last_dac_voltage;
            if((temperature < (-55.0F)) || (temperature > 100.0F)) temperature = last_temp_val;
         }
      }

      have_rcvr_mode = 1;

      #ifdef PRECISE_STUFF
         update_precise_survey();
         if(rcvr_mode != last_rcvr_mode) plot_lla_axes(20);
         last_rcvr_mode = rcvr_mode;
      #endif
   }

   if(saw_ntpx && (initial_voltage == 0.0) && ((user_set_osc_param & PARAM_INITV) == 0x00)) {
      initial_voltage = dac_voltage;  // set initial dac voltage to the current dac value
      have_initv = 1;
   }

   if(have_time && (have_osc == 0)) {  // initialize the value to the current PPS offset
      have_osc = 1;
      osc_integral = (((double) pps_offset) * 1.0E-9);
   }
   osc_integral += (osc_offset * 1.0E-9);


   filter_spikes();    // filter out false temperature sensor spikes
   #ifdef TEMP_CONTROL
      control_temp();
   #else
      temp_dir = ' ';
   #endif

   #ifdef OSC_CONTROL
      control_osc();
   #endif

   survey_err = 0;
   if((rcvr_type == UCCM_RCVR) && (scpi_type == SAMSUNG_TYPE)) ;
   else if(survey_progress > 100) {
      survey_progress = 100;
      survey_err = 1;
   }

#ifdef ADEV_STUFF
   if(jitter_adev) {  // measuring message timing adevs
      jit = (this_time_msec-last_time_msec);   // rrrrr
      do_pps_adev(msg_ofs * 1.0E6);
      do_osc_adev(jit*1.0E6);
   }
#endif // ADEV_STUFF

   if((tsip_type == STARLOC_TYPE) && (pt_hh == st_hh) && (pt_min == st_min) && (pt_sec == st_sec)) {
      // ignore duplicate time stamp
   }
   else {
      if(reading_log == 0) {
         time_check(0, (DATA_SIZE) 1.0, year,month,day, hours,minutes,seconds,raw_frac);  // check for skips in the time
      }
      if(++log_file_time >= log_interval) {
         if(doing_log_dump == 0) write_log_readings(log_file, -1L);
         log_file_time = 0;
      }

      if(rinex_file && have_info) {
         write_rinex_header(rinex_file);
         write_rinex_obs(rinex_file);
      }
   }
   st_hh = pt_hh;
   st_min = pt_min;
   st_sec = pt_sec;

   if(sim_eof) tsip_error = survey_err = 0;
   if(tsip_error) return;
   if(survey_err) return;

   last_pps_offset = pps_offset;
   last_osc_offset = osc_offset;
   last_dac_voltage = dac_voltage;

   last_temperature = temperature;
   last_tc0 = tc0;
   last_tc1 = tc1;
   last_tc2 = tc2;

   last_adc1 = adc1;
   last_adc2 = adc2;
   last_adc3 = adc3;
   last_adc4 = adc4;

   last_humidity = humidity;
   last_pressure = pressure;

   // round these to multiples of the graph scale factor
   last_temperature *= plot[TEMP].ref_scale;
   last_temperature = (long) ((last_temperature / plot[TEMP].scale_factor)) * plot[TEMP].scale_factor;
   last_temperature /= plot[TEMP].ref_scale;

   if(0) {
      last_tc1 *= plot[TEMP1].ref_scale;
      last_tc1 = (long) ((last_tc1 / plot[TEMP1].scale_factor)) * plot[TEMP1].scale_factor;
      last_tc1 /= plot[TEMP1].ref_scale;

      last_tc2 *= plot[TEMP2].ref_scale;
      last_tc2 = (long) ((last_tc2 / plot[TEMP2].scale_factor)) * plot[TEMP2].scale_factor;
      last_tc2 /= plot[TEMP2].ref_scale;
   }

   last_dac_voltage *= plot[DAC].ref_scale; 
   last_dac_voltage = (long) ((last_dac_voltage / plot[DAC].scale_factor)) * plot[DAC].scale_factor;
   last_dac_voltage /= plot[DAC].ref_scale; 

   if(have_alarms == 0) {
      have_alarms = 1;
      last_critical = critical_alarms;
      last_minor = minor_alarms;
   }

#ifdef ADEV_STUFF
   if(pause_data == 0) {  // redraw adev curves and tables every 10 seconds
      update_adev_display(ATYPE, 0);  
   }
#endif // ADEV_STUFF

   show_version_header();    // show the receiver id info
   show_log_state();         // show the logging mode
   show_param_values(0);     // update alarm and data value displays

   write_log_changes();      // write important state changes to log file

   if((last_utc_ofs == 0) && have_utc_ofs) {  // we just got the UTC offset
      last_utc_ofs = have_utc_ofs;            
      if(rcvr_type == TICC_RCVR);
      else if(log_loaded == 0) clear_all_data();   // assume previous data was bogus, clear it
   }

   update_plot_data();       // add latest info to the plot queue and update the screen
   show_scaled_lla();
   show_plot_stats();

//sprintf(debug_text2, "dtl:%d  ppstrend:%d  ttype:%d", dynamic_trend_line, plot[PPS].show_trend, title_type);
   if(dynamic_trend_line) {  // update trend line info plot title dynamically
      show_trend_info(selected_plot);
   }

   track_object();  // output sun, moon, sat position to TRACK_PORT (if enabled)

   if(ticc_sim_file) {  // get aux TICC data from a simulation file  //lfs //LARS_TICC
      if(fgets(out, sizeof out, ticc_sim_file) != NULL) {
         char *s;
         s = strchr(out, 0x0D);
         if(s) *s = 0;
         s = strchr(out, 0x0A);
         if(s) *s = 0;
         strcpy((char *) ticc_buf, out);
         ticc_wptr = strlen((char *) ticc_buf);
         decode_ticc_msg(TICC_PORT);
         packet_end = 1;
         ticc_sim_eof = 0;
      }
      else ticc_sim_eof = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %edi, %ebx
testl %edi, %edi
je 0x76e8c
leaq 0xab446(%rip), %rdi     # 0x1222cd
callq 0x58dc2
leaq 0x1c80e5(%rip), %rax    # 0x23ef78
incl (%rax)
leaq 0x1a4138(%rip), %r12    # 0x21afd4
cmpl $0x53, (%r12)
jne 0x76ee4
movl 0x2f4f2f(%rip), %eax    # 0x36bdd8
movl 0x2f4f2d(%rip), %ecx    # 0x36bddc
notl %ecx
leal (%rax,%rcx), %edx
cmpl $0xfffffc18, %edx       # imm = 0xFFFFFC18
leal 0x93a80(%rax,%rcx), %eax
cmovgel %edx, %eax
cmpl $-0x2, %eax
je 0x77cb4
cmpl $0x0, 0x2f4f00(%rip)    # 0x36bdd4
jne 0x77cb4
movl $0x1, 0x2f4ef0(%rip)    # 0x36bdd4
testl %ebx, %ebx
je 0x77263
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x76f02
leaq 0x1c8071(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
leaq 0x2961c7(%rip), %rcx    # 0x30d0d0
movb %al, (%rcx)
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x76f21
leaq 0x1c8052(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
leaq 0x29656f(%rip), %rcx    # 0x30d497
movb %al, (%rcx)
leaq 0x1a199f(%rip), %r14    # 0x2188d0
cmpq $0x1, (%r14)
jne 0x76f50
movl (%r12), %eax
addl $-0x33, %eax
cmpl $0x1d, %eax
ja 0x76f50
movl $0x20004009, %edx       # imm = 0x20004009
btl %eax, %edx
jae 0x76f50
movb $0x0, (%rcx)
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x76f66
leaq 0x1c800d(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
movzbl %al, %eax
leaq 0x296f1c(%rip), %rcx    # 0x30de8c
movl %eax, (%rcx)
leaq 0x296f17(%rip), %rax    # 0x30de90
movl $0x1, (%rax)
callq 0x58964
leaq 0x2964cd(%rip), %rcx    # 0x30d458
movl %eax, (%rcx)
callq 0x588d2
movzwl %ax, %eax
leaq 0x296234(%rip), %rcx    # 0x30d1d0
movl %eax, (%rcx)
leaq 0x296233(%rip), %r15    # 0x30d1d8
movl (%r15), %eax
movl %eax, 0x2f9d6a(%rip)    # 0x370d18
callq 0x588d2
movzwl %ax, %eax
movl %eax, (%r15)
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x76fcf
leaq 0x1c7fa4(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
movzbl %al, %eax
leaq 0x2964c3(%rip), %rcx    # 0x30d49c
movl %eax, (%rcx)
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x76ff1
leaq 0x1c7f82(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
leaq 0x29649d(%rip), %rcx    # 0x30d495
movb %al, (%rcx)
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x77010
leaq 0x1c7f63(%rip), %rax    # 0x23ef70
orb $0x8, (%rax)
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x77026
leaq 0x1c7f4d(%rip), %rax    # 0x23ef70
orb $0x8, (%rax)
callq 0x58a30
movss %xmm0, -0x48(%rbp)
callq 0x58a30
movss %xmm0, -0x40(%rbp)
callq 0x58964
callq 0x58a30
cvtss2sd %xmm0, %xmm1
leaq 0x1a18b5(%rip), %r15    # 0x218904
cmpb $0x0, (%r15)
jne 0x7706a
cmpq $0x1, (%r14)
jne 0x77cc3
cmpl $0x41, (%r12)
jne 0x77cc3
leaq 0x296353(%rip), %rax    # 0x30d3c4
movl $0x1, (%rax)
movsd 0xa71e1(%rip), %xmm0    # 0x11e260
ucomisd %xmm1, %xmm0
jbe 0x7708d
mulsd 0x91f9b(%rip), %xmm1    # 0x109028
movsd %xmm1, -0x30(%rbp)
movsd 0x2f9c76(%rip), %xmm0   # 0x370d10
movsd %xmm0, 0x2f9c66(%rip)   # 0x370d08
callq 0x58a30
xorps %xmm1, %xmm1
cvtss2sd %xmm0, %xmm1
movsd %xmm1, 0x2f9c5a(%rip)   # 0x370d10
xorps %xmm2, %xmm2
ucomiss %xmm2, %xmm0
jne 0x770c0
jnp 0x770cd
leaq 0x296185(%rip), %rax    # 0x30d24c
movl $0x64, (%rax)
movsd 0x2f9c33(%rip), %xmm0   # 0x370d08
xorps %xmm2, %xmm2
ucomisd %xmm2, %xmm0
jne 0x770e8
jp 0x770e8
movsd %xmm1, 0x2f9c20(%rip)   # 0x370d08
callq 0x58b08
movsd %xmm0, -0x38(%rbp)
callq 0x58b08
movsd %xmm0, -0x58(%rbp)
callq 0x58b08
movsd %xmm0, -0x50(%rbp)
callq 0x58a30
cvtss2sd %xmm0, %xmm0
leaq 0x2958fa(%rip), %rax    # 0x30ca10
movsd %xmm0, (%rax)
cmpb $0x0, (%r15)
jne 0x77154
cmpq $0x1, (%r14)
sete %cl
cmpl $0x41, (%r12)
sete %al
andb %cl, %al
leaq 0x1a17c0(%rip), %rcx    # 0x2188f8
cmpl $0x47, (%rcx)
sete %cl
andb %al, %cl
xorb $0x1, %al
orb %cl, %al
movaps %xmm0, %xmm1
testb %cl, %cl
jne 0x77150
movsd -0x30(%rbp), %xmm1
testb %al, %al
jne 0x77157
movaps %xmm0, %xmm1
movsd %xmm1, -0x30(%rbp)
xorps %xmm0, %xmm0
cvtss2sd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
xorps %xmm0, %xmm0
cvtss2sd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl $0x4, %r15d
leaq 0x1c7ded(%rip), %r14    # 0x23ef70
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x77193
orb $0x8, (%r14)
decl %r15d
jne 0x77183
xorl %edi, %edi
callq 0x58e9b
leaq 0x296102(%rip), %rax    # 0x30d2a8
cmpl $0x0, (%rax)
jne 0x771b8
leaq 0x1a1692(%rip), %rcx    # 0x218844
movl $0x1e15, (%rcx)         # imm = 0x1E15
leaq 0x29606d(%rip), %rcx    # 0x30d22c
movl $0x1, %edx
movl %edx, (%rcx)
leaq 0x296063(%rip), %rcx    # 0x30d230
movl %edx, (%rcx)
leaq 0x29605e(%rip), %rcx    # 0x30d234
movl %edx, (%rcx)
leaq 0x296059(%rip), %rcx    # 0x30d238
movl %edx, (%rcx)
leaq 0x29605c(%rip), %rcx    # 0x30d244
movl %edx, (%rcx)
leaq 0x296057(%rip), %rcx    # 0x30d248
movl %edx, (%rcx)
leaq 0x296092(%rip), %rcx    # 0x30d28c
movl %edx, (%rcx)
leaq 0x29608d(%rip), %rcx    # 0x30d290
movl %edx, (%rcx)
leaq 0x29608c(%rip), %rcx    # 0x30d298
movl %edx, (%rcx)
leaq 0x296087(%rip), %rcx    # 0x30d29c
movl %edx, (%rcx)
leaq 0x296086(%rip), %rcx    # 0x30d2a4
movl %edx, (%rcx)
movl %edx, (%rax)
leaq 0x296087(%rip), %rax    # 0x30d2b0
movl %edx, (%rax)
leaq 0x29606e(%rip), %rax    # 0x30d2a0
movl %edx, (%rax)
callq 0x78197
leaq 0x2bfdd8(%rip), %rax    # 0x337018
cmpb $0x0, (%rax)
movsd -0x30(%rbp), %xmm1
movsd -0x48(%rbp), %xmm2
movsd -0x40(%rbp), %xmm3
jne 0x77cb4
cmpl $0x0, (%r14)
je 0x772a4
jmp 0x77cb4
callq 0x78197
leaq 0x295549(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm2
leaq 0x295546(%rip), %rax    # 0x30c7c0
movsd (%rax), %xmm3
leaq 0x29577b(%rip), %rax    # 0x30ca00
movsd (%rax), %xmm1
leaq 0x295788(%rip), %rax    # 0x30ca18
movsd (%rax), %xmm0
movsd %xmm0, 0x2f9a74(%rip)   # 0x370d10
movsd %xmm0, 0x2f9a64(%rip)   # 0x370d08
leaq 0x29550d(%rip), %rax    # 0x30c7b8
movsd %xmm2, (%rax)
leaq 0x29550a(%rip), %rax    # 0x30c7c0
movsd %xmm3, (%rax)
leaq 0x29573f(%rip), %r12    # 0x30ca00
leaq 0x1c59fc(%rip), %rax    # 0x23ccc4
cmpl $0x0, (%rax)
movsd %xmm1, (%r12)
leaq 0x1a15f8(%rip), %rax    # 0x2188d0
movq (%rax), %rax
leaq 0x1c70b6(%rip), %rcx    # 0x23e398
jne 0x7732f
cmpq $0x10000, %rax          # imm = 0x10000
je 0x7732f
cmpq $0x0, (%rcx)
jne 0x7732f
leaq 0x296fe7(%rip), %rcx    # 0x30e2e0
cmpl $0x0, 0x1e114(%rcx)
sete %dl
cmpl $0x0, 0x1e110(%rcx)
setle %cl
orb %dl, %cl
cmpb $0x1, %cl
jne 0x7732f
leaq 0x1a3f19(%rip), %rcx    # 0x21b234
cmpb $0x0, (%rcx)
jne 0x7732f
callq 0x77f10
leaq 0x1a15a4(%rip), %rax    # 0x2188d0
movq (%rax), %rax
leaq 0x2956e2(%rip), %r13    # 0x30ca18
movsd (%r13), %xmm1
leaq 0x295c3d(%rip), %rdi    # 0x30cf80
movsd %xmm1, (%rdi)
leaq 0x1a3fbe(%rip), %rcx    # 0x21b30c
cmpb $0x0, (%rcx)
setne %cl
leaq 0x1c7be3(%rip), %r15    # 0x23ef3e
cmpb $0x0, (%r15)
sete %dl
cmpq $0x8, %rax
setne %sil
andb %cl, %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x773c1
movsd 0x2f9992(%rip), %xmm2   # 0x370d10
movsd 0x2f9982(%rip), %xmm3   # 0x370d08
mulsd 0xa6eda(%rip), %xmm3    # 0x11e268
movsd 0x91d12(%rip), %xmm0    # 0x1090a8
mulsd %xmm2, %xmm0
addsd %xmm3, %xmm0
movsd %xmm0, (%r13)
movapd 0x91de4(%rip), %xmm3    # 0x109190
andpd %xmm0, %xmm3
ucomisd 0x91ca8(%rip), %xmm3    # 0x109060
movsd -0x38(%rbp), %xmm3
ja 0x773de
jmp 0x773e8
leaq 0x295e84(%rip), %rcx    # 0x30d24c
cmpl $0x0, (%rcx)
movapd %xmm1, %xmm0
movsd -0x38(%rbp), %xmm3
je 0x773e8
movsd 0x2f9932(%rip), %xmm2   # 0x370d10
movsd %xmm2, (%r13)
movapd %xmm2, %xmm0
xorpd %xmm2, %xmm2
ucomisd %xmm2, %xmm1
jne 0x773f8
jp 0x773f8
movsd %xmm0, (%rdi)
testl %ebx, %ebx
movsd -0x58(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
je 0x77427
leaq 0x295bc3(%rip), %rcx    # 0x30cfd0
movsd %xmm3, (%rcx)
leaq 0x295bc0(%rip), %rcx    # 0x30cfd8
movsd %xmm1, (%rcx)
leaq 0x295bbd(%rip), %rcx    # 0x30cfe0
movsd %xmm2, (%rcx)
leaq 0xe6902(%rip), %rbx     # 0x15dd30
movsd 0x2e0(%rbx), %xmm1
ucomisd 0x91cd2(%rip), %xmm1    # 0x109110
jne 0x77459
jp 0x77459
callq 0x131c9
movsd %xmm0, 0x2e0(%rbx)
leaq 0x1a147a(%rip), %rax    # 0x2188d0
movq (%rax), %rax
leaq 0x296e80(%rip), %r14    # 0x30e2e0
cmpl $0x0, 0x225d4(%r14)
sete %cl
cmpl $0x0, 0x225d0(%r14)
setle %dl
leaq 0x1ac18f(%rip), %rsi    # 0x22360c
cmpl $0x0, (%rsi)
sete %sil
cmpl $0x0, 0x225cc(%r14)
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
jne 0x774a5
orb %dl, %cl
je 0x774a5
cmpq $0x80000, %rax          # imm = 0x80000
jne 0x774d1
movsd 0xea8(%rbx), %xmm0
ucomisd 0x91c5b(%rip), %xmm0    # 0x109110
jne 0x774d1
jp 0x774d1
leaq 0x2956e0(%rip), %rax    # 0x30cba0
movsd (%rax), %xmm0
callq 0x132fb
movsd %xmm0, 0xea8(%rbx)
movsd 0x1f8(%rbx), %xmm0
ucomisd 0x91c2f(%rip), %xmm0    # 0x109110
jne 0x774f3
jp 0x774f3
movsd (%r12), %xmm0
movsd %xmm0, 0x1f8(%rbx)
cmpb $0x0, (%r15)
je 0x7759d
movsd 0x768(%rbx), %xmm0
ucomisd 0x91c03(%rip), %xmm0    # 0x109110
jne 0x7752f
jp 0x7752f
leaq 0x1a3cf0(%rip), %rax    # 0x21b208
movsd (%rax), %xmm0
callq 0x131c9
movsd %xmm0, 0x768(%rbx)
cmpb $0x0, (%r15)
je 0x7759d
movsd 0x28(%rbx), %xmm0
ucomisd 0x91bd4(%rip), %xmm0    # 0x109110
jne 0x77563
jp 0x77563
leaq 0x295271(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm0
leaq 0x1a135e(%rip), %rax    # 0x2188b0
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x28(%rbx)
movsd 0x3c8(%rbx), %xmm0
ucomisd 0x91b9d(%rip), %xmm0    # 0x109110
jne 0x7759d
jp 0x7759d
leaq 0x29523a(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm0
leaq 0x1a132f(%rip), %rax    # 0x2188b8
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x3c8(%rbx)
leaq 0x2968e8(%rip), %r12    # 0x30de8c
cmpl $0x64, (%r12)
jne 0x775b5
leaq 0x2968ef(%rip), %rax    # 0x30dea1
movb $0x0, (%rax)
leaq 0x295c1c(%rip), %rax    # 0x30d1d8
movl (%rax), %eax
andl $0x20, %eax
cmpl 0x2f47f1(%rip), %eax    # 0x36bdb8
je 0x775ee
leaq 0x2968cc(%rip), %rcx    # 0x30de9c
cmpl $0x0, (%rcx)
jne 0x775ee
leaq 0x2968bc(%rip), %rcx    # 0x30de98
cmpb $0x0, (%rcx)
jne 0x775ee
leaq 0x1a125c(%rip), %rcx    # 0x218844
movl $0x7da, (%rcx)          # imm = 0x7DA
movl %eax, 0x2f47c4(%rip)    # 0x36bdb8
callq 0xfb374
leaq 0x2c8044(%rip), %rax    # 0x33f644
cmpl $0x0, (%rax)
je 0x77645
movsd (%r13), %xmm1
cvttpd2dq %xmm1, %xmm0
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm1
addsd 0xa6c51(%rip), %xmm1    # 0x11e270
ucomisd 0xa6c51(%rip), %xmm1    # 0x11e278
jae 0x77637
movsd 0xa6c4f(%rip), %xmm2    # 0x11e280
ucomisd %xmm1, %xmm2
jbe 0x77645
addsd 0xa6c49(%rip), %xmm0    # 0x11e288
movsd %xmm0, (%r13)
leaq 0x1c7924(%rip), %rax    # 0x23ef70
cmpl $0x0, (%rax)
je 0x776a6
leaq 0x2952f0(%rip), %rax    # 0x30c948
movsd (%rax), %xmm0
leaq 0x295155(%rip), %rax    # 0x30c7b8
movsd %xmm0, (%rax)
leaq 0x2952e2(%rip), %rax    # 0x30c950
movsd (%rax), %xmm0
leaq 0x295147(%rip), %rax    # 0x30c7c0
movsd %xmm0, (%rax)
leaq 0x2958ec(%rip), %rax    # 0x30cf70
movsd (%rax), %xmm0
leaq 0x295371(%rip), %rax    # 0x30ca00
movsd %xmm0, (%rax)
leaq 0x2958e6(%rip), %rax    # 0x30cf80
movsd (%rax), %xmm0
movsd %xmm0, (%r13)
jmp 0x7771d
leaq 0x1a1257(%rip), %rax    # 0x218904
cmpb $0x0, (%rax)
jne 0x776e8
leaq 0x1a1217(%rip), %rax    # 0x2188d0
movq (%rax), %rax
leaq 0x1a3911(%rip), %rcx    # 0x21afd4
movl (%rcx), %ecx
cmpq $0x1, %rax
jne 0x77cda
cmpl $0x41, %ecx
jne 0x77cda
leaq 0x1a1219(%rip), %rdx    # 0x2188f8
cmpl $0x47, (%rdx)
jne 0x77cda
leaq 0x295d1e(%rip), %rax    # 0x30d40d
movb $0x1, (%rax)
callq 0xfdeb1
leaq 0x2959d2(%rip), %r15    # 0x30d0d0
movb (%r15), %al
leaq 0x295d04(%rip), %r14    # 0x30d40c
cmpb (%r14), %al
je 0x7771a
movl $0x14, %edi
callq 0xdb2e0
movb (%r15), %al
movb %al, (%r14)
leaq 0x1c7818(%rip), %rax    # 0x23ef3c
cmpb $0x0, (%rax)
je 0x77768
leaq 0x295a20(%rip), %rax    # 0x30d150
movsd (%rax), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x77768
jp 0x77768
leaq 0x2966b1(%rip), %rcx    # 0x30ddf8
testb $0x8, (%rcx)
jne 0x77768
leaq 0x2952ad(%rip), %rcx    # 0x30ca00
movsd (%rcx), %xmm0
movsd %xmm0, (%rax)
leaq 0x295b9e(%rip), %rax    # 0x30d300
movl $0x1, (%rax)
leaq 0x1c776d(%rip), %rax    # 0x23eedc
cmpb $0x0, (%rax)
je 0x7779b
leaq 0x1c7769(%rip), %rax    # 0x23eee4
cmpl $0x0, (%rax)
jne 0x7779b
movl $0x1, (%rax)
leaq 0x29502b(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm0
mulsd 0x919af(%rip), %xmm0    # 0x109148
jmp 0x777a6
leaq 0x1a3a6e(%rip), %rax    # 0x21b210
movsd (%rax), %xmm0
leaq 0x295013(%rip), %rax    # 0x30c7c0
movsd (%rax), %xmm1
mulsd 0x9198f(%rip), %xmm1    # 0x109148
addsd %xmm0, %xmm1
leaq 0x1a3a4c(%rip), %rax    # 0x21b210
movsd %xmm1, (%rax)
callq 0x106795
callq 0x1068d3
callq 0x107731
leaq 0x1a10f2(%rip), %rax    # 0x2188d0
cmpq $0x8, (%rax)
sete %al
leaq 0x1a37f4(%rip), %rcx    # 0x21afe0
cmpl $0x53, (%rcx)
sete %cl
andb %al, %cl
cmpl $0x65, (%r12)
setl %r14b
orb %cl, %r14b
jne 0x7780a
movl $0x64, (%r12)
leaq 0x1c54b3(%rip), %rax    # 0x23ccc4
cmpl $0x0, (%rax)
je 0x7785b
leaq 0x295ef3(%rip), %rax    # 0x30d710
movsd (%rax), %xmm0
leaq 0x295ef0(%rip), %rax    # 0x30d718
subsd (%rax), %xmm0
movsd %xmm0, -0x38(%rbp)
leaq 0x296698(%rip), %rax    # 0x30ded0
movsd (%rax), %xmm0
mulsd 0x9180c(%rip), %xmm0    # 0x109050
callq 0x77e50
movsd -0x38(%rbp), %xmm0
mulsd 0x917fa(%rip), %xmm0    # 0x109050
callq 0x77eb0
leaq 0x1a3772(%rip), %rax    # 0x21afd4
cmpl $0x53, (%rax)
leaq 0x295194(%rip), %r12    # 0x30ca00
jne 0x7789c
movl 0x2f456c(%rip), %eax    # 0x36bde0
cmpl 0x2f4576(%rip), %eax    # 0x36bdf0
jne 0x7789c
movl 0x2f4562(%rip), %eax    # 0x36bde4
cmpl 0x2f456c(%rip), %eax    # 0x36bdf4
jne 0x7789c
movl 0x2f4558(%rip), %eax    # 0x36bde8
cmpl 0x2f4562(%rip), %eax    # 0x36bdf8
je 0x7796a
leaq 0x1c6b73(%rip), %rax    # 0x23e416
cmpb $0x0, (%rax)
jne 0x778fd
leaq 0x295c2d(%rip), %rax    # 0x30d4dc
movl (%rax), %esi
leaq 0x295c20(%rip), %rax    # 0x30d4d8
movl (%rax), %edx
leaq 0x295c13(%rip), %rax    # 0x30d4d4
movl (%rax), %ecx
leaq 0x295c06(%rip), %rax    # 0x30d4d0
movl (%rax), %r8d
leaq 0x295bf8(%rip), %rax    # 0x30d4cc
movl (%rax), %r9d
leaq 0x295bea(%rip), %rax    # 0x30d4c8
movl (%rax), %eax
leaq 0x295bf9(%rip), %rdi    # 0x30d4e0
movsd (%rdi), %xmm1
movl %eax, (%rsp)
movsd 0x9177a(%rip), %xmm0    # 0x109070
xorl %edi, %edi
callq 0xd4213
leaq 0x1c6afc(%rip), %r15    # 0x23e400
movq (%r15), %rax
incq %rax
movq %rax, (%r15)
leaq 0x1a3a94(%rip), %rcx    # 0x21b3a8
cmpq (%rcx), %rax
jl 0x77942
leaq 0x1c6ae8(%rip), %rax    # 0x23e408
cmpl $0x0, (%rax)
jne 0x7793b
leaq 0x1c6a34(%rip), %rax    # 0x23e360
movq (%rax), %rdi
movq $-0x1, %rsi
callq 0xce3cf
movq $0x0, (%r15)
leaq 0x1c6a1f(%rip), %r15    # 0x23e368
movq (%r15), %rdi
testq %rdi, %rdi
je 0x7796a
leaq 0x29601c(%rip), %rax    # 0x30d974
cmpl $0x0, (%rax)
je 0x7796a
callq 0xc6a83
movq (%r15), %rdi
callq 0xcf52b
movl 0x2f4470(%rip), %eax    # 0x36bde0
movl %eax, 0x2f447a(%rip)    # 0x36bdf0
movl 0x2f4468(%rip), %eax    # 0x36bde4
movl %eax, 0x2f4472(%rip)    # 0x36bdf4
movl 0x2f4460(%rip), %eax    # 0x36bde8
movl %eax, 0x2f446a(%rip)    # 0x36bdf8
leaq 0x1c6a43(%rip), %rax    # 0x23e3d8
cmpl $0x0, (%rax)
je 0x779a9
leaq 0x1c75cf(%rip), %rax    # 0x23ef70
movl $0x0, (%rax)
jmp 0x779c3
leaq 0x1c75c0(%rip), %rax    # 0x23ef70
cmpl $0x0, (%rax)
setne %al
xorb $0x1, %r14b
orb %al, %r14b
jne 0x77cb4
leaq 0x294dee(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm0
leaq 0x294f73(%rip), %rax    # 0x30c948
movsd %xmm0, (%rax)
leaq 0x294de0(%rip), %rax    # 0x30c7c0
movsd (%rax), %xmm0
leaq 0x294f65(%rip), %rax    # 0x30c950
movsd %xmm0, (%rax)
movsd (%r13), %xmm0
leaq 0x2951ac(%rip), %rax    # 0x30cba8
movsd (%rax), %xmm1
leaq 0x295211(%rip), %rax    # 0x30cc18
movsd %xmm1, (%rax)
leaq 0x29519e(%rip), %rax    # 0x30cbb0
movsd (%rax), %xmm1
leaq 0x295203(%rip), %rax    # 0x30cc20
movsd %xmm1, (%rax)
leaq 0x295190(%rip), %rax    # 0x30cbb8
movsd (%rax), %xmm1
leaq 0x2951f5(%rip), %rax    # 0x30cc28
movsd %xmm1, (%rax)
leaq 0x295192(%rip), %rax    # 0x30cbd0
movsd (%rax), %xmm1
leaq 0x2951e7(%rip), %rax    # 0x30cc30
movsd %xmm1, (%rax)
leaq 0x295184(%rip), %rax    # 0x30cbd8
movsd (%rax), %xmm1
leaq 0x2951d9(%rip), %rax    # 0x30cc38
movsd %xmm1, (%rax)
leaq 0x295176(%rip), %rax    # 0x30cbe0
movsd (%rax), %xmm1
leaq 0x2951cb(%rip), %rax    # 0x30cc40
movsd %xmm1, (%rax)
leaq 0x295168(%rip), %rax    # 0x30cbe8
movsd (%rax), %xmm1
leaq 0x2951bd(%rip), %rax    # 0x30cc48
movsd %xmm1, (%rax)
leaq 0x295102(%rip), %rax    # 0x30cb98
movsd (%rax), %xmm1
leaq 0x29511f(%rip), %rax    # 0x30cbc0
movsd %xmm1, (%rax)
leaq 0x2950f4(%rip), %rax    # 0x30cba0
movsd (%rax), %xmm1
leaq 0x295111(%rip), %rax    # 0x30cbc8
movsd %xmm1, (%rax)
movsd 0x2c8(%rbx), %xmm1
mulsd %xmm1, %xmm0
movsd 0x2f0(%rbx), %xmm2
divsd %xmm2, %xmm0
cvttsd2si %xmm0, %rax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd (%r12), %xmm3
mulsd %xmm2, %xmm0
divsd %xmm1, %xmm0
leaq 0x295483(%rip), %rax    # 0x30cf78
movsd 0x1e0(%rbx), %xmm1
movsd 0x208(%rbx), %xmm2
mulsd %xmm1, %xmm3
divsd %xmm2, %xmm3
cvttsd2si %xmm3, %rcx
xorps %xmm3, %xmm3
cvtsi2sd %rcx, %xmm3
movsd %xmm0, (%rax)
mulsd %xmm2, %xmm3
divsd %xmm1, %xmm3
leaq 0x295443(%rip), %rax    # 0x30cf70
movsd %xmm3, (%rax)
leaq 0x2956b0(%rip), %rax    # 0x30d1e8
cmpb $0x0, (%rax)
jne 0x77b64
movb $0x1, (%rax)
leaq 0x295689(%rip), %rax    # 0x30d1d0
movl (%rax), %eax
leaq 0x295684(%rip), %rcx    # 0x30d1d4
movl %eax, (%rcx)
leaq 0x29567f(%rip), %rax    # 0x30d1d8
movl (%rax), %eax
leaq 0x29567a(%rip), %rcx    # 0x30d1dc
movl %eax, (%rcx)
leaq 0x1a36c9(%rip), %rax    # 0x21b234
cmpb $0x0, (%rax)
leaq 0x1c6823(%rip), %rbx    # 0x23e398
jne 0x77b87
leaq 0x1aba92(%rip), %rax    # 0x223610
movl (%rax), %edi
xorl %esi, %esi
callq 0x103d0b
callq 0x72683
callq 0xc1ff4
xorl %edi, %edi
callq 0x78349
callq 0xd2490
leaq 0x29577c(%rip), %rax    # 0x30d320
cmpl $0x0, (%rax)
sete %dl
leaq 0x29576b(%rip), %rcx    # 0x30d31c
movl (%rcx), %ecx
testl %ecx, %ecx
setne %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x77be5
movl %ecx, (%rax)
leaq 0x1a0d05(%rip), %rax    # 0x2188d0
cmpq $0x10000, (%rax)        # imm = 0x10000
je 0x77be5
leaq 0x1c681f(%rip), %rax    # 0x23e3fa
cmpb $0x0, (%rax)
jne 0x77be5
callq 0x3b534
callq 0x78489
callq 0x7821e
callq 0x38f89
leaq 0x2c8171(%rip), %rax    # 0x33fd6c
cmpl $0x0, (%rax)
je 0x77c0e
leaq 0x2c8151(%rip), %rax    # 0x33fd58
movl (%rax), %edi
callq 0x39e1a
callq 0x78528
movq (%rbx), %rdx
testq %rdx, %rdx
je 0x77cb4
leaq 0x2c45fa(%rip), %rdi    # 0x33c220
movl $0x201, %esi            # imm = 0x201
callq 0x9600
testq %rax, %rax
je 0x77ca6
leaq 0x2c45e4(%rip), %rdi    # 0x33c220
movl $0xd, %esi
callq 0x9100
testq %rax, %rax
je 0x77c4e
movb $0x0, (%rax)
leaq 0x2c45cb(%rip), %rdi    # 0x33c220
movl $0xa, %esi
callq 0x9100
testq %rax, %rax
je 0x77c67
movb $0x0, (%rax)
leaq 0x2c05f2(%rip), %rbx    # 0x338260
leaq 0x2c45ab(%rip), %rsi    # 0x33c220
movq %rbx, %rdi
callq 0x9340
movq %rbx, %rdi
callq 0x9120
leaq 0x2c15d8(%rip), %rcx    # 0x339264
movl %eax, (%rcx)
movl $0xd, %edi
callq 0x788c6
movl $0x1, 0x2f3ff2(%rip)    # 0x36bc94
xorl %eax, %eax
jmp 0x77cab
movl $0x1, %eax
leaq 0x1c672a(%rip), %rcx    # 0x23e3dc
movl %eax, (%rcx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movsd %xmm1, -0x30(%rbp)
leaq 0x29562d(%rip), %rax    # 0x30d2fc
movl $0x1, (%rax)
jmp 0x77092
cmpl $0x41, %ecx
sete %dl
cmpq $0x1, %rax
sete %sil
cmpl $0x50, %ecx
sete %cl
testl $0x800009e4, %eax       # imm = 0x800009E4
jne 0x776e8
orb %cl, %dl
andb %dl, %sil
jne 0x776e8
cmpq $0x10000, %rax          # imm = 0x10000
je 0x776e8
cmpq $0x80000, %rax          # imm = 0x80000
je 0x776e8
leaq 0x1a0be5(%rip), %rcx    # 0x218908
cmpl $0x4c, (%rcx)
jne 0x77d62
leaq 0x1c6669(%rip), %rcx    # 0x23e398
cmpq $0x0, (%rcx)
jne 0x776e8
cmpl $0x0, 0x1e114(%r14)
setne %cl
cmpl $0x0, 0x1e110(%r14)
setg %dl
cmpq $0x8, %rax
je 0x776e8
andb %dl, %cl
je 0x77d6c
jmp 0x776e8
cmpq $0x8, %rax
je 0x776e8
cmpb $0x0, (%r15)
jne 0x776e8
leaq 0x294c83(%rip), %rdx    # 0x30ca00
movsd (%rdx), %xmm1
xorpd %xmm2, %xmm2
ucomisd %xmm2, %xmm1
jne 0x77d9c
jp 0x77d9c
leaq 0x2951dc(%rip), %rcx    # 0x30cf70
movsd (%rcx), %xmm1
movsd %xmm1, (%rdx)
movsd (%r13), %xmm0
ucomisd %xmm2, %xmm0
leaq 0x2951d3(%rip), %rcx    # 0x30cf80
jne 0x77dbb
jp 0x77dbb
movsd (%rcx), %xmm0
movsd %xmm0, (%r13)
testl $0x140018, %eax         # imm = 0x140018
jne 0x77dea
leaq 0x1a3207(%rip), %rcx    # 0x21afd0
cmpl $0x0, (%rcx)
jne 0x77dea
andpd 0x913ba(%rip), %xmm1    # 0x109190
cmpq $0x400000, %rax         # imm = 0x400000
jne 0x77e44
ucomisd 0x93d5a(%rip), %xmm1    # 0x10bb40
ja 0x77dfc
jmp 0x77e12
andpd 0x9139e(%rip), %xmm1    # 0x109190
ucomisd 0x91266(%rip), %xmm1    # 0x109060
jbe 0x77e12
leaq 0x29516d(%rip), %rax    # 0x30cf70
movsd (%rax), %xmm1
leaq 0x294bf2(%rip), %rax    # 0x30ca00
movsd %xmm1, (%rax)
movsd 0xa6476(%rip), %xmm1    # 0x11e290
ucomisd %xmm0, %xmm1
ja 0x77e2e
ucomisd 0x91238(%rip), %xmm0    # 0x109060
jbe 0x776e8
leaq 0x29514b(%rip), %rax    # 0x30cf80
movsd (%rax), %xmm0
movsd %xmm0, (%r13)
jmp 0x776e8
ucomisd 0x9125c(%rip), %xmm1    # 0x1090a8
ja 0x77dfc
jmp 0x77e12