// File: /workspace/github_cpp_makefile_star2_O1/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 0x77077
leaq 0xab17b(%rip), %rdi     # 0x1221ed
callq 0x58e77
leaq 0x1c7efa(%rip), %rax    # 0x23ef78
incl (%rax)
leaq 0x1a3f4d(%rip), %r12    # 0x21afd4
cmpl $0x53, (%r12)
jne 0x770cf
movl 0x2f4d44(%rip), %eax    # 0x36bdd8
movl 0x2f4d42(%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 0x77f1d
cmpl $0x0, 0x2f4d15(%rip)    # 0x36bdd4
jne 0x77f1d
movl $0x1, 0x2f4d05(%rip)    # 0x36bdd4
testl %ebx, %ebx
je 0x77471
callq 0x587d1
cmpl $0x100, %eax            # imm = 0x100
jb 0x770ed
leaq 0x1c7e86(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
leaq 0x295fdc(%rip), %rcx    # 0x30d0d0
movb %al, (%rcx)
callq 0x587d1
cmpl $0x100, %eax            # imm = 0x100
jb 0x7710c
leaq 0x1c7e67(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
leaq 0x296384(%rip), %rcx    # 0x30d497
movb %al, (%rcx)
leaq 0x1a17b4(%rip), %r14    # 0x2188d0
movq (%r14), %rax
cmpq $0x1, %rax
jne 0x7713b
movl (%r12), %edx
addl $-0x33, %edx
cmpl $0x1d, %edx
ja 0x7713b
movl $0x20004009, %esi       # imm = 0x20004009
btl %edx, %esi
jb 0x77157
movl (%r12), %esi
cmpl $0x41, %esi
sete %dl
cmpl $0x50, %esi
sete %sil
cmpq $0x1, %rax
jne 0x7715a
orb %sil, %dl
je 0x7715a
movb $0x0, (%rcx)
callq 0x587d1
cmpl $0x100, %eax            # imm = 0x100
jb 0x77170
leaq 0x1c7e03(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
movzbl %al, %eax
leaq 0x296d12(%rip), %rcx    # 0x30de8c
movl %eax, (%rcx)
leaq 0x296d0d(%rip), %rax    # 0x30de90
movl $0x1, (%rax)
callq 0x589b0
leaq 0x2962c3(%rip), %rcx    # 0x30d458
movl %eax, (%rcx)
callq 0x588f0
movzwl %ax, %eax
leaq 0x29602a(%rip), %rcx    # 0x30d1d0
movl %eax, (%rcx)
leaq 0x296029(%rip), %r15    # 0x30d1d8
movl (%r15), %eax
movl %eax, 0x2f9b60(%rip)    # 0x370d18
callq 0x588f0
movzwl %ax, %eax
movl %eax, (%r15)
callq 0x587d1
cmpl $0x100, %eax            # imm = 0x100
jb 0x771d9
leaq 0x1c7d9a(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
movzbl %al, %eax
leaq 0x2962b9(%rip), %rcx    # 0x30d49c
movl %eax, (%rcx)
callq 0x587d1
cmpl $0x100, %eax            # imm = 0x100
jb 0x771fb
leaq 0x1c7d78(%rip), %rcx    # 0x23ef70
orb $0x8, (%rcx)
leaq 0x296293(%rip), %rcx    # 0x30d495
movb %al, (%rcx)
callq 0x587d1
cmpl $0x100, %eax            # imm = 0x100
jb 0x7721a
leaq 0x1c7d59(%rip), %rax    # 0x23ef70
orb $0x8, (%rax)
callq 0x587d1
cmpl $0x100, %eax            # imm = 0x100
jb 0x77230
leaq 0x1c7d43(%rip), %rax    # 0x23ef70
orb $0x8, (%rax)
callq 0x58aae
movss %xmm0, -0x40(%rbp)
callq 0x58aae
movss %xmm0, -0x38(%rbp)
callq 0x589b0
callq 0x58aae
cvtss2sd %xmm0, %xmm1
leaq 0x1a16ab(%rip), %r15    # 0x218904
cmpb $0x0, (%r15)
jne 0x77287
cmpq $0x1, (%r14)
sete %cl
cmpl $0x41, (%r12)
sete %al
andb %cl, %al
leaq 0x1a1681(%rip), %rcx    # 0x2188f8
movl (%rcx), %ecx
cmpl $0x47, %ecx
sete %dl
testb %dl, %al
je 0x77eb3
leaq 0x296136(%rip), %rax    # 0x30d3c4
movl $0x1, (%rax)
movsd 0xa6f1c(%rip), %xmm0    # 0x11e1b8
ucomisd %xmm1, %xmm0
jbe 0x772aa
mulsd 0x91d7e(%rip), %xmm1    # 0x109028
movsd %xmm1, -0x30(%rbp)
movsd 0x2f9a59(%rip), %xmm0   # 0x370d10
movsd %xmm0, 0x2f9a49(%rip)   # 0x370d08
callq 0x58aae
xorps %xmm1, %xmm1
cvtss2sd %xmm0, %xmm1
movsd %xmm1, 0x2f9a3d(%rip)   # 0x370d10
xorps %xmm2, %xmm2
ucomiss %xmm2, %xmm0
jne 0x772dd
jnp 0x772ea
leaq 0x295f68(%rip), %rax    # 0x30d24c
movl $0x64, (%rax)
movsd 0x2f9a16(%rip), %xmm0   # 0x370d08
xorps %xmm2, %xmm2
ucomisd %xmm2, %xmm0
jne 0x77305
jp 0x77305
movsd %xmm1, 0x2f9a03(%rip)   # 0x370d08
callq 0x58b86
movsd %xmm0, -0x50(%rbp)
callq 0x58b86
movsd %xmm0, -0x48(%rbp)
callq 0x58b86
movsd %xmm0, -0x58(%rbp)
callq 0x58aae
cvtss2sd %xmm0, %xmm0
leaq 0x2956dd(%rip), %rax    # 0x30ca10
movsd %xmm0, (%rax)
cmpb $0x0, (%r15)
jne 0x77365
cmpq $0x1, (%r14)
sete %cl
cmpl $0x41, (%r12)
sete %al
andb %cl, %al
leaq 0x1a15a3(%rip), %rcx    # 0x2188f8
movl (%rcx), %ecx
cmpl $0x47, %ecx
sete %dl
testb %dl, %al
je 0x77ee8
movsd %xmm0, -0x30(%rbp)
xorps %xmm0, %xmm0
cvtss2sd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
xorps %xmm0, %xmm0
cvtss2sd -0x38(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movl $0x4, %r15d
leaq 0x1c7bdf(%rip), %r14    # 0x23ef70
callq 0x587d1
cmpl $0x100, %eax            # imm = 0x100
jb 0x773a1
orb $0x8, (%r14)
decl %r15d
jne 0x77391
xorl %edi, %edi
callq 0x58f50
leaq 0x295ef4(%rip), %rax    # 0x30d2a8
cmpl $0x0, (%rax)
jne 0x773c6
leaq 0x1a1484(%rip), %rcx    # 0x218844
movl $0x1e15, (%rcx)         # imm = 0x1E15
leaq 0x295e5f(%rip), %rcx    # 0x30d22c
movl $0x1, %edx
movl %edx, (%rcx)
leaq 0x295e55(%rip), %rcx    # 0x30d230
movl %edx, (%rcx)
leaq 0x295e50(%rip), %rcx    # 0x30d234
movl %edx, (%rcx)
leaq 0x295e4b(%rip), %rcx    # 0x30d238
movl %edx, (%rcx)
leaq 0x295e4e(%rip), %rcx    # 0x30d244
movl %edx, (%rcx)
leaq 0x295e49(%rip), %rcx    # 0x30d248
movl %edx, (%rcx)
leaq 0x295e84(%rip), %rcx    # 0x30d28c
movl %edx, (%rcx)
leaq 0x295e7f(%rip), %rcx    # 0x30d290
movl %edx, (%rcx)
leaq 0x295e7e(%rip), %rcx    # 0x30d298
movl %edx, (%rcx)
leaq 0x295e79(%rip), %rcx    # 0x30d29c
movl %edx, (%rcx)
leaq 0x295e78(%rip), %rcx    # 0x30d2a4
movl %edx, (%rcx)
movl %edx, (%rax)
leaq 0x295e79(%rip), %rax    # 0x30d2b0
movl %edx, (%rax)
leaq 0x295e60(%rip), %rax    # 0x30d2a0
movl %edx, (%rax)
callq 0x7841c
leaq 0x2bfbca(%rip), %rax    # 0x337018
cmpb $0x0, (%rax)
movsd -0x30(%rbp), %xmm1
movsd -0x40(%rbp), %xmm2
movsd -0x38(%rbp), %xmm3
jne 0x77f1d
cmpl $0x0, (%r14)
je 0x774b2
jmp 0x77f1d
callq 0x7841c
leaq 0x29533b(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm2
leaq 0x295338(%rip), %rax    # 0x30c7c0
movsd (%rax), %xmm3
leaq 0x29556d(%rip), %rax    # 0x30ca00
movsd (%rax), %xmm1
leaq 0x29557a(%rip), %rax    # 0x30ca18
movsd (%rax), %xmm0
movsd %xmm0, 0x2f9866(%rip)   # 0x370d10
movsd %xmm0, 0x2f9856(%rip)   # 0x370d08
leaq 0x2952ff(%rip), %rax    # 0x30c7b8
movsd %xmm2, (%rax)
leaq 0x2952fc(%rip), %rax    # 0x30c7c0
movsd %xmm3, (%rax)
leaq 0x295531(%rip), %r14    # 0x30ca00
movsd %xmm1, (%r14)
leaq 0x1c57e9(%rip), %rax    # 0x23ccc4
cmpl $0x0, (%rax)
jne 0x77531
leaq 0x1a13e9(%rip), %rcx    # 0x2188d0
xorl %eax, %eax
cmpq $0x10000, (%rcx)        # imm = 0x10000
je 0x7751c
leaq 0x1c6e9f(%rip), %rcx    # 0x23e398
cmpq $0x0, (%rcx)
jne 0x7751c
leaq 0x296dda(%rip), %rax    # 0x30e2e0
cmpl $0x0, 0x1e114(%rax)
sete %cl
cmpl $0x0, 0x1e110(%rax)
setle %al
orb %cl, %al
testb %al, %al
je 0x77531
leaq 0x1a3d0d(%rip), %rax    # 0x21b234
cmpb $0x0, (%rax)
jne 0x77531
callq 0x78195
leaq 0x2954e0(%rip), %r12    # 0x30ca18
movsd (%r12), %xmm0
leaq 0x295a3b(%rip), %rcx    # 0x30cf80
movsd %xmm0, (%rcx)
leaq 0x1a3dbc(%rip), %rax    # 0x21b30c
cmpb $0x0, (%rax)
leaq 0x1c79e4(%rip), %r15    # 0x23ef3e
leaq 0x1a136f(%rip), %rax    # 0x2188d0
je 0x775bb
cmpb $0x0, (%r15)
jne 0x775bb
cmpq $0x8, (%rax)
je 0x775bb
movsd 0x2f9799(%rip), %xmm1   # 0x370d10
movsd 0x2f9789(%rip), %xmm2   # 0x370d08
mulsd 0xa6c39(%rip), %xmm2    # 0x11e1c0
movsd 0x91b19(%rip), %xmm3    # 0x1090a8
mulsd %xmm1, %xmm3
addsd %xmm2, %xmm3
movsd %xmm3, (%r12)
andpd 0x91bdb(%rip), %xmm3    # 0x109180
ucomisd 0x91ab3(%rip), %xmm3    # 0x109060
movsd -0x50(%rbp), %xmm2
movsd -0x48(%rbp), %xmm3
ja 0x775d9
jmp 0x775df
leaq 0x295c8a(%rip), %rax    # 0x30d24c
cmpl $0x0, (%rax)
movsd -0x50(%rbp), %xmm2
movsd -0x48(%rbp), %xmm3
je 0x775df
movsd 0x2f9737(%rip), %xmm1   # 0x370d10
movsd %xmm1, (%r12)
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x775f5
jp 0x775f5
movsd (%r12), %xmm0
movsd %xmm0, (%rcx)
testl %ebx, %ebx
movsd -0x58(%rbp), %xmm0
je 0x7761f
leaq 0x2959cb(%rip), %rax    # 0x30cfd0
movsd %xmm2, (%rax)
leaq 0x2959c8(%rip), %rax    # 0x30cfd8
movsd %xmm3, (%rax)
leaq 0x2959c5(%rip), %rax    # 0x30cfe0
movsd %xmm0, (%rax)
leaq 0xe670a(%rip), %rbx     # 0x15dd30
movsd 0x2e0(%rbx), %xmm0
ucomisd 0x91ada(%rip), %xmm0    # 0x109110
jne 0x7764d
jp 0x7764d
movsd (%r12), %xmm0
callq 0x1325e
movsd %xmm0, 0x2e0(%rbx)
leaq 0x296c8c(%rip), %r13    # 0x30e2e0
cmpl $0x0, 0x225d4(%r13)
sete %al
cmpl $0x0, 0x225d0(%r13)
setle %cl
leaq 0x1abf9b(%rip), %rdx    # 0x22360c
cmpl $0x0, (%rdx)
sete %dl
cmpl $0x0, 0x225cc(%r13)
sete %sil
orb %dl, %sil
cmpb $0x1, %sil
jne 0x776a0
orb %cl, %al
je 0x776a0
leaq 0x1a1239(%rip), %rax    # 0x2188d0
cmpq $0x80000, (%rax)        # imm = 0x80000
jne 0x776cc
movsd 0xea8(%rbx), %xmm0
ucomisd 0x91a60(%rip), %xmm0    # 0x109110
jne 0x776cc
jp 0x776cc
leaq 0x2954e5(%rip), %rax    # 0x30cba0
movsd (%rax), %xmm0
callq 0x13390
movsd %xmm0, 0xea8(%rbx)
movsd 0x1f8(%rbx), %xmm0
ucomisd 0x91a34(%rip), %xmm0    # 0x109110
jne 0x776ed
jp 0x776ed
movsd (%r14), %xmm0
movsd %xmm0, 0x1f8(%rbx)
cmpb $0x0, (%r15)
je 0x7771f
movsd 0x768(%rbx), %xmm0
ucomisd 0x91a0d(%rip), %xmm0    # 0x109110
jne 0x7771f
jp 0x7771f
leaq 0x1a3afa(%rip), %rax    # 0x21b208
movsd (%rax), %xmm0
callq 0x1325e
movsd %xmm0, 0x768(%rbx)
movb (%r15), %al
testb %al, %al
je 0x77798
movsd 0x28(%rbx), %xmm0
ucomisd 0x919dd(%rip), %xmm0    # 0x109110
jne 0x7775a
jp 0x7775a
leaq 0x29507a(%rip), %rcx    # 0x30c7b8
movsd (%rcx), %xmm0
leaq 0x1a1167(%rip), %rcx    # 0x2188b0
mulsd (%rcx), %xmm0
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x28(%rbx)
testb %al, %al
je 0x77798
movsd 0x3c8(%rbx), %xmm0
ucomisd 0x919a2(%rip), %xmm0    # 0x109110
jne 0x77798
jp 0x77798
leaq 0x29503f(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm0
leaq 0x1a1134(%rip), %rax    # 0x2188b8
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x3c8(%rbx)
leaq 0x2966ed(%rip), %r14    # 0x30de8c
cmpl $0x64, (%r14)
jne 0x777af
leaq 0x2966f5(%rip), %rax    # 0x30dea1
movb $0x0, (%rax)
leaq 0x295a22(%rip), %rax    # 0x30d1d8
movl (%rax), %eax
andl $0x20, %eax
cmpl 0x2f45f7(%rip), %eax    # 0x36bdb8
je 0x777e8
leaq 0x2966d2(%rip), %rcx    # 0x30de9c
cmpl $0x0, (%rcx)
jne 0x777e8
leaq 0x2966c2(%rip), %rcx    # 0x30de98
cmpb $0x0, (%rcx)
jne 0x777e8
leaq 0x1a1062(%rip), %rcx    # 0x218844
movl $0x7da, (%rcx)          # imm = 0x7DA
movl %eax, 0x2f45ca(%rip)    # 0x36bdb8
callq 0xfabd0
leaq 0x2c7e4a(%rip), %rax    # 0x33f644
cmpl $0x0, (%rax)
je 0x7783f
movsd (%r12), %xmm1
cvttpd2dq %xmm1, %xmm0
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm1
addsd 0xa69af(%rip), %xmm1    # 0x11e1c8
ucomisd 0xa69af(%rip), %xmm1    # 0x11e1d0
jae 0x77831
movsd 0xa69ad(%rip), %xmm2    # 0x11e1d8
ucomisd %xmm1, %xmm2
jbe 0x7783f
addsd 0xa69a7(%rip), %xmm0    # 0x11e1e0
movsd %xmm0, (%r12)
leaq 0x1c772a(%rip), %rax    # 0x23ef70
cmpl $0x0, (%rax)
je 0x778a3
leaq 0x2950f6(%rip), %rax    # 0x30c948
movsd (%rax), %xmm0
leaq 0x294f5b(%rip), %rax    # 0x30c7b8
movsd %xmm0, (%rax)
leaq 0x2950e8(%rip), %rax    # 0x30c950
movsd (%rax), %xmm0
leaq 0x294f4d(%rip), %rax    # 0x30c7c0
movsd %xmm0, (%rax)
leaq 0x2956f2(%rip), %rax    # 0x30cf70
movsd (%rax), %xmm0
leaq 0x295177(%rip), %rax    # 0x30ca00
movsd %xmm0, (%rax)
leaq 0x2956ec(%rip), %rax    # 0x30cf80
movsd (%rax), %xmm0
movsd %xmm0, (%r12)
jmp 0x77923
leaq 0x1a105a(%rip), %rax    # 0x218904
cmpb $0x0, (%rax)
jne 0x778ec
leaq 0x1a101a(%rip), %rax    # 0x2188d0
movq (%rax), %rax
cmpq $0x1, %rax
sete %dl
leaq 0x1a370d(%rip), %rcx    # 0x21afd4
movl (%rcx), %ecx
cmpl $0x41, %ecx
sete %sil
andb %dl, %sil
leaq 0x1a101e(%rip), %rdx    # 0x2188f8
movl (%rdx), %edx
cmpl $0x47, %edx
sete %dil
testb %dil, %sil
je 0x77f2c
leaq 0x295b1a(%rip), %rax    # 0x30d40d
movb $0x1, (%rax)
callq 0xfd7d2
leaq 0x2957ce(%rip), %r15    # 0x30d0d0
movb (%r15), %al
leaq 0x295b00(%rip), %r13    # 0x30d40c
cmpb (%r13), %al
je 0x7791c
movl $0x14, %edi
callq 0xdac25
movb (%r15), %al
movb %al, (%r13)
leaq 0x1c7612(%rip), %rax    # 0x23ef3c
cmpb $0x0, (%rax)
leaq 0x1a0f9c(%rip), %r13    # 0x2188d0
je 0x77975
leaq 0x295813(%rip), %rax    # 0x30d150
movsd (%rax), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x77975
jp 0x77975
leaq 0x2964a4(%rip), %rcx    # 0x30ddf8
testb $0x8, (%rcx)
jne 0x77975
leaq 0x2950a0(%rip), %rcx    # 0x30ca00
movsd (%rcx), %xmm0
movsd %xmm0, (%rax)
leaq 0x295991(%rip), %rax    # 0x30d300
movl $0x1, (%rax)
leaq 0x1c7560(%rip), %rax    # 0x23eedc
cmpb $0x0, (%rax)
je 0x779b1
leaq 0x1c755c(%rip), %rax    # 0x23eee4
cmpl $0x0, (%rax)
jne 0x779b1
movl $0x1, (%rax)
leaq 0x294e1e(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm0
mulsd 0xa684a(%rip), %xmm0    # 0x11e1f0
leaq 0x1a3863(%rip), %rax    # 0x21b210
movsd %xmm0, (%rax)
leaq 0x294e08(%rip), %rax    # 0x30c7c0
movsd (%rax), %xmm0
mulsd 0xa682c(%rip), %xmm0    # 0x11e1f0
leaq 0x1a3845(%rip), %rax    # 0x21b210
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
callq 0x10607f
callq 0x1061af
callq 0x10703c
cmpq $0x8, (%r13)
setne %al
leaq 0x1a35ef(%rip), %rcx    # 0x21afe0
cmpl $0x53, (%rcx)
setne %cl
orb %al, %cl
xorl %r15d, %r15d
cmpb $0x1, %cl
jne 0x77a1a
cmpl $0x65, (%r14)
leaq 0x1c52b8(%rip), %rax    # 0x23ccc4
jl 0x77a21
movl $0x64, (%r14)
movb $0x1, %r15b
jmp 0x77a21
leaq 0x1c52a3(%rip), %rax    # 0x23ccc4
cmpl $0x0, (%rax)
je 0x77a6b
leaq 0x295ce3(%rip), %rax    # 0x30d710
movsd (%rax), %xmm0
leaq 0x295ce0(%rip), %rax    # 0x30d718
subsd (%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x296488(%rip), %rax    # 0x30ded0
movsd (%rax), %xmm0
mulsd 0x915fc(%rip), %xmm0    # 0x109050
callq 0x780d5
movsd -0x30(%rbp), %xmm0
mulsd 0x915ea(%rip), %xmm0    # 0x109050
callq 0x78135
leaq 0x1a3562(%rip), %rax    # 0x21afd4
cmpl $0x53, (%rax)
jne 0x77aa5
movl 0x2f4363(%rip), %eax    # 0x36bde0
cmpl 0x2f436d(%rip), %eax    # 0x36bdf0
jne 0x77aa5
movl 0x2f4359(%rip), %eax    # 0x36bde4
cmpl 0x2f4363(%rip), %eax    # 0x36bdf4
jne 0x77aa5
movl 0x2f434f(%rip), %eax    # 0x36bde8
cmpl 0x2f4359(%rip), %eax    # 0x36bdf8
je 0x77b73
leaq 0x1c696a(%rip), %rax    # 0x23e416
cmpb $0x0, (%rax)
jne 0x77b06
leaq 0x295a24(%rip), %rax    # 0x30d4dc
movl (%rax), %esi
leaq 0x295a17(%rip), %rax    # 0x30d4d8
movl (%rax), %edx
leaq 0x295a0a(%rip), %rax    # 0x30d4d4
movl (%rax), %ecx
leaq 0x2959fd(%rip), %rax    # 0x30d4d0
movl (%rax), %r8d
leaq 0x2959ef(%rip), %rax    # 0x30d4cc
movl (%rax), %r9d
leaq 0x2959e1(%rip), %rax    # 0x30d4c8
movl (%rax), %eax
leaq 0x2959f0(%rip), %rdi    # 0x30d4e0
movsd (%rdi), %xmm1
movl %eax, (%rsp)
movsd 0x91571(%rip), %xmm0    # 0x109070
xorl %edi, %edi
callq 0xd3afc
leaq 0x1c68f3(%rip), %r14    # 0x23e400
movq (%r14), %rax
incq %rax
movq %rax, (%r14)
leaq 0x1a388b(%rip), %rcx    # 0x21b3a8
cmpq (%rcx), %rax
jl 0x77b4b
leaq 0x1c68df(%rip), %rax    # 0x23e408
cmpl $0x0, (%rax)
jne 0x77b44
leaq 0x1c682b(%rip), %rax    # 0x23e360
movq (%rax), %rdi
movq $-0x1, %rsi
callq 0xcdd3b
movq $0x0, (%r14)
leaq 0x1c6816(%rip), %r14    # 0x23e368
movq (%r14), %rdi
testq %rdi, %rdi
je 0x77b73
leaq 0x295e13(%rip), %rax    # 0x30d974
cmpl $0x0, (%rax)
je 0x77b73
callq 0xc643a
movq (%r14), %rdi
callq 0xcee9f
movl 0x2f4267(%rip), %eax    # 0x36bde0
movl %eax, 0x2f4271(%rip)    # 0x36bdf0
movl 0x2f425f(%rip), %eax    # 0x36bde4
movl %eax, 0x2f4269(%rip)    # 0x36bdf4
movl 0x2f4257(%rip), %eax    # 0x36bde8
movl %eax, 0x2f4261(%rip)    # 0x36bdf8
leaq 0x1c683a(%rip), %rax    # 0x23e3d8
cmpl $0x0, (%rax)
leaq 0x1c73c8(%rip), %rax    # 0x23ef70
je 0x77bb3
movl $0x0, (%rax)
xorl %r15d, %r15d
testb %r15b, %r15b
leaq 0x294e43(%rip), %rcx    # 0x30ca00
jne 0x77f1d
cmpl $0x0, (%rax)
jne 0x77f1d
leaq 0x294be5(%rip), %rax    # 0x30c7b8
movsd (%rax), %xmm0
leaq 0x294d6a(%rip), %rax    # 0x30c948
movsd %xmm0, (%rax)
leaq 0x294bd7(%rip), %rax    # 0x30c7c0
movsd (%rax), %xmm0
leaq 0x294d5c(%rip), %rax    # 0x30c950
movsd %xmm0, (%rax)
movsd (%rcx), %xmm0
leaq 0x29536d(%rip), %rax    # 0x30cf70
movsd %xmm0, (%rax)
movsd (%r12), %xmm1
leaq 0x295364(%rip), %rcx    # 0x30cf78
movsd %xmm1, (%rcx)
leaq 0x294f89(%rip), %rdx    # 0x30cba8
movsd (%rdx), %xmm2
leaq 0x294fee(%rip), %rdx    # 0x30cc18
movsd %xmm2, (%rdx)
leaq 0x294f7b(%rip), %rdx    # 0x30cbb0
movsd (%rdx), %xmm2
leaq 0x294fe0(%rip), %rdx    # 0x30cc20
movsd %xmm2, (%rdx)
leaq 0x294f6d(%rip), %rdx    # 0x30cbb8
movsd (%rdx), %xmm2
leaq 0x294fd2(%rip), %rdx    # 0x30cc28
movsd %xmm2, (%rdx)
leaq 0x294f6f(%rip), %rdx    # 0x30cbd0
movsd (%rdx), %xmm2
leaq 0x294fc4(%rip), %rdx    # 0x30cc30
movsd %xmm2, (%rdx)
leaq 0x294f61(%rip), %rdx    # 0x30cbd8
movsd (%rdx), %xmm2
leaq 0x294fb6(%rip), %rdx    # 0x30cc38
movsd %xmm2, (%rdx)
leaq 0x294f53(%rip), %rdx    # 0x30cbe0
movsd (%rdx), %xmm2
leaq 0x294fa8(%rip), %rdx    # 0x30cc40
movsd %xmm2, (%rdx)
leaq 0x294f45(%rip), %rdx    # 0x30cbe8
movsd (%rdx), %xmm2
leaq 0x294f9a(%rip), %rdx    # 0x30cc48
movsd %xmm2, (%rdx)
leaq 0x294edf(%rip), %rdx    # 0x30cb98
movsd (%rdx), %xmm2
leaq 0x294efc(%rip), %rdx    # 0x30cbc0
movsd %xmm2, (%rdx)
leaq 0x294ed1(%rip), %rdx    # 0x30cba0
movsd 0x2c8(%rbx), %xmm2
mulsd %xmm2, %xmm1
movsd 0x2f0(%rbx), %xmm3
divsd %xmm3, %xmm1
cvttsd2si %xmm1, %rsi
movsd (%rdx), %xmm1
leaq 0x294ed1(%rip), %rdx    # 0x30cbc8
movsd %xmm1, (%rdx)
xorps %xmm1, %xmm1
cvtsi2sd %rsi, %xmm1
mulsd %xmm3, %xmm1
divsd %xmm2, %xmm1
movsd %xmm1, (%rcx)
movsd 0x1e0(%rbx), %xmm1
movsd 0x208(%rbx), %xmm2
mulsd %xmm1, %xmm0
divsd %xmm2, %xmm0
cvttsd2si %xmm0, %rcx
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
mulsd %xmm2, %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x2954a1(%rip), %rax    # 0x30d1e8
cmpb $0x0, (%rax)
jne 0x77d73
movb $0x1, (%rax)
leaq 0x29547a(%rip), %rax    # 0x30d1d0
movl (%rax), %eax
leaq 0x295475(%rip), %rcx    # 0x30d1d4
movl %eax, (%rcx)
leaq 0x295470(%rip), %rax    # 0x30d1d8
movl (%rax), %eax
leaq 0x29546b(%rip), %rcx    # 0x30d1dc
movl %eax, (%rcx)
leaq 0x1a34ba(%rip), %rax    # 0x21b234
cmpb $0x0, (%rax)
jne 0x77d8f
leaq 0x1ab88a(%rip), %rax    # 0x223610
movl (%rax), %edi
xorl %esi, %esi
callq 0x103663
callq 0x727c3
callq 0xc1a24
xorl %edi, %edi
callq 0x785ce
callq 0xd1ddb
leaq 0x295574(%rip), %rax    # 0x30d320
cmpl $0x0, (%rax)
sete %dl
leaq 0x295563(%rip), %rcx    # 0x30d31c
movl (%rcx), %ecx
testl %ecx, %ecx
setne %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x77de7
movl %ecx, (%rax)
cmpq $0x10000, (%r13)        # imm = 0x10000
je 0x77de7
leaq 0x1c661d(%rip), %rax    # 0x23e3fa
cmpb $0x0, (%rax)
jne 0x77de7
callq 0x3b4bf
callq 0x7870d
callq 0x784a3
callq 0x38eb5
leaq 0x2c7f6f(%rip), %rax    # 0x33fd6c
cmpl $0x0, (%rax)
je 0x77e10
leaq 0x2c7f4f(%rip), %rax    # 0x33fd58
movl (%rax), %edi
callq 0x39d69
callq 0x787ac
leaq 0x1c657c(%rip), %rax    # 0x23e398
movq (%rax), %rdx
testq %rdx, %rdx
je 0x77f1d
leaq 0x2c43f1(%rip), %rdi    # 0x33c220
movl $0x201, %esi            # imm = 0x201
callq 0x9600
testq %rax, %rax
je 0x77f0f
leaq 0x2c43d7(%rip), %rdi    # 0x33c220
movl $0xd, %esi
callq 0x9100
testq %rax, %rax
je 0x77e5b
movb $0x0, (%rax)
leaq 0x2c43be(%rip), %rdi    # 0x33c220
movl $0xa, %esi
callq 0x9100
testq %rax, %rax
je 0x77e74
movb $0x0, (%rax)
leaq 0x2c03e5(%rip), %rbx    # 0x338260
leaq 0x2c439e(%rip), %rsi    # 0x33c220
movq %rbx, %rdi
callq 0x9340
movq %rbx, %rdi
callq 0x9120
leaq 0x2c13cb(%rip), %rcx    # 0x339264
movl %eax, (%rcx)
movl $0xd, %edi
callq 0x78b23
movl $0x1, 0x2f3de5(%rip)    # 0x36bc94
xorl %eax, %eax
jmp 0x77f14
testb %al, %al
je 0x77ed1
cmpl $0x33, %ecx
je 0x77287
cmpl $0x47, %ecx
je 0x77287
testb %al, %al
jne 0x77287
movsd %xmm1, -0x30(%rbp)
leaq 0x29541f(%rip), %rax    # 0x30d2fc
movl $0x1, (%rax)
jmp 0x772af
testb %al, %al
je 0x7736a
cmpl $0x33, %ecx
je 0x77365
cmpl $0x47, %ecx
je 0x77365
testb %al, %al
jne 0x77365
jmp 0x7736a
movl $0x1, %eax
leaq 0x1c64c1(%rip), %rcx    # 0x23e3dc
movl %eax, (%rcx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %sil, %sil
je 0x77f43
cmpl $0x33, %edx
je 0x778ec
cmpl $0x47, %edx
je 0x778ec
cmpl $0x41, %ecx
sete %dl
cmpq $0x1, %rax
sete %sil
cmpl $0x50, %ecx
sete %cl
testl $0x800009e4, %eax       # imm = 0x800009E4
jne 0x778ec
orb %cl, %dl
andb %dl, %sil
jne 0x778ec
cmpq $0x10000, %rax          # imm = 0x10000
je 0x778ec
cmpq $0x80000, %rax          # imm = 0x80000
je 0x778ec
leaq 0x1a097c(%rip), %rcx    # 0x218908
cmpl $0x4c, (%rcx)
jne 0x77fcb
leaq 0x1c6400(%rip), %rdx    # 0x23e398
movb $0x1, %cl
cmpq $0x0, (%rdx)
jne 0x77fb8
cmpl $0x0, 0x1e114(%r13)
setne %dl
cmpl $0x0, 0x1e110(%r13)
setg %cl
andb %dl, %cl
cmpq $0x8, %rax
je 0x778ec
testb %cl, %cl
je 0x77fd5
jmp 0x778ec
cmpq $0x8, %rax
je 0x778ec
cmpb $0x0, (%r15)
jne 0x778ec
leaq 0x294a1a(%rip), %rdx    # 0x30ca00
movsd (%rdx), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0x78005
jp 0x78005
leaq 0x294f73(%rip), %rcx    # 0x30cf70
movsd (%rcx), %xmm1
movsd %xmm1, (%rdx)
movsd (%r12), %xmm1
ucomisd %xmm0, %xmm1
leaq 0x294f6a(%rip), %rcx    # 0x30cf80
jne 0x78024
jp 0x78024
movsd (%rcx), %xmm0
movsd %xmm0, (%r12)
testl $0x140018, %eax         # imm = 0x140018
jne 0x7805e
leaq 0x1a2f9e(%rip), %rcx    # 0x21afd0
cmpl $0x0, (%rcx)
jne 0x7805e
leaq 0x2949c2(%rip), %rcx    # 0x30ca00
movsd (%rcx), %xmm0
andpd 0x91136(%rip), %xmm0    # 0x109180
cmpq $0x400000, %rax         # imm = 0x400000
jne 0x780c9
ucomisd 0x93ade(%rip), %xmm0    # 0x10bb38
ja 0x7807b
jmp 0x78091
leaq 0x29499b(%rip), %rax    # 0x30ca00
movsd (%rax), %xmm0
andpd 0x9110f(%rip), %xmm0    # 0x109180
ucomisd 0x90fe7(%rip), %xmm0    # 0x109060
jbe 0x78091
leaq 0x294eee(%rip), %rax    # 0x30cf70
movsd (%rax), %xmm0
leaq 0x294973(%rip), %rax    # 0x30ca00
movsd %xmm0, (%rax)
movsd (%r12), %xmm0
movsd 0xa6149(%rip), %xmm1    # 0x11e1e8
ucomisd %xmm0, %xmm1
ja 0x780b3
ucomisd 0x90fb3(%rip), %xmm0    # 0x109060
jbe 0x778ec
leaq 0x294ec6(%rip), %rax    # 0x30cf80
movsd (%rax), %xmm0
movsd %xmm0, (%r12)
jmp 0x778ec
ucomisd 0x90fd7(%rip), %xmm0    # 0x1090a8
ja 0x7807b
jmp 0x78091