// File: /workspace/github_cpp_makefile_star2_O3/jkingan[P]ladyheather/heather.cpp
// Function: update_plot(int)
void update_plot(int draw_flag)
{
struct PLOT_Q q;
double v;
DATA_SIZE jitter;
DATA_SIZE sig;

   // add current data values to the plot data queue
   // NEW_RCVR
   //
   // !!!! IF YOU ADD A NEW DEVICE AND STORE OTHER VALUES IN THE PLOT QUEUE
   // YOU MUST ALSO MODIFY write_q_entry() TO SAVE/CALCULATE/RESTORE THEM
   // WHEN IT WRITES A LOG FILE ENTRY !!!!

   q = get_plot_q(plot_q_in);

   // update the plot queue with the current data
   if((have_temperature == 0) && have_lars_temp) {
      q.data[TEMP] += lars_temp;
      plot[TEMP].plot_id = "TEMPL";
   }
   else {
      q.data[TEMP] += temperature;
   }
   q.data[SAT_PLOT] = (DATA_SIZE) sat_count;

   if((have_dac == 0) && (have_sawtooth == 0) && have_lars_dac) {
      q.data[DAC] += lars_dac;
      plot[DAC].units = "";
      plot[DAC].plot_id = "DACL";
      plot[DAC].ref_scale = (DATA_SIZE) 1.0;
   }
   else {
      q.data[DAC] += dac_voltage;
   }

   if(rcvr_type == TICC_RCVR) {
      q.data[PPS]  += (DATA_SIZE) pps_tie;
      q.data[OSC]  += (DATA_SIZE) osc_tie;
      q.data[CHC]  += (DATA_SIZE) chc_tie;  // [SEVEN]
      q.data[CHD]  += (DATA_SIZE) chd_tie;  // [EIGHT]
   }
   else if(((have_pps_offset == 0) || (have_pps_offset == 55)) && have_lars_pps) {
      q.data[PPS]  += (DATA_SIZE) lars_pps;
      q.data[OSC]  += (DATA_SIZE) osc_offset;
      plot[PPS].plot_id = "PPSL";
   }
   else if(rcvr_type == CS_RCVR) {
      q.data[PPS]  += (DATA_SIZE) cs_pump;
      q.data[OSC]  += (DATA_SIZE) cs_emul;
   }
   else if(rcvr_type == LPFRS_RCVR) {
      q.data[PPS]  += (DATA_SIZE) pps_offset;
      q.data[OSC]  += (DATA_SIZE) osc_offset;
   }
   else if(rcvr_type == SRO_RCVR) {
      q.data[PPS]  += (DATA_SIZE) pps_offset;
      q.data[OSC]  += (DATA_SIZE) (((double)sro_fc)*SRO_DDS_STEP*1.0E12/1000.0);
   }
   else if(rcvr_type == THERMO_RCVR) {
      q.data[ADC3]  += (DATA_SIZE) adc3;
      q.data[ADC4]  += (DATA_SIZE) adc4;
   }
   else if((rcvr_type == TIDE_RCVR) && enviro_mode()) {
      q.data[ADC3]  += (DATA_SIZE) adc3;
      q.data[ADC4]  += (DATA_SIZE) adc4;
   }
   else if((rcvr_type == NO_RCVR) && enviro_mode()) {
      q.data[ADC3]  += (DATA_SIZE) adc3;
      q.data[ADC4]  += (DATA_SIZE) adc4;
   }
   else if(luxor) {
      q.data[PPS]  += (DATA_SIZE) pps_offset;
      q.data[OSC]  += (DATA_SIZE) osc_offset;
   }
   else {
      q.data[PPS]  += (DATA_SIZE) pps_offset;
      q.data[OSC]  += (DATA_SIZE) osc_offset;
//    q.data[CHC]  += (DATA_SIZE) chc_offset;  // !!!! not for non TICC_RCVR
//    q.data[CHD]  += (DATA_SIZE) chd_offset;
   }

   if(rcvr_type == CS_RCVR) {
      if(ONE < NUM_PLOTS)   q.data[ONE] += (DATA_SIZE) cs_rfam1;
      if(TWO < NUM_PLOTS)   q.data[TWO] += (DATA_SIZE) cs_rfam2;
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) cs_gain;

      if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) cs_coven;
      if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) cs_qoven;

      if(SIX < NUM_PLOTS)   q.data[SIX] += (DATA_SIZE) cs_pll_dro;
      if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) cs_pll_saw;
      if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) cs_pll_87;
      if(NINE  < NUM_PLOTS) q.data[NINE] += (DATA_SIZE) cs_pll_up;

      q.data[TEN] += (DATA_SIZE) cs_beam;

      q.data[ELEVEN] += (DATA_SIZE) cs_cfield;
      q.data[TWELVE] += (DATA_SIZE) cs_hwi;
      q.data[THIRTEEN] += (DATA_SIZE) cs_msp;
      q.data[FOURTEEN] += (DATA_SIZE) cs_volt_avg;
   }
   else if(rcvr_type == LPFRS_RCVR) {
      if(ONE < NUM_PLOTS) q.data[ONE] += (DATA_SIZE) (lpfrs_dd);
      if(TWO < NUM_PLOTS) q.data[TWO] += (DATA_SIZE) (lpfrs_gg);
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) (lpfrs_hh);

      if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) (lpfrs_ee);
      if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) (lpfrs_cc);
      if(SIX < NUM_PLOTS)   q.data[SIX] += (DATA_SIZE) (lpfrs_bb);
      if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) (lpfrs_aa);
      if(EIGHT < NUM_PLOTS)  q.data[EIGHT] += (DATA_SIZE) (lpfrs_ff);
   }
   else if(rcvr_type == PRS_RCVR) {
      if(ONE < NUM_PLOTS) q.data[ONE] += (DATA_SIZE) (prs_ad[5]);
      if(TWO < NUM_PLOTS) q.data[TWO] += (DATA_SIZE) (prs_ad[6]);
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) (prs_ad[7]);

      if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) (prs_ad[14]);
      if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) (prs_ad_therm);
      if(SIX < NUM_PLOTS)   q.data[SIX] += (DATA_SIZE) (prs_ad_pwr);
      if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) (prs_ad[9]);
      if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) (prs_ad[8]);
      if(NINE  < NUM_PLOTS) q.data[NINE] += (DATA_SIZE) prs_ds1;
      if(TEN  < NUM_PLOTS)  q.data[TEN] += (DATA_SIZE) prs_ds2;
   }
   else if(rcvr_type == SA35_RCVR) {
      if(ONE < NUM_PLOTS) q.data[ONE] += (DATA_SIZE) (sa35_tec);
      if(TWO < NUM_PLOTS) q.data[TWO] += (DATA_SIZE) (sa35_dc);
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) (sa35_rf);

      if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) (sa35_heater);
   }
   else if(rcvr_type == SRO_RCVR) {
      if(ONE < NUM_PLOTS) q.data[ONE] += (DATA_SIZE) (sro_hh);
      if(TWO < NUM_PLOTS) q.data[TWO] += (DATA_SIZE) (sro_ff);
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) (sro_ee);

      if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) (sro_dd);
      if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) (sro_cc);
      if(SIX < NUM_PLOTS)   q.data[SIX] += (DATA_SIZE) (sro_bb);
      if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) (sro_vt);
      if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) (sro_gg);
      if(NINE < NUM_PLOTS)  q.data[NINE] += (DATA_SIZE) (sro_aa); // !!!! reserved value
   }
   else if(rcvr_type == TICC_RCVR) {
      if(ONE < NUM_PLOTS)   q.data[ONE] += (DATA_SIZE) pps_phase;
      if(TWO < NUM_PLOTS)   q.data[TWO] += (DATA_SIZE) osc_phase;
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) chc_phase;
      if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) chd_phase;

      if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) cha_time2;
      if(SIX < NUM_PLOTS)   q.data[SIX] += (DATA_SIZE) chb_time2;
   }
   else if(1 && (rcvr_type == TIDE_RCVR)) {  // we also store tide data in lat/lon/alt/dop plots (along with plots 11/12/13/14)
      if(ONE < NUM_PLOTS)   q.data[ONE] += (DATA_SIZE) lat_tide;
      if(TWO < NUM_PLOTS)   q.data[TWO] += (DATA_SIZE) lon_tide;
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) alt_tide;
      if(SIX < NUM_PLOTS)   q.data[SIX] += (DATA_SIZE) ugals;
      have_lla_queue = 1;
   }
   else if(rcvr_type == UCCM_RCVR) {
      if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) pcorr;
   }
   else if(rcvr_type == X72_RCVR) {
      if(ONE < NUM_PLOTS) q.data[ONE] += (DATA_SIZE) x72_dmvoutc;
      if(TWO < NUM_PLOTS) q.data[TWO] += (DATA_SIZE) x72_dlvoutc;
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) x72_drvoutc;

      if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) x72_dmv2demavg;
      if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) x72_dlvolt;
      if(SIX < NUM_PLOTS)   q.data[SIX] += (DATA_SIZE) x72_dmp17;
      if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) x72_dmp5;
      if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) x72_pres;
      if(NINE < NUM_PLOTS)  q.data[NINE] += (DATA_SIZE) x72_plmp;
      if(TEN < NUM_PLOTS)   q.data[TEN]  += (DATA_SIZE) x72_dhtrvolt;
   }
   else if(rcvr_type == ZYFER_RCVR) {
      if(ONE < NUM_PLOTS)   q.data[ONE] += (DATA_SIZE) zyfer_hefe;
      if(TWO < NUM_PLOTS)   q.data[TWO] += (DATA_SIZE) zyfer_hete;
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) zyfer_hest;
      if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) tfom;
      if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) zyfer_drift;
      if(SIX < NUM_PLOTS)   q.data[SIX] += average_dop();
      if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) zyfer_tdev;
