// File: /workspace/github_cpp_makefile_star2_O2/jkingan[P]ladyheather/heathgps.cpp
// Function: decode_zyfer_message()
void decode_zyfer_message()
{
char c;
int i;
static int row = 0;

   venus_nmea = 0;
   start_msg_decode(1);

   nmea_msg[0] = 0;
   for(i=0; i<tsip_wptr; i++) {  // copy message from tsip buffer to nmea buffer
      c = tsip_byte();
      nmea_msg[i] = c;
      nmea_msg[i+1] = 0;
      if(i >= ((int)sizeof(nmea_msg)-12)) break;
   }

   msg_col = 0;     // index of next char to get from nmea buffer
   get_msg_field(); // get the NMEA message type 

   if     (!strcmp(msg_field, "ALRM")) parse_zy_alrm();
   else if(!strcmp(msg_field, "ANTD")) parse_zy_antd();    // unsl 10
   else if(!strcmp(msg_field, "AZEL")) parse_zy_azel();    // unsl 2
   else if(!strcmp(msg_field, "DACV")) parse_zy_dacv();    // unsl 1
   else if(!strcmp(msg_field, "DRFT")) parse_zy_drft();
   else if(!strcmp(msg_field, "EFER")) parse_zy_efer();    // unsl 1
   else if(!strcmp(msg_field, "ESSD")) parse_zy_essd();    // unsl 1
   else if(!strcmp(msg_field, "ESSN")) parse_zy_essn();    // * unsl 1
   else if(!strcmp(msg_field, "ESTP")) parse_zy_estp();    // * unsl 30
   else if(!strcmp(msg_field, "FACTORYRESET")) ;
   else if(!strcmp(msg_field, "FSEL")) parse_zy_fsel();
   else if(!strcmp(msg_field, "GDOP")) parse_zy_gdop();    // * unsl 2
   else if(!strcmp(msg_field, "HEFE")) parse_zy_hefe();    // * unsl 30
   else if(!strcmp(msg_field, "HEST")) parse_zy_hest();    // * unsl 30
   else if(!strcmp(msg_field, "HETE")) parse_zy_hete();    // * unsl 30
   else if(!strcmp(msg_field, "HINT")) parse_zy_hint();    // unsl 30
   else if(!strcmp(msg_field, "LEAP")) parse_zy_leap();    // unsl 30
   else if(!strcmp(msg_field, "MANG")) parse_zy_mang();
   else if(!strcmp(msg_field, "MANI")) parse_zy_mani();
   else if(!strcmp(msg_field, "NTLC")) parse_zy_ntlc();    // unsl 30
   else if(!strcmp(msg_field, "OFST")) parse_zy_ofst();
   else if(!strcmp(msg_field, "PAVG")) parse_zy_pavg();    // unsl 1
   else if(!strcmp(msg_field, "PCTL")) ;                   // for option board
   else if(!strcmp(msg_field, "PRESET1")) ;
   else if(!strcmp(msg_field, "PRESET2")) ;
   else if(!strcmp(msg_field, "PRESET3")) ;
   else if(!strcmp(msg_field, "PRID")) parse_zy_prid();
   else if(!strcmp(msg_field, "PULE")) ;
   else if(!strcmp(msg_field, "PULP")) parse_zy_pulp();
   else if(!strcmp(msg_field, "PULR")) parse_zy_pulr();
   else if(!strcmp(msg_field, "PULW")) parse_zy_pulw();
   else if(!strcmp(msg_field, "PUTD")) ;                   // unsl 1
   else if(!strcmp(msg_field, "RSAH")) parse_zy_rsah();    // unsl 2
   else if(!strcmp(msg_field, "RSEL")) ;                   // for option board
   else if(!strcmp(msg_field, "RSTG")) ;
   else if(!strcmp(msg_field, "SIGQ")) parse_zy_sigq();    // unsl 1
   else if(!strcmp(msg_field, "SPOS")) ;
   else if(!strcmp(msg_field, "SSLT")) parse_zy_sslt();    // unsl 30
   else if(!strcmp(msg_field, "STAT")) parse_zy_stat();    // unsl 2
   else if(!strcmp(msg_field, "STIM")) ;                   // unsl 1
   else if(!strcmp(msg_field, "TCOD")) ;
   else if(!strcmp(msg_field, "TEMP")) parse_zy_temp();    // unsl 5
   else if(!strcmp(msg_field, "TIMD")) parse_zy_timd();    // unsl 2
   else if(!strcmp(msg_field, "TIME")) parse_zy_time();    // unsl 1
   else if(!strcmp(msg_field, "TIMI")) parse_zy_timi();    // * unsl 10
   else if(!strcmp(msg_field, "TIMM")) parse_zy_timm();
   else if(!strcmp(msg_field, "TRMO")) parse_zy_trmo();    // unsl 10
   else if(!strcmp(msg_field, "UNID")) parse_zy_unid();
   else if(!strcmp(msg_field, "UNSL")) ;
   else if(!strcmp(msg_field, "VERS")) parse_zy_vers();
   else last_was_gsv = 0;

   if(sim_file && sim_delay) {  // throttle sim file messages
      Sleep(sim_delay);
   }
   saw_rcvr_msg = 1;
   return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
andl $0x0, 0x2dc213(%rip)    # 0x356ae4
pushq $0x1
popq %rdi
callq 0x73dcb
leaq 0x2aaf50(%rip), %rbx    # 0x325830
movb $0x0, (%rbx)
xorl %r14d, %r14d
leaq 0x2a7965(%rip), %r15    # 0x322252
movzwl (%r15), %eax
cmpq %rax, %r14
jae 0x7a911
callq 0x51c47
movb %al, (%r14,%rbx)
movb $0x0, 0x1(%r14,%rbx)
incq %r14
cmpq $0x1f6, %r14            # imm = 0x1F6
jne 0x7a8ed
leaq 0x2ab32c(%rip), %rax    # 0x325c44
andl $0x0, (%rax)
callq 0x75767
leaq 0x2ab119(%rip), %rdi    # 0x325a40
leaq 0x90447(%rip), %rsi     # 0x10ad75
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7aedb
leaq 0x2ab0fb(%rip), %rdi    # 0x325a40
leaq 0x9042f(%rip), %rsi     # 0x10ad7b
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7aee5
leaq 0x2ab0dd(%rip), %rdi    # 0x325a40
leaq 0x95759(%rip), %rsi     # 0x1100c3
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7aeef
leaq 0x2ab0bf(%rip), %rdi    # 0x325a40
leaq 0x95740(%rip), %rsi     # 0x1100c8
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7aef9
leaq 0x2ab0a1(%rip), %rdi    # 0x325a40
leaq 0x903db(%rip), %rsi     # 0x10ad81
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af03
leaq 0x2ab083(%rip), %rdi    # 0x325a40
leaq 0x95709(%rip), %rsi     # 0x1100cd
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af0d
leaq 0x2ab065(%rip), %rdi    # 0x325a40
leaq 0x956f0(%rip), %rsi     # 0x1100d2
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af17
leaq 0x2ab047(%rip), %rdi    # 0x325a40
leaq 0x8d59c(%rip), %rsi     # 0x107f9c
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af21
leaq 0x2ab029(%rip), %rdi    # 0x325a40
leaq 0x956b9(%rip), %rsi     # 0x1100d7
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af28
leaq 0x2ab00b(%rip), %rdi    # 0x325a40
leaq 0x8fd8d(%rip), %rsi     # 0x10a7c9
pushq $0xd
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aafed(%rip), %rdi    # 0x325a40
leaq 0x95682(%rip), %rsi     # 0x1100dc
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af2f
leaq 0x2aafcf(%rip), %rdi    # 0x325a40
leaq 0x8d51f(%rip), %rsi     # 0x107f97
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af36
leaq 0x2aafb1(%rip), %rdi    # 0x325a40
leaq 0x8d4f2(%rip), %rsi     # 0x107f88
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af3d
leaq 0x2aaf93(%rip), %rdi    # 0x325a40
leaq 0x8d4de(%rip), %rsi     # 0x107f92
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af44
leaq 0x2aaf75(%rip), %rdi    # 0x325a40
leaq 0x8d4bb(%rip), %rsi     # 0x107f8d
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af4b
leaq 0x2aaf57(%rip), %rdi    # 0x325a40
leaq 0x955f1(%rip), %rsi     # 0x1100e1
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af52
leaq 0x2aaf39(%rip), %rdi    # 0x325a40
leaq 0x8fa0e(%rip), %rsi     # 0x10a51c
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af59
leaq 0x2aaf1b(%rip), %rdi    # 0x325a40
leaq 0x9025b(%rip), %rsi     # 0x10ad87
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af60
leaq 0x2aaefd(%rip), %rdi    # 0x325a40
leaq 0x8fceb(%rip), %rsi     # 0x10a835
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af67
leaq 0x2aaedf(%rip), %rdi    # 0x325a40
leaq 0x9557e(%rip), %rsi     # 0x1100e6
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af6e
leaq 0x2aaec1(%rip), %rdi    # 0x325a40
leaq 0x95565(%rip), %rsi     # 0x1100eb
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af75
leaq 0x2aaea3(%rip), %rbx    # 0x325a40
leaq 0x9554c(%rip), %rsi     # 0x1100f0
pushq $0x5
popq %rdx
movq %rbx, %rdi
callq 0x9380
testl %eax, %eax
je 0x7af7c
leaq 0x95537(%rip), %rsi     # 0x1100f5
pushq $0x5
popq %rdx
movq %rbx, %rdi
callq 0x9380
testl %eax, %eax
je 0x7afa4
movq (%rbx), %rax
movabsq $0x32544553455250, %rcx # imm = 0x32544553455250
cmpq %rcx, %rax
je 0x7afa4
btrq $0x31, %rax
movabsq $0x31544553455250, %rcx # imm = 0x31544553455250
cmpq %rcx, %rax
je 0x7afa4
leaq 0x2aae3a(%rip), %rdi    # 0x325a40
leaq 0x8fc2e(%rip), %rsi     # 0x10a83b
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af83
leaq 0x2aae1c(%rip), %rdi    # 0x325a40
leaq 0x954cf(%rip), %rsi     # 0x1100fa
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aadfe(%rip), %rdi    # 0x325a40
leaq 0x902f4(%rip), %rsi     # 0x10af3d
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af8a
leaq 0x2aade0(%rip), %rdi    # 0x325a40
leaq 0x902dc(%rip), %rsi     # 0x10af43
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af91
leaq 0x2aadc2(%rip), %rdi    # 0x325a40
leaq 0x904a6(%rip), %rsi     # 0x10b12b
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af98
leaq 0x2aada4(%rip), %rdi    # 0x325a40
leaq 0x9545c(%rip), %rsi     # 0x1100ff
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aad86(%rip), %rdi    # 0x325a40
leaq 0x8fe24(%rip), %rsi     # 0x10aae5
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7af9f
leaq 0x2aad68(%rip), %rdi    # 0x325a40
leaq 0x95425(%rip), %rsi     # 0x110104
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aad4a(%rip), %rdi    # 0x325a40
leaq 0x9540c(%rip), %rsi     # 0x110109
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aad2c(%rip), %rdi    # 0x325a40
leaq 0x953f3(%rip), %rsi     # 0x11010e
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afe6
leaq 0x2aad0e(%rip), %rdi    # 0x325a40
leaq 0x953da(%rip), %rsi     # 0x110113
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aacf0(%rip), %rdi    # 0x325a40
leaq 0x8fd88(%rip), %rsi     # 0x10aadf
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afed
leaq 0x2aacd2(%rip), %rdi    # 0x325a40
leaq 0x90018(%rip), %rsi     # 0x10ad8d
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7aff4
leaq 0x2aacb4(%rip), %rdi    # 0x325a40
leaq 0x95385(%rip), %rsi     # 0x110118
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aac96(%rip), %rdi    # 0x325a40
leaq 0x9536c(%rip), %rsi     # 0x11011d
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aac78(%rip), %rdi    # 0x325a40
leaq 0x93038(%rip), %rsi     # 0x10de07
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7affb
leaq 0x2aac5a(%rip), %rdi    # 0x325a40
leaq 0x95335(%rip), %rsi     # 0x110122
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7b002
leaq 0x2aac3c(%rip), %rdi    # 0x325a40
leaq 0x90b97(%rip), %rsi     # 0x10b9a2
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7b009
leaq 0x2aac1e(%rip), %rdi    # 0x325a40
leaq 0x952fe(%rip), %rsi     # 0x110127
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7b010
leaq 0x2aac00(%rip), %rdi    # 0x325a40
leaq 0x904c2(%rip), %rsi     # 0x10b309
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7b017
leaq 0x2aabe2(%rip), %rdi    # 0x325a40
leaq 0x8ff2e(%rip), %rsi     # 0x10ad93
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7b01e
leaq 0x2aabc4(%rip), %rdi    # 0x325a40
leaq 0x8f9ac(%rip), %rsi     # 0x10a82f
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7b028
leaq 0x2aaba6(%rip), %rdi    # 0x325a40
leaq 0x9528b(%rip), %rsi     # 0x11012c
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7afa4
leaq 0x2aab88(%rip), %rdi    # 0x325a40
leaq 0xa288c(%rip), %rsi     # 0x11d74b
pushq $0x5
popq %rdx
callq 0x9380
testl %eax, %eax
je 0x7b032
andl $0x0, 0x2e0f4e(%rip)    # 0x35be24
jmp 0x7afa4
callq 0x99be3
jmp 0x7afa4
callq 0x99b9c
jmp 0x7afa4
callq 0x99cb2
jmp 0x7afa4
callq 0x99ea6
jmp 0x7afa4
callq 0x99efd
jmp 0x7afa4
callq 0x99f44
jmp 0x7afa4
callq 0x99f9b
jmp 0x7afa4
callq 0x99fe2
jmp 0x7afa4
callq 0x9a021
jmp 0x7afa4
callq 0x9a037
jmp 0x7afa4
callq 0x9a04d
jmp 0x7afa4
callq 0x9a089
jmp 0x7afa4
callq 0x9a0d0
jmp 0x7afa4
callq 0x9a10a
jmp 0x7afa4
callq 0x9a144
jmp 0x7afa4
callq 0x9a233
jmp 0x7afa4
callq 0x9a2cf
jmp 0x7afa4
callq 0x9a611
jmp 0x7afa4
callq 0x9a32a
jmp 0x7afa4
callq 0x9a35e
jmp 0x7afa4
callq 0x9a3a2
jmp 0x7afa4
callq 0x9a64d
jmp 0x7afa4
callq 0x9a785
jmp 0x7afa4
callq 0x9a7d1
jmp 0x7afa4
callq 0x9a81e
jmp 0x7afa4
callq 0x9a85d
leaq 0x1ad415(%rip), %rax    # 0x2283c0
cmpq $0x0, (%rax)
setne %al
leaq 0x192647(%rip), %rcx    # 0x20d600
movq (%rcx), %rdi
testq %rdi, %rdi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x7afce
callq 0xae83
leaq 0x1adfcb(%rip), %rax    # 0x228fa0
movl $0x1, (%rax)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x99e0b
jmp 0x7afa4
callq 0x9a8c2
jmp 0x7afa4
callq 0x9a92d
jmp 0x7afa4
callq 0x9a9a8
jmp 0x7afa4
callq 0x9a9e7
jmp 0x7afa4
callq 0x9aa75
jmp 0x7afa4
callq 0x9aa2e
jmp 0x7afa4
callq 0x9ac4f
jmp 0x7afa4
callq 0x9acc5
jmp 0x7afa4
callq 0x9a6c9
jmp 0x7afa4
callq 0x9a555
jmp 0x7afa4