// File: jkingan[P]ladyheather/heathgps.cpp
// Function: get_timing_msg()
void get_timing_msg()
{
   subcode = tsip_byte();

   if     (subcode == 0x0B) get_comp_time();
   else if(subcode == 0x14) get_unknown_msg(0x8F00 | subcode);  // * current datum values
   else if(subcode == 0x15) get_datums();
   else if(subcode == 0x20) get_sv6_fix();
   else if(subcode == 0x26) get_unknown_msg(0x8F00 | subcode);  // * eeprom write acknowledge
   else if(subcode == 0x41) get_manuf_params();
   else if(subcode == 0x42) get_prodn_params();
   else if(subcode == 0x45) get_segment_info();                 // EEPROM segemnt info
   else if(subcode == 0x4A) get_pps_settings();
   else if(subcode == 0x4B) get_unknown_msg(0x8F00 | subcode);  // * programming the survey limit
   else if(subcode == 0x4D) get_unknown_msg(0x8F00 | subcode);  // * automatic packet output mask
   else if(subcode == 0x4E) get_pps_mode();
   else if(subcode == 0xA0) get_dac_values();
   else if(subcode == 0xA1) get_osc_sense();

   else if(subcode == 0xA2) get_timing_mode();
   else if(subcode == 0xA5) get_packet_mask();
   else if(subcode == 0xA7) get_sat_solutions();   // not on ThunderBolt-E
   else if(subcode == 0xA8) get_discipline_params();
   else if(subcode == 0xA9) get_survey_params();
   else if(subcode == 0xAB) primary_timing(1);
   else if(subcode == 0xAC) secondary_timing(1);
   else if(subcode == 0xAD) get_unknown_msg(0x8F00 | subcode);  // * primary UTC time
   else if(subcode == 0xAE) get_ae_packet();
   else                     get_unknown_msg(0x8F00 | subcode);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x7a510
movb %al, %cl
leaq 0x1f03dc(%rip), %rax    # 0x29e13e
movb %cl, (%rax)
leaq 0x1f03d3(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0xadd7d
callq 0xa1f20
jmp 0xae054
leaq 0x1f03ba(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x14, %eax
jne 0xadda8
leaq 0x1f03ab(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
orl $0x8f00, %eax           # imm = 0x8F00
movzwl %ax, %edi
callq 0xae060
jmp 0xae052
leaq 0x1f038f(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x15, %eax
jne 0xaddc1
callq 0xa08d0
jmp 0xae050
leaq 0x1f0376(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x20, %eax
jne 0xaddda
callq 0xa0a20
jmp 0xae04e
leaq 0x1f035d(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x26, %eax
jne 0xade05
leaq 0x1f034e(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
orl $0x8f00, %eax           # imm = 0x8F00
movzwl %ax, %edi
callq 0xae060
jmp 0xae04c
leaq 0x1f0332(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x41, %eax
jne 0xade1e
callq 0xa0a40
jmp 0xae04a
leaq 0x1f0319(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x42, %eax
jne 0xade37
callq 0xa0d50
jmp 0xae048
leaq 0x1f0300(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x45, %eax
jne 0xade50
callq 0xa0e10
jmp 0xae046
leaq 0x1f02e7(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x4a, %eax
jne 0xade69
callq 0xa0e60
jmp 0xae044
leaq 0x1f02ce(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x4b, %eax
jne 0xade94
leaq 0x1f02bf(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
orl $0x8f00, %eax           # imm = 0x8F00
movzwl %ax, %edi
callq 0xae060
jmp 0xae042
leaq 0x1f02a3(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x4d, %eax
jne 0xadebf
leaq 0x1f0294(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
orl $0x8f00, %eax           # imm = 0x8F00
movzwl %ax, %edi
callq 0xae060
jmp 0xae040
leaq 0x1f0278(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0x4e, %eax
jne 0xaded8
callq 0xa1150
jmp 0xae03e
leaq 0x1f025f(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xa0, %eax
jne 0xadef3
callq 0xa11a0
jmp 0xae03c
leaq 0x1f0244(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xa1, %eax
jne 0xadf0e
callq 0xa1210
jmp 0xae03a
leaq 0x1f0229(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xa2, %eax
jne 0xadf29
callq 0xa1260
jmp 0xae038
leaq 0x1f020e(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xa5, %eax
jne 0xadf44
callq 0xa1300
jmp 0xae036
leaq 0x1f01f3(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xa7, %eax
jne 0xadf5f
callq 0xa1350
jmp 0xae034
leaq 0x1f01d8(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xa8, %eax
jne 0xadf7a
callq 0xa1570
jmp 0xae032
leaq 0x1f01bd(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xa9, %eax
jne 0xadf95
callq 0xa1cf0
jmp 0xae030
leaq 0x1f01a2(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xab, %eax
jne 0xadfb2
movl $0x1, %edi
callq 0xa2560
jmp 0xae02e
leaq 0x1f0185(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xac, %eax
jne 0xadfcf
movl $0x1, %edi
callq 0xa3470
jmp 0xae02c
leaq 0x1f0168(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xad, %eax
jne 0xadff9
leaq 0x1f0157(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
orl $0x8f00, %eax           # imm = 0x8F00
movzwl %ax, %edi
callq 0xae060
jmp 0xae02a
leaq 0x1f013e(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
cmpl $0xae, %eax
jne 0xae011
callq 0xa77c0
jmp 0xae028
leaq 0x1f0126(%rip), %rax    # 0x29e13e
movzbl (%rax), %eax
orl $0x8f00, %eax           # imm = 0x8F00
movzwl %ax, %edi
callq 0xae060
jmp 0xae02a
jmp 0xae02c
jmp 0xae02e
jmp 0xae030
jmp 0xae032
jmp 0xae034
jmp 0xae036
jmp 0xae038
jmp 0xae03a
jmp 0xae03c
jmp 0xae03e
jmp 0xae040
jmp 0xae042
jmp 0xae044
jmp 0xae046
jmp 0xae048
jmp 0xae04a
jmp 0xae04c
jmp 0xae04e
jmp 0xae050
jmp 0xae052
jmp 0xae054
popq %rbp
retq
nopw %cs:(%rax,%rax)