// File: 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
subq $0x90, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
je 0xa3490
leaq 0xe20d2(%rip), %rdi     # 0x18555d
callq 0x7add0
leaq 0x1facc1(%rip), %rax    # 0x29e158
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x1facb5(%rip), %rax    # 0x29e158
movl %ecx, (%rax)
leaq 0x1d6d08(%rip), %rax    # 0x27a1b4
cmpl $0x53, (%rax)
jne 0xa34fc
movl 0x327b01(%rip), %eax    # 0x3cafb8
movl 0x327aff(%rip), %ecx    # 0x3cafbc
addl $0x1, %ecx
subl %ecx, %eax
movl %eax, -0x6c(%rbp)
cmpl $0xfffffc18, -0x6c(%rbp) # imm = 0xFFFFFC18
jge 0xa34d9
movl -0x6c(%rbp), %eax
addl $0x93a80, %eax          # imm = 0x93A80
movl %eax, -0x6c(%rbp)
cmpl $-0x2, -0x6c(%rbp)
jne 0xa34e4
jmp 0xa497d
cmpl $0x0, 0x327ac9(%rip)    # 0x3cafb4
je 0xa34f2
jmp 0xa497d
movl $0x1, 0x327ab8(%rip)    # 0x3cafb4
movl $0x0, -0x1c(%rbp)
cmpl $0x0, -0x4(%rbp)
je 0xa39ee
callq 0x7a510
movb %al, %cl
leaq 0x2c8d95(%rip), %rax    # 0x36c2b0
movb %cl, (%rax)
callq 0x7a510
movb %al, %cl
leaq 0x2c914c(%rip), %rax    # 0x36c677
movb %cl, (%rax)
leaq 0x1d457c(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa357a
leaq 0x1d6c73(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0xa3602
leaq 0x1d6c63(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0xa3602
leaq 0x1d6c53(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0xa3602
leaq 0x1d6c43(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
je 0xa3602
leaq 0x1d452f(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3593
leaq 0x1d6c26(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
je 0xa3602
leaq 0x1d4516(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa35b8
leaq 0x1d6c0d(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa35b8
leaq 0x1d4525(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0xa3602
leaq 0x1d44f1(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa35e9
leaq 0x1d6be8(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa35e9
leaq 0x1d4500(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0xa3602
leaq 0x1d44f4(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0xa3602
leaq 0x1d44c0(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa360c
leaq 0x1d6bb7(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
jne 0xa360c
leaq 0x2c906e(%rip), %rax    # 0x36c677
movb $0x0, (%rax)
callq 0x7a510
movzbl %al, %ecx
leaq 0x2c9a51(%rip), %rax    # 0x36d06c
movl %ecx, (%rax)
leaq 0x2c9a4c(%rip), %rax    # 0x36d070
movl $0x1, (%rax)
callq 0x7a680
movl %eax, %ecx
leaq 0x2c9000(%rip), %rax    # 0x36c638
movl %ecx, (%rax)
callq 0x7a560
movzwl %ax, %ecx
leaq 0x2c8d67(%rip), %rax    # 0x36c3b0
movl %ecx, (%rax)
leaq 0x2c8d66(%rip), %rax    # 0x36c3b8
movl (%rax), %eax
movl %eax, 0x32c896(%rip)    # 0x3cfef0
callq 0x7a560
movzwl %ax, %ecx
leaq 0x2c8d4f(%rip), %rax    # 0x36c3b8
movl %ecx, (%rax)
callq 0x7a510
movzbl %al, %ecx
leaq 0x2c9002(%rip), %rax    # 0x36c67c
movl %ecx, (%rax)
callq 0x7a510
movb %al, %cl
leaq 0x2c8feb(%rip), %rax    # 0x36c675
movb %cl, (%rax)
callq 0x7a510
movb %al, -0x5(%rbp)
callq 0x7a510
movb %al, -0x6(%rbp)
callq 0x7a860
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x40(%rbp)
callq 0x7a860
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x48(%rbp)
callq 0x7a680
movl %eax, %eax
movq %rax, -0x68(%rbp)
callq 0x7a860
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x38(%rbp)
leaq 0x1d440c(%rip), %rax    # 0x277ae4
cmpb $0x0, (%rax)
jne 0xa374c
leaq 0x1d43cc(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3702
leaq 0x1d6ac3(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa3702
leaq 0x1d43db(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0xa374c
leaq 0x1d43a7(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3733
leaq 0x1d6a9e(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa3733
leaq 0x1d43b6(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0xa374c
leaq 0x1d43aa(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0xa374c
leaq 0x1d4376(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa377c
leaq 0x1d6a6d(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa377c
leaq 0x2c8e51(%rip), %rax    # 0x36c5a4
movl $0x1, (%rax)
movsd 0xdf4e7(%rip), %xmm0    # 0x182c48
ucomisd -0x38(%rbp), %xmm0
jbe 0xa377a
movsd 0xcb8b8(%rip), %xmm0    # 0x16f028
mulsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
jmp 0xa3789
leaq 0x2c8d59(%rip), %rax    # 0x36c4dc
movl $0x1, (%rax)
movsd 0x32c757(%rip), %xmm0   # 0x3cfee8
movsd %xmm0, 0x32c747(%rip)   # 0x3cfee0
callq 0x7a860
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x32c73e(%rip)   # 0x3cfee8
movsd 0x32c736(%rip), %xmm0   # 0x3cfee8
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa37bf
jp 0xa37bf
jmp 0xa37cc
leaq 0x2c8c66(%rip), %rax    # 0x36c42c
movl $0x64, (%rax)
movsd 0x32c70c(%rip), %xmm0   # 0x3cfee0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa37ef
jp 0xa37ef
movsd 0x32c701(%rip), %xmm0   # 0x3cfee8
movsd %xmm0, 0x32c6f1(%rip)   # 0x3cfee0
callq 0x7a9d0
movsd %xmm0, -0x50(%rbp)
callq 0x7a9d0
movsd %xmm0, -0x58(%rbp)
callq 0x7a9d0
movsd %xmm0, -0x60(%rbp)
callq 0x7a860
cvtss2sd %xmm0, %xmm0
leaq 0x2c83d3(%rip), %rax    # 0x36bbf0
movsd %xmm0, (%rax)
leaq 0x1d42bc(%rip), %rax    # 0x277ae4
cmpb $0x0, (%rax)
jne 0xa389c
leaq 0x1d427c(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3852
leaq 0x1d6973(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa3852
leaq 0x1d428b(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0xa389c
leaq 0x1d4257(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3883
leaq 0x1d694e(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa3883
leaq 0x1d4266(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0xa389c
leaq 0x1d425a(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0xa389c
leaq 0x1d4226(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa38ac
leaq 0x1d691d(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa38ac
leaq 0x2c834d(%rip), %rax    # 0x36bbf0
movsd (%rax), %xmm0
movsd %xmm0, -0x38(%rbp)
movb $0x0, -0x1d(%rbp)
movl $0x0, -0x18(%rbp)
cmpl $0x4, -0x18(%rbp)
jge 0xa38ec
callq 0x7a510
movb %al, %cl
movslq -0x18(%rbp), %rax
movb %cl, -0x14(%rbp,%rax)
movslq -0x18(%rbp), %rax
cmpb $0x0, -0x14(%rbp,%rax)
je 0xa38df
movb -0x1d(%rbp), %al
addb $0x1, %al
movb %al, -0x1d(%rbp)
jmp 0xa38e1
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xa38b7
movl $0x1, %edi
callq 0x7aee0
leaq 0x2c8b8b(%rip), %rax    # 0x36c488
cmpl $0x0, (%rax)
jne 0xa390f
leaq 0x1d411b(%rip), %rax    # 0x277a24
movl $0x1e15, (%rax)         # imm = 0x1E15
leaq 0x2c8af6(%rip), %rax    # 0x36c40c
movl $0x1, (%rax)
leaq 0x2c8aed(%rip), %rax    # 0x36c410
movl $0x1, (%rax)
leaq 0x2c8ae4(%rip), %rax    # 0x36c414
movl $0x1, (%rax)
leaq 0x2c8adb(%rip), %rax    # 0x36c418
movl $0x1, (%rax)
leaq 0x2c8ada(%rip), %rax    # 0x36c424
movl $0x1, (%rax)
leaq 0x2c8ad1(%rip), %rax    # 0x36c428
movl $0x1, (%rax)
leaq 0x2c8b08(%rip), %rax    # 0x36c46c
movl $0x1, (%rax)
leaq 0x2c8aff(%rip), %rax    # 0x36c470
movl $0x1, (%rax)
leaq 0x2c8afa(%rip), %rax    # 0x36c478
movl $0x1, (%rax)
leaq 0x2c8af1(%rip), %rax    # 0x36c47c
movl $0x1, (%rax)
leaq 0x2c8aec(%rip), %rax    # 0x36c484
movl $0x1, (%rax)
leaq 0x2c8ae3(%rip), %rax    # 0x36c488
movl $0x1, (%rax)
leaq 0x2c8ade(%rip), %rax    # 0x36c490
movl $0x1, (%rax)
leaq 0x2c8ac1(%rip), %rax    # 0x36c480
movl $0x1, (%rax)
callq 0xa4fc0
leaq 0x2f2827(%rip), %rax    # 0x3961f8
cmpb $0x0, (%rax)
je 0xa39db
jmp 0xa497d
leaq 0x1fa76e(%rip), %rax    # 0x29e150
cmpl $0x0, (%rax)
je 0xa39ec
jmp 0xa497d
jmp 0xa3a4e
callq 0xa4fc0
leaq 0x2c7f9e(%rip), %rax    # 0x36b998
movsd (%rax), %xmm0
movsd %xmm0, -0x40(%rbp)
leaq 0x2c7f96(%rip), %rax    # 0x36b9a0
movsd (%rax), %xmm0
movsd %xmm0, -0x48(%rbp)
leaq 0x2c81c6(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
movsd %xmm0, -0x38(%rbp)
leaq 0x2c81ce(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
movsd %xmm0, 0x32c4b2(%rip)   # 0x3cfee8
movsd 0x32c4aa(%rip), %xmm0   # 0x3cfee8
movsd %xmm0, 0x32c49a(%rip)   # 0x3cfee0
movq $0x0, -0x68(%rbp)
movsd -0x40(%rbp), %xmm0
leaq 0x2c7f3e(%rip), %rax    # 0x36b998
movsd %xmm0, (%rax)
movsd -0x48(%rbp), %xmm0
leaq 0x2c7f36(%rip), %rax    # 0x36b9a0
movsd %xmm0, (%rax)
movq -0x68(%rbp), %rax
movl %eax, -0xc(%rbp)
movsd -0x38(%rbp), %xmm0
leaq 0x2c815f(%rip), %rax    # 0x36bbe0
movsd %xmm0, (%rax)
leaq 0x1f8418(%rip), %rax    # 0x29bea4
cmpl $0x0, (%rax)
jne 0xa3ad7
movb $0x1, %al
leaq 0x1d4016(%rip), %rcx    # 0x277ab0
cmpq $0x10000, (%rcx)        # imm = 0x10000
movb %al, -0x79(%rbp)
je 0xa3ab4
callq 0x992e0
cmpl $0x0, %eax
setne %al
movb %al, -0x79(%rbp)
movb -0x79(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0xa3ad7
leaq 0x1d694c(%rip), %rax    # 0x27a414
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa3ad7
xorl %edi, %edi
callq 0xa4ab0
leaq 0x2c811a(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
leaq 0x2c8677(%rip), %rax    # 0x36c160
movsd %xmm0, (%rax)
leaq 0x1d69f8(%rip), %rax    # 0x27a4ec
cmpb $0x0, (%rax)
je 0xa3bae
leaq 0x1fa61a(%rip), %rax    # 0x29e11e
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa3bae
leaq 0x1d3f99(%rip), %rax    # 0x277ab0
cmpq $0x8, (%rax)
je 0xa3bae
movsd 0x32c3bf(%rip), %xmm0   # 0x3cfee8
movsd 0xdf11f(%rip), %xmm1    # 0x182c50
mulsd 0x32c3a7(%rip), %xmm1   # 0x3cfee0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0xcb568(%rip), %xmm2    # 0x16f0c0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
leaq 0x2c8091(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
movsd 0xcb595(%rip), %xmm0    # 0x16f108
leaq 0x2c807e(%rip), %rax    # 0x36bbf8
ucomisd (%rax), %xmm0
ja 0xa3b99
leaq 0x2c8071(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
movsd 0xcb4bd(%rip), %xmm1    # 0x16f050
ucomisd %xmm1, %xmm0
jbe 0xa3bac
movsd 0x32c347(%rip), %xmm0   # 0x3cfee8
leaq 0x2c8050(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
jmp 0xa3bcf
leaq 0x2c8877(%rip), %rax    # 0x36c42c
cmpl $0x0, (%rax)
je 0xa3bcd
movsd 0x32c326(%rip), %xmm0   # 0x3cfee8
leaq 0x2c802f(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
jmp 0xa3bcf
leaq 0x2c858a(%rip), %rax    # 0x36c160
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa3bfb
jp 0xa3bfb
leaq 0x2c800c(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
leaq 0x2c8569(%rip), %rax    # 0x36c160
movsd %xmm0, (%rax)
cmpl $0x0, -0x4(%rbp)
je 0xa3c31
movsd -0x50(%rbp), %xmm0
leaq 0x2c85a3(%rip), %rax    # 0x36c1b0
movsd %xmm0, (%rax)
movsd -0x58(%rbp), %xmm0
leaq 0x2c859b(%rip), %rax    # 0x36c1b8
movsd %xmm0, (%rax)
movsd -0x60(%rbp), %xmm0
leaq 0x2c8593(%rip), %rax    # 0x36c1c0
movsd %xmm0, (%rax)
leaq 0x1190e8(%rip), %rax    # 0x1bcd20
movsd 0x2e0(%rax), %xmm0
movsd 0xcb4e8(%rip), %xmm1    # 0x16f130
ucomisd %xmm1, %xmm0
jne 0xa3c6f
jp 0xa3c6f
leaq 0x2c7fa1(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
callq 0x18060
leaq 0x1190b9(%rip), %rax    # 0x1bcd20
movsd %xmm0, 0x2e0(%rax)
callq 0x83ad0
cmpl $0x0, %eax
je 0xa3cb9
leaq 0x1190a0(%rip), %rax    # 0x1bcd20
movsd 0xea8(%rax), %xmm0
movsd 0xcb4a0(%rip), %xmm1    # 0x16f130
ucomisd %xmm1, %xmm0
jne 0xa3cb7
jp 0xa3cb7
leaq 0x2c80e1(%rip), %rax    # 0x36bd80
movsd (%rax), %xmm0
callq 0x183b0
leaq 0x119071(%rip), %rax    # 0x1bcd20
movsd %xmm0, 0xea8(%rax)
jmp 0xa3cb9
leaq 0x119060(%rip), %rax    # 0x1bcd20
movsd 0x1f8(%rax), %xmm0
movsd 0xcb460(%rip), %xmm1    # 0x16f130
ucomisd %xmm1, %xmm0
jne 0xa3cf2
jp 0xa3cf2
leaq 0x2c7f01(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
leaq 0x119036(%rip), %rax    # 0x1bcd20
movsd %xmm0, 0x1f8(%rax)
leaq 0x1fa425(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0xa3d3c
leaq 0x11901b(%rip), %rax    # 0x1bcd20
movsd 0x768(%rax), %xmm0
movsd 0xcb41b(%rip), %xmm1    # 0x16f130
ucomisd %xmm1, %xmm0
jne 0xa3d3c
jp 0xa3d3c
leaq 0x1d66c4(%rip), %rax    # 0x27a3e8
movsd (%rax), %xmm0
callq 0x18060
leaq 0x118fec(%rip), %rax    # 0x1bcd20
movsd %xmm0, 0x768(%rax)
leaq 0x1fa3db(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0xa3d8e
leaq 0x118fd1(%rip), %rax    # 0x1bcd20
movsd 0x28(%rax), %xmm0
movsd 0xcb3d4(%rip), %xmm1    # 0x16f130
ucomisd %xmm1, %xmm0
jne 0xa3d8e
jp 0xa3d8e
leaq 0x2c7c2d(%rip), %rax    # 0x36b998
movsd (%rax), %xmm0
leaq 0x1d3d1a(%rip), %rax    # 0x277a90
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x118f97(%rip), %rax    # 0x1bcd20
movsd %xmm0, 0x28(%rax)
leaq 0x1fa389(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0xa3de6
leaq 0x118f7f(%rip), %rax    # 0x1bcd20
movsd 0x3c8(%rax), %xmm0
movsd 0xcb37f(%rip), %xmm1    # 0x16f130
ucomisd %xmm1, %xmm0
jne 0xa3de6
jp 0xa3de6
leaq 0x2c7bd8(%rip), %rax    # 0x36b998
movsd (%rax), %xmm0
leaq 0x1d3ccd(%rip), %rax    # 0x277a98
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x118f42(%rip), %rax    # 0x1bcd20
movsd %xmm0, 0x3c8(%rax)
leaq 0x2c927f(%rip), %rax    # 0x36d06c
cmpl $0x64, (%rax)
jne 0xa3dfc
leaq 0x2c9288(%rip), %rax    # 0x36d081
movb $0x0, (%rax)
leaq 0x2c85b5(%rip), %rax    # 0x36c3b8
movl (%rax), %eax
andl $0x20, %eax
cmpl 0x32718a(%rip), %eax    # 0x3caf98
je 0xa3e3d
leaq 0x2c9265(%rip), %rax    # 0x36d07c
cmpl $0x0, (%rax)
je 0xa3e1e
jmp 0xa3e3b
leaq 0x2c9253(%rip), %rax    # 0x36d078
cmpb $0x0, (%rax)
je 0xa3e2c
jmp 0xa3e39
leaq 0x1d3bf1(%rip), %rax    # 0x277a24
movl $0x7da, (%rax)          # imm = 0x7DA
jmp 0xa3e3b
jmp 0xa3e3d
leaq 0x2c8574(%rip), %rax    # 0x36c3b8
movl (%rax), %eax
andl $0x20, %eax
movl %eax, 0x327149(%rip)    # 0x3caf98
callq 0x15a160
leaq 0x2fa9c9(%rip), %rax    # 0x39e824
cmpl $0x0, (%rax)
je 0xa3ee7
leaq 0x2c7d8d(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
leaq 0x2c7d82(%rip), %rax    # 0x36bbf8
cvttsd2si (%rax), %eax
cvtsi2sd %eax, %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x30(%rbp), %xmm0
movsd 0xdedcc(%rip), %xmm1    # 0x182c60
subsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x30(%rbp), %xmm0
movsd 0xdedae(%rip), %xmm1    # 0x182c58
ucomisd %xmm1, %xmm0
jae 0xa3ebf
movsd 0xdedb0(%rip), %xmm0    # 0x182c68
ucomisd -0x30(%rbp), %xmm0
jbe 0xa3ee5
leaq 0x2c7d32(%rip), %rax    # 0x36bbf8
cvttsd2si (%rax), %eax
cvtsi2sd %eax, %xmm0
movsd 0xded8a(%rip), %xmm1    # 0x182c60
addsd %xmm1, %xmm0
leaq 0x2c7d17(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
jmp 0xa3ee7
leaq 0x1fa262(%rip), %rax    # 0x29e150
cmpl $0x0, (%rax)
je 0xa3f50
leaq 0x2c7c2e(%rip), %rax    # 0x36bb28
movsd (%rax), %xmm0
leaq 0x2c7a93(%rip), %rax    # 0x36b998
movsd %xmm0, (%rax)
leaq 0x2c7c20(%rip), %rax    # 0x36bb30
movsd (%rax), %xmm0
leaq 0x2c7a85(%rip), %rax    # 0x36b9a0
movsd %xmm0, (%rax)
leaq 0x2c822a(%rip), %rax    # 0x36c150
movsd (%rax), %xmm0
leaq 0x2c7caf(%rip), %rax    # 0x36bbe0
movsd %xmm0, (%rax)
leaq 0x2c8224(%rip), %rax    # 0x36c160
movsd (%rax), %xmm0
leaq 0x2c7cb1(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
jmp 0xa428a
leaq 0x1d3b8d(%rip), %rax    # 0x277ae4
cmpb $0x0, (%rax)
jne 0xa4002
leaq 0x1d3b49(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3f85
leaq 0x1d6240(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa3f85
leaq 0x1d3b58(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0xa4002
leaq 0x1d3b24(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3fb6
leaq 0x1d621b(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0xa3fb6
leaq 0x1d3b33(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0xa4002
leaq 0x1d3b27(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
je 0xa4002
leaq 0x1d3af3(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3fcf
leaq 0x1d61ea(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
je 0xa4002
leaq 0x1d3ada(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0xa3fe8
leaq 0x1d61d1(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0xa4002
leaq 0x1d3ac1(%rip), %rcx    # 0x277ab0
movabsq $0x800009e4, %rax       # imm = 0x800009E4
andq (%rcx), %rax
cmpq $0x0, %rax
je 0xa4007
jmp 0xa4247
leaq 0x1d3aa2(%rip), %rax    # 0x277ab0
cmpq $0x80000, (%rax)        # imm = 0x80000
jne 0xa401c
jmp 0xa4245
leaq 0x1d3a8d(%rip), %rax    # 0x277ab0
cmpq $0x10000, (%rax)        # imm = 0x10000
jne 0xa4031
jmp 0xa4243
leaq 0x1d3ab0(%rip), %rax    # 0x277ae8
cmpl $0x4c, (%rax)
jne 0xa405c
leaq 0x1d3a6c(%rip), %rax    # 0x277ab0
cmpq $0x10000, (%rax)        # imm = 0x10000
je 0xa4057
callq 0x992e0
cmpl $0x0, %eax
je 0xa405c
jmp 0xa4241
leaq 0x1d3a4d(%rip), %rax    # 0x277ab0
cmpq $0x8, (%rax)
jne 0xa406e
jmp 0xa423f
leaq 0x1d3a6f(%rip), %rax    # 0x277ae4
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa423d
leaq 0x1fa096(%rip), %rax    # 0x29e11e
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa423b
leaq 0x2c7b45(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa40c0
jp 0xa40c0
leaq 0x2c809f(%rip), %rax    # 0x36c150
movsd (%rax), %xmm0
leaq 0x2c7b24(%rip), %rax    # 0x36bbe0
movsd %xmm0, (%rax)
leaq 0x2c7b31(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa40ec
jp 0xa40ec
leaq 0x2c8083(%rip), %rax    # 0x36c160
movsd (%rax), %xmm0
leaq 0x2c7b10(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
leaq 0x1d39bd(%rip), %rax    # 0x277ab0
movq (%rax), %rax
andq $0x140018, %rax         # imm = 0x140018
cmpq $0x0, %rax
jne 0xa410e
leaq 0x1d60a7(%rip), %rax    # 0x27a1b0
cmpl $0x0, (%rax)
je 0xa4157
movsd 0xcaff2(%rip), %xmm0    # 0x16f108
leaq 0x2c7ac3(%rip), %rax    # 0x36bbe0
ucomisd (%rax), %xmm0
ja 0xa413c
leaq 0x2c7ab6(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
movsd 0xcaf1a(%rip), %xmm1    # 0x16f050
ucomisd %xmm1, %xmm0
jbe 0xa4152
leaq 0x2c800d(%rip), %rax    # 0x36c150
movsd (%rax), %xmm0
leaq 0x2c7a92(%rip), %rax    # 0x36bbe0
movsd %xmm0, (%rax)
jmp 0xa41f5
leaq 0x1d3952(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0xa41ad
movsd 0xdeb01(%rip), %xmm0    # 0x182c70
leaq 0x2c7a6a(%rip), %rax    # 0x36bbe0
ucomisd (%rax), %xmm0
ja 0xa4195
leaq 0x2c7a5d(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
movsd 0xcaf39(%rip), %xmm1    # 0x16f0c8
ucomisd %xmm1, %xmm0
jbe 0xa41ab
leaq 0x2c7fb4(%rip), %rax    # 0x36c150
movsd (%rax), %xmm0
leaq 0x2c7a39(%rip), %rax    # 0x36bbe0
movsd %xmm0, (%rax)
jmp 0xa41f3
movsd 0xcaf5b(%rip), %xmm0    # 0x16f110
leaq 0x2c7a24(%rip), %rax    # 0x36bbe0
ucomisd (%rax), %xmm0
ja 0xa41db
leaq 0x2c7a17(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
movsd 0xcaeeb(%rip), %xmm1    # 0x16f0c0
ucomisd %xmm1, %xmm0
jbe 0xa41f1
leaq 0x2c7f6e(%rip), %rax    # 0x36c150
movsd (%rax), %xmm0
leaq 0x2c79f3(%rip), %rax    # 0x36bbe0
movsd %xmm0, (%rax)
jmp 0xa41f3
jmp 0xa41f5
movsd 0xdea7b(%rip), %xmm0    # 0x182c78
leaq 0x2c79f4(%rip), %rax    # 0x36bbf8
ucomisd (%rax), %xmm0
ja 0xa4223
leaq 0x2c79e7(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
movsd 0xcae33(%rip), %xmm1    # 0x16f050
ucomisd %xmm1, %xmm0
jbe 0xa4239
leaq 0x2c7f36(%rip), %rax    # 0x36c160
movsd (%rax), %xmm0
leaq 0x2c79c3(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
jmp 0xa423b
jmp 0xa423d
jmp 0xa423f
jmp 0xa4241
jmp 0xa4243
jmp 0xa4245
jmp 0xa4247
leaq 0x2c839f(%rip), %rax    # 0x36c5ed
movb $0x1, (%rax)
callq 0x15d950
leaq 0x2c8053(%rip), %rax    # 0x36c2b0
movzbl (%rax), %eax
leaq 0x2c8385(%rip), %rcx    # 0x36c5ec
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0xa4278
movl $0x14, %edi
callq 0x12bcc0
leaq 0x2c8031(%rip), %rax    # 0x36c2b0
movb (%rax), %cl
leaq 0x2c8364(%rip), %rax    # 0x36c5ec
movb %cl, (%rax)
leaq 0x1f9e8b(%rip), %rax    # 0x29e11c
cmpb $0x0, (%rax)
je 0xa42e0
leaq 0x2c8093(%rip), %rax    # 0x36c330
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa42e0
jp 0xa42e0
leaq 0x2c8d25(%rip), %rax    # 0x36cfd8
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0xa42e0
leaq 0x2c791c(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
leaq 0x2c8061(%rip), %rax    # 0x36c330
movsd %xmm0, (%rax)
leaq 0x2c8206(%rip), %rax    # 0x36c4e0
movl $0x1, (%rax)
leaq 0x1f9dd5(%rip), %rax    # 0x29e0bc
cmpb $0x0, (%rax)
je 0xa4323
leaq 0x1f9dd1(%rip), %rax    # 0x29e0c4
cmpl $0x0, (%rax)
jne 0xa4323
leaq 0x1f9dc5(%rip), %rax    # 0x29e0c4
movl $0x1, (%rax)
movsd 0xcae5b(%rip), %xmm0    # 0x16f168
leaq 0x2c7684(%rip), %rax    # 0x36b998
mulsd (%rax), %xmm0
leaq 0x1d60d1(%rip), %rax    # 0x27a3f0
movsd %xmm0, (%rax)
leaq 0x2c7676(%rip), %rax    # 0x36b9a0
movsd (%rax), %xmm0
leaq 0x1d60bb(%rip), %rax    # 0x27a3f0
movsd (%rax), %xmm1
movsd 0xcae27(%rip), %xmm2    # 0x16f168
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
leaq 0x1d60a0(%rip), %rax    # 0x27a3f0
movsd %xmm0, (%rax)
callq 0x16a810
callq 0x16a9e0
callq 0x16bec0
movb $0x0, -0x1e(%rbp)
leaq 0x1d3742(%rip), %rax    # 0x277ab0
cmpq $0x8, (%rax)
jne 0xa4382
leaq 0x1d5e45(%rip), %rax    # 0x27a1c0
cmpl $0x53, (%rax)
jne 0xa4382
jmp 0xa43a1
leaq 0x2c8ce3(%rip), %rax    # 0x36d06c
cmpl $0x64, (%rax)
jle 0xa439f
leaq 0x2c8cd7(%rip), %rax    # 0x36d06c
movl $0x64, (%rax)
movb $0x1, -0x1e(%rbp)
jmp 0xa43a1
leaq 0x1f7afc(%rip), %rax    # 0x29bea4
cmpl $0x0, (%rax)
je 0xa43f2
leaq 0x2c853c(%rip), %rax    # 0x36c8f0
movsd (%rax), %xmm0
leaq 0x2c8539(%rip), %rax    # 0x36c8f8
subsd (%rax), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xcac70(%rip), %xmm0    # 0x16f040
leaq 0x2c8cd9(%rip), %rax    # 0x36d0b0
mulsd (%rax), %xmm0
callq 0xa4990
movsd 0xcac58(%rip), %xmm0    # 0x16f040
mulsd -0x28(%rbp), %xmm0
callq 0xa4a20
leaq 0x1d5dbb(%rip), %rax    # 0x27a1b4
cmpl $0x53, (%rax)
jne 0xa442d
movl 0x326bbc(%rip), %eax    # 0x3cafc0
cmpl 0x326bc6(%rip), %eax    # 0x3cafd0
jne 0xa442d
movl 0x326bb2(%rip), %eax    # 0x3cafc4
cmpl 0x326bbc(%rip), %eax    # 0x3cafd4
jne 0xa442d
movl 0x326ba8(%rip), %eax    # 0x3cafc8
cmpl 0x326bb2(%rip), %eax    # 0x3cafd8
jne 0xa442d
jmp 0xa451e
leaq 0x1f91c2(%rip), %rax    # 0x29d5f6
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa4491
leaq 0x2c8279(%rip), %rax    # 0x36c6bc
movl (%rax), %esi
leaq 0x2c826c(%rip), %rax    # 0x36c6b8
movl (%rax), %edx
leaq 0x2c825f(%rip), %rax    # 0x36c6b4
movl (%rax), %ecx
leaq 0x2c8252(%rip), %rax    # 0x36c6b0
movl (%rax), %r8d
leaq 0x2c8244(%rip), %rax    # 0x36c6ac
movl (%rax), %r9d
leaq 0x2c8236(%rip), %rax    # 0x36c6a8
movl (%rax), %eax
leaq 0x2c8245(%rip), %rdi    # 0x36c6c0
movsd (%rdi), %xmm1
xorl %edi, %edi
movsd 0xcabdf(%rip), %xmm0    # 0x16f068
movl %eax, (%rsp)
callq 0x1218e0
leaq 0x1f9148(%rip), %rax    # 0x29d5e0
movq (%rax), %rax
addq $0x1, %rax
leaq 0x1f913a(%rip), %rcx    # 0x29d5e0
movq %rax, (%rcx)
leaq 0x1d60d8(%rip), %rcx    # 0x27a588
cmpq (%rcx), %rax
jl 0xa44e5
leaq 0x1f912c(%rip), %rax    # 0x29d5e8
cmpl $0x0, (%rax)
jne 0xa44d7
leaq 0x1f9078(%rip), %rax    # 0x29d540
movq (%rax), %rdi
movq $-0x1, %rsi
callq 0x119980
leaq 0x1f9102(%rip), %rax    # 0x29d5e0
movq $0x0, (%rax)
leaq 0x1f905c(%rip), %rax    # 0x29d548
cmpq $0x0, (%rax)
je 0xa451c
leaq 0x2c865b(%rip), %rax    # 0x36cb54
cmpl $0x0, (%rax)
je 0xa451c
leaq 0x1f9043(%rip), %rax    # 0x29d548
movq (%rax), %rdi
callq 0x110780
leaq 0x1f9034(%rip), %rax    # 0x29d548
movq (%rax), %rdi
callq 0x11b570
jmp 0xa451e
movl 0x326a9c(%rip), %eax    # 0x3cafc0
movl %eax, 0x326aa6(%rip)    # 0x3cafd0
movl 0x326a94(%rip), %eax    # 0x3cafc4
movl %eax, 0x326a9e(%rip)    # 0x3cafd4
movl 0x326a8c(%rip), %eax    # 0x3cafc8
movl %eax, 0x326a96(%rip)    # 0x3cafd8
leaq 0x1f906f(%rip), %rax    # 0x29d5b8
cmpl $0x0, (%rax)
je 0xa455f
movb $0x0, -0x1e(%rbp)
leaq 0x1f9bf7(%rip), %rax    # 0x29e150
movl $0x0, (%rax)
leaq 0x1f9bea(%rip), %rax    # 0x29e150
cmpl $0x0, (%rax)
je 0xa4570
jmp 0xa497d
cmpb $0x0, -0x1e(%rbp)
je 0xa457b
jmp 0xa497d
leaq 0x2c7416(%rip), %rax    # 0x36b998
movsd (%rax), %xmm0
leaq 0x2c759b(%rip), %rax    # 0x36bb28
movsd %xmm0, (%rax)
leaq 0x2c7408(%rip), %rax    # 0x36b9a0
movsd (%rax), %xmm0
leaq 0x2c758d(%rip), %rax    # 0x36bb30
movsd %xmm0, (%rax)
leaq 0x2c7632(%rip), %rax    # 0x36bbe0
movsd (%rax), %xmm0
leaq 0x2c7b97(%rip), %rax    # 0x36c150
movsd %xmm0, (%rax)
leaq 0x2c7634(%rip), %rax    # 0x36bbf8
movsd (%rax), %xmm0
leaq 0x2c7b89(%rip), %rax    # 0x36c158
movsd %xmm0, (%rax)
leaq 0x2c77ae(%rip), %rax    # 0x36bd88
movsd (%rax), %xmm0
leaq 0x2c7813(%rip), %rax    # 0x36bdf8
movsd %xmm0, (%rax)
leaq 0x2c77a0(%rip), %rax    # 0x36bd90
movsd (%rax), %xmm0
leaq 0x2c7805(%rip), %rax    # 0x36be00
movsd %xmm0, (%rax)
leaq 0x2c7792(%rip), %rax    # 0x36bd98
movsd (%rax), %xmm0
leaq 0x2c77f7(%rip), %rax    # 0x36be08
movsd %xmm0, (%rax)
leaq 0x2c7794(%rip), %rax    # 0x36bdb0
movsd (%rax), %xmm0
leaq 0x2c77e9(%rip), %rax    # 0x36be10
movsd %xmm0, (%rax)
leaq 0x2c7786(%rip), %rax    # 0x36bdb8
movsd (%rax), %xmm0
leaq 0x2c77db(%rip), %rax    # 0x36be18
movsd %xmm0, (%rax)
leaq 0x2c7778(%rip), %rax    # 0x36bdc0
movsd (%rax), %xmm0
leaq 0x2c77cd(%rip), %rax    # 0x36be20
movsd %xmm0, (%rax)
leaq 0x2c776a(%rip), %rax    # 0x36bdc8
movsd (%rax), %xmm0
leaq 0x2c77bf(%rip), %rax    # 0x36be28
movsd %xmm0, (%rax)
leaq 0x2c7704(%rip), %rax    # 0x36bd78
movsd (%rax), %xmm0
leaq 0x2c7721(%rip), %rax    # 0x36bda0
movsd %xmm0, (%rax)
leaq 0x2c76f6(%rip), %rax    # 0x36bd80
movsd (%rax), %xmm0
leaq 0x2c7713(%rip), %rax    # 0x36bda8
movsd %xmm0, (%rax)
leaq 0x118680(%rip), %rax    # 0x1bcd20
movsd 0x2c8(%rax), %xmm0
leaq 0x2c7aa9(%rip), %rax    # 0x36c158
mulsd (%rax), %xmm0
leaq 0x2c7a9e(%rip), %rax    # 0x36c158
movsd %xmm0, (%rax)
leaq 0x2c7a93(%rip), %rax    # 0x36c158
movsd (%rax), %xmm0
leaq 0x118650(%rip), %rax    # 0x1bcd20
divsd 0x2f0(%rax), %xmm0
cvttsd2si %xmm0, %rax
cvtsi2sd %rax, %xmm0
leaq 0x118637(%rip), %rax    # 0x1bcd20
mulsd 0x2f0(%rax), %xmm0
leaq 0x2c7a60(%rip), %rax    # 0x36c158
movsd %xmm0, (%rax)
leaq 0x11861d(%rip), %rax    # 0x1bcd20
movsd 0x2c8(%rax), %xmm1
leaq 0x2c7a46(%rip), %rax    # 0x36c158
movsd (%rax), %xmm0
divsd %xmm1, %xmm0
leaq 0x2c7a37(%rip), %rax    # 0x36c158
movsd %xmm0, (%rax)
leaq 0x1185f4(%rip), %rax    # 0x1bcd20
movsd 0x1e0(%rax), %xmm0
leaq 0x2c7a15(%rip), %rax    # 0x36c150
mulsd (%rax), %xmm0
leaq 0x2c7a0a(%rip), %rax    # 0x36c150
movsd %xmm0, (%rax)
leaq 0x2c79ff(%rip), %rax    # 0x36c150
movsd (%rax), %xmm0
leaq 0x1185c4(%rip), %rax    # 0x1bcd20
divsd 0x208(%rax), %xmm0
cvttsd2si %xmm0, %rax
cvtsi2sd %rax, %xmm0
leaq 0x1185ab(%rip), %rax    # 0x1bcd20
mulsd 0x208(%rax), %xmm0
leaq 0x2c79cc(%rip), %rax    # 0x36c150
movsd %xmm0, (%rax)
leaq 0x118591(%rip), %rax    # 0x1bcd20
movsd 0x1e0(%rax), %xmm1
leaq 0x2c79b2(%rip), %rax    # 0x36c150
movsd (%rax), %xmm0
divsd %xmm1, %xmm0
leaq 0x2c79a3(%rip), %rax    # 0x36c150
movsd %xmm0, (%rax)
leaq 0x2c7c10(%rip), %rax    # 0x36c3c8
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa47ee
leaq 0x2c7c01(%rip), %rax    # 0x36c3c8
movb $0x1, (%rax)
leaq 0x2c7bdf(%rip), %rax    # 0x36c3b0
movl (%rax), %ecx
leaq 0x2c7bda(%rip), %rax    # 0x36c3b4
movl %ecx, (%rax)
leaq 0x2c7bd5(%rip), %rax    # 0x36c3b8
movl (%rax), %ecx
leaq 0x2c7bd0(%rip), %rax    # 0x36c3bc
movl %ecx, (%rax)
leaq 0x1d5c1f(%rip), %rax    # 0x27a414
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa480d
leaq 0x1ddfec(%rip), %rax    # 0x2827f0
movl (%rax), %edi
xorl %esi, %esi
callq 0x166ba0
callq 0x9c6d0
callq 0x10ae40
xorl %edi, %edi
callq 0xa51c0
callq 0x11f550
leaq 0x2c7cd6(%rip), %rax    # 0x36c500
cmpl $0x0, (%rax)
jne 0xa4877
leaq 0x2c7cc6(%rip), %rax    # 0x36c4fc
cmpl $0x0, (%rax)
je 0xa4877
leaq 0x2c7cba(%rip), %rax    # 0x36c4fc
movl (%rax), %ecx
leaq 0x2c7cb5(%rip), %rax    # 0x36c500
movl %ecx, (%rax)
leaq 0x1d325c(%rip), %rax    # 0x277ab0
cmpq $0x10000, (%rax)        # imm = 0x10000
jne 0xa485f
jmp 0xa4875
leaq 0x1f8d74(%rip), %rax    # 0x29d5da
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa4873
callq 0x53870
jmp 0xa4875
jmp 0xa4877
callq 0xa5350
callq 0xa5080
callq 0x4ffe0
leaq 0x2fa6bf(%rip), %rax    # 0x39ef4c
cmpl $0x0, (%rax)
je 0xa48a0
leaq 0x2fa69f(%rip), %rax    # 0x39ef38
movl (%rax), %edi
callq 0x51730
callq 0xa5490
leaq 0x1f8ccc(%rip), %rax    # 0x29d578
cmpq $0x0, (%rax)
je 0xa497d
leaq 0x1f8cbb(%rip), %rax    # 0x29d578
movq (%rax), %rdx
leaq 0x2f6b39(%rip), %rdi    # 0x39b400
movl $0x201, %esi            # imm = 0x201
callq 0x95e0
cmpq $0x0, %rax
je 0xa496e
leaq 0x2f6b1e(%rip), %rdi    # 0x39b400
movl $0xd, %esi
callq 0x9100
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
je 0xa48fe
movq -0x78(%rbp), %rax
movb $0x0, (%rax)
leaq 0x2f6afb(%rip), %rdi    # 0x39b400
movl $0xa, %esi
callq 0x9100
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
je 0xa4921
movq -0x78(%rbp), %rax
movb $0x0, (%rax)
leaq 0x2f2b18(%rip), %rdi    # 0x397440
leaq 0x2f6ad1(%rip), %rsi    # 0x39b400
callq 0x9350
leaq 0x2f2b05(%rip), %rdi    # 0x397440
callq 0x9120
movl %eax, %ecx
leaq 0x2f3afb(%rip), %rax    # 0x398444
movl %ecx, (%rax)
movl $0xd, %edi
callq 0xa5990
movl $0x1, 0x326515(%rip)    # 0x3cae74
leaq 0x1f8c56(%rip), %rax    # 0x29d5bc
movl $0x0, (%rax)
jmp 0xa497b
leaq 0x1f8c47(%rip), %rax    # 0x29d5bc
movl $0x1, (%rax)
jmp 0xa497d
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)