// File: /workspace/github_cpp_makefile_star2_O2/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
pushq $0x1
popq %rdi
callq 0x73dcb
callq 0x51c47
movzbl %al, %edi
leal -0x80(%rdi), %eax
cmpl $0xb, %eax
jbe 0x8a85d
leal -0xdc(%rdi), %eax
cmpl $0x9, %eax
jbe 0x8a877
leal -0x62(%rdi), %eax
cmpl $0x8, %eax
jbe 0x8a891
cmpl $0xc2, %edi
je 0x8a8a8
cmpl $0xb0, %edi
je 0x8a911
cmpl $0xbb, %edi
je 0x8a90a
cmpl $0xa8, %edi
jne 0x8a8af
callq 0x89192
jmp 0x8a916
leaq 0x7ef44(%rip), %rcx     # 0x1097a8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x899b7
jmp 0x8a916
leaq 0x7ef5a(%rip), %rcx     # 0x1097d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x89fc2
jmp 0x8a916
leaq 0x7eeec(%rip), %rcx     # 0x109784
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x897d0
jmp 0x8a916
callq 0x89570
jmp 0x8a916
callq 0x8a7ce
jmp 0x8a916
callq 0x8a7bd
jmp 0x8a916
callq 0x89aab
jmp 0x8a916
callq 0x89a95
jmp 0x8a916
callq 0x89a7f
jmp 0x8a916
callq 0x8a7ac
jmp 0x8a916
callq 0x8a250
jmp 0x8a916
callq 0x89c47
jmp 0x8a916
callq 0x8a0a2
jmp 0x8a916
callq 0x89aed
jmp 0x8a916
callq 0x8978a
jmp 0x8a916
callq 0x89652
jmp 0x8a916
callq 0x89876
jmp 0x8a916
callq 0x8952d
jmp 0x8a916
callq 0x894b2
leaq 0x19daa3(%rip), %rax    # 0x2283c0
cmpq $0x0, (%rax)
setne %al
leaq 0x182cd5(%rip), %rcx    # 0x20d600
movq (%rcx), %rdi
testq %rdi, %rdi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x8a940
callq 0xae83
leaq 0x19e659(%rip), %rax    # 0x228fa0
movl $0x1, (%rax)
popq %rbp
retq