// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_x72_val(int)
void parse_x72_val(int id)
{
char *s;
char *s2;
u32 val;
float fp_val;
int fp;
int i;

   // parse and decode the FIRST value from a message response

   fp_val = 0.0F;
   val = 0;

   s = strchr(scpi_status_line, ':');  // see if there is a ':' numeric parameter on the line
   if(s) {
      if(id == X72_SET_DDS_MSG) {  // "f" set DDS frequency offset
         fp = 1;
         fp_val = (float) atof(s+1);
      }
      else if(strchr(scpi_status_line, '.')) {  // floating point value
         fp = 1;
         fp_val = x72_float(s+1);
      }
      else {  // decimal value
         fp = 0;
         val = (u32) atohex(s+1);
      }

      if(id == X72_GET_PPS_MSG) {  // see if PPS line also has hw discipline state
         s2 = strstr(scpi_status_line, "PPSSTATE:");
         if(s2) {
            have_x72_fw_dis = 1;
            if(x72_user_dis == 0) {
               x72_state = atoi(&s2[9]);
               have_x72_state = 2;
            
               discipline_mode = DIS_MODE_NORMAL;
               if(x72_state < X72_STATE_START0) discipline_mode = DIS_MODE_UNKNOWN;
               if(x72_state > X72_STATE_SLOPECALC) discipline_mode = DIS_MODE_UNKNOWN;

               if     (x72_state == X72_STATE_START0)   discipline_mode = DIS_MODE_NORMAL; // POWERUP; !!!!! qwerty
               else if(x72_state == X72_STATE_START1)   discipline_mode = DIS_MODE_POWERUP;
               else if(x72_state == X72_STATE_START2)   discipline_mode = DIS_MODE_POWERUP;
               else if(x72_state == X72_STATE_HOLDOVER) discipline_mode = DIS_MODE_AUTO_HOLD;
               else if(x72_state == X72_STATE_JAM1)     discipline_mode = DIS_MODE_RECOVERY;
               else if(x72_state == X72_STATE_JAM2)     discipline_mode = DIS_MODE_RECOVERY;
               else if(x72_state == X72_STATE_JAM2)     discipline_mode = DIS_MODE_RECOVERY;
            }
         }
      }

      *s = 0;  // trim the rest of the line after the first val
   }

   if(x72_sync_fail(id)) {  // see if message sync was lost (invalid parameter seen for a message response)
   }
   else if(id == X72_HEALTH_MSG) {  // "w" health message values
      if(strstr(scpi_status_line, "SCONT")) {
         x72_scont = val;
         have_x72_scont = 1;
      }
      else if(strstr(scpi_status_line, "SERNUM")) {
         x72_sernum = val;
         have_x72_sernum = 1;
      }
      else if(strstr(scpi_status_line, "PWRHRS")) {
         scpi_life = val;
         have_lifetime = 1;
      }
      else if(strstr(scpi_status_line, "PWRTICKS")) {
         x72_pwrticks = val;
         have_x72_pwrticks = 1;
      }
      else if(strstr(scpi_status_line, "LHHRS")) {
         x72_lhhrs = val;
         have_x72_lhhrs = 1;
      }
      else if(strstr(scpi_status_line, "LHTICKS")) {
         x72_lhticks = val;
         have_x72_lhticks = 1;
      }
      else if(strstr(scpi_status_line, "RHHRS")) {
         x72_rhhrs = val;
         have_x72_rhhrs = 1;
      }
      else if(strstr(scpi_status_line, "RHTICKS")) {
         x72_rhticks = val;
         have_x72_rhticks = 1;
      }
      else if(strstr(scpi_status_line, "DMP17")) {
         x72_dmp17 = (double) fp_val;
         have_x72_dmp17 = 1;
      }
      else if(strstr(scpi_status_line, "DMP5")) {
         x72_dmp5 = (double) fp_val;
         have_x72_dmp5 = 1;
      }
      else if(strstr(scpi_status_line, "DHTRVOLT")) {
         x72_dhtrvolt = (double) fp_val;
         have_x72_dhtrvolt = 1;
      }
      else if(strstr(scpi_status_line, "PLMP")) {
         x72_plmp = (double) fp_val;
         have_x72_plmp = 1;
      }
      else if(strstr(scpi_status_line, "PRES")) {
         x72_pres = (double) fp_val;
         have_x72_pres = 1;
      }
      else if(strstr(scpi_status_line, "DLVTHERMC")) {
         x72_dlvthermc = (double) fp_val;
         have_x72_dlvthermc = 1;
      }
      else if(strstr(scpi_status_line, "DRVTHERMC")) {
         x72_drvthermc = (double) fp_val;
         have_x72_drvthermc = 1;
      }
      else if(strstr(scpi_status_line, "DLVOLT")) {
         x72_dlvolt = (double) fp_val;
         have_x72_dlvolt = 1;
      }
      else if(strstr(scpi_status_line, "DMVOUTC")) {
         x72_dmvoutc = (double) fp_val;
         have_x72_dmvoutc = 1;
      }
      else if(strstr(scpi_status_line, "DTEMPLO")) {
         x72_dtemplo = (double) fp_val;
         have_x72_dtemplo = 1;
      }
      else if(strstr(scpi_status_line, "DTEMPHI")) {
         x72_dtemphi = (double) fp_val;
         have_x72_dtemphi = 1;
      }
      else if(strstr(scpi_status_line, "DVOLTLO")) {
         x72_dvoltlo = (double) fp_val;
         have_x72_dvoltlo = 1;
      }
      else if(strstr(scpi_status_line, "DVOLTHI")) {
         x72_dvolthi = (double) fp_val;
         have_x72_dvolthi = 1;
      }
      else if(strstr(scpi_status_line, "IFPGACTL")) {
         x72_creg = val;
         decode_x72_creg();
         have_x72_creg = 1;
      }
      else if(strstr(scpi_status_line, "DCURTEMP")) {
         temperature = (DATA_SIZE) fp_val;
         have_temperature = 105;
      }
      else if(strstr(scpi_status_line, "DLVOUTC")) {
         x72_dlvoutc = (double) fp_val;
         have_x72_dlvoutc = 1;
      }
      else if(strstr(scpi_status_line, "DRVOUTC")) {
         x72_drvoutc = (double) fp_val;
         have_x72_drvoutc = 1;
      }
      else if(strstr(scpi_status_line, "DMV2DEMAVG")) {
         x72_dmv2demavg = (double) fp_val;
         have_x72_dmv2demavg = 1;
      }
   }
   else if(id == X72_GET_CREG_MSG) {  // "p" get control reg
      if(strstr(scpi_status_line, "CONTROL REG")) {
         x72_creg = val;
         decode_x72_creg();
         have_x72_creg = 1;
      }
   }
   else if(id == X72_GET_PPS_MSG) {  // "j" get PPS offset value
      if(strstr(scpi_status_line, "DELTA REG")) {
         last_x72_pps = x72_pps;
         x72_pps = val;
         x72_ival = i = fix_x72_tics((int) val);
         if(have_x72_pps == 0) {
            last_ival = x72_ival;
            last_x72_pps = x72_pps;
         }
         x72_pps_diff = (x72_ival - last_ival);
         last_ival = x72_ival;

///      i = fix_x72_tics(x72_ival);
         pps_offset = (OFS_SIZE) (((double) i) * 1.0E9 / x72_osc);
last_pps_offset = pps_offset;
tsip_error = 0;
// if(x72_user_dis) sprintf(debug_text6, "x72_pps:%d  val:%d  lastiv:%d  i:%d  pps_offset:%g", x72_pps, val, i, last_ival, pps_offset);  //burp
         have_pps_offset = 1;
         have_x72_pps = 1;
         ++x72_run_time;

      }
   }
   else if(id == X72_SET_DDS_MSG) {  // "f" set DDS frequency offset
      if(strstr(scpi_status_line, "CHANGE FREQUENCY")) {
         x72_dds_word = fp_val;
         have_x72_dds_word = 1;
      }
   }
   else if(id == X72_SET_DMODE_MSG) {  // "g" set discipling
      if(strstr(scpi_status_line, "DISABLED")) {
         have_x72_fw_dmode = 1;
         x72_fw_dmode = 0;
      }
      else if(strstr(scpi_status_line, "ENABLED")) {
         have_x72_fw_dmode = 1;
         x72_fw_dmode = 1;
      }
   }
   else if(id == X72_SET_FC_MSG) {  // "a" set EFC enable
      if(strstr(scpi_status_line, "DISABLED")) { 
         x72_efc = 0; 
         have_x72_efc = 1; 
      }
      else if(strstr(scpi_status_line, "ENABLED")) { 
         x72_efc = 1; 
         have_x72_efc = 1; 
      }
   }
   else if(id == X72_SET_SRVC_MSG) {  // "l" set service output pin state
      if(strstr(scpi_status_line, "HIGH")) { 
         x72_srvc = 1; 
         have_x72_srvc = 1; 
      }
      else if(strstr(scpi_status_line, "LOW")) { 
         x72_srvc = 0; 
         have_x72_srvc = 1; 
      }
   }


if(0 && debug_file) {
   if((scpi_status_line[0] == 'R') && (scpi_status_line[1] == '>')) ;  // no obvious number to show
   else if(scpi_status_line[1] == 0) ; // no obvious number to show 
   else if(fp) fprintf(debug_file, "%s -> 0x%08X -> %g\n", scpi_status_line, val, fp_val);
   else        fprintf(debug_file, "%s -> 0x%08X -> %u\n", scpi_status_line, val,  val);
}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x4(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
movl $0x0, -0x1c(%rbp)
leaq 0x3096bf(%rip), %rdi    # 0x3cbd10
movl $0x3a, %esi
callq 0x9100
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0xc2849
cmpl $0x2bd, -0x4(%rbp)      # imm = 0x2BD
jne 0xc2692
movl $0x1, -0x24(%rbp)
movq -0x10(%rbp), %rdi
addq $0x1, %rdi
callq 0x9480
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
jmp 0xc26dd
leaq 0x309677(%rip), %rdi    # 0x3cbd10
movl $0x2e, %esi
callq 0x9100
cmpq $0x0, %rax
je 0xc26c4
movl $0x1, -0x24(%rbp)
movq -0x10(%rbp), %rdi
addq $0x1, %rdi
callq 0xc41b0
movss %xmm0, -0x20(%rbp)
jmp 0xc26db
movl $0x0, -0x24(%rbp)
movq -0x10(%rbp), %rdi
addq $0x1, %rdi
callq 0x98d0
movl %eax, -0x1c(%rbp)
jmp 0xc26dd
cmpl $0x2c1, -0x4(%rbp)      # imm = 0x2C1
jne 0xc2842
leaq 0x30961f(%rip), %rdi    # 0x3cbd10
leaq 0xc4a0d(%rip), %rsi     # 0x187105
callq 0x9090
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xc2840
leaq 0x1b77e1(%rip), %rax    # 0x279ef4
movl $0x1, (%rax)
leaq 0x1b79b0(%rip), %rax    # 0x27a0d0
cmpl $0x0, (%rax)
jne 0xc283e
movq -0x18(%rbp), %rdi
addq $0x9, %rdi
callq 0x95c0
movl %eax, %ecx
leaq 0x1b78a1(%rip), %rax    # 0x279fe0
movl %ecx, (%rax)
leaq 0x1b776c(%rip), %rax    # 0x279eb4
movl $0x2, (%rax)
leaq 0x2a9f22(%rip), %rax    # 0x36c677
movb $0x0, (%rax)
leaq 0x1b7881(%rip), %rax    # 0x279fe0
cmpl $0x0, (%rax)
jge 0xc276e
leaq 0x2a9f0c(%rip), %rax    # 0x36c677
movb $-0x1, (%rax)
leaq 0x1b786b(%rip), %rax    # 0x279fe0
cmpl $0x9, (%rax)
jle 0xc2784
leaq 0x2a9ef6(%rip), %rax    # 0x36c677
movb $-0x1, (%rax)
leaq 0x1b7855(%rip), %rax    # 0x279fe0
cmpl $0x0, (%rax)
jne 0xc279f
leaq 0x2a9ee0(%rip), %rax    # 0x36c677
movb $0x0, (%rax)
jmp 0xc283c
leaq 0x1b783a(%rip), %rax    # 0x279fe0
cmpl $0x1, (%rax)
jne 0xc27ba
leaq 0x2a9ec5(%rip), %rax    # 0x36c677
movb $0x1, (%rax)
jmp 0xc283a
leaq 0x1b781f(%rip), %rax    # 0x279fe0
cmpl $0x2, (%rax)
jne 0xc27d2
leaq 0x2a9eaa(%rip), %rax    # 0x36c677
movb $0x1, (%rax)
jmp 0xc2838
leaq 0x1b7807(%rip), %rax    # 0x279fe0
cmpl $0x3, (%rax)
jne 0xc27ea
leaq 0x2a9e92(%rip), %rax    # 0x36c677
movb $0x2, (%rax)
jmp 0xc2836
leaq 0x1b77ef(%rip), %rax    # 0x279fe0
cmpl $0x4, (%rax)
jne 0xc2802
leaq 0x2a9e7a(%rip), %rax    # 0x36c677
movb $0x4, (%rax)
jmp 0xc2834
leaq 0x1b77d7(%rip), %rax    # 0x279fe0
cmpl $0x5, (%rax)
jne 0xc281a
leaq 0x2a9e62(%rip), %rax    # 0x36c677
movb $0x4, (%rax)
jmp 0xc2832
leaq 0x1b77bf(%rip), %rax    # 0x279fe0
cmpl $0x5, (%rax)
jne 0xc2830
leaq 0x2a9e4a(%rip), %rax    # 0x36c677
movb $0x4, (%rax)
jmp 0xc2832
jmp 0xc2834
jmp 0xc2836
jmp 0xc2838
jmp 0xc283a
jmp 0xc283c
jmp 0xc283e
jmp 0xc2840
jmp 0xc2842
movq -0x10(%rbp), %rax
movb $0x0, (%rax)
movl -0x4(%rbp), %edi
callq 0xc4790
cmpl $0x0, %eax
je 0xc285b
jmp 0xc31d5
cmpl $0x2c9, -0x4(%rbp)      # imm = 0x2C9
jne 0xc2eb7
leaq 0x3094a1(%rip), %rdi    # 0x3cbd10
leaq 0xc4899(%rip), %rsi     # 0x18710f
callq 0x9090
cmpq $0x0, %rax
je 0xc289f
movl -0x1c(%rbp), %ecx
leaq 0x1b7731(%rip), %rax    # 0x279fbc
movl %ecx, (%rax)
leaq 0x1b75c0(%rip), %rax    # 0x279e54
movl $0x1, (%rax)
jmp 0xc2eb2
leaq 0x30946a(%rip), %rdi    # 0x3cbd10
leaq 0xc4868(%rip), %rsi     # 0x187115
callq 0x9090
cmpq $0x0, %rax
je 0xc28d6
movl -0x1c(%rbp), %ecx
leaq 0x1b76fe(%rip), %rax    # 0x279fc0
movl %ecx, (%rax)
leaq 0x1b758d(%rip), %rax    # 0x279e58
movl $0x1, (%rax)
jmp 0xc2eb0
leaq 0x309433(%rip), %rdi    # 0x3cbd10
leaq 0xc4838(%rip), %rsi     # 0x18711c
callq 0x9090
cmpq $0x0, %rax
je 0xc290d
movl -0x1c(%rbp), %ecx
leaq 0x2a9d43(%rip), %rax    # 0x36c63c
movl %ecx, (%rax)
leaq 0x2a9ba6(%rip), %rax    # 0x36c4a8
movl $0x1, (%rax)
jmp 0xc2eae
leaq 0x3093fc(%rip), %rdi    # 0x3cbd10
leaq 0xc4808(%rip), %rsi     # 0x187123
callq 0x9090
cmpq $0x0, %rax
je 0xc2944
movl -0x1c(%rbp), %ecx
leaq 0x1b7694(%rip), %rax    # 0x279fc4
movl %ecx, (%rax)
leaq 0x1b7523(%rip), %rax    # 0x279e5c
movl $0x1, (%rax)
jmp 0xc2eac
leaq 0x3093c5(%rip), %rdi    # 0x3cbd10
leaq 0xc47da(%rip), %rsi     # 0x18712c
callq 0x9090
cmpq $0x0, %rax
je 0xc297b
movl -0x1c(%rbp), %ecx
leaq 0x1b7661(%rip), %rax    # 0x279fc8
movl %ecx, (%rax)
leaq 0x1b74f0(%rip), %rax    # 0x279e60
movl $0x1, (%rax)
jmp 0xc2eaa
leaq 0x30938e(%rip), %rdi    # 0x3cbd10
leaq 0xc47a9(%rip), %rsi     # 0x187132
callq 0x9090
cmpq $0x0, %rax
je 0xc29b2
movl -0x1c(%rbp), %ecx
leaq 0x1b762e(%rip), %rax    # 0x279fcc
movl %ecx, (%rax)
leaq 0x1b74bd(%rip), %rax    # 0x279e64
movl $0x1, (%rax)
jmp 0xc2ea8
leaq 0x309357(%rip), %rdi    # 0x3cbd10
leaq 0xc477a(%rip), %rsi     # 0x18713a
callq 0x9090
cmpq $0x0, %rax
je 0xc29e9
movl -0x1c(%rbp), %ecx
leaq 0x1b75fb(%rip), %rax    # 0x279fd0
movl %ecx, (%rax)
leaq 0x1b748a(%rip), %rax    # 0x279e68
movl $0x1, (%rax)
jmp 0xc2ea6
leaq 0x309320(%rip), %rdi    # 0x3cbd10
leaq 0xc4749(%rip), %rsi     # 0x187140
callq 0x9090
cmpq $0x0, %rax
je 0xc2a20
movl -0x1c(%rbp), %ecx
leaq 0x1b75c8(%rip), %rax    # 0x279fd4
movl %ecx, (%rax)
leaq 0x1b7457(%rip), %rax    # 0x279e6c
movl $0x1, (%rax)
jmp 0xc2ea4
leaq 0x3092e9(%rip), %rdi    # 0x3cbd10
leaq 0xc471a(%rip), %rsi     # 0x187148
callq 0x9090
cmpq $0x0, %rax
je 0xc2a5f
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b75bf(%rip), %rax    # 0x27a008
movsd %xmm0, (%rax)
leaq 0x1b741c(%rip), %rax    # 0x279e70
movl $0x1, (%rax)
jmp 0xc2ea2
leaq 0x3092aa(%rip), %rdi    # 0x3cbd10
leaq 0xc46e1(%rip), %rsi     # 0x18714e
callq 0x9090
cmpq $0x0, %rax
je 0xc2a9e
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7588(%rip), %rax    # 0x27a010
movsd %xmm0, (%rax)
leaq 0x1b73e1(%rip), %rax    # 0x279e74
movl $0x1, (%rax)
jmp 0xc2ea0
leaq 0x30926b(%rip), %rdi    # 0x3cbd10
leaq 0xc46a7(%rip), %rsi     # 0x187153
callq 0x9090
cmpq $0x0, %rax
je 0xc2add
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7551(%rip), %rax    # 0x27a018
movsd %xmm0, (%rax)
leaq 0x1b73a6(%rip), %rax    # 0x279e78
movl $0x1, (%rax)
jmp 0xc2e9e
leaq 0x30922c(%rip), %rdi    # 0x3cbd10
leaq 0xbfe2f(%rip), %rsi     # 0x18291a
callq 0x9090
cmpq $0x0, %rax
je 0xc2b1c
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b751a(%rip), %rax    # 0x27a020
movsd %xmm0, (%rax)
leaq 0x1b736b(%rip), %rax    # 0x279e7c
movl $0x1, (%rax)
jmp 0xc2e9c
leaq 0x3091ed(%rip), %rdi    # 0x3cbd10
leaq 0xc0f9b(%rip), %rsi     # 0x183ac5
callq 0x9090
cmpq $0x0, %rax
je 0xc2b5b
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b74e3(%rip), %rax    # 0x27a028
movsd %xmm0, (%rax)
leaq 0x1b7330(%rip), %rax    # 0x279e80
movl $0x1, (%rax)
jmp 0xc2e9a
leaq 0x3091ae(%rip), %rdi    # 0x3cbd10
leaq 0xc45f3(%rip), %rsi     # 0x18715c
callq 0x9090
cmpq $0x0, %rax
je 0xc2b9a
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b74ac(%rip), %rax    # 0x27a030
movsd %xmm0, (%rax)
leaq 0x1b72f5(%rip), %rax    # 0x279e84
movl $0x1, (%rax)
jmp 0xc2e98
leaq 0x30916f(%rip), %rdi    # 0x3cbd10
leaq 0xc45be(%rip), %rsi     # 0x187166
callq 0x9090
cmpq $0x0, %rax
je 0xc2bd9
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7475(%rip), %rax    # 0x27a038
movsd %xmm0, (%rax)
leaq 0x1b72ba(%rip), %rax    # 0x279e88
movl $0x1, (%rax)
jmp 0xc2e96
leaq 0x309130(%rip), %rdi    # 0x3cbd10
leaq 0xc4589(%rip), %rsi     # 0x187170
callq 0x9090
cmpq $0x0, %rax
je 0xc2c18
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b743e(%rip), %rax    # 0x27a040
movsd %xmm0, (%rax)
leaq 0x1b727f(%rip), %rax    # 0x279e8c
movl $0x1, (%rax)
jmp 0xc2e94
leaq 0x3090f1(%rip), %rdi    # 0x3cbd10
leaq 0xc4551(%rip), %rsi     # 0x187177
callq 0x9090
cmpq $0x0, %rax
je 0xc2c57
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7407(%rip), %rax    # 0x27a048
movsd %xmm0, (%rax)
leaq 0x1b7244(%rip), %rax    # 0x279e90
movl $0x1, (%rax)
jmp 0xc2e92
leaq 0x3090b2(%rip), %rdi    # 0x3cbd10
leaq 0xc451a(%rip), %rsi     # 0x18717f
callq 0x9090
cmpq $0x0, %rax
je 0xc2c96
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b73d0(%rip), %rax    # 0x27a050
movsd %xmm0, (%rax)
leaq 0x1b7209(%rip), %rax    # 0x279e94
movl $0x1, (%rax)
jmp 0xc2e90
leaq 0x309073(%rip), %rdi    # 0x3cbd10
leaq 0xc44e3(%rip), %rsi     # 0x187187
callq 0x9090
cmpq $0x0, %rax
je 0xc2cd5
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7399(%rip), %rax    # 0x27a058
movsd %xmm0, (%rax)
leaq 0x1b71ce(%rip), %rax    # 0x279e98
movl $0x1, (%rax)
jmp 0xc2e8e
leaq 0x309034(%rip), %rdi    # 0x3cbd10
leaq 0xc44ac(%rip), %rsi     # 0x18718f
callq 0x9090
cmpq $0x0, %rax
je 0xc2d14
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7362(%rip), %rax    # 0x27a060
movsd %xmm0, (%rax)
leaq 0x1b7193(%rip), %rax    # 0x279e9c
movl $0x1, (%rax)
jmp 0xc2e8c
leaq 0x308ff5(%rip), %rdi    # 0x3cbd10
leaq 0xc4475(%rip), %rsi     # 0x187197
callq 0x9090
cmpq $0x0, %rax
je 0xc2d53
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b732b(%rip), %rax    # 0x27a068
movsd %xmm0, (%rax)
leaq 0x1b7158(%rip), %rax    # 0x279ea0
movl $0x1, (%rax)
jmp 0xc2e8a
leaq 0x308fb6(%rip), %rdi    # 0x3cbd10
leaq 0xc443e(%rip), %rsi     # 0x18719f
callq 0x9090
cmpq $0x0, %rax
je 0xc2d8f
movl -0x1c(%rbp), %ecx
leaq 0x1b7242(%rip), %rax    # 0x279fb8
movl %ecx, (%rax)
callq 0xc46b0
leaq 0x1b70cc(%rip), %rax    # 0x279e50
movl $0x1, (%rax)
jmp 0xc2e88
leaq 0x308f7a(%rip), %rdi    # 0x3cbd10
leaq 0xc440b(%rip), %rsi     # 0x1871a8
callq 0x9090
cmpq $0x0, %rax
je 0xc2dce
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x2a8e40(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
leaq 0x2a9669(%rip), %rax    # 0x36c42c
movl $0x69, (%rax)
jmp 0xc2e86
leaq 0x308f3b(%rip), %rdi    # 0x3cbd10
leaq 0xc43d5(%rip), %rsi     # 0x1871b1
callq 0x9090
cmpq $0x0, %rax
je 0xc2e0a
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7279(%rip), %rax    # 0x27a070
movsd %xmm0, (%rax)
leaq 0x1b70a2(%rip), %rax    # 0x279ea4
movl $0x1, (%rax)
jmp 0xc2e84
leaq 0x308eff(%rip), %rdi    # 0x3cbd10
leaq 0xc43a1(%rip), %rsi     # 0x1871b9
callq 0x9090
cmpq $0x0, %rax
je 0xc2e46
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7245(%rip), %rax    # 0x27a078
movsd %xmm0, (%rax)
leaq 0x1b706a(%rip), %rax    # 0x279ea8
movl $0x1, (%rax)
jmp 0xc2e82
leaq 0x308ec3(%rip), %rdi    # 0x3cbd10
leaq 0xc436d(%rip), %rsi     # 0x1871c1
callq 0x9090
cmpq $0x0, %rax
je 0xc2e80
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7211(%rip), %rax    # 0x27a080
movsd %xmm0, (%rax)
leaq 0x1b7032(%rip), %rax    # 0x279eac
movl $0x1, (%rax)
jmp 0xc2e82
jmp 0xc2e84
jmp 0xc2e86
jmp 0xc2e88
jmp 0xc2e8a
jmp 0xc2e8c
jmp 0xc2e8e
jmp 0xc2e90
jmp 0xc2e92
jmp 0xc2e94
jmp 0xc2e96
jmp 0xc2e98
jmp 0xc2e9a
jmp 0xc2e9c
jmp 0xc2e9e
jmp 0xc2ea0
jmp 0xc2ea2
jmp 0xc2ea4
jmp 0xc2ea6
jmp 0xc2ea8
jmp 0xc2eaa
jmp 0xc2eac
jmp 0xc2eae
jmp 0xc2eb0
jmp 0xc2eb2
jmp 0xc31d3
cmpl $0x2c5, -0x4(%rbp)      # imm = 0x2C5
jne 0xc2efc
leaq 0x308e49(%rip), %rdi    # 0x3cbd10
leaq 0xc41fe(%rip), %rsi     # 0x1870cc
callq 0x9090
cmpq $0x0, %rax
je 0xc2ef7
movl -0x1c(%rbp), %ecx
leaq 0x1b70d5(%rip), %rax    # 0x279fb8
movl %ecx, (%rax)
callq 0xc46b0
leaq 0x1b6f5f(%rip), %rax    # 0x279e50
movl $0x1, (%rax)
jmp 0xc31d1
cmpl $0x2c1, -0x4(%rbp)      # imm = 0x2C1
jne 0xc301d
leaq 0x308e00(%rip), %rdi    # 0x3cbd10
leaq 0xc41c1(%rip), %rsi     # 0x1870d8
callq 0x9090
cmpq $0x0, %rax
je 0xc3018
leaq 0x1b70af(%rip), %rax    # 0x279fdc
movl (%rax), %eax
movl %eax, 0x308e83(%rip)    # 0x3cbdb8
movl -0x1c(%rbp), %ecx
leaq 0x1b709d(%rip), %rax    # 0x279fdc
movl %ecx, (%rax)
movl -0x1c(%rbp), %edi
callq 0xc4890
movl %eax, %ecx
movl %ecx, -0x28(%rbp)
leaq 0x1b71c7(%rip), %rax    # 0x27a11c
movl %ecx, (%rax)
leaq 0x1b6f52(%rip), %rax    # 0x279eb0
cmpl $0x0, (%rax)
jne 0xc2f81
leaq 0x1b71b2(%rip), %rax    # 0x27a11c
movl (%rax), %eax
movl %eax, 0x30e112(%rip)    # 0x3d1084
leaq 0x1b7063(%rip), %rax    # 0x279fdc
movl (%rax), %eax
movl %eax, 0x308e37(%rip)    # 0x3cbdb8
leaq 0x1b7194(%rip), %rax    # 0x27a11c
movl (%rax), %eax
subl 0x30e0f4(%rip), %eax    # 0x3d1084
movl %eax, 0x308e26(%rip)    # 0x3cbdbc
leaq 0x1b717f(%rip), %rax    # 0x27a11c
movl (%rax), %eax
movl %eax, 0x30e0df(%rip)    # 0x3d1084
cvtsi2sdl -0x28(%rbp), %xmm0
movsd 0xac076(%rip), %xmm1    # 0x16f028
mulsd %xmm1, %xmm0
leaq 0x1b6e8b(%rip), %rax    # 0x279e48
divsd (%rax), %xmm0
leaq 0x2a89d0(%rip), %rax    # 0x36b998
movsd %xmm0, (%rax)
leaq 0x2a89c5(%rip), %rax    # 0x36b998
movsd (%rax), %xmm0
leaq 0x2a8b4a(%rip), %rax    # 0x36bb28
movsd %xmm0, (%rax)
leaq 0x1db167(%rip), %rax    # 0x29e150
movl $0x0, (%rax)
leaq 0x2a9422(%rip), %rax    # 0x36c418
movl $0x1, (%rax)
leaq 0x1b6ead(%rip), %rax    # 0x279eb0
movl $0x1, (%rax)
movl 0x308db1(%rip), %eax    # 0x3cbdc0
addl $0x1, %eax
movl %eax, 0x308da8(%rip)    # 0x3cbdc0
jmp 0xc31cf
cmpl $0x2bd, -0x4(%rbp)      # imm = 0x2BD
jne 0xc3065
leaq 0x308ce3(%rip), %rdi    # 0x3cbd10
leaq 0xc4198(%rip), %rsi     # 0x1871cc
callq 0x9090
cmpq $0x0, %rax
je 0xc3060
movss -0x20(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1b7039(%rip), %rax    # 0x27a088
movsd %xmm0, (%rax)
leaq 0x1b6e5e(%rip), %rax    # 0x279eb8
movl $0x1, (%rax)
jmp 0xc31cd
cmpl $0x2be, -0x4(%rbp)      # imm = 0x2BE
jne 0xc30dd
leaq 0x308c9b(%rip), %rdi    # 0x3cbd10
leaq 0xc8dba(%rip), %rsi     # 0x18be36
callq 0x9090
cmpq $0x0, %rax
je 0xc30a3
leaq 0x1b6e6a(%rip), %rax    # 0x279ef8
movl $0x1, (%rax)
leaq 0x1b6f55(%rip), %rax    # 0x279ff0
movl $0x0, (%rax)
jmp 0xc30d8
leaq 0x308c66(%rip), %rdi    # 0x3cbd10
leaq 0xc412c(%rip), %rsi     # 0x1871dd
callq 0x9090
cmpq $0x0, %rax
je 0xc30d6
leaq 0x1b6e35(%rip), %rax    # 0x279ef8
movl $0x1, (%rax)
leaq 0x1b6f20(%rip), %rax    # 0x279ff0
movl $0x1, (%rax)
jmp 0xc30d8
jmp 0xc31cb
cmpl $0x2bc, -0x4(%rbp)      # imm = 0x2BC
jne 0xc3152
leaq 0x308c23(%rip), %rdi    # 0x3cbd10
leaq 0xc8d42(%rip), %rsi     # 0x18be36
callq 0x9090
cmpq $0x0, %rax
je 0xc311b
leaq 0x1b6e12(%rip), %rax    # 0x279f18
movl $0x0, (%rax)
leaq 0x1b6dd1(%rip), %rax    # 0x279ee4
movl $0x1, (%rax)
jmp 0xc3150
leaq 0x308bee(%rip), %rdi    # 0x3cbd10
leaq 0xc40b4(%rip), %rsi     # 0x1871dd
callq 0x9090
cmpq $0x0, %rax
je 0xc314e
leaq 0x1b6ddd(%rip), %rax    # 0x279f18
movl $0x1, (%rax)
leaq 0x1b6d9c(%rip), %rax    # 0x279ee4
movl $0x1, (%rax)
jmp 0xc3150
jmp 0xc31c9
cmpl $0x2c3, -0x4(%rbp)      # imm = 0x2C3
jne 0xc31c7
leaq 0x308bae(%rip), %rdi    # 0x3cbd10
leaq 0xc407c(%rip), %rsi     # 0x1871e5
callq 0x9090
cmpq $0x0, %rax
je 0xc3190
leaq 0x1b6da1(%rip), %rax    # 0x279f1c
movl $0x1, (%rax)
leaq 0x1b6d60(%rip), %rax    # 0x279ee8
movl $0x1, (%rax)
jmp 0xc31c5
leaq 0x308b79(%rip), %rdi    # 0x3cbd10
leaq 0xc76d4(%rip), %rsi     # 0x18a872
callq 0x9090
cmpq $0x0, %rax
je 0xc31c3
leaq 0x1b6d6c(%rip), %rax    # 0x279f1c
movl $0x0, (%rax)
leaq 0x1b6d2b(%rip), %rax    # 0x279ee8
movl $0x1, (%rax)
jmp 0xc31c5
jmp 0xc31c7
jmp 0xc31c9
jmp 0xc31cb
jmp 0xc31cd
jmp 0xc31cf
jmp 0xc31d1
jmp 0xc31d3
jmp 0xc31d5
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)