//    if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) zyfer_essn;
   }
   else if(graph_lla || TIMING_RCVR || LLA_RCVR) {
      if(ONE < NUM_PLOTS)   q.data[ONE] += (DATA_SIZE) (lat*RAD_TO_DEG);
      if(TWO < NUM_PLOTS)   q.data[TWO] += (DATA_SIZE) (lon*RAD_TO_DEG);
      if(THREE < NUM_PLOTS) q.data[THREE] += (DATA_SIZE) alt;

      if((lat*RAD_TO_DEG) < min_q_lat) min_q_lat = (lat*RAD_TO_DEG);
      if((lat*RAD_TO_DEG) > max_q_lat) max_q_lat = (lat*RAD_TO_DEG);
      if((lon*RAD_TO_DEG) < min_q_lon) min_q_lon = (lon*RAD_TO_DEG);
      if((lon*RAD_TO_DEG) > max_q_lon) max_q_lon = (lon*RAD_TO_DEG);
      have_lla_queue = 1;

      if((rcvr_type == SCPI_RCVR) || (rcvr_type == UCCM_RCVR) || (rcvr_type == TRUE_RCVR)) {
         if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) tfom;
         if(rcvr_type == TRUE_RCVR) {
            if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) true_debug;
            if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) true_eval;
         }
         else {
            if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) ffom;
         }

         if(rcvr_type == UCCM_RCVR) {
            if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) (ant_v1);
         }
      }
      else if(rcvr_type == BRANDY_RCVR) {
         if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) (freq_trend*1.0E12);
         if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) (avg_phase);
      }
      else if(rcvr_type == RFTG_RCVR) {
         if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) rftg_oscv;
         if(SEVEN < NUM_PLOTS) q.data[SEVEN] += (DATA_SIZE) (ant_v1);
         if(EIGHT < NUM_PLOTS) q.data[EIGHT] += (DATA_SIZE) (ant_v2);
      }
      else {
         if(FOUR < NUM_PLOTS)  q.data[FOUR] += (DATA_SIZE) speed;
         if(FIVE < NUM_PLOTS)  q.data[FIVE] += (DATA_SIZE) heading;
      }

      if((rcvr_type == RFTG_RCVR) || (rcvr_type == UCCM_RCVR)) {  // we use DOP plot for antenna current
         if(SIX < NUM_PLOTS) q.data[SIX] += (DATA_SIZE) ant_ma;
      }
      else {
         if(SIX < NUM_PLOTS) q.data[SIX] += average_dop();
      }
   }
   else {
      if(initial_voltage == (DATA_SIZE) 0.0) v = dac_voltage;
      else                        v = initial_voltage;
      if(luxor) {  // DERIVED_PLOTS !!!!
         if(LUX2 < NUM_PLOTS)    q.data[LUX2] += (DATA_SIZE) lux2;        // ONE
         if(LEDV < NUM_PLOTS)    q.data[LEDV] += (DATA_SIZE) led_v;       // TWO
         if(LEDI < NUM_PLOTS)    q.data[LEDI] += (DATA_SIZE) led_i;       // THREE
         if(PWMHZ < NUM_PLOTS)   q.data[PWMHZ] += (DATA_SIZE) pwm_hz;     // FOUR
         if(TC2 < NUM_PLOTS )    q.data[TC2] += (DATA_SIZE) luxor_tc2;    // FIVE

         if(BLUEHZ < NUM_PLOTS)  q.data[BLUEHZ] += (DATA_SIZE) blue_hz;   // SIX  // color sensor
         if(GREENHZ < NUM_PLOTS) q.data[GREENHZ] += (DATA_SIZE) green_hz; // SEVEN
         if(REDHZ < NUM_PLOTS)   q.data[REDHZ] += (DATA_SIZE) red_hz;     // EIGHT
         if(WHITEHZ < NUM_PLOTS) q.data[WHITEHZ] += (DATA_SIZE) white_hz; // NINE
         if(AUXV < NUM_PLOTS)    q.data[AUXV] += (DATA_SIZE) adc2;        // TEN
         // ELEVEN = BATTW
         // TWELVE = LEDW
         // THIRTEEN = EFF
         // FOURTEEN = CCT
      }
      else {
         if(ONE < NUM_PLOTS) q.data[ONE] += (DATA_SIZE) ((dac_voltage-v)*osc_gain*((DATA_SIZE)1000.0));
         if(TWO < NUM_PLOTS) q.data[TWO] = (DATA_SIZE) ((q.data[OSC]*(DATA_SIZE) 1000.0)-q.data[ONE]);
      }
   }

   if(luxor) ;
   else if(rcvr_type == CS_RCVR) ;
   else if(USES_JIT_PLOTS) goto tide_plots; // device uses plots [NINE] and [TEN]
   else {
      jitter = (DATA_SIZE) (this_time_msec - last_time_msec);  // timing message jitter
      if((rcvr_type == SCPI_RCVR) || (rcvr_type == UCCM_RCVR)) {  // !!!! kludge around STATUS messaage
         if(jitter > (DATA_SIZE) 1800.0) jitter = (DATA_SIZE) 1000.0;
      }

      q.data[MSGJIT] += jitter;                // [NINE]
      q.data[MSGOFS] += (DATA_SIZE) msg_ofs;   // [TEN]

      tide_plots:
      if(enviro_mode() && (rcvr_type != TIDE_RCVR)) {
         q.data[HUMIDITY] += (DATA_SIZE) humidity;
         q.data[PRESSURE] += (DATA_SIZE) pressure;
         q.data[TEMP1] += (DATA_SIZE) tc1;
         q.data[TEMP2] += (DATA_SIZE) tc2;
      }
      else if(plot_prn) {
         q.data[ELEVEN] += (DATA_SIZE) sat[plot_prn].azimuth;
         q.data[TWELVE] += (DATA_SIZE) sat[plot_prn].elevation;
         sig = sat[plot_prn].sig_level;
         if((sig < 0.0) && (plot_prn <= MAX_PRN)) sig = (-sig);
         q.data[THIRTEEN] += sig;
         if(have_phase)      q.data[FOURTEEN] += (DATA_SIZE) sat[plot_prn].code_phase;
         else if(have_range) q.data[FOURTEEN] += (DATA_SIZE) sat[plot_prn].range;
         else                q.data[FOURTEEN] += (DATA_SIZE) ugals;
      }
      else {
         q.data[ELEVEN] += (DATA_SIZE) lat_tide;
         q.data[TWELVE] += (DATA_SIZE) lon_tide;
         q.data[THIRTEEN] += (DATA_SIZE) alt_tide;
         q.data[FOURTEEN] += (DATA_SIZE) ugals;
      }
   }

   if(FFT < NUM_PLOTS+DERIVED_PLOTS) q.data[FFT] = (DATA_SIZE) 0.0;

   q.sat_flags &= SAT_FLAGS;       // preserve flag bits
   if(sat_count > SAT_COUNT_MASK) q.sat_flags |= SAT_COUNT_MASK;   // satellite count
   else                           q.sat_flags |= sat_count;
   q.sat_flags |= (new_const & CONST_CHANGE);            // constellation change
   if(time_flags & TFLAGS_UTC) q.sat_flags |= UTC_TIME;  // UTC/GPS time flag

//if((seconds%10) == 9) q.sat_flags |= TIME_SKIP;

   if((discipline_mode == DIS_MODE_DISABLED) && osc_control_on) ;
   else if(discipline_mode != DIS_MODE_NORMAL) {
      q.sat_flags |= HOLDOVER;
   }

   if(spike_delay) q.sat_flags |= TEMP_SPIKE;

   if(flag_faults && (msg_fault || tsip_error)) q.sat_flags |= TIME_SKIP;

   q.q_jd = jd_utc;

   put_plot_q(plot_q_in, q);

   new_const = 0;

   if(++plot_time < queue_interval) {  // not yet time to draw
      if(draw_flag) refresh_page();    // make sure text parts of screen keep updating
      return;
   }
   plot_time = 0;

   if(review_mode == 0) {
      review = plot_q_count;
   }

   ++view_time;
//!!!!!!!!!! if((view_time >= view_interval) && ((review_mode == 0) || (plot_column < (PLOT_WIDTH-plot_mag)))) {
//!!!!!!!!!! if((view_time >= view_interval) && ((review_mode == 0) || view_all_data || (plot_column < (PLOT_WIDTH-plot_mag)))) {
   if(((view_time >= view_interval) || (view_all_data == 2)) && ((review_mode == 0) || (view_all_data == 2) || (plot_column < (PLOT_WIDTH-plot_mag)))) {
      if(plot_q_in == plot_q_col0) last_q = q;
      add_stat_point(&q);
      last_q = q;
      if(view_all_data == 2) ;
      else if(draw_flag == NO_REFRESH) goto scroll_it;

      plot_entry(plot_q_in);  // plot latest queue entry
      plot_column += plot_mag;
      if(plot_column >= PLOT_WIDTH) {   // it's time to scroll the plot left
         if(view_all_data == 2) {
            view_all(1);
         }
         else {
            plot_column -= (PLOT_SCROLL*plot_mag);
            plot_start = plot_q_in - (((PLOT_WIDTH - PLOT_SCROLL)*view_interval)/plot_mag) - plot_q_out;
            if(plot_start < 0) {
                if(plot_q_full) {
                   plot_start += plot_q_size;
                   if(plot_start < 0) plot_start = 0;
                }
                else plot_start = 0;
            }
            draw_plot(NO_REFRESH);
         }
      }
      else if(off_scale) {  // a graph is now off scale,  redraw the plots to rescale it
         draw_plot(NO_REFRESH);
         off_scale = 0;
      }
      else if(continuous_scroll) draw_plot(NO_REFRESH);
   }
   else {
      scroll_it:
      if(continuous_scroll) draw_plot(NO_REFRESH);
   }
   if(view_time >= view_interval) view_time = 0;


   // prepare queue for next point
   if(++plot_q_count >= plot_q_size) plot_q_count = plot_q_size;
   if(++plot_q_in >= plot_q_size) {
      plot_q_in = 0;
   }
   if(plot_q_in == plot_q_out) {  // plot queue is full
      if(++plot_q_out >= plot_q_size) plot_q_out = 0;
      plot_q_count = plot_q_size;
      plot_q_full = 1;
   }
   clear_plot_entry((long) plot_q_in);

   if(draw_flag) {
      show_title();    // rrrrr
      refresh_page();
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movl %edi, %ebx
movq 0x201a1a(%rip), %rsi    # 0x21b328
leaq -0x178(%rbp), %r14
movq %r14, %rdi
callq 0x100be
leaq -0xc8(%rbp), %r15
movl $0xb0, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x92b0
cmpl $0x0, 0x2f3911(%rip)    # 0x30d24c
movsd 0x28(%r15), %xmm0
jne 0x1996c
cmpl $0x0, 0x2f310e(%rip)    # 0x30ca58
je 0x1996c
addsd 0x2f30f4(%rip), %xmm0   # 0x30ca48
movsd %xmm0, -0xa0(%rbp)
leaq 0xf125a(%rip), %rax     # 0x10abbd
movq %rax, 0x14467e(%rip)    # 0x15dfe8
jmp 0x1997c
addsd 0x2f30a4(%rip), %xmm0   # 0x30ca18
movsd %xmm0, -0xa0(%rbp)
xorps %xmm0, %xmm0
cvtsi2sdl 0x225585(%rip), %xmm0 # 0x23ef0c
movsd %xmm0, -0x20(%rbp)
cmpl $0x0, 0x2f3969(%rip)    # 0x30d2fc
movsd -0xa8(%rbp), %xmm0
jne 0x199ee
cmpl $0x0, 0x2f3a20(%rip)    # 0x30d3c4
jne 0x199ee
cmpl $0x0, 0x2f30a7(%rip)    # 0x30ca54
je 0x199ee
addsd 0x2f3089(%rip), %xmm0   # 0x30ca40
movsd %xmm0, -0xa8(%rbp)
leaq 0x1180d0(%rip), %rax    # 0x131a96
movq %rax, 0x14453b(%rip)    # 0x15df08
leaq 0xf11ef(%rip), %rax     # 0x10abc3
movq %rax, 0x144525(%rip)    # 0x15df00
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x144524(%rip)    # 0x15df10
jmp 0x199fe
addsd 0x2f300a(%rip), %xmm0   # 0x30ca00
movsd %xmm0, -0xa8(%rbp)
movq 0x1feecb(%rip), %rax    # 0x2188d0
cmpq $0x10000, %rax          # imm = 0x10000
jne 0x19a66
movsd 0x223153(%rip), %xmm0   # 0x23cb68
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd 0x22318b(%rip), %xmm0   # 0x23cbb8
addsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd 0x2231c3(%rip), %xmm1   # 0x23cc08
addsd -0x68(%rbp), %xmm1
movsd %xmm1, -0x68(%rbp)
movsd 0x223209(%rip), %xmm1   # 0x23cc60
addsd -0x60(%rbp), %xmm1
movsd %xmm1, -0x60(%rbp)
jmp 0x19bd5
movl 0x2f37cc(%rip), %ecx    # 0x30d238
testl %ecx, %ecx
setne %dl
cmpl $0x37, %ecx
setne %cl
testb %cl, %dl
jne 0x19ac7
cmpl $0x0, 0x2f2fce(%rip)    # 0x30ca50
je 0x19ac7
movsd 0x2f2fac(%rip), %xmm0   # 0x30ca38
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd 0x2f2d1c(%rip), %xmm0   # 0x30c7c0
addsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
leaq 0xf110d(%rip), %rax     # 0x10abc8
movq %rax, 0x14426e(%rip)    # 0x15dd30
jmp 0x19bd5
cmpq $0x7fffff, %rax         # imm = 0x7FFFFF
jle 0x19aed
cmpq $0x800000, %rax         # imm = 0x800000
je 0x19b03
cmpq $0x8000000, %rax        # imm = 0x8000000
je 0x19b68
cmpq $0x10000000, %rax       # imm = 0x10000000
je 0x19b46
jmp 0x19b13
cmpq $0x20000, %rax          # imm = 0x20000
je 0x19ba5
cmpq $0x80000, %rax          # imm = 0x80000
je 0x19b24
jmp 0x19b13
callq 0x5f6cb
testl %eax, %eax
jne 0x19b24
movq 0x1fedbd(%rip), %rax    # 0x2188d0
cmpq $0x400, %rax            # imm = 0x400
jne 0x19b46
callq 0x5f6cb
testl %eax, %eax
je 0x19b46
movsd 0x2f30b4(%rip), %xmm0   # 0x30cbe0
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd 0x2f30a4(%rip), %xmm0   # 0x30cbe8
jmp 0x19bc5
movsd 0x2f2c6a(%rip), %xmm0   # 0x30c7b8
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd 0x2f2c5a(%rip), %xmm0   # 0x30c7c0
jmp 0x19bc5
movsd 0x2f2c48(%rip), %xmm1   # 0x30c7b8
addsd -0xb8(%rbp), %xmm1
xorps %xmm0, %xmm0
cvtsi2sdl 0x2f4035(%rip), %xmm0 # 0x30dbb8
mulsd 0xef5c5(%rip), %xmm0    # 0x109150
mulsd 0xef5c5(%rip), %xmm0    # 0x109158
divsd 0xef49d(%rip), %xmm0    # 0x109038
movsd %xmm1, -0xb8(%rbp)
jmp 0x19bc5
movsd 0x200d63(%rip), %xmm0   # 0x21a910
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd 0x200d83(%rip), %xmm0   # 0x21a948
addsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
movq 0x1fecf4(%rip), %rax    # 0x2188d0
cmpq $0xffffff, %rax         # imm = 0xFFFFFF
jg 0x19c81
cmpq $0x1ffff, %rax          # imm = 0x1FFFF
jle 0x19d17
cmpq $0x20000, %rax          # imm = 0x20000
je 0x19f67
cmpq $0x100000, %rax         # imm = 0x100000
je 0x1a136
cmpq $0x800000, %rax         # imm = 0x800000
jne 0x1a272
movsd 0x2f3428(%rip), %xmm0   # 0x30d048
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2f3418(%rip), %xmm0   # 0x30d050
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x2f3408(%rip), %xmm0   # 0x30d058
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x2f33c8(%rip), %xmm0   # 0x30d030
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movl $0x1, 0x2f3644(%rip)    # 0x30d2c0
jmp 0x1a5d0
cmpq $0x7ffffff, %rax        # imm = 0x7FFFFFF
jle 0x19da6
cmpq $0x8000000, %rax        # imm = 0x8000000
je 0x1a07a
cmpq $0x10000000, %rax       # imm = 0x10000000
je 0x1a1cb
movabsq $0x1000000000, %rcx     # imm = 0x1000000000
cmpq %rcx, %rax
jne 0x1a272
movsd 0x2f2da0(%rip), %xmm0   # 0x30ca60
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2f2da8(%rip), %xmm0   # 0x30ca80
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x2f2d78(%rip), %xmm0   # 0x30ca68
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x2f2d70(%rip), %xmm0   # 0x30ca78
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
jmp 0x1a5d0
cmpq $0x8, %rax
je 0x19e89
cmpq $0x10000, %rax          # imm = 0x10000
jne 0x1a272
movsd 0x2f2ac3(%rip), %xmm0   # 0x30c7f8
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2f2ab3(%rip), %xmm0   # 0x30c800
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x2f2ab3(%rip), %xmm0   # 0x30c818
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x2f2aa3(%rip), %xmm0   # 0x30c820
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x2f2b49(%rip), %xmm0   # 0x30c8d8
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x2f2b3f(%rip), %xmm0   # 0x30c8e0
jmp 0x1a5c6
cmpq $0x1000000, %rax        # imm = 0x1000000
je 0x19e96
cmpq $0x2000000, %rax        # imm = 0x2000000
jne 0x1a272
movsd 0x2010a2(%rip), %xmm0   # 0x21ae68
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2010b2(%rip), %xmm0   # 0x21ae90
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x2010a2(%rip), %xmm0   # 0x21ae98
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x201092(%rip), %xmm0   # 0x21aea0
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x201040(%rip), %xmm0   # 0x21ae60
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x200ff6(%rip), %xmm0   # 0x21ae28
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x200fec(%rip), %xmm0   # 0x21ae30
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x200ff2(%rip), %xmm0   # 0x21ae48
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd 0x200fd8(%rip), %xmm0   # 0x21ae40
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd 0x200fbe(%rip), %xmm0   # 0x21ae38
addsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
jmp 0x1a5d0
movsd 0x2f2b97(%rip), %xmm0   # 0x30ca28
jmp 0x1a263
movsd 0x200d2a(%rip), %xmm0   # 0x21abc8
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x200d1a(%rip), %xmm0   # 0x21abd0
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x200d0a(%rip), %xmm0   # 0x21abd8
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x200d2a(%rip), %xmm0   # 0x21ac10
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x200d68(%rip), %xmm0   # 0x21ac60
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x200d4e(%rip), %xmm0   # 0x21ac58
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x200ccc(%rip), %xmm0   # 0x21abe8
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x200cb2(%rip), %xmm0   # 0x21abe0
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
xorps %xmm0, %xmm0
cvtsi2sdl 0x200be5(%rip), %xmm0 # 0x21ab28
addsd -0x58(%rbp), %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x200bd9(%rip), %xmm1 # 0x21ab2c
movsd %xmm0, -0x58(%rbp)
addsd -0x50(%rbp), %xmm1
movsd %xmm1, -0x50(%rbp)
jmp 0x1a5d0
movsd 0x2009b1(%rip), %xmm0   # 0x21a920
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2009a1(%rip), %xmm0   # 0x21a928
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x200979(%rip), %xmm0   # 0x21a918
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x200981(%rip), %xmm0   # 0x21a938
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x200977(%rip), %xmm0   # 0x21a940
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x200985(%rip), %xmm0   # 0x21a960
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x20097b(%rip), %xmm0   # 0x21a968
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x200971(%rip), %xmm0   # 0x21a970
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd 0x200967(%rip), %xmm0   # 0x21a978
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd 0x2008dd(%rip), %xmm0   # 0x21a900
addsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movsd 0x2008d3(%rip), %xmm0   # 0x21a908
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x200909(%rip), %xmm0   # 0x21a950
addsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x2008ff(%rip), %xmm0   # 0x21a958
addsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0x20092d(%rip), %xmm0   # 0x21a998
addsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
jmp 0x1a5d0
movsd 0x2f3ae6(%rip), %xmm0   # 0x30db68
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2f3ade(%rip), %xmm0   # 0x30db78
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x2f3ace(%rip), %xmm0   # 0x30db80
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x2f3abe(%rip), %xmm0   # 0x30db88
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x2f3ab4(%rip), %xmm0   # 0x30db90
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x2f3aaa(%rip), %xmm0   # 0x30db98
addsd -0x70(%rbp), %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x2f3ada(%rip), %xmm1 # 0x30dbd8
movsd %xmm0, -0x70(%rbp)
addsd -0x68(%rbp), %xmm1
movsd %xmm1, -0x68(%rbp)
movsd 0x2f3a5b(%rip), %xmm0   # 0x30db70
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd 0x2f3a79(%rip), %xmm0   # 0x30dba0
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
jmp 0x1a5d0
movsd 0x32353a(%rip), %xmm0   # 0x33d678
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x323542(%rip), %xmm0   # 0x33d698
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x32351a(%rip), %xmm0   # 0x33d688
addsd -0x88(%rbp), %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x2f2acf(%rip), %xmm1 # 0x30cc50
movsd %xmm0, -0x88(%rbp)
addsd -0x80(%rbp), %xmm1
movsd %xmm1, -0x80(%rbp)
movsd 0x3234ad(%rip), %xmm0   # 0x33d648
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
callq 0x5944f
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x32349c(%rip), %xmm0   # 0x33d658
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
jmp 0x1a5d0
movsd 0x2f3b15(%rip), %xmm0   # 0x30dce8
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2f3ae5(%rip), %xmm0   # 0x30dcd0
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x2f3ac5(%rip), %xmm0   # 0x30dcc8
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x2f3ac5(%rip), %xmm0   # 0x30dce0
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x2f3ac3(%rip), %xmm0   # 0x30dcf0
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x2f3ab9(%rip), %xmm0   # 0x30dcf8
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x2f3aaf(%rip), %xmm0   # 0x30dd00
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x2f3a75(%rip), %xmm0   # 0x30dcd8
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
jmp 0x1a5d0
movb 0x1fe68c(%rip), %cl     # 0x218904
orb 0x321046(%rip), %cl     # 0x33b2c4
jne 0x1a2ad
cmpq $0x1, %rax
sete %dl
movl 0x200d47(%rip), %ecx    # 0x21afd4
cmpl $0x41, %ecx
sete %sil
andb %dl, %sil
movl 0x1fe65b(%rip), %edx    # 0x2188f8
cmpl $0x47, %edx
sete %dil
testb %dil, %sil
je 0x1a3f2
movsd 0xeeeab(%rip), %xmm2    # 0x109160
movsd 0x2f2d13(%rip), %xmm1   # 0x30cfd0
mulsd %xmm2, %xmm1
movsd -0x98(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2f2cfb(%rip), %xmm0   # 0x30cfd8
mulsd %xmm0, %xmm2
addsd -0x90(%rbp), %xmm2
movsd %xmm2, -0x90(%rbp)
movsd 0x2f2ce7(%rip), %xmm2   # 0x30cfe0
addsd -0x88(%rbp), %xmm2
movsd %xmm2, -0x88(%rbp)
movsd 0x2f2cef(%rip), %xmm2   # 0x30d000
ucomisd %xmm1, %xmm2
jbe 0x1a31f
movsd %xmm1, 0x2f2ce1(%rip)   # 0x30d000
ucomisd 0x2f2ce1(%rip), %xmm1   # 0x30d008
jbe 0x1a331
movsd %xmm1, 0x2f2cd7(%rip)   # 0x30d008
mulsd 0xeee27(%rip), %xmm0    # 0x109160
movsd 0x2f2ccf(%rip), %xmm1   # 0x30d010
ucomisd %xmm0, %xmm1
jbe 0x1a34f
movsd %xmm0, 0x2f2cc1(%rip)   # 0x30d010
ucomisd 0x2f2cc1(%rip), %xmm0   # 0x30d018
jbe 0x1a361
movsd %xmm0, 0x2f2cb7(%rip)   # 0x30d018
leaq -0x60(%rbp), %rcx
movl $0x1, 0x2f2f51(%rip)    # 0x30d2c0
cmpq $0x3ffff, %rax          # imm = 0x3FFFF
jle 0x1a39c
cmpq $0x40000, %rax          # imm = 0x40000
je 0x1a534
cmpq $0x400000, %rax         # imm = 0x400000
je 0x1a557
cmpq $0x200000, %rax         # imm = 0x200000
je 0x1a3ac
jmp 0x1a598
cmpq $0x8, %rax
je 0x1a3ac
cmpq $0x10, %rax
jne 0x1a598
xorps %xmm0, %xmm0
cvtsi2sdl 0x2f2899(%rip), %xmm0 # 0x30cc50
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd -0x78(%rbp), %xmm0
cmpq $0x200000, %rax         # imm = 0x200000
jne 0x1a509
xorps %xmm1, %xmm1
cvtsi2sdl 0x322fc3(%rip), %xmm1 # 0x33d3a0
addsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
leaq 0x322f7b(%rip), %rax    # 0x33d368
jmp 0x1a5b5
testb %sil, %sil
je 0x1a409
cmpl $0x33, %edx
je 0x1a2ad
cmpl $0x47, %edx
je 0x1a2ad
cmpl $0x41, %ecx
sete %dl
cmpq $0x1, %rax
sete %sil
cmpl $0x50, %ecx
sete %cl
movabsq $0x4806409fc, %rdi      # imm = 0x4806409FC
testq %rdi, %rax
jne 0x1a2ad
orb %cl, %dl
andb %dl, %sil
jne 0x1a2ad
cmpb $0x0, 0x224afc(%rip)    # 0x23ef3e
je 0x1ab25
movsd 0x2f29b0(%rip), %xmm0   # 0x30ce00
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd 0x2f2968(%rip), %xmm0   # 0x30cdd0
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x2f2958(%rip), %xmm0   # 0x30cdd8
addsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x2f2958(%rip), %xmm0   # 0x30cdf0
addsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x200d5e(%rip), %xmm0   # 0x21b208
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x2f2a44(%rip), %xmm0   # 0x30cf00
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x2f2a3a(%rip), %xmm0   # 0x30cf08
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x2f2a30(%rip), %xmm0   # 0x30cf10
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd 0x2f2a26(%rip), %xmm0   # 0x30cf18
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd 0x2f26d4(%rip), %xmm0   # 0x30cbd8
jmp 0x19e7a
xorps %xmm1, %xmm1
cvtsi2sdl 0x2f2744(%rip), %xmm1 # 0x30cc58
addsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
cmpq $0x8, %rax
jne 0x1a5c1
leaq -0x68(%rbp), %rcx
leaq 0x2f3526(%rip), %rax    # 0x30da58
jmp 0x1a582
movsd 0x321a94(%rip), %xmm0   # 0x33bfd0
mulsd 0xeec14(%rip), %xmm0    # 0x109158
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
leaq 0x321a63(%rip), %rax    # 0x33bfb8
jmp 0x1a5b5
movsd 0x2f3531(%rip), %xmm0   # 0x30da90
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x2f34e7(%rip), %xmm0   # 0x30da58
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
leaq 0x2f34de(%rip), %rax    # 0x30da60
movsd (%rax), %xmm0
addsd (%rcx), %xmm0
movsd %xmm0, (%rcx)
movsd 0x2f34d2(%rip), %xmm0   # 0x30da68
jmp 0x1a5c6
leaq -0x78(%rbp), %rcx
movsd 0x2f2a7c(%rip), %xmm0   # 0x30d020
addsd -0x8(%rcx), %xmm0
movsd %xmm0, -0x8(%rcx)
leaq 0x2f2a73(%rip), %rax    # 0x30d028
movsd (%rax), %xmm0
addsd (%rcx), %xmm0
movsd %xmm0, (%rcx)
callq 0x5944f
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
cmpb $0x0, 0x224967(%rip)    # 0x23ef3e
setne %cl
movq 0x1fe2ef(%rip), %rax    # 0x2188d0
cmpq $0x20000, %rax          # imm = 0x20000
sete %dl
orb %cl, %dl
jne 0x1a7a4
testl $0xb020000, %eax        # imm = 0xB020000
jne 0x1a656
movsd 0x2f310f(%rip), %xmm0   # 0x30d710
subsd 0x2f310f(%rip), %xmm0   # 0x30d718
addq $-0x8, %rax
testq $-0x9, %rax
jne 0x1a63a
movsd 0xeeb4b(%rip), %xmm1    # 0x109168
cmpltsd %xmm0, %xmm1
movsd 0xeea0e(%rip), %xmm2    # 0x109038
andpd %xmm1, %xmm2
andnpd %xmm0, %xmm1
orpd %xmm2, %xmm1
movapd %xmm1, %xmm0
addsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movsd 0x2f3884(%rip), %xmm0   # 0x30ded0
addsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
callq 0x5f6cb
testl %eax, %eax
je 0x1a6ae
cmpq $0x800000, 0x1fe266(%rip) # imm = 0x800000
je 0x1a6ae
movsd 0x2f2524(%rip), %xmm0   # 0x30cb98
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x2f251a(%rip), %xmm0   # 0x30cba0
addsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x2f2518(%rip), %xmm0   # 0x30cbb0
addsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x2f250f(%rip), %rax    # 0x30cbb8
jmp 0x1a796
movslq 0x2f20df(%rip), %rdx    # 0x30c794
testq %rdx, %rdx
je 0x1a70f
imulq $0x348, %rdx, %rax      # imm = 0x348
leaq 0x2248e8(%rip), %rcx    # 0x23efb0
xorps %xmm0, %xmm0
cvtss2sd 0x208(%rax,%rcx), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
xorps %xmm0, %xmm0
cvtss2sd 0x20c(%rax,%rcx), %xmm0
addsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movss 0x20(%rax,%rcx), %xmm1
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
xorpd %xmm2, %xmm2
ucomiss %xmm1, %xmm2
ja 0x1a74e
movaps %xmm0, %xmm1
jmp 0x1a758
movsd 0x2f2931(%rip), %xmm0   # 0x30d048
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x2f2927(%rip), %xmm0   # 0x30d050
addsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x2f291d(%rip), %xmm0   # 0x30d058
addsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
leaq 0x2f28e4(%rip), %rax    # 0x30d030
jmp 0x1a796
movaps 0xeea5b(%rip), %xmm1    # 0x1091b0
xorps %xmm0, %xmm1
cmpl $0x3e8, %edx            # imm = 0x3E8
jl 0x1a763
movaps %xmm0, %xmm1
addsd -0x30(%rbp), %xmm1
movsd %xmm1, -0x30(%rbp)
cmpl $0x0, 0x2f2bd0(%rip)    # 0x30d344
je 0x1a77f
addq %rcx, %rax
addq $0x28, %rax
jmp 0x1a796
cmpl $0x0, 0x2f2bc2(%rip)    # 0x30d348
leaq 0x38(%rax,%rcx), %rcx
leaq 0x2f289e(%rip), %rax    # 0x30d030
cmovneq %rcx, %rax
movsd (%rax), %xmm0
addsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movq $0x0, -0x48(%rbp)
movzwl -0xc8(%rbp), %ecx
andl $0x1f00, %ecx           # imm = 0x1F00
movl 0x22474d(%rip), %eax    # 0x23ef0c
movl $0xff, %edx
cmpl %edx, %eax
cmovll %eax, %edx
movzwl 0x224778(%rip), %eax    # 0x23ef48
andl $0x800, %eax            # imm = 0x800
orl %ecx, %eax
orl %edx, %eax
movw %ax, -0xc8(%rbp)
testb $0x1, 0x2f2cbd(%rip)    # 0x30d4a4
je 0x1a7f5
orl $0x200, %eax            # imm = 0x200
movw %ax, -0xc8(%rbp)
movb 0x2f2c9b(%rip), %sil    # 0x30d497
cmpb $0x6, %sil
setne %cl
cmpb $0x0, 0x324ece(%rip)    # 0x33f6d8
sete %dl
testb %sil, %sil
je 0x1a822
orb %dl, %cl
je 0x1a822
orl $0x100, %eax            # imm = 0x100
movw %ax, -0xc8(%rbp)
cmpl $0x0, 0x2f2777(%rip)    # 0x30cfa0
je 0x1a837
orl $0x1000, %eax           # imm = 0x1000
movw %ax, -0xc8(%rbp)
cmpb $0x0, 0x22472a(%rip)    # 0x23ef68
je 0x1a85a
movl 0x22472a(%rip), %ecx    # 0x23ef70
orl 0x224720(%rip), %ecx    # 0x23ef6c
je 0x1a85a
orl $0x400, %eax            # imm = 0x400
movw %ax, -0xc8(%rbp)
movsd 0x2f2cce(%rip), %xmm0   # 0x30d530
movsd %xmm0, -0xc0(%rbp)
movq 0x200ab7(%rip), %r14    # 0x21b328
testq %r14, %r14
js 0x1a89e
cmpq %r14, 0x200aa3(%rip)    # 0x21b320
jle 0x1a89e
imulq $0xb0, %r14, %rdi
addq 0x200a83(%rip), %rdi    # 0x21b310
leaq -0xc8(%rbp), %rsi
movl $0xb0, %edx
callq 0x9650
movl $0x0, 0x2246a0(%rip)    # 0x23ef48
movslq 0x200add(%rip), %rax    # 0x21b38c
incq %rax
movl %eax, 0x200ad4(%rip)    # 0x21b38c
cmpq %rax, 0x200ad9(%rip)    # 0x21b398
jle 0x1a8ce
testl %ebx, %ebx
jne 0x1aa38
jmp 0x1aa4a
movl $0x0, 0x200ab4(%rip)    # 0x21b38c
movb 0x222462(%rip), %al     # 0x23cd40
testb %al, %al
jne 0x1a8f0
movq 0x200a4f(%rip), %rcx    # 0x21b338
movq %rcx, 0x222458(%rip)    # 0x23cd48
movslq 0x200a99(%rip), %rcx    # 0x21b390
incq %rcx
movl %ecx, 0x200a90(%rip)    # 0x21b390
cmpq %rcx, 0x200a99(%rip)    # 0x21b3a0
setle %dl
movb 0x200ab5(%rip), %cl     # 0x21b3c5
cmpb $0x2, %cl
sete %sil
orb %dl, %sil
cmpb $0x1, %sil
jne 0x1a99c
cmpb $0x2, %cl
sete %cl
testb %al, %al
sete %al
orb %cl, %al
jne 0x1a943
movl 0x1fdf4f(%rip), %eax    # 0x218884
subl 0x200a95(%rip), %eax    # 0x21b3d0
cmpl %eax, 0x200a8b(%rip)    # 0x21b3cc
jge 0x1a99c
cmpq 0x20091e(%rip), %r14    # 0x21b268
jne 0x1a964
leaq 0x325c15(%rip), %rdi    # 0x340568
leaq -0xc8(%rbp), %rsi
movl $0xb0, %edx
callq 0x92b0
leaq -0xc8(%rbp), %r14
movq %r14, %rdi
callq 0x18d1a
leaq 0x325bee(%rip), %rdi    # 0x340568
movl $0xb0, %edx
movq %r14, %rsi
callq 0x92b0
testl %ebx, %ebx
jne 0x1aa58
cmpb $0x2, 0x200a2f(%rip)    # 0x21b3c5
je 0x1aa58
cmpb $0x0, 0x200a25(%rip)    # 0x21b3c8
je 0x1a9ac
xorl %edi, %edi
callq 0x197ae
movslq 0x2009dd(%rip), %rax    # 0x21b390
cmpq %rax, 0x2009e6(%rip)    # 0x21b3a0
jg 0x1a9c6
movl $0x0, 0x2009ca(%rip)    # 0x21b390
movq 0x20096b(%rip), %rcx    # 0x21b338
incq %rcx
movq 0x200949(%rip), %rax    # 0x21b320
cmpq %rax, %rcx
cmovgeq %rax, %rcx
movq 0x200943(%rip), %rdx    # 0x21b328
incq %rdx
xorl %edi, %edi
cmpq %rax, %rdx
cmovlq %rdx, %rdi
movq %rcx, 0x200940(%rip)    # 0x21b338
movq %rdi, 0x200929(%rip)    # 0x21b328
cmpq 0x20092a(%rip), %rdi    # 0x21b330
jne 0x1aa2a
leaq 0x1(%rdi), %rcx
xorl %edx, %edx
cmpq %rax, %rcx
cmovlq %rcx, %rdx
movq %rdx, 0x200914(%rip)    # 0x21b330
movq %rax, 0x200915(%rip)    # 0x21b338
movb $0x1, 0x200916(%rip)    # 0x21b340
callq 0x10796
testl %ebx, %ebx
je 0x1aa4a
callq 0x17eb5
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xab54
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0x2008c9(%rip), %rdi    # 0x21b328
callq 0x18619
movslq 0x200965(%rip), %rcx    # 0x21b3d0
movl 0x20095b(%rip), %eax    # 0x21b3cc
addl %ecx, %eax
movl %eax, 0x200953(%rip)    # 0x21b3cc
movl 0x1fde05(%rip), %edx    # 0x218884
cmpl %edx, %eax
jge 0x1aaa3
cmpb $0x0, 0x20094d(%rip)    # 0x21b3d7
je 0x1a99c
xorl %edi, %edi
callq 0x197ae
movb $0x0, 0x200939(%rip)    # 0x21b3d7
jmp 0x1a9ac
cmpb $0x2, 0x20091b(%rip)    # 0x21b3c5
jne 0x1aabb
movl $0x1, %edi
callq 0x2f4ed
jmp 0x1a9ac
movl 0x1fddd7(%rip), %esi    # 0x218898
subl %esi, %edx
imull %ecx, %esi
subl %esi, %eax
movl %eax, 0x2008fe(%rip)    # 0x21b3cc
movq 0x200853(%rip), %rsi    # 0x21b328
movslq %edx, %rax
imulq 0x2008c0(%rip), %rax    # 0x21b3a0
cqto
idivq %rcx
addq 0x200844(%rip), %rax    # 0x21b330
subq %rax, %rsi
movq %rsi, 0x200852(%rip)    # 0x21b348
jns 0x1a9a5
cmpb $0x0, 0x20083d(%rip)    # 0x21b340
je 0x1ab17
addq 0x200814(%rip), %rsi    # 0x21b320
xorl %eax, %eax
testq %rsi, %rsi
cmovgq %rsi, %rax
jmp 0x1ab19
xorl %eax, %eax
movq %rax, 0x200828(%rip)    # 0x21b348
jmp 0x1a9a5
movsd 0x2f2623(%rip), %xmm1   # 0x30d150
movsd 0x2f1ecb(%rip), %xmm2   # 0x30ca00
xorpd %xmm3, %xmm3
cmpeqsd %xmm1, %xmm3
movapd %xmm3, %xmm4
andpd %xmm2, %xmm4
andnpd %xmm1, %xmm3
orpd %xmm4, %xmm3
subsd %xmm3, %xmm2
mulsd 0x2f25ae(%rip), %xmm2   # 0x30d108
movsd 0xee4d6(%rip), %xmm1    # 0x109038
mulsd %xmm1, %xmm2
addsd -0x98(%rbp), %xmm2
movsd %xmm2, -0x98(%rbp)
mulsd %xmm1, %xmm0
subsd %xmm2, %xmm0
movsd %xmm0, -0x90(%rbp)
jmp 0x1a5d0