// File: jkingan[P]ladyheather/heathgps.cpp
// Function: decode_venus_msg()
void decode_venus_msg()
{
u08 id;

   // process the received Venus message
   start_msg_decode(1);

   id = tsip_byte();
// if(debug_file) fprintf(debug_file, "decode venus:%02X (%d)  len:%d\n", id,id, venus_msg_len);

   if     (id == VENUS_NAV_MSG)      parse_venus_nav();
   else if(id == VENUS_MASK_MSG)     parse_venus_masks();
   else if(id == VENUS_CABLE_MSG)    parse_venus_cable();
   else if(id == VENUS_SURVEY_MSG)   parse_venus_survey(id);
   else if(id == VENUS_BASE_MSG)     parse_venus_survey(id);
   else if(id == VENUS_PPS_MSG)      parse_venus_pps();
   else if(id == VENUS_RTK_MSG)      parse_venus_rtk();
   else if(id == VENUS_BOOT_MSG)     parse_venus_status();
   else if(id == VENUS_TIME_MSG)     parse_venus_status();
   else if(id == VENUS_JAMMING_MSG)  parse_venus_status();
   else if(id == VENUS_GNSS_MSG)     parse_venus_sbas();
   else if(id == VENUS_SBAS_MSG)     parse_venus_sbas();
   else if(id == VENUS_QZSS_MSG)     parse_venus_status();
   else if(id == VENUS_VERSION_MSG)  parse_venus_version();
   else if(id == VENUS_ACK_MSG)      parse_venus_ack();
   else if(id == VENUS_NAK_MSG)      parse_venus_nak();
   else if(id == VENUS_RATE_MSG)     parse_venus_rate();
   else if(id == VENUS_MTIME_MSG)    parse_venus_mtime();
   else if(id == VENUS_RAW_MSG)      parse_venus_raw();
   else if(id == VENUS_SV_MSG)       parse_venus_sv();
   else if(id == VENUS_XNAV_MSG)     parse_venus_xnav();
   else if(id == VENUS_EXTRAW_MSG)   parse_venus_ext_raw();
   else if(id == VENUS_RTCM_MSG)     parse_venus_rtcm();
   else if(id == VENUS_MEAS_MSG)     parse_venus_meas();
   else                              parse_venus_unkn(id);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x1, %edi
callq 0xae4a0
callq 0x7a510
movb %al, -0x1(%rbp)
movzbl -0x1(%rbp), %eax
cmpl $0xa8, %eax
jne 0xcfa6f
callq 0xcd8f0
jmp 0xcfc6f
movzbl -0x1(%rbp), %eax
cmpl $0xb0, %eax
jne 0xcfa84
callq 0xcdd60
jmp 0xcfc6d
movzbl -0x1(%rbp), %eax
cmpl $0xbb, %eax
jne 0xcfa99
callq 0xcde00
jmp 0xcfc6b
movzbl -0x1(%rbp), %eax
cmpl $0xc2, %eax
jne 0xcfab2
movzbl -0x1(%rbp), %edi
callq 0xcde60
jmp 0xcfc69
movzbl -0x1(%rbp), %eax
cmpl $0x8b, %eax
jne 0xcfacb
movzbl -0x1(%rbp), %edi
callq 0xcde60
jmp 0xcfc67
movzbl -0x1(%rbp), %eax
cmpl $0x65, %eax
jne 0xcfade
callq 0xcdfe0
jmp 0xcfc65
movzbl -0x1(%rbp), %eax
cmpl $0x6a, %eax
jne 0xcfaf1
callq 0xce190
jmp 0xcfc63
movzbl -0x1(%rbp), %eax
cmpl $0x64, %eax
jne 0xcfb04
callq 0xce2f0
jmp 0xcfc61
movzbl -0x1(%rbp), %eax
cmpl $0x64, %eax
jne 0xcfb17
callq 0xce2f0
jmp 0xcfc5f
movzbl -0x1(%rbp), %eax
cmpl $0x64, %eax
jne 0xcfb2a
callq 0xce2f0
jmp 0xcfc5d
movzbl -0x1(%rbp), %eax
cmpl $0x64, %eax
jne 0xcfb3d
callq 0xce1f0
jmp 0xcfc5b
movzbl -0x1(%rbp), %eax
cmpl $0x62, %eax
jne 0xcfb50
callq 0xce1f0
jmp 0xcfc59
movzbl -0x1(%rbp), %eax
cmpl $0x62, %eax
jne 0xcfb63
callq 0xce2f0
jmp 0xcfc57
movzbl -0x1(%rbp), %eax
cmpl $0x80, %eax
jne 0xcfb78
callq 0xce490
jmp 0xcfc55
movzbl -0x1(%rbp), %eax
cmpl $0x83, %eax
jne 0xcfb8d
callq 0xce580
jmp 0xcfc53
movzbl -0x1(%rbp), %eax
cmpl $0x84, %eax
jne 0xcfba2
callq 0xce5b0
jmp 0xcfc51
movzbl -0x1(%rbp), %eax
cmpl $0x86, %eax
jne 0xcfbb7
callq 0xce5e0
jmp 0xcfc4f
movzbl -0x1(%rbp), %eax
cmpl $0xdc, %eax
jne 0xcfbcc
callq 0xced30
jmp 0xcfc4d
movzbl -0x1(%rbp), %eax
cmpl $0xdd, %eax
jne 0xcfbde
callq 0xcee70
jmp 0xcfc4b
movzbl -0x1(%rbp), %eax
cmpl $0xde, %eax
jne 0xcfbf0
callq 0xce640
jmp 0xcfc49
movzbl -0x1(%rbp), %eax
cmpl $0xdf, %eax
jne 0xcfc02
callq 0xce880
jmp 0xcfc47
movzbl -0x1(%rbp), %eax
cmpl $0xe5, %eax
jne 0xcfc14
callq 0xcf150
jmp 0xcfc45
movzbl -0x1(%rbp), %eax
cmpl $0x8a, %eax
jne 0xcfc26
callq 0xcf9c0
jmp 0xcfc43
movzbl -0x1(%rbp), %eax
cmpl $0x89, %eax
jne 0xcfc38
callq 0xcf9e0
jmp 0xcfc41
movzbl -0x1(%rbp), %edi
callq 0xcfa00
jmp 0xcfc43
jmp 0xcfc45
jmp 0xcfc47
jmp 0xcfc49
jmp 0xcfc4b
jmp 0xcfc4d
jmp 0xcfc4f
jmp 0xcfc51
jmp 0xcfc53
jmp 0xcfc55
jmp 0xcfc57
jmp 0xcfc59
jmp 0xcfc5b
jmp 0xcfc5d
jmp 0xcfc5f
jmp 0xcfc61
jmp 0xcfc63
jmp 0xcfc65
jmp 0xcfc67
jmp 0xcfc69
jmp 0xcfc6b
jmp 0xcfc6d
jmp 0xcfc6f
leaq 0x1cd92a(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
je 0xcfc9a
leaq 0x1b2b5d(%rip), %rax    # 0x2827e0
cmpq $0x0, (%rax)
je 0xcfc9a
leaq 0x1b2b50(%rip), %rax    # 0x2827e0
movq (%rax), %rax
movl %eax, %edi
callq 0xb8b0
leaq 0x1ce4df(%rip), %rax    # 0x29e180
movl $0x1, (%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)