// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movl %edi, %ebx
leaq 0x2dea46(%rip), %rdi    # 0x36cb40
movl $0x3a, %esi
callq 0x9100
testq %rax, %rax
je 0x8e12b
movq %rax, %r14
cmpl $0x2bd, %ebx            # imm = 0x2BD
jne 0x8e136
movq %r14, %rdi
incq %rdi
callq 0x9470
cvtsd2ss %xmm0, %xmm0
xorl %r12d, %r12d
jmp 0x8e211
xorl %r12d, %r12d
xorps %xmm0, %xmm0
jmp 0x8e219
leaq 0x2dea03(%rip), %rdi    # 0x36cb40
movl $0x2e, %esi
callq 0x9100
movq %rax, %r15
movq %r14, %rdi
incq %rdi
callq 0x98c6
xorl %r12d, %r12d
pxor %xmm0, %xmm0
testq %r15, %r15
je 0x8e165
movd %eax, %xmm0
cmovel %eax, %r12d
cmpl $0x2c1, %ebx            # imm = 0x2C1
jne 0x8e211
movd %xmm0, -0x28(%rbp)
leaq 0x2de9bf(%rip), %rdi    # 0x36cb40
leaq 0x95c90(%rip), %rsi     # 0x123e18
callq 0x9090
testq %rax, %rax
je 0x8e20c
leaq 0x18cb7b(%rip), %rcx    # 0x21ad14
movl $0x1, (%rcx)
leaq 0x18cd4a(%rip), %rcx    # 0x21aef0
cmpl $0x0, (%rcx)
movd -0x28(%rbp), %xmm0
jne 0x8e211
addq $0x9, %rax
movq %rax, %rdi
callq 0x95e0
leaq 0x18cc3d(%rip), %rcx    # 0x21ae00
movl %eax, (%rcx)
movl %eax, %ecx
sarl $0x1f, %ecx
cmpl $0xa, %eax
movl $0xff, %edx
cmovll %ecx, %edx
leaq 0x18caf8(%rip), %rcx    # 0x21acd4
movl $0x2, (%rcx)
leaq 0x27f2ae(%rip), %rcx    # 0x30d497
movb %dl, (%rcx)
cmpl $0x5, %eax
ja 0x8e20c
movl %eax, %eax
leaq 0x91453(%rip), %rdx     # 0x11f64c
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
movss -0x28(%rbp), %xmm0
jmpq *%rax
movb $0x1, (%rcx)
jmp 0x8e211
movss -0x28(%rbp), %xmm0
movb $0x0, (%r14)
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
movl %ebx, %edi
callq 0x8f84f
testl %eax, %eax
je 0x8e236
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
addl $0xfffffd44, %ebx       # imm = 0xFFFFFD44
cmpl $0xd, %ebx
ja 0x8e229
leaq 0x9141c(%rip), %rax     # 0x11f664
movslq (%rax,%rbx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x2de8e8(%rip), %rdi    # 0x36cb40
leaq 0x9a7eb(%rip), %rsi     # 0x128a4a
callq 0x9090
testq %rax, %rax
je 0x8e40b
leaq 0x18cac4(%rip), %rax    # 0x21ad38
movl $0x0, (%rax)
leaq 0x18ca83(%rip), %rax    # 0x21ad04
jmp 0x8e909
leaq 0x2de8b3(%rip), %rdi    # 0x36cb40
leaq 0x95b4b(%rip), %rsi     # 0x123ddf
callq 0x9090
testq %rax, %rax
je 0x8e229
leaq 0x18cb33(%rip), %rax    # 0x21add8
movl %r12d, (%rax)
callq 0x8f7fa
leaq 0x18c9bc(%rip), %rax    # 0x21ac70
jmp 0x8e909
leaq 0x2de880(%rip), %rdi    # 0x36cb40
leaq 0x95c18(%rip), %rsi     # 0x123edf
callq 0x9090
testq %rax, %rax
je 0x8e229
leaq 0x18cbcc(%rip), %rax    # 0x21aea8
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c9ec(%rip), %rax    # 0x21acd8
jmp 0x8e909
leaq 0x2de848(%rip), %rdi    # 0x36cb40
leaq 0x95b23(%rip), %rsi     # 0x123e22
callq 0x9090
testq %rax, %rax
je 0x8e43e
leaq 0x18cac8(%rip), %rax    # 0x21addc
movl %r12d, (%rax)
leaq 0x18c956(%rip), %rax    # 0x21ac74
jmp 0x8e909
leaq 0x2de816(%rip), %rdi    # 0x36cb40
leaq 0x9a719(%rip), %rsi     # 0x128a4a
callq 0x9090
testq %rax, %rax
je 0x8e470
leaq 0x18c9d2(%rip), %rax    # 0x21ad18
movl $0x1, (%rax)
leaq 0x18cabd(%rip), %rax    # 0x21ae10
movl $0x0, (%rax)
jmp 0x8e229
leaq 0x2de7db(%rip), %rdi    # 0x36cb40
leaq 0x95a7f(%rip), %rsi     # 0x123deb
callq 0x9090
testq %rax, %rax
je 0x8e229
leaq 0x18ca7b(%rip), %rax    # 0x21adfc
movl (%rax), %ecx
movl %ecx, 0x2de85f(%rip)    # 0x36cbe8
leaq 0x18c8d8(%rip), %rcx    # 0x21ac68
movsd (%rcx), %xmm0
cvttsd2si %xmm0, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
addl %ecx, %edx
sarl %edx
xorl %esi, %esi
cmpl %r12d, %edx
cmovll %ecx, %esi
movl %r12d, (%rax)
movl %r12d, %ecx
subl %esi, %ecx
leaq 0x18cb84(%rip), %rax    # 0x21af3c
movl %ecx, (%rax)
leaq 0x18c90f(%rip), %rax    # 0x21acd0
cmpl $0x0, (%rax)
je 0x8e4dd
movl 0x2e3ad0(%rip), %edx    # 0x371ea0
jmp 0x8e4e6
leaq 0x2de764(%rip), %rdi    # 0x36cb40
leaq 0x95b15(%rip), %rsi     # 0x123ef8
callq 0x9090
testq %rax, %rax
je 0x8e4a8
leaq 0x18c944(%rip), %rax    # 0x21ad3c
movl $0x1, %ecx
movl %ecx, (%rax)
leaq 0x18c902(%rip), %rax    # 0x21ad08
jmp 0x8e4a1
leaq 0x2de72e(%rip), %rdi    # 0x36cb40
leaq 0x95ad7(%rip), %rsi     # 0x123ef0
callq 0x9090
testq %rax, %rax
je 0x8e229
leaq 0x18c90a(%rip), %rax    # 0x21ad38
movl $0x1, %ecx
movl %ecx, (%rax)
leaq 0x18c8c8(%rip), %rax    # 0x21ad04
jmp 0x8e4a1
leaq 0x2de6fb(%rip), %rdi    # 0x36cb40
leaq 0x959dc(%rip), %rsi     # 0x123e28
callq 0x9090
testq %rax, %rax
je 0x8e54c
leaq 0x18c97f(%rip), %rax    # 0x21ade0
movl %r12d, (%rax)
leaq 0x18c80d(%rip), %rax    # 0x21ac78
jmp 0x8e909
leaq 0x2de6c9(%rip), %rdi    # 0x36cb40
leaq 0x95a72(%rip), %rsi     # 0x123ef0
callq 0x9090
testq %rax, %rax
je 0x8e229
leaq 0x18c885(%rip), %rax    # 0x21ad18
movl $0x1, %ecx
movl %ecx, (%rax)
leaq 0x18c96f(%rip), %rax    # 0x21ae10
movl %ecx, (%rax)
jmp 0x8e229
leaq 0x2de691(%rip), %rdi    # 0x36cb40
leaq 0x99002(%rip), %rsi     # 0x1274b8
callq 0x9090
testq %rax, %rax
je 0x8e229
leaq 0x18c871(%rip), %rax    # 0x21ad3c
movl $0x0, (%rax)
leaq 0x18c830(%rip), %rax    # 0x21ad08
jmp 0x8e909
movl %r12d, 0x2de704(%rip)   # 0x36cbe8
movl %ecx, %edx
movl %ecx, %esi
subl %edx, %esi
movl %esi, 0x2de6fc(%rip)    # 0x36cbec
movl %ecx, 0x2e39aa(%rip)    # 0x371ea0
cvtsi2sd %ecx, %xmm1
mulsd 0x7ab26(%rip), %xmm1    # 0x109028
divsd %xmm0, %xmm1
leaq 0x27e2ab(%rip), %rcx    # 0x30c7b8
movsd %xmm1, (%rcx)
leaq 0x27e430(%rip), %rcx    # 0x30c948
movsd %xmm1, (%rcx)
leaq 0x1b0a4d(%rip), %rcx    # 0x23ef70
movl $0x0, (%rcx)
leaq 0x27ed08(%rip), %rcx    # 0x30d238
movl $0x1, %edx
movl %edx, (%rcx)
movl %edx, (%rax)
incl 0x2de6b1(%rip)          # 0x36cbf0
jmp 0x8e229
movb $0x4, (%rcx)
jmp 0x8e211
leaq 0x2de5ed(%rip), %rdi    # 0x36cb40
leaq 0x958d5(%rip), %rsi     # 0x123e2f
callq 0x9090
testq %rax, %rax
je 0x8e58a
leaq 0x27eef1(%rip), %rax    # 0x30d45c
movl %r12d, (%rax)
leaq 0x27ed53(%rip), %rax    # 0x30d2c8
jmp 0x8e909
movb $0x0, (%rcx)
jmp 0x8e211
movb $0x2, (%rcx)
jmp 0x8e211
leaq 0x2de5af(%rip), %rdi    # 0x36cb40
leaq 0x9589e(%rip), %rsi     # 0x123e36
callq 0x9090
testq %rax, %rax
je 0x8e5b8
leaq 0x18c83b(%rip), %rax    # 0x21ade4
movl %r12d, (%rax)
leaq 0x18c6c9(%rip), %rax    # 0x21ac7c
jmp 0x8e909
leaq 0x2de581(%rip), %rdi    # 0x36cb40
leaq 0x95879(%rip), %rsi     # 0x123e3f
callq 0x9090
testq %rax, %rax
je 0x8e5e6
leaq 0x18c811(%rip), %rax    # 0x21ade8
movl %r12d, (%rax)
leaq 0x18c69f(%rip), %rax    # 0x21ac80
jmp 0x8e909
leaq 0x2de553(%rip), %rdi    # 0x36cb40
leaq 0x95851(%rip), %rsi     # 0x123e45
callq 0x9090
testq %rax, %rax
je 0x8e614
leaq 0x18c7e7(%rip), %rax    # 0x21adec
movl %r12d, (%rax)
leaq 0x18c675(%rip), %rax    # 0x21ac84
jmp 0x8e909
leaq 0x2de525(%rip), %rdi    # 0x36cb40
leaq 0x9582b(%rip), %rsi     # 0x123e4d
callq 0x9090
testq %rax, %rax
je 0x8e642
leaq 0x18c7bd(%rip), %rax    # 0x21adf0
movl %r12d, (%rax)
leaq 0x18c64b(%rip), %rax    # 0x21ac88
jmp 0x8e909
leaq 0x2de4f7(%rip), %rdi    # 0x36cb40
leaq 0x95803(%rip), %rsi     # 0x123e53
callq 0x9090
testq %rax, %rax
je 0x8e670
leaq 0x18c793(%rip), %rax    # 0x21adf4
movl %r12d, (%rax)
leaq 0x18c621(%rip), %rax    # 0x21ac8c
jmp 0x8e909
leaq 0x2de4c9(%rip), %rdi    # 0x36cb40
leaq 0x957dd(%rip), %rsi     # 0x123e5b
callq 0x9090
testq %rax, %rax
je 0x8e6a4
leaq 0x18c799(%rip), %rax    # 0x21ae28
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c5f1(%rip), %rax    # 0x21ac90
jmp 0x8e909
leaq 0x2de495(%rip), %rdi    # 0x36cb40
leaq 0x957af(%rip), %rsi     # 0x123e61
callq 0x9090
testq %rax, %rax
je 0x8e6d8
leaq 0x18c76d(%rip), %rax    # 0x21ae30
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c5c1(%rip), %rax    # 0x21ac94
jmp 0x8e909
leaq 0x2de461(%rip), %rdi    # 0x36cb40
leaq 0x95780(%rip), %rsi     # 0x123e66
callq 0x9090
testq %rax, %rax
je 0x8e70c
leaq 0x18c741(%rip), %rax    # 0x21ae38
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c591(%rip), %rax    # 0x21ac98
jmp 0x8e909
leaq 0x2de42d(%rip), %rdi    # 0x36cb40
leaq 0x8f7e9(%rip), %rsi     # 0x11df03
callq 0x9090
testq %rax, %rax
je 0x8e740
leaq 0x18c715(%rip), %rax    # 0x21ae40
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c561(%rip), %rax    # 0x21ac9c
jmp 0x8e909
leaq 0x2de3f9(%rip), %rdi    # 0x36cb40
leaq 0x920f7(%rip), %rsi     # 0x120845
callq 0x9090
testq %rax, %rax
je 0x8e774
leaq 0x18c6e9(%rip), %rax    # 0x21ae48
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c531(%rip), %rax    # 0x21aca0
jmp 0x8e909
leaq 0x2de3c5(%rip), %rdi    # 0x36cb40
leaq 0x956ed(%rip), %rsi     # 0x123e6f
callq 0x9090
testq %rax, %rax
je 0x8e7a8
leaq 0x18c6bd(%rip), %rax    # 0x21ae50
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c501(%rip), %rax    # 0x21aca4
jmp 0x8e909
leaq 0x2de391(%rip), %rdi    # 0x36cb40
leaq 0x956c3(%rip), %rsi     # 0x123e79
callq 0x9090
testq %rax, %rax
je 0x8e7dc
leaq 0x18c691(%rip), %rax    # 0x21ae58
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c4d1(%rip), %rax    # 0x21aca8
jmp 0x8e909
leaq 0x2de35d(%rip), %rdi    # 0x36cb40
leaq 0x95699(%rip), %rsi     # 0x123e83
callq 0x9090
testq %rax, %rax
je 0x8e810
leaq 0x18c665(%rip), %rax    # 0x21ae60
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c4a1(%rip), %rax    # 0x21acac
jmp 0x8e909
leaq 0x2de329(%rip), %rdi    # 0x36cb40
leaq 0x9566c(%rip), %rsi     # 0x123e8a
callq 0x9090
testq %rax, %rax
je 0x8e844
leaq 0x18c639(%rip), %rax    # 0x21ae68
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c471(%rip), %rax    # 0x21acb0
jmp 0x8e909
leaq 0x2de2f5(%rip), %rdi    # 0x36cb40
leaq 0x95640(%rip), %rsi     # 0x123e92
callq 0x9090
testq %rax, %rax
je 0x8e878
leaq 0x18c60d(%rip), %rax    # 0x21ae70
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c441(%rip), %rax    # 0x21acb4
jmp 0x8e909
leaq 0x2de2c1(%rip), %rdi    # 0x36cb40
leaq 0x95614(%rip), %rsi     # 0x123e9a
callq 0x9090
testq %rax, %rax
je 0x8e8a9
leaq 0x18c5e1(%rip), %rax    # 0x21ae78
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c411(%rip), %rax    # 0x21acb8
jmp 0x8e909
leaq 0x2de290(%rip), %rdi    # 0x36cb40
leaq 0x955eb(%rip), %rsi     # 0x123ea2
callq 0x9090
testq %rax, %rax
je 0x8e8da
leaq 0x18c5b8(%rip), %rax    # 0x21ae80
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c3e4(%rip), %rax    # 0x21acbc
jmp 0x8e909
leaq 0x2de25f(%rip), %rdi    # 0x36cb40
leaq 0x955c2(%rip), %rsi     # 0x123eaa
callq 0x9090
testq %rax, %rax
je 0x8e914
leaq 0x18c58f(%rip), %rax    # 0x21ae88
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c3b7(%rip), %rax    # 0x21acc0
movl $0x1, (%rax)
jmp 0x8e229
leaq 0x2de225(%rip), %rdi    # 0x36cb40
leaq 0x95590(%rip), %rsi     # 0x123eb2
callq 0x9090
testq %rax, %rax
jne 0x8e29e
leaq 0x2de209(%rip), %rdi    # 0x36cb40
leaq 0x9557d(%rip), %rsi     # 0x123ebb
callq 0x9090
testq %rax, %rax
je 0x8e96a
leaq 0x27e0c9(%rip), %rax    # 0x30ca18
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x27e8ed(%rip), %rax    # 0x30d24c
movl $0x69, (%rax)
jmp 0x8e229
leaq 0x2de1cf(%rip), %rdi    # 0x36cb40
leaq 0x9554c(%rip), %rsi     # 0x123ec4
callq 0x9090
testq %rax, %rax
je 0x8e99e
leaq 0x18c507(%rip), %rax    # 0x21ae90
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c32b(%rip), %rax    # 0x21acc4
jmp 0x8e909
leaq 0x2de19b(%rip), %rdi    # 0x36cb40
leaq 0x95520(%rip), %rsi     # 0x123ecc
callq 0x9090
testq %rax, %rax
je 0x8e9d2
leaq 0x18c4db(%rip), %rax    # 0x21ae98
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c2fb(%rip), %rax    # 0x21acc8
jmp 0x8e909
leaq 0x2de167(%rip), %rdi    # 0x36cb40
leaq 0x954f4(%rip), %rsi     # 0x123ed4
callq 0x9090
testq %rax, %rax
je 0x8e229
leaq 0x18c4ab(%rip), %rax    # 0x21aea0
movsd -0x28(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq 0x18c2c7(%rip), %rax    # 0x21accc
jmp 0x8e909