// File: /workspace/github_cpp_makefile_star2_O2/jkingan[P]ladyheather/heathgps.cpp
// Function: decode_rftg_message()
void decode_rftg_message()
{ 
   flush_debug();

   msg_fault = 0x00;
   tsip_rptr = 0;
   msg_id = get_next_tsip();

   subcode = 0x00;
   first_msg = 0;
   last_msg = msg_id;
   ++wakeup_tsip_msg; // we have seen a TSIP message
   tsip_error = 0;    // this flag gets set if we see something wrong in a message
   early_end = 0;
   new_packet(0);

   msg_id &= 0xFF;
   if     (msg_id == 0x20) parse_rftg_runtime();
   else if(msg_id == 0x21) parse_rftg_21();
   else if(msg_id == 0x22) parse_rftg_phase();
   else if(msg_id == 0x23) parse_rftg_voltages();
   else if(msg_id == 0x24) parse_rftg_correction();
   else if(msg_id == 0x25) parse_rftg_sigs();
   else if(msg_id == 0x26) parse_rftg_posn();
   else if(msg_id == 0x27) parse_rftg_additional_status();
   else if(msg_id == 0x28) parse_rftg_28();
   else if(msg_id == 0x29) parse_rftg_corr_history();
   else if(msg_id == 0x55) parse_rftg_cable();
   else if(msg_id == 0x57) parse_rftg_errlog();
   else if(msg_id == 0x63) parse_rftg_traim();
   else if(msg_id == 0x82) parse_rftg_warmup();
   else if(msg_id == 0x85) parse_rftg_delta_ape();  
   else if(msg_id == 0x86) parse_rftg_const_ape();  
   else if(msg_id == 0x88) parse_rftg_ape2();  
   else if(msg_id == 0x89) parse_rftg_ape();  
   else if(msg_id == 0x90) parse_rftg_delta_temp();
   else if(msg_id == 0x91) parse_rftg_hw_ver();
   else if(msg_id == 0x92) parse_rftg_avg_sample();
   else if(msg_id == 0x94) parse_rftg_corr_sched();
   else                    parse_rftg_unknown(msg_id);

   saw_rcvr_msg = 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
callq 0x51408
leaq 0x1ac186(%rip), %rax    # 0x228f6c
andl $0x0, (%rax)
leaq 0x2a5464(%rip), %rax    # 0x322254
andw $0x0, (%rax)
callq 0x51b3c
leaq 0x1ac15c(%rip), %rbx    # 0x228f5c
movw %ax, (%rbx)
leaq 0x1ac154(%rip), %rcx    # 0x228f5e
xorl %edx, %edx
movb %dl, (%rcx)
leaq 0x2a4214(%rip), %rcx    # 0x321029
movb %dl, (%rcx)
leaq 0x1ac17a(%rip), %rcx    # 0x228f98
incq (%rcx)
leaq 0x1ac148(%rip), %rcx    # 0x228f70
andl $0x0, (%rcx)
movl %eax, 0x2d8f93(%rip)    # 0x355dc4
andw $0x0, 0x2d8f87(%rip)    # 0x355dc0
xorl %edi, %edi
callq 0x73d28
movzbl (%rbx), %edi
movw %di, (%rbx)
leal -0x20(%rdi), %eax
cmpl $0x9, %eax
jbe 0x7ce73
leal -0x82(%rdi), %eax
cmpl $0x12, %eax
ja 0x7ce8d
leaq 0x8c370(%rip), %rcx     # 0x1091d0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x7c7d2
jmp 0x7cf3b
leaq 0x8c32e(%rip), %rcx     # 0x1091a8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x7c18d
jmp 0x7cf3b
cmpl $0x55, %edi
je 0x7cf36
cmpl $0x57, %edi
je 0x7cf2f
cmpl $0x63, %edi
jne 0x7ceae
callq 0x7c7a3
jmp 0x7cf3b
callq 0x7c926
jmp 0x7cf3b
callq 0x7c903
jmp 0x7cf3b
callq 0x7c867
jmp 0x7cf3b
callq 0x7c88d
jmp 0x7cf3b
callq 0x7c8e0
jmp 0x7cf3b
callq 0x7c841
jmp 0x7cf3b
callq 0x7c81b
jmp 0x7cf3b
callq 0x7c8b3
jmp 0x7cf3b
callq 0x7c7f5
jmp 0x7cf3b
callq 0x7c4aa
jmp 0x7cf3b
callq 0x7c73e
jmp 0x7cf3b
callq 0x7c1e1
jmp 0x7cf3b
callq 0x7c26e
jmp 0x7cf3b
callq 0x7c6aa
jmp 0x7cf3b
callq 0x7c1b2
jmp 0x7cf3b
callq 0x7c4ed
jmp 0x7cf3b
callq 0x7c5d7
jmp 0x7cf3b
callq 0x7c72d
jmp 0x7cf3b
callq 0x7c792
jmp 0x7cf3b
callq 0x7c74f
leaq 0x1ac05e(%rip), %rax    # 0x228fa0
movl $0x1, (%rax)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq