LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_cont()
void parse_cs_cont() 
{
   if(get_msg_field()) {
      if(strstr(msg_field, "OFF")) cs_cont = 0;
      else if(strstr(msg_field, "ENAB")) cs_cont = 1;
      else if(strstr(msg_field, "ON")) cs_cont = 2;
      have_cs_cont = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdccb9
leaq 0x2bdfe7(%rip), %rdi    # 0x39ac20
leaq 0xb5e83(%rip), %rsi     # 0x192ac3
callq 0x9090
cmpq $0x0, %rax
je 0xdcc5a
leaq 0x19cf5e(%rip), %rax    # 0x279bb0
movl $0x0, (%rax)
jmp 0xdccac
leaq 0x2bdfbf(%rip), %rdi    # 0x39ac20
leaq 0xa7799(%rip), %rsi     # 0x184401
callq 0x9090
cmpq $0x0, %rax
je 0xdcc82
leaq 0x19cf36(%rip), %rax    # 0x279bb0
movl $0x1, (%rax)
jmp 0xdccaa
leaq 0x2bdf97(%rip), %rdi    # 0x39ac20
leaq 0xb5e23(%rip), %rsi     # 0x192ab3
callq 0x9090
cmpq $0x0, %rax
je 0xdcca8
leaq 0x19cf0e(%rip), %rax    # 0x279bb0
movl $0x2, (%rax)
jmp 0xdccaa
jmp 0xdccac
leaq 0x19cf49(%rip), %rax    # 0x279bfc
movl $0x1, (%rax)
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_pump()
void parse_cs_pump() 
{
   if(get_msg_field()) {
      cs_pump = atof(msg_field) * 1.0E6; 
      have_cs_pump = 1;
      pps_offset = cs_pump;
      have_pps_offset = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdcda1
leaq 0x2bdecb(%rip), %rdi    # 0x39ac20
callq 0x9480
movsd 0x922de(%rip), %xmm1    # 0x16f040
mulsd %xmm1, %xmm0
leaq 0x19cd83(%rip), %rax    # 0x279af0
movsd %xmm0, (%rax)
leaq 0x19ce90(%rip), %rax    # 0x279c08
movl $0x1, (%rax)
leaq 0x19cd6b(%rip), %rax    # 0x279af0
movsd (%rax), %xmm0
leaq 0x28ec08(%rip), %rax    # 0x36b998
movsd %xmm0, (%rax)
leaq 0x28f67d(%rip), %rax    # 0x36c418
movl $0x1, (%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_rfam()
void parse_cs_rfam() 
{
   if(get_msg_field()) {
      cs_rfam1 = atof(msg_field) * 100.0; 
      have_cs_rfam |= 0x01;
   }
   if(get_msg_field()) {
      cs_rfam2 = atof(msg_field) * 100.0; 
      have_cs_rfam |= 0x02;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdce36
leaq 0x2bde1b(%rip), %rdi    # 0x39ac20
callq 0x9480
movsd 0x9223e(%rip), %xmm1    # 0x16f050
mulsd %xmm1, %xmm0
leaq 0x19cce3(%rip), %rax    # 0x279b00
movsd %xmm0, (%rax)
leaq 0x19cde8(%rip), %rax    # 0x279c10
movl (%rax), %ecx
orl $0x1, %ecx
leaq 0x19cddc(%rip), %rax    # 0x279c10
movl %ecx, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdce78
leaq 0x2bddd9(%rip), %rdi    # 0x39ac20
callq 0x9480
movsd 0x921fc(%rip), %xmm1    # 0x16f050
mulsd %xmm1, %xmm0
leaq 0x19cca9(%rip), %rax    # 0x279b08
movsd %xmm0, (%rax)
leaq 0x19cda6(%rip), %rax    # 0x279c10
movl (%rax), %ecx
orl $0x2, %ecx
leaq 0x19cd9a(%rip), %rax    # 0x279c10
movl %ecx, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_sync()
void parse_cs_sync() 
{
   if(get_msg_field()) {
      if     (strstr(msg_field, "OFF"))   cs_sync = "OFF";
      else if(strstr(msg_field, "FRON"))  cs_sync = "FRONT";
      else if(strstr(msg_field, "REAR"))  cs_sync = "REAR";
      have_cs_sync = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdcf95
leaq 0x2bdd17(%rip), %rdi    # 0x39ac20
leaq 0xb5bb3(%rip), %rsi     # 0x192ac3
callq 0x9090
cmpq $0x0, %rax
je 0xdcf2e
leaq 0x19ccb6(%rip), %rax    # 0x279bd8
leaq 0xb5b9a(%rip), %rcx     # 0x192ac3
movq %rcx, (%rax)
jmp 0xdcf88
leaq 0x2bdceb(%rip), %rdi    # 0x39ac20
leaq 0x9d7ab(%rip), %rsi     # 0x17a6e7
callq 0x9090
cmpq $0x0, %rax
je 0xdcf5a
leaq 0x19cc8a(%rip), %rax    # 0x279bd8
leaq 0xa0632(%rip), %rcx     # 0x17d587
movq %rcx, (%rax)
jmp 0xdcf86
leaq 0x2bdcbf(%rip), %rdi    # 0x39ac20
leaq 0xa50de(%rip), %rsi     # 0x182046
callq 0x9090
cmpq $0x0, %rax
je 0xdcf84
leaq 0x19cc5e(%rip), %rax    # 0x279bd8
leaq 0xa50c5(%rip), %rcx     # 0x182046
movq %rcx, (%rax)
jmp 0xdcf86
jmp 0xdcf88
leaq 0x19ccb5(%rip), %rax    # 0x279c44
movl $0x1, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_supply()
void parse_cs_supply() 
{
   if(get_msg_field()) {
      if     (strstr(msg_field, "AC"))   cs_supply = "AC";
      else if(strstr(msg_field, "DC"))   cs_supply = "DC";
      else if(strstr(msg_field, "BATT")) cs_supply = "BATT";
      else if(strstr(msg_field, "LOW"))  cs_supply = "LOW";
      else                               cs_supply = "UNKN";
      have_cs_supply = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd0c9
leaq 0x2bdc27(%rip), %rdi    # 0x39ac20
leaq 0xad970(%rip), %rsi     # 0x18a970
callq 0x9090
cmpq $0x0, %rax
je 0xdd021
leaq 0x19cbbe(%rip), %rax    # 0x279bd0
leaq 0xad957(%rip), %rcx     # 0x18a970
movq %rcx, (%rax)
jmp 0xdd0bc
leaq 0x2bdbf8(%rip), %rdi    # 0x39ac20
leaq 0xabd92(%rip), %rsi     # 0x188dc1
callq 0x9090
cmpq $0x0, %rax
je 0xdd04d
leaq 0x19cb8f(%rip), %rax    # 0x279bd0
leaq 0xabd79(%rip), %rcx     # 0x188dc1
movq %rcx, (%rax)
jmp 0xdd0ba
leaq 0x2bdbcc(%rip), %rdi    # 0x39ac20
leaq 0xabbe8(%rip), %rsi     # 0x188c43
callq 0x9090
cmpq $0x0, %rax
je 0xdd079
leaq 0x19cb63(%rip), %rax    # 0x279bd0
leaq 0xabbcf(%rip), %rcx     # 0x188c43
movq %rcx, (%rax)
jmp 0xdd0b8
leaq 0x2bdba0(%rip), %rdi    # 0x39ac20
leaq 0xad7eb(%rip), %rsi     # 0x18a872
callq 0x9090
cmpq $0x0, %rax
je 0xdd0a5
leaq 0x19cb37(%rip), %rax    # 0x279bd0
leaq 0xad7d2(%rip), %rcx     # 0x18a872
movq %rcx, (%rax)
jmp 0xdd0b6
leaq 0x19cb24(%rip), %rax    # 0x279bd0
leaq 0xad514(%rip), %rcx     # 0x18a5c7
movq %rcx, (%rax)
jmp 0xdd0b8
jmp 0xdd0ba
jmp 0xdd0bc
leaq 0x19cb55(%rip), %rax    # 0x279c18
movl $0x1, (%rax)
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_temp()
void parse_cs_temp() 
{
   if(get_msg_field()) {
      cs_temp = atof(msg_field); 
      have_cs_temp = 1;

      temperature = (float) cs_temp;
      have_temperature = 113;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd12d
leaq 0x2bdb3b(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19ca1f(%rip), %rax    # 0x279b10
movsd %xmm0, (%rax)
leaq 0x19caf0(%rip), %rax    # 0x279bec
movl $0x1, (%rax)
leaq 0x19ca07(%rip), %rax    # 0x279b10
movsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x28eadc(%rip), %rax    # 0x36bbf8
movsd %xmm0, (%rax)
leaq 0x28f305(%rip), %rax    # 0x36c42c
movl $0x71, (%rax)
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_emul()
void parse_cs_emul() 
{
   if(get_msg_field()) {
      cs_emul = atof(msg_field); 
      have_cs_emul = 1;
      osc_offset = cs_emul;
      have_osc_offset = 68;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd1c5
leaq 0x2bda9b(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c997(%rip), %rax    # 0x279b28
movsd %xmm0, (%rax)
leaq 0x19ca88(%rip), %rax    # 0x279c24
movl $0x1, (%rax)
leaq 0x19c97f(%rip), %rax    # 0x279b28
movsd (%rax), %xmm0
leaq 0x28e7ec(%rip), %rax    # 0x36b9a0
movsd %xmm0, (%rax)
leaq 0x28f255(%rip), %rax    # 0x36c414
movl $0x44, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_pll()
void parse_cs_pll() 
{ 
   if(get_msg_field()) {
      cs_pll_dro = atof(msg_field); 
      have_cs_pll |= 0x01;
   }
   if(get_msg_field()) {
      cs_pll_saw = atof(msg_field); 
      have_cs_pll |= 0x02;
   }
   if(get_msg_field()) {
      cs_pll_87 = atof(msg_field); 
      have_cs_pll |= 0x04;
   }
   if(get_msg_field()) {
      cs_pll_up = atof(msg_field); 
      have_cs_pll |= 0x08;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd28a
leaq 0x2bd9bb(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c8cf(%rip), %rax    # 0x279b40
movsd %xmm0, (%rax)
leaq 0x19c9b4(%rip), %rax    # 0x279c30
movl (%rax), %ecx
orl $0x1, %ecx
leaq 0x19c9a8(%rip), %rax    # 0x279c30
movl %ecx, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd2c0
leaq 0x2bd985(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c8a1(%rip), %rax    # 0x279b48
movsd %xmm0, (%rax)
leaq 0x19c97e(%rip), %rax    # 0x279c30
movl (%rax), %ecx
orl $0x2, %ecx
leaq 0x19c972(%rip), %rax    # 0x279c30
movl %ecx, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd2f6
leaq 0x2bd94f(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c873(%rip), %rax    # 0x279b50
movsd %xmm0, (%rax)
leaq 0x19c948(%rip), %rax    # 0x279c30
movl (%rax), %ecx
orl $0x4, %ecx
leaq 0x19c93c(%rip), %rax    # 0x279c30
movl %ecx, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd32c
leaq 0x2bd919(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c845(%rip), %rax    # 0x279b58
movsd %xmm0, (%rax)
leaq 0x19c912(%rip), %rax    # 0x279c30
movl (%rax), %ecx
orl $0x8, %ecx
leaq 0x19c906(%rip), %rax    # 0x279c30
movl %ecx, (%rax)
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_leapstat()
void parse_cs_leapstat()
{
int leap;


   if(get_msg_field()) {
      if     (strstr(msg_field, "1")) leap = 1;
      else if(strstr(msg_field, "ON")) leap = 1;
      else leap = 0;
      cs_leap_state = leap;
      have_cs_leapstate = 1;

      if(leap) {
         minor_alarms |= MINOR_LEAP_PEND;
      }
      else { 
         minor_alarms &= (~MINOR_LEAP_PEND);
      }
      have_leap_info = 33;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd571
leaq 0x2bd753(%rip), %rdi    # 0x39ac20
leaq 0xb8f51(%rip), %rsi     # 0x196425
callq 0x9090
cmpq $0x0, %rax
je 0xdd4e8
movl $0x1, -0x4(%rbp)
jmp 0xdd513
leaq 0x2bd731(%rip), %rdi    # 0x39ac20
leaq 0xb55bd(%rip), %rsi     # 0x192ab3
callq 0x9090
cmpq $0x0, %rax
je 0xdd50a
movl $0x1, -0x4(%rbp)
jmp 0xdd511
movl $0x0, -0x4(%rbp)
jmp 0xdd513
movl -0x4(%rbp), %ecx
leaq 0x19c68f(%rip), %rax    # 0x279bac
movl %ecx, (%rax)
leaq 0x19c73a(%rip), %rax    # 0x279c60
movl $0x1, (%rax)
cmpl $0x0, -0x4(%rbp)
je 0xdd54c
leaq 0x28ee7f(%rip), %rax    # 0x36c3b8
movl (%rax), %ecx
orl $0x80, %ecx
leaq 0x28ee70(%rip), %rax    # 0x36c3b8
movl %ecx, (%rax)
jmp 0xdd564
leaq 0x28ee65(%rip), %rax    # 0x36c3b8
movl (%rax), %ecx
andl $0xffffff7f, %ecx       # imm = 0xFFFFFF7F
leaq 0x28ee56(%rip), %rax    # 0x36c3b8
movl %ecx, (%rax)
leaq 0x28ef0d(%rip), %rax    # 0x36c478
movl $0x21, (%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_leapmjd()
void parse_cs_leapmjd()
{
   if(get_msg_field()) {
      cs_leapmjd = atof(msg_field);
      have_cs_leapmjd = 33;
      jd_leap = (cs_leapmjd + JD_MJD) + jtime(23,59,59,0.0);
      calc_jd_leap(57);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd643
leaq 0x2bd647(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c5bb(%rip), %rax    # 0x279ba0
movsd %xmm0, (%rax)
leaq 0x19c66c(%rip), %rax    # 0x279c5c
movl $0x21, (%rax)
movsd 0x94012(%rip), %xmm0    # 0x171610
leaq 0x19c59b(%rip), %rax    # 0x279ba0
addsd (%rax), %xmm0
movsd %xmm0, -0x8(%rbp)
movl $0x17, %edi
movl $0x3b, %edx
xorps %xmm0, %xmm0
movl %edx, %esi
callq 0x122210
movaps %xmm0, %xmm1
movsd -0x8(%rbp), %xmm0
addsd %xmm1, %xmm0
leaq 0x28f10b(%rip), %rax    # 0x36c740
movsd %xmm0, (%rax)
movl $0x39, %edi
callq 0x80070
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_loginfo()
void parse_cs_loginfo()
{
int log_id;
int i;

   log_id = (-1);
   if(get_msg_field()) {
      have_cs_loginfo = 1;
      log_id = atoi(&msg_field[4]);
   }
   if(get_msg_field()) {
      msg_field[LOG_MSG_LEN] = 0;
      i = cs_log_count - log_id - 1;
i = log_id;
      if((log_id >= 0) && (i >= 0) && (i < MAX_CS_LOGS)) {
         sprintf(out, "%3d: %s", log_id,msg_field);
         strcpy(cs_log_msg[i], out);
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd769
leaq 0x19c4a8(%rip), %rax    # 0x279bf8
movl $0x1, (%rax)
leaq 0x2bd4c3(%rip), %rdi    # 0x39ac20
addq $0x4, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd7ea
leaq 0x2bd4a6(%rip), %rax    # 0x39ac20
movb $0x0, 0x20(%rax)
leaq 0x19c34f(%rip), %rax    # 0x279ad4
movl (%rax), %eax
subl -0x4(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0x4(%rbp), %eax
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x4(%rbp)
jl 0xdd7e8
cmpl $0x0, -0x8(%rbp)
jl 0xdd7e8
cmpl $0xc0, -0x8(%rbp)
jge 0xdd7e8
movl -0x4(%rbp), %edx
leaq 0x2bdc4b(%rip), %rdi    # 0x39b400
leaq 0xab48c(%rip), %rsi     # 0x188c48
leaq 0x2bd45d(%rip), %rcx    # 0x39ac20
movb $0x0, %al
callq 0x9060
movslq -0x8(%rbp), %rax
leaq 0x19a95b(%rip), %rdi    # 0x278130
imulq $0x22, %rax, %rax
addq %rax, %rdi
leaq 0x2bdc1d(%rip), %rsi    # 0x39b400
callq 0x9350
jmp 0xdd7ea
addq $0x10, %rsp
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_cs_volt()
void parse_cs_volt() 
{
   if(get_msg_field()) {
      cs_volt1 = atof(msg_field); 
      have_cs_volt |= 0x01;
   }
   if(get_msg_field()) {
      cs_volt2 = atof(msg_field); 
      have_cs_volt |= 0x02;
   }
   if(get_msg_field()) {
      cs_volt3 = atof(msg_field); 
      have_cs_volt |= 0x04;
   }
   cs_volt_avg = (cs_volt1 + cs_volt2 + cs_volt3) / 3.0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd82a
leaq 0x2bd41b(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c34f(%rip), %rax    # 0x279b60
movsd %xmm0, (%rax)
leaq 0x19c418(%rip), %rax    # 0x279c34
movl (%rax), %ecx
orl $0x1, %ecx
leaq 0x19c40c(%rip), %rax    # 0x279c34
movl %ecx, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd860
leaq 0x2bd3e5(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c321(%rip), %rax    # 0x279b68
movsd %xmm0, (%rax)
leaq 0x19c3e2(%rip), %rax    # 0x279c34
movl (%rax), %ecx
orl $0x2, %ecx
leaq 0x19c3d6(%rip), %rax    # 0x279c34
movl %ecx, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdd896
leaq 0x2bd3af(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x19c2f3(%rip), %rax    # 0x279b70
movsd %xmm0, (%rax)
leaq 0x19c3ac(%rip), %rax    # 0x279c34
movl (%rax), %ecx
orl $0x4, %ecx
leaq 0x19c3a0(%rip), %rax    # 0x279c34
movl %ecx, (%rax)
leaq 0x19c2c3(%rip), %rax    # 0x279b60
movsd (%rax), %xmm0
leaq 0x19c2c0(%rip), %rax    # 0x279b68
addsd (%rax), %xmm0
leaq 0x19c2bd(%rip), %rax    # 0x279b70
addsd (%rax), %xmm0
movsd 0x91921(%rip), %xmm1    # 0x16f1e0
divsd %xmm1, %xmm0
leaq 0x19c2ae(%rip), %rax    # 0x279b78
movsd %xmm0, (%rax)
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: set_cs_disp(int)
void set_cs_disp(int mode)
{
   if(read_only) return;

   if(rcvr_type == CS_RCVR) {
      set_cs_remote(1);
      if(mode) queue_cs_cmd("DISP:ENAB ON", CS_DISP_MSG);
      else     queue_cs_cmd("DISP:ENAB OFF", CS_DISP_MSG);
      restore_cs_remote();
      queue_cs_cmd("DISP:ENAB?", CS_DISP_MSG);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
leaq 0x2b8918(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0xdd8e9
jmp 0xdd943
leaq 0x19a1c0(%rip), %rax    # 0x277ab0
cmpq $0x20000, (%rax)        # imm = 0x20000
jne 0xdd943
movl $0x1, %edi
callq 0x89280
cmpl $0x0, -0x4(%rbp)
je 0xdd91c
leaq 0xab37e(%rip), %rdi     # 0x188c8e
movl $0x145, %esi            # imm = 0x145
callq 0x82fd0
jmp 0xdd92d
leaq 0xab378(%rip), %rdi     # 0x188c9b
movl $0x145, %esi            # imm = 0x145
callq 0x82fd0
callq 0x89260
leaq 0xab1b2(%rip), %rdi     # 0x188aeb
movl $0x145, %esi            # imm = 0x145
callq 0x82fd0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: set_cs_leap(double, int)
void set_cs_leap(double jd, int dur)
{
   if(read_only) return;

   if(rcvr_type == CS_RCVR) {
      set_cs_remote(1);
      if(((dur != 59) && (dur != 61)) || (jd == 0.0)) {
         queue_cs_cmd(":PTIM:LEAP:STAT OFF", CS_LEAPSTAT_MSG);
      }
      else {
         sprintf(out, ":PTIM:LEAP:MJD %d", (int) (jd + jtime(0,0,1, 0.0)));
         queue_cs_cmd(out, CS_LEAPMJD_MSG);

         sprintf(out, ":PTIM:LEAP:DUR %d", dur);  
         queue_cs_cmd(out, CS_LEAPDUR_MSG); 

         queue_cs_cmd(":PTIM:LEAP:STAT ON", CS_LEAPSTAT_MSG);
      }

      restore_cs_remote();

      queue_cs_cmd(":PTIM:LEAP:STAT?", CS_LEAPSTAT_MSG);
      queue_cs_cmd(":PTIM:LEAP:DUR?",  CS_LEAPDUR_MSG);
      queue_cs_cmd(":PTIM:LEAP:MJD?", CS_LEAPMJD_MSG);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd %xmm0, -0x8(%rbp)
movl %edi, -0xc(%rbp)
leaq 0x2b8893(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0xdd971
jmp 0xdda84
leaq 0x19a138(%rip), %rax    # 0x277ab0
cmpq $0x20000, (%rax)        # imm = 0x20000
jne 0xdda84
movl $0x1, %edi
callq 0x89280
cmpl $0x3b, -0xc(%rbp)
je 0xdd99b
cmpl $0x3d, -0xc(%rbp)
jne 0xdd9ab
movsd -0x8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdd9c1
jp 0xdd9c1
leaq 0xab2f7(%rip), %rdi     # 0x188ca9
movl $0x147, %esi            # imm = 0x147
callq 0x82fd0
jmp 0xdda4c
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
xorl %esi, %esi
movl $0x1, %edx
xorps %xmm0, %xmm0
movl %esi, %edi
callq 0x122210
movaps %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
leaq 0x2bda0d(%rip), %rdi    # 0x39b400
leaq 0xab2c3(%rip), %rsi     # 0x188cbd
movb $0x0, %al
callq 0x9060
leaq 0x2bd9f8(%rip), %rdi    # 0x39b400
movl $0x149, %esi            # imm = 0x149
callq 0x82fd0
movl -0xc(%rbp), %edx
leaq 0x2bd9e4(%rip), %rdi    # 0x39b400
leaq 0xab2ac(%rip), %rsi     # 0x188ccf
movb $0x0, %al
callq 0x9060
leaq 0x2bd9cf(%rip), %rdi    # 0x39b400
movl $0x148, %esi            # imm = 0x148
callq 0x82fd0
leaq 0xab29f(%rip), %rdi     # 0x188ce1
movl $0x147, %esi            # imm = 0x147
callq 0x82fd0
callq 0x89260
leaq 0xab1ab(%rip), %rdi     # 0x188c03
movl $0x147, %esi            # imm = 0x147
callq 0x82fd0
leaq 0xab1ab(%rip), %rdi     # 0x188c14
movl $0x148, %esi            # imm = 0x148
callq 0x82fd0
leaq 0xab1aa(%rip), %rdi     # 0x188c24
movl $0x149, %esi            # imm = 0x149
callq 0x82fd0
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: set_cs_slew(double)
void set_cs_slew(double val)
{
   if(read_only) return;

   if(rcvr_type == CS_RCVR) {
      set_cs_remote(1);
      sprintf(out, ":PTIM:SLEW %g", val);
      queue_cs_cmd(out, CS_SLEW_MSG);
      restore_cs_remote();
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd %xmm0, -0x8(%rbp)
leaq 0x2b8756(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0xddaab
jmp 0xddaf5
leaq 0x199ffe(%rip), %rax    # 0x277ab0
cmpq $0x20000, (%rax)        # imm = 0x20000
jne 0xddaf5
movl $0x1, %edi
callq 0x89280
movsd -0x8(%rbp), %xmm0
leaq 0x2bd92f(%rip), %rdi    # 0x39b400
leaq 0xab253(%rip), %rsi     # 0x188d2b
movb $0x1, %al
callq 0x9060
leaq 0x2bd91a(%rip), %rdi    # 0x39b400
movl $0x144, %esi            # imm = 0x144
callq 0x82fd0
callq 0x89260
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: set_cs_standby(int)
void set_cs_standby(int mode)
{
   if(read_only) return;

   if(rcvr_type == CS_RCVR) {
      set_cs_remote(1);
      if(mode) queue_cs_cmd(":PTIM:STAN 1", CS_STANDBY_MSG);
      else     queue_cs_cmd(":PTIM:STAN 0", CS_STANDBY_MSG);
      restore_cs_remote();
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
leaq 0x2b86e8(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0xddb19
jmp 0xddb62
leaq 0x199f90(%rip), %rax    # 0x277ab0
cmpq $0x20000, (%rax)        # imm = 0x20000
jne 0xddb62
movl $0x1, %edi
callq 0x89280
cmpl $0x0, -0x4(%rbp)
je 0xddb4c
leaq 0xa6038(%rip), %rdi     # 0x183b78
movl $0x143, %esi            # imm = 0x143
callq 0x82fd0
jmp 0xddb5d
leaq 0xa6b8d(%rip), %rdi     # 0x1846e0
movl $0x143, %esi            # imm = 0x143
callq 0x82fd0
callq 0x89260
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: set_cs_ster(double)
void set_cs_ster(double offset)
{
   if(read_only) return;

   if(rcvr_type == CS_RCVR) {
      set_cs_remote(1);
      sprintf(out, ":ROSC:STE %g", offset);
      queue_cs_cmd(out, CS_STER_MSG);
      queue_cs_cmd("ROSC:STE?", CS_STER_MSG);
      restore_cs_remote();
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd %xmm0, -0x8(%rbp)
leaq 0x2b8676(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0xddb8b
jmp 0xddbe6
leaq 0x199f1e(%rip), %rax    # 0x277ab0
cmpq $0x20000, (%rax)        # imm = 0x20000
jne 0xddbe6
movl $0x1, %edi
callq 0x89280
movsd -0x8(%rbp), %xmm0
leaq 0x2bd84f(%rip), %rdi    # 0x39b400
leaq 0xab181(%rip), %rsi     # 0x188d39
movb $0x1, %al
callq 0x9060
leaq 0x2bd83a(%rip), %rdi    # 0x39b400
movl $0x141, %esi            # imm = 0x141
callq 0x82fd0
leaq 0xab016(%rip), %rdi     # 0x188bed
movl $0x141, %esi            # imm = 0x141
callq 0x82fd0
callq 0x89260
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: set_cs_sync(char*)
void set_cs_sync(char *s)
{
   // OFF FRONT REAR
   if(read_only) return;

   if(s == 0) return;

   if(rcvr_type == CS_RCVR) {
      set_cs_remote(1);
      sprintf(out, ":PTIM:SYNC %s", s);
      queue_cs_cmd(out, CS_SYNC_MSG);
      restore_cs_remote();
      queue_cs_cmd(":PTIM:SYNC?", CS_SYNC_MSG);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
leaq 0x2b85f7(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0xddc0a
jmp 0xddc6d
cmpq $0x0, -0x8(%rbp)
jne 0xddc13
jmp 0xddc6d
leaq 0x199e96(%rip), %rax    # 0x277ab0
cmpq $0x20000, (%rax)        # imm = 0x20000
jne 0xddc6d
movl $0x1, %edi
callq 0x89280
movq -0x8(%rbp), %rdx
leaq 0x2bd7c8(%rip), %rdi    # 0x39b400
leaq 0xab107(%rip), %rsi     # 0x188d46
movb $0x0, %al
callq 0x9060
leaq 0x2bd7b3(%rip), %rdi    # 0x39b400
movl $0x142, %esi            # imm = 0x142
callq 0x82fd0
callq 0x89260
leaq 0xaaf94(%rip), %rdi     # 0x188bf7
movl $0x142, %esi            # imm = 0x142
callq 0x82fd0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: clear_cs_log()
void clear_cs_log()
{
int i;

   if(read_only) return;

   if(rcvr_type == CS_RCVR) {
      set_cs_remote(1);
      queue_cs_cmd("DIAG:LOG:CLE", CS_CLEARLOG_MSG);
      restore_cs_remote();

      queue_cs_cmd("DIAG:LOG:COUN?", CS_LOGCOUNT_MSG);
      cs_log_count = 0;
      for(i=0; i<MAX_CS_LOGS; i++) {
         cs_log_msg[i][0] = 0;
      }
      need_redraw = 7865;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x2b856b(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0xddc99
jmp 0xddd24
leaq 0x199e10(%rip), %rax    # 0x277ab0
cmpq $0x20000, (%rax)        # imm = 0x20000
jne 0xddd24
movl $0x1, %edi
callq 0x89280
leaq 0xab0b9(%rip), %rdi     # 0x188d73
movl $0x14c, %esi            # imm = 0x14C
callq 0x82fd0
callq 0x89260
leaq 0xaaf64(%rip), %rdi     # 0x188c34
movl $0x14a, %esi            # imm = 0x14A
callq 0x82fd0
leaq 0x19bdf3(%rip), %rax    # 0x279ad4
movl $0x0, (%rax)
movl $0x0, -0x4(%rbp)
cmpl $0xc0, -0x4(%rbp)
jge 0xddd17
movslq -0x4(%rbp), %rcx
leaq 0x19a42e(%rip), %rax    # 0x278130
imulq $0x22, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0xddcee
leaq 0x199d06(%rip), %rax    # 0x277a24
movl $0x1eb9, (%rax)         # imm = 0x1EB9
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_taip_start(char*)
void send_taip_start(char *cmd)
{
   // start a TAIP message
   if(log_file && (log_stream & LOG_PACKET_START)) {
      if(cmd) fprintf(log_file, "\nSend taip start: %s\n", cmd);
      else    fprintf(log_file, "\nSend taip start: >\n");
   }

   eom_flag = 0;
   nmea_tx_cksum = 0;
   send_byte('>');
   if(cmd) send_nmea_string(cmd, 0);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
leaq 0x1bf7fd(%rip), %rax    # 0x29d540
cmpq $0x0, (%rax)
je 0xddd99
leaq 0x1bf8a0(%rip), %rax    # 0x29d5f0
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0xddd99
cmpq $0x0, -0x8(%rbp)
je 0xddd7f
leaq 0x1bf7d8(%rip), %rax    # 0x29d540
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
leaq 0xab00a(%rip), %rsi     # 0x188d80
movb $0x0, %al
callq 0x9550
jmp 0xddd97
leaq 0x1bf7ba(%rip), %rax    # 0x29d540
movq (%rax), %rdi
leaq 0xab006(%rip), %rsi     # 0x188d96
movb $0x0, %al
callq 0x9550
jmp 0xddd99
movl $0x0, 0x2ed24d(%rip)    # 0x3caff0
movb $0x0, 0x2edeec(%rip)    # 0x3cbc96
movl $0x3e, %edi
callq 0x7b210
cmpq $0x0, -0x8(%rbp)
je 0xdddc6
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x82750
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_taip_end(int)
void send_taip_end(int do_cksum)
{
char cksum[10];

   // end a TAIP message

   if(do_cksum) {
      send_byte(';');
      send_byte('*');

      sprintf(cksum, "%02X", (nmea_tx_cksum & 0xFF));
      sendout(RCVR_PORT, cksum[0], ADD_CHAR);
      sendout(RCVR_PORT, cksum[1], ADD_CHAR);
   }
   sendout(RCVR_PORT, '<',  ADD_CHAR);
   sendout(RCVR_PORT, 0x0D, ADD_CHAR);
   sendout(RCVR_PORT, 0x0A, EOM);
   if(sim_file == 0) Sleep(50);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
je 0xdde34
movl $0x3b, %edi
callq 0x7b210
movl $0x2a, %edi
callq 0x7b210
leaq -0xe(%rbp), %rdi
movzbl 0x2ede96(%rip), %edx    # 0x3cbc96
andl $0xff, %edx
leaq 0xb0079(%rip), %rsi     # 0x18de86
movb $0x0, %al
callq 0x9060
movl $0xa, %edi
xorl %edx, %edx
movzbl -0xe(%rbp), %esi
callq 0xd160
movl $0xa, %edi
xorl %edx, %edx
movzbl -0xd(%rbp), %esi
callq 0xd160
movl $0xa, %edi
movl $0x3c, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %edi
movl $0xd, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %esi
movl $0x1, %edx
movl %esi, %edi
callq 0xd160
leaq 0x1bf732(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
jne 0xdde7e
movl $0x32, %edi
callq 0xb8b0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_taip_id(int)
void send_taip_id(int id)
{
char s[32];

   // send a TAIP device id

   if(id < 0) id = 0-id;
   id = (id % 10000);

   sprintf(s, ";ID=%04d", id);
   send_nmea_string(s, 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jge 0xddea9
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
movl $0x2710, %ecx           # imm = 0x2710
cltd
idivl %ecx
movl %edx, -0x4(%rbp)
leaq -0x30(%rbp), %rdi
movl -0x4(%rbp), %edx
leaq 0xaaee6(%rip), %rsi     # 0x188dab
movb $0x0, %al
callq 0x9060
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x82750
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_taip_version()
void parse_taip_version()
{
   taip_product[0] = 0;
   taip_version[0] = 0; 
   taip_core[0] = 0; 
   taip_copr[0] = 0; 

   if(get_scpi_delim(';')) {  // product name
      strcpy(taip_product, msg_field);
   }
   if(get_scpi_delim(';')) {  // version
      strcpy(taip_version, msg_field);
   }
   if(get_scpi_delim(';')) {  // core
      strcpy(taip_core, msg_field);
   }
   if(get_scpi_delim(';')) {  // copright
      strcpy(taip_copr, msg_field);
   }

   have_info |= ALL_ID_INFO;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x2be975(%rip), %rax    # 0x39d090
movb $0x0, (%rax)
leaq 0x2beb7b(%rip), %rax    # 0x39d2a0
movb $0x0, (%rax)
leaq 0x2bed81(%rip), %rax    # 0x39d4b0
movb $0x0, (%rax)
leaq 0x2bef87(%rip), %rax    # 0x39d6c0
movb $0x0, (%rax)
movl $0x3b, %edi
callq 0xd5d90
cmpl $0x0, %eax
je 0xde75e
leaq 0x2be93e(%rip), %rdi    # 0x39d090
leaq 0x2bc4c7(%rip), %rsi    # 0x39ac20
callq 0x9350
movl $0x3b, %edi
callq 0xd5d90
cmpl $0x0, %eax
je 0xde780
leaq 0x2beb2c(%rip), %rdi    # 0x39d2a0
leaq 0x2bc4a5(%rip), %rsi    # 0x39ac20
callq 0x9350
movl $0x3b, %edi
callq 0xd5d90
cmpl $0x0, %eax
je 0xde7a2
leaq 0x2bed1a(%rip), %rdi    # 0x39d4b0
leaq 0x2bc483(%rip), %rsi    # 0x39ac20
callq 0x9350
movl $0x3b, %edi
callq 0xd5d90
cmpl $0x0, %eax
je 0xde7c4
leaq 0x2bef08(%rip), %rdi    # 0x39d6c0
leaq 0x2bc461(%rip), %rsi    # 0x39ac20
callq 0x9350
leaq 0x28e389(%rip), %rax    # 0x36cb54
movl (%rax), %ecx
orl $0xf, %ecx
leaq 0x28e37d(%rip), %rax    # 0x36cb54
movl %ecx, (%rax)
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_time()
void parse_tm4_time()
{
   log_packet_id("time/date");

   if(get_msg_field()) {
      sscanf(msg_field, "%02d%02d%04d", &pri_month,&pri_day,&pri_year);
   }
   if(get_msg_field()) {
      sscanf(msg_field, "%02d%02d%02d", &pri_hours,&pri_minutes,&pri_seconds);
      pri_frac = 0.0;
   }

   if(timing_mode == TMODE_GPS) {     // convert utc time to gps time
      utc_to_gps();
   }
   else {
      adjust_rcvr_time(0.0);  // incorporarte possibly negative fractional second into time variables
   }

   update_gps_screen(5564);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa9ba8(%rip), %rdi     # 0x188e03
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdf294
leaq 0x2bb9af(%rip), %rdi    # 0x39ac20
leaq 0xa9b95(%rip), %rsi     # 0x188e0d
leaq 0x28d471(%rip), %rdx    # 0x36c6f0
leaq 0x28d466(%rip), %rcx    # 0x36c6ec
leaq 0x28d467(%rip), %r8     # 0x36c6f4
movb $0x0, %al
callq 0x9370
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdf2d6
leaq 0x2bb97b(%rip), %rdi    # 0x39ac20
leaq 0xa9b6e(%rip), %rsi     # 0x188e1a
leaq 0x28d435(%rip), %rdx    # 0x36c6e8
leaq 0x28d42a(%rip), %rcx    # 0x36c6e4
leaq 0x28d41f(%rip), %r8     # 0x36c6e0
movb $0x0, %al
callq 0x9370
leaq 0x28d429(%rip), %rax    # 0x36c6f8
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
leaq 0x28d3c0(%rip), %rax    # 0x36c69d
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xdf2ec
callq 0x7fc70
jmp 0xdf2f4
xorps %xmm0, %xmm0
callq 0x7fbf0
movl $0x15bc, %edi           # imm = 0x15BC
callq 0x9d790
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_alt()
void parse_tm4_alt()
{
   log_packet_id("altitude");
   if(have_tm4_enhanced) return;

   if(get_msg_field()) {
      alt = atof(msg_field);
   }

   get_msg_field(); // 'M' for meters
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa87b5(%rip), %rdi     # 0x187ee0
callq 0x7add0
leaq 0x2bba0d(%rip), %rax    # 0x39b144
cmpl $0x0, (%rax)
je 0xdf73e
jmp 0xdf764
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdf75f
leaq 0x2bb4d1(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x28ca65(%rip), %rax    # 0x36c1c0
movsd %xmm0, (%rax)
callq 0xb0bd0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_elmask()
void parse_tm4_elmask()
{
int i;
int datum;

   log_packet_id("elmask/datum");

   if(get_msg_field()) {
      i = atoi(msg_field);
      if     (i == 0) i = 5;
      else if(i == 1) i = 15;
      else if(i == 2) i = 20;
      else i = 0;
      if((i > 0) && (i < 90)) {
         el_mask = (float) i;
         have_el_mask = 444;
      }
   }

   if(get_msg_field()) {
      datum = atoi(&msg_field[1]);
      have_datum = 444;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa96a8(%rip), %rdi     # 0x188e27
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdf800
leaq 0x2bb48b(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0xdf7ac
movl $0x5, -0x4(%rbp)
jmp 0xdf7d5
cmpl $0x1, -0x4(%rbp)
jne 0xdf7bb
movl $0xf, -0x4(%rbp)
jmp 0xdf7d3
cmpl $0x2, -0x4(%rbp)
jne 0xdf7ca
movl $0x14, -0x4(%rbp)
jmp 0xdf7d1
movl $0x0, -0x4(%rbp)
jmp 0xdf7d3
jmp 0xdf7d5
cmpl $0x0, -0x4(%rbp)
jle 0xdf7fe
cmpl $0x5a, -0x4(%rbp)
jge 0xdf7fe
cvtsi2ssl -0x4(%rbp), %xmm0
leaq 0x28caa7(%rip), %rax    # 0x36c294
movss %xmm0, (%rax)
leaq 0x28cde4(%rip), %rax    # 0x36c5dc
movl $0x1bc, (%rax)          # imm = 0x1BC
jmp 0xdf800
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdf82a
leaq 0x2bb40f(%rip), %rdi    # 0x39ac20
addq $0x1, %rdi
callq 0x95c0
movl %eax, -0x8(%rbp)
leaq 0x28d7b0(%rip), %rax    # 0x36cfd4
movl $0x1bc, (%rax)          # imm = 0x1BC
addq $0x10, %rsp
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_cable()
void parse_tm4_cable()
{
   log_packet_id("cable delay");

   if(get_msg_field()) {
      cable_delay = atof(msg_field);
      cable_delay /= 1.0E9;
      have_cable_delay = 444;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa8729(%rip), %rdi     # 0x187f64
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdf890
leaq 0x2bb3cf(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x28d74b(%rip), %rax    # 0x36cfa8
movsd %xmm0, (%rax)
leaq 0x28d740(%rip), %rax    # 0x36cfa8
movsd (%rax), %xmm0
movsd 0x8f7b4(%rip), %xmm1    # 0x16f028
divsd %xmm1, %xmm0
leaq 0x28d729(%rip), %rax    # 0x36cfa8
movsd %xmm0, (%rax)
leaq 0x28cc0a(%rip), %rax    # 0x36c494
movl $0x1bc, (%rax)          # imm = 0x1BC
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_tmode()
void parse_tm4_tmode()
{
int i;

   log_packet_id("timing mode");

   if(get_msg_field()) {
      i = atoi(msg_field);
      minor_alarms &= (~MINOR_SURVEY);
      if(i == 0) {
         if(tm4_gps) rcvr_mode = RCVR_MODE_3D;
         else        rcvr_mode = RCVR_MODE_NO_SATS;
      }
      else if(i == 1) {
         rcvr_mode = RCVR_MODE_HOLD;
      }
      else if(i == 3) {
         rcvr_mode = RCVR_MODE_SURVEY;
         minor_alarms |= MINOR_SURVEY;
      }
      else {
         rcvr_mode = RCVR_MODE_UNKNOWN;
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa86a9(%rip), %rdi     # 0x187f58
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdf956
leaq 0x2bb357(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
leaq 0x28cae0(%rip), %rax    # 0x36c3b8
movl (%rax), %ecx
andl $-0x21, %ecx
leaq 0x28cad4(%rip), %rax    # 0x36c3b8
movl %ecx, (%rax)
cmpl $0x0, -0x4(%rbp)
jne 0xdf90d
cmpl $0x0, 0x2f1911(%rip)    # 0x3d1204
je 0xdf901
leaq 0x28c9b4(%rip), %rax    # 0x36c2b0
movb $0x4, (%rax)
jmp 0xdf90b
leaq 0x28c9a8(%rip), %rax    # 0x36c2b0
movb $0x2, (%rax)
jmp 0xdf954
cmpl $0x1, -0x4(%rbp)
jne 0xdf91f
leaq 0x28c996(%rip), %rax    # 0x36c2b0
movb $0x7, (%rax)
jmp 0xdf952
cmpl $0x3, -0x4(%rbp)
jne 0xdf946
leaq 0x28c984(%rip), %rax    # 0x36c2b0
movb $0xb, (%rax)
leaq 0x28ca82(%rip), %rax    # 0x36c3b8
movl (%rax), %ecx
orl $0x20, %ecx
leaq 0x28ca76(%rip), %rax    # 0x36c3b8
movl %ecx, (%rax)
jmp 0xdf950
leaq 0x28c963(%rip), %rax    # 0x36c2b0
movb $0x63, (%rax)
jmp 0xdf952
jmp 0xdf954
jmp 0xdf956
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_mux1()
void parse_tm4_mux1()
{
   log_packet_id("mux1 status");

   if(get_msg_field()) {  // time port baud
      tm4_time_baud = atoi(msg_field);
      have_tm4_time_baud = 1;
   }

   if(get_msg_field()) {  // output type
      tm4_code1 = atoi(msg_field);
      if(tm4_code1 == 7) {
         pps_enabled = 1;
      }
      else pps_enabled = 0;

      have_tm4_code |= 0x01;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa92f5(%rip), %rdi     # 0x188e40
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfb7e
leaq 0x2bb0bf(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x2bb4dd(%rip), %rax    # 0x39b04c
movl %ecx, (%rax)
leaq 0x2bb4d8(%rip), %rax    # 0x39b050
movl $0x1, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfbd9
leaq 0x2bb091(%rip), %rdi    # 0x39ac20
callq 0x95c0
movb %al, %cl
leaq 0x2bb4ab(%rip), %rax    # 0x39b048
movb %cl, (%rax)
leaq 0x2bb4a2(%rip), %rax    # 0x39b048
movsbl (%rax), %eax
cmpl $0x7, %eax
jne 0xdfbba
leaq 0x28d34b(%rip), %rax    # 0x36cf00
movb $0x1, (%rax)
jmp 0xdfbc4
leaq 0x28d33f(%rip), %rax    # 0x36cf00
movb $0x0, (%rax)
leaq 0x2bb489(%rip), %rax    # 0x39b054
movl (%rax), %ecx
orl $0x1, %ecx
leaq 0x2bb47d(%rip), %rax    # 0x39b054
movl %ecx, (%rax)
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_validity()
void parse_tm4_validity()
{
int i;

   log_packet_id("time validity");

   if(get_msg_field()) {
      i = atoi(msg_field);
      if(i == 1) time_flags &= (~TFLAGS_INVALID);
      else if(i == 0) time_flags |= TFLAGS_INVALID;
   }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa925d(%rip), %rdi     # 0x188e4c
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfc49
leaq 0x2bb01b(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
cmpl $0x1, -0x4(%rbp)
jne 0xdfc2a
leaq 0x28ca6a(%rip), %rax    # 0x36c684
movl (%rax), %ecx
andl $-0x5, %ecx
leaq 0x28ca5e(%rip), %rax    # 0x36c684
movl %ecx, (%rax)
jmp 0xdfc47
cmpl $0x0, -0x4(%rbp)
jne 0xdfc45
leaq 0x28ca4d(%rip), %rax    # 0x36c684
movl (%rax), %ecx
orl $0x4, %ecx
leaq 0x28ca41(%rip), %rax    # 0x36c684
movl %ecx, (%rax)
jmp 0xdfc47
jmp 0xdfc49
addq $0x10, %rsp
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_ett()
void parse_tm4_ett()
{
int ett_month,ett_day,ett_year;
int ett_hours,ett_minutes,ett_seconds;
double ett_frac;

   log_packet_id("time tag");

   ett_jd = 0.0;
   if(get_msg_field()) {
      sscanf(msg_field, "%02d%02d%04d", &ett_month,&ett_day,&ett_year);
      ett_jd = jdate(ett_year,ett_month,ett_day);
   }
   if(get_msg_field()) {
      sscanf(msg_field, "%02d%02d%02d%lf", &ett_hours,&ett_minutes,&ett_seconds, &ett_frac);
      ett_jd += jtime(ett_hours,ett_minutes,ett_seconds,ett_frac);
      ++have_tm4_ett_jd;
   }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
leaq 0xa72ac(%rip), %rdi     # 0x186f0b
callq 0x7add0
leaq 0x2bb4fd(%rip), %rax    # 0x39b168
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfcb6
leaq 0x2baf9d(%rip), %rdi    # 0x39ac20
leaq 0xa9183(%rip), %rsi     # 0x188e0d
leaq -0x4(%rbp), %rdx
leaq -0x8(%rbp), %rcx
leaq -0xc(%rbp), %r8
movb $0x0, %al
callq 0x9370
movl -0xc(%rbp), %edi
movl -0x4(%rbp), %esi
movl -0x8(%rbp), %edx
callq 0x122140
leaq 0x2bb4b6(%rip), %rax    # 0x39b168
movsd %xmm0, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfd23
leaq 0x2baf59(%rip), %rdi    # 0x39ac20
leaq 0xa918c(%rip), %rsi     # 0x188e5a
leaq -0x10(%rbp), %rdx
leaq -0x14(%rbp), %rcx
leaq -0x18(%rbp), %r8
leaq -0x20(%rbp), %r9
movb $0x0, %al
callq 0x9370
movl -0x10(%rbp), %edi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movsd -0x20(%rbp), %xmm0
callq 0x122210
leaq 0x2bb469(%rip), %rax    # 0x39b168
addsd (%rax), %xmm0
leaq 0x2bb45e(%rip), %rax    # 0x39b168
movsd %xmm0, (%rax)
leaq 0x2bb45b(%rip), %rax    # 0x39b170
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x2bb44f(%rip), %rax    # 0x39b170
movl %ecx, (%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_dmode()
void parse_tm4_dmode()
{
int i;

   log_packet_id("discipline mode");

   if(get_msg_field()) {
      i = atoi(msg_field);
      if     (i == 1) discipline_mode = DIS_MODE_WARMUP;
      else if(i == 2) discipline_mode = DIS_MODE_RECOVERY;
      else if(i == 3) discipline_mode = DIS_MODE_AUTO_HOLD;
      else if(i == 4) discipline_mode = DIS_MODE_NORMAL;
      else if(i == 5) discipline_mode = DIS_MODE_AUTO_HOLD;
      else            discipline_mode = DIS_MODE_UNKNOWN;
   }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa912b(%rip), %rdi     # 0x188e6a
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfdcb
leaq 0x2baecb(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
cmpl $0x1, -0x4(%rbp)
jne 0xdfd6f
leaq 0x28c90d(%rip), %rax    # 0x36c677
movb $0xa, (%rax)
jmp 0xdfdc9
cmpl $0x2, -0x4(%rbp)
jne 0xdfd81
leaq 0x28c8fb(%rip), %rax    # 0x36c677
movb $0x4, (%rax)
jmp 0xdfdc7
cmpl $0x3, -0x4(%rbp)
jne 0xdfd93
leaq 0x28c8e9(%rip), %rax    # 0x36c677
movb $0x2, (%rax)
jmp 0xdfdc5
cmpl $0x4, -0x4(%rbp)
jne 0xdfda5
leaq 0x28c8d7(%rip), %rax    # 0x36c677
movb $0x0, (%rax)
jmp 0xdfdc3
cmpl $0x5, -0x4(%rbp)
jne 0xdfdb7
leaq 0x28c8c5(%rip), %rax    # 0x36c677
movb $0x2, (%rax)
jmp 0xdfdc1
leaq 0x28c8b9(%rip), %rax    # 0x36c677
movb $-0x1, (%rax)
jmp 0xdfdc3
jmp 0xdfdc5
jmp 0xdfdc7
jmp 0xdfdc9
jmp 0xdfdcb
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_alarm()
void parse_tm4_alarm()
{
int i;

   log_packet_id("alarm status");

   if(get_msg_field()) {      // coast (holdover)
      i = atoi(msg_field);
   }


   if(get_msg_field()) {      // antenna
      i = atoi(msg_field);
      if(i) minor_alarms |= MINOR_ANT_NO_PWR;
      else  minor_alarms &= (~MINOR_ANT_NO_PWR);
      have_antenna = 444;
   }


   if(get_msg_field()) {      // OSC output
      i = atoi(msg_field);
      if(i == 0) critical_alarms &= (~CRIT_OCXO);
      else       critical_alarms |= (CRIT_OCXO);
      have_critical_alarms = 444;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa908b(%rip), %rdi     # 0x188e7a
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfe0d
leaq 0x2bae1b(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfe65
leaq 0x2bae02(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
je 0xdfe43
leaq 0x28c585(%rip), %rax    # 0x36c3b8
movl (%rax), %ecx
orl $0x6, %ecx
leaq 0x28c579(%rip), %rax    # 0x36c3b8
movl %ecx, (%rax)
jmp 0xdfe58
leaq 0x28c56e(%rip), %rax    # 0x36c3b8
movl (%rax), %ecx
andl $-0x7, %ecx
leaq 0x28c562(%rip), %rax    # 0x36c3b8
movl %ecx, (%rax)
leaq 0x28c5ad(%rip), %rax    # 0x36c40c
movl $0x1bc, (%rax)          # imm = 0x1BC
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdfebd
leaq 0x2badaa(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0xdfe9b
leaq 0x28c525(%rip), %rax    # 0x36c3b0
movl (%rax), %ecx
andl $-0x11, %ecx
leaq 0x28c519(%rip), %rax    # 0x36c3b0
movl %ecx, (%rax)
jmp 0xdfeb0
leaq 0x28c50e(%rip), %rax    # 0x36c3b0
movl (%rax), %ecx
orl $0x10, %ecx
leaq 0x28c502(%rip), %rax    # 0x36c3b0
movl %ecx, (%rax)
leaq 0x28c5d1(%rip), %rax    # 0x36c488
movl $0x1bc, (%rax)          # imm = 0x1BC
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_id()
void parse_tm4_id()
{
   log_packet_id("id info");

   if(get_msg_field()) { // .obj
      msg_field[32] = 0;
      strcpy(tm4_obj, msg_field);
   }

   if(get_msg_field()) { // .hex
      msg_field[32] = 0;
      strcpy(tm4_hex, msg_field);
   }

   if(get_msg_field()) { // hex string
      msg_field[32] = 0;
      strcpy(tm4_string, msg_field);
   }

   if(get_msg_field()) { // version?
      msg_field[32] = 0;
      strcpy(tm4_id, msg_field);
   }

   have_info |= ALL_ID_INFO;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa6c72(%rip), %rdi     # 0x186b4d
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdff08
leaq 0x2bad2f(%rip), %rax    # 0x39ac20
movb $0x0, 0x20(%rax)
leaq 0x2bb174(%rip), %rdi    # 0x39b070
leaq 0x2bad1d(%rip), %rsi    # 0x39ac20
callq 0x9350
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdff30
leaq 0x2bad07(%rip), %rax    # 0x39ac20
movb $0x0, 0x20(%rax)
leaq 0x2bb17c(%rip), %rdi    # 0x39b0a0
leaq 0x2bacf5(%rip), %rsi    # 0x39ac20
callq 0x9350
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdff58
leaq 0x2bacdf(%rip), %rax    # 0x39ac20
movb $0x0, 0x20(%rax)
leaq 0x2bb184(%rip), %rdi    # 0x39b0d0
leaq 0x2baccd(%rip), %rsi    # 0x39ac20
callq 0x9350
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdff80
leaq 0x2bacb7(%rip), %rax    # 0x39ac20
movb $0x0, 0x20(%rax)
leaq 0x2bb18c(%rip), %rdi    # 0x39b100
leaq 0x2baca5(%rip), %rsi    # 0x39ac20
callq 0x9350
leaq 0x28cbcd(%rip), %rax    # 0x36cb54
movl (%rax), %ecx
orl $0xf, %ecx
leaq 0x28cbc1(%rip), %rax    # 0x36cb54
movl %ecx, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_mux2()
void parse_tm4_mux2()
{
   log_packet_id("mux2 status");

   if(get_msg_field()) {  // output type
      tm4_code2 = atoi(msg_field);
      have_tm4_code |= 0x02;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa8edc(%rip), %rdi     # 0x188e87
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xdffe6
leaq 0x2bac5f(%rip), %rdi    # 0x39ac20
callq 0x95c0
movb %al, %cl
leaq 0x2bb07a(%rip), %rax    # 0x39b049
movb %cl, (%rax)
leaq 0x2bb07c(%rip), %rax    # 0x39b054
movl (%rax), %ecx
orl $0x2, %ecx
leaq 0x2bb070(%rip), %rax    # 0x39b054
movl %ecx, (%rax)
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_time_format()
void parse_tm4_time_format()
{
   log_packet_id("time output format");

   if(get_msg_field()) {  // time output type
      ett_time_format = atoi(msg_field);
      have_ett_time_format = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa8be8(%rip), %rdi     # 0x188e93
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe02de
leaq 0x2ba95f(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x2bad91(%rip), %rax    # 0x39b060
movl %ecx, (%rax)
leaq 0x2bad8c(%rip), %rax    # 0x39b064
movl $0x1, (%rax)
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_code_format()
void parse_tm4_code_format()
{
   log_packet_id("time code format");

   if(get_msg_field()) {  // code format
      ett_code_format = atoi(msg_field);
      have_ett_code_format = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa8bbb(%rip), %rdi     # 0x188ea6
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe031e
leaq 0x2ba91f(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x2bad59(%rip), %rax    # 0x39b068
movl %ecx, (%rax)
leaq 0x2bad54(%rip), %rax    # 0x39b06c
movl $0x1, (%rax)
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_ett_enable()
void parse_tm4_ett_enable()
{
   log_packet_id("ETT enabled state");

   if(get_msg_field()) {  // ETT enabled state
      ett_enable = atoi(msg_field);
      have_tm4_ett_enable = 1;
   }

   if(get_msg_field()) {  // polarity
      ett_polarity = msg_field[0];
      have_ett_polarity = 1;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa8b8c(%rip), %rdi     # 0x188eb7
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe035e
leaq 0x2ba8df(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x2bad09(%rip), %rax    # 0x39b058
movl %ecx, (%rax)
leaq 0x2bad04(%rip), %rax    # 0x39b05c
movl $0x1, (%rax)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe0388
leaq 0x2ba8b1(%rip), %rax    # 0x39ac20
movsbl (%rax), %ecx
leaq 0x2badc3(%rip), %rax    # 0x39b13c
movl %ecx, (%rax)
leaq 0x2badbe(%rip), %rax    # 0x39b140
movl $0x1, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_speed()
void parse_tm4_speed()
{
   log_packet_id("speed/heading");
   if(have_tm4_enhanced) return;

    if(get_msg_field()) {
       speed = atof(msg_field);
       have_speed = 444;
    }

    if(get_msg_field()) {
       heading = atof(msg_field);
       have_heading = 444;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xa8b2e(%rip), %rdi     # 0x188ec9
callq 0x7add0
leaq 0x2bad9d(%rip), %rax    # 0x39b144
cmpl $0x0, (%rax)
je 0xe03ae
jmp 0xe040a
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe03dc
leaq 0x2ba861(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x28be35(%rip), %rax    # 0x36c200
movsd %xmm0, (%rax)
leaq 0x28c142(%rip), %rax    # 0x36c518
movl $0x1bc, (%rax)          # imm = 0x1BC
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe040a
leaq 0x2ba833(%rip), %rdi    # 0x39ac20
callq 0x9480
leaq 0x28be0f(%rip), %rax    # 0x36c208
movsd %xmm0, (%rax)
leaq 0x28c110(%rip), %rax    # 0x36c514
movl $0x1bc, (%rax)          # imm = 0x1BC
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_tm4_utc()
void parse_tm4_utc()
{
int i;

   log_packet_id("UTC offset");

   if(get_msg_field()) {  // 0=GPS time  1=UTC time
      i = atoi(msg_field);
   }
   if(get_msg_field()) {  // 0=no utc_offset  1=utc_offset valid
      i = atoi(msg_field);
   }

   if(get_msg_field()) { 
      i = atoi(msg_field);
      if(i) {
         if(!user_set_utc_ofs) {
            utc_offset = i;
            have_utc_ofs = (444);
         }
         check_utc_ofs(444);
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0xa8920(%rip), %rdi     # 0x188edf
callq 0x7add0
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe05dd
leaq 0x2ba64b(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe05f6
leaq 0x2ba632(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
callq 0xb0bd0
cmpl $0x0, %eax
je 0xe0646
leaq 0x2ba619(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
je 0xe0644
leaq 0x28c2f8(%rip), %rax    # 0x36c914
cmpl $0x0, (%rax)
jne 0xe063a
movl -0x4(%rbp), %ecx
leaq 0x28c2dd(%rip), %rax    # 0x36c908
movl %ecx, (%rax)
leaq 0x28bec8(%rip), %rax    # 0x36c4fc
movl $0x1bc, (%rax)          # imm = 0x1BC
movl $0x1bc, %edi            # imm = 0x1BC
callq 0x7a270
jmp 0xe0646
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)