// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathgps.cpp
// Function: parse_sa35_telem()
void parse_sa35_telem()
{
   log_packet_id("telemetry");
   have_sa35_telem = 35;

   if(get_msg_field()) {  // BITE (0=locked  1=unlocked)
      sa35_unlock = atoi(msg_field);
      if(sa35_unlock) discipline_mode = DIS_MODE_UNLOCK;
      else            discipline_mode = DIS_MODE_NORMAL;
   }

   if(get_msg_field()) {  // firmware
      msg_field[32] = 0;
      strcpy(sa35_fw, msg_field);
   }

   if(get_msg_field()) {  // serial number
      msg_field[32] = 0;
      strcpy(sa35_id, msg_field);
      strcpy(sa35_sn, &msg_field[6]);
      msg_field[6] = 0;

      strcpy(sa35_model, &msg_field[4]);
      msg_field[4] = 0;

      strcpy(sa35_date, &msg_field[0]);
      have_info |= ALL_ID_INFO;
   }

   if(get_msg_field()) { // TEC control (millidegrees C)
      sa35_tec = atof(msg_field) / 1000.0;
   }

   if(get_msg_field()) { // rf control  (0.1 mV)
      sa35_rf = atof(msg_field) / 10000.0;
   }

   if(get_msg_field()) { // DDS freq center current (0.01 Hz)
      sa35_center_freq = atof(msg_field) / 0.01;
   }

   if(get_msg_field()) { // cell heater current (mA)
      sa35_heater = atof(msg_field);
   }

   if(get_msg_field()) { // dc signal (mV)
      sa35_dc = atof(msg_field) / 1000.0;
   }

   if(get_msg_field()) { // temperature (millidegrees C)
      temperature = (DATA_SIZE) (atof(msg_field) / 1000.0);
      have_temperature = 35;
   }

   if(get_msg_field()) { // digital tuning (0.01 Hz)
      sa35_tune = atof(msg_field) / 0.01;
   }

   if(get_msg_field()) { // EFC enable
      sa35_efc_enable = atoi(msg_field);
   }

   if(get_msg_field()) { // EFC voltage (mV)
      sa35_efc = atof(msg_field) / 1000.0;
      dac_voltage = (DATA_SIZE) sa35_efc;
      have_dac = 35;
   }

   if(get_msg_field()) { // digital tuning (1E-15)
      sa35_dds = atof(msg_field) * 1.0E-15;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
leaq 0x9772c(%rip), %rdi     # 0x123945
callq 0x58e77
leaq 0x280837(%rip), %rax    # 0x30ca5c
movl $0x23, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c25c
leaq 0x2af805(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x28085d(%rip), %rcx    # 0x30caa4
movl %eax, (%rcx)
testl %eax, %eax
movl $0x1a, %ecx
cmovel %eax, %ecx
leaq 0x28123d(%rip), %rax    # 0x30d497
movb %cl, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c27c
leaq 0x2af7d4(%rip), %rsi    # 0x33ba40
movb $0x0, 0x20(%rsi)
leaq 0x280839(%rip), %rdi    # 0x30cab0
callq 0x9340
callq 0x811da
testl %eax, %eax
je 0x8c2e3
leaq 0x2af7b4(%rip), %rbx    # 0x33ba40
xorl %r14d, %r14d
movb %r14b, 0x20(%rbx)
leaq 0x280846(%rip), %rdi    # 0x30cae0
movq %rbx, %rsi
callq 0x9340
leaq 0x6(%rbx), %rsi
leaq 0x2808c3(%rip), %rdi    # 0x30cb70
callq 0x9340
movb %r14b, 0x6(%rbx)
leaq 0x4(%rbx), %rsi
leaq 0x28087f(%rip), %rdi    # 0x30cb40
callq 0x9340
movb %r14b, 0x4(%rbx)
leaq 0x28083f(%rip), %rdi    # 0x30cb10
movq %rbx, %rsi
callq 0x9340
leaq 0x281694(%rip), %rax    # 0x30d974
orb $0xf, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c30b
leaq 0x2af74d(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x7cd38(%rip), %xmm0    # 0x109038
leaq 0x280759(%rip), %rax    # 0x30ca60
movsd %xmm0, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c333
leaq 0x2af725(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x7cdb0(%rip), %xmm0    # 0x1090d8
leaq 0x280739(%rip), %rax    # 0x30ca68
movsd %xmm0, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c35b
leaq 0x2af6fd(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x7cdb0(%rip), %xmm0    # 0x109100
leaq 0x280719(%rip), %rax    # 0x30ca70
movsd %xmm0, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c37b
leaq 0x2af6d5(%rip), %rdi    # 0x33ba40
callq 0x9470
leaq 0x280701(%rip), %rax    # 0x30ca78
movsd %xmm0, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c3a3
leaq 0x2af6b5(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x7cca0(%rip), %xmm0    # 0x109038
leaq 0x2806e1(%rip), %rax    # 0x30ca80
movsd %xmm0, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c3d8
leaq 0x2af68d(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x7cc78(%rip), %xmm0    # 0x109038
leaq 0x280651(%rip), %rax    # 0x30ca18
movsd %xmm0, (%rax)
leaq 0x280e7a(%rip), %rax    # 0x30d24c
movl $0x23, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c400
leaq 0x2af658(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x7cd0b(%rip), %xmm0    # 0x109100
leaq 0x28068c(%rip), %rax    # 0x30ca88
movsd %xmm0, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c41e
leaq 0x2af630(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x280684(%rip), %rcx    # 0x30caa0
movl %eax, (%rcx)
callq 0x811da
testl %eax, %eax
je 0x8c45e
leaq 0x2af612(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x7cbfd(%rip), %xmm0    # 0x109038
leaq 0x28064e(%rip), %rax    # 0x30ca90
movsd %xmm0, (%rax)
leaq 0x2805b3(%rip), %rax    # 0x30ca00
movsd %xmm0, (%rax)
leaq 0x280ea4(%rip), %rax    # 0x30d2fc
movl $0x23, (%rax)
callq 0x811da
testl %eax, %eax
je 0x8c486
leaq 0x2af5d2(%rip), %rdi    # 0x33ba40
callq 0x9470
mulsd 0x7ccad(%rip), %xmm0    # 0x109128
leaq 0x280616(%rip), %rax    # 0x30ca98
movsd %xmm0, (%rax)
popq %rbx
popq %r14
popq %rbp
retq