// File: /workspace/github_cpp_makefile_star2_O3/jkingan[P]ladyheather/heathgps.cpp
// Function: decode_ss_msg()
void decode_ss_msg()
{
u08 id;
u08 cid;
u08 len;

   // process the received Novatel SuperStar II message
   start_msg_decode(1);

   id = tsip_byte();
   cid = tsip_byte();
   len = tsip_byte();

   if     (id == 6)   parse_ss_unkn(id,  "Channel assignments 0..5");   // current channel assignment (0..5)
   else if(id == 7)   parse_ss_unkn(id,  "Channel assignments 6..12");   // current channel assignment (6..12)
   else if(id == 20)  parse_ss_nav();     // nav data
   else if(id == 21)  parse_ss_unkn(id,  "ECEF nav data");  // nav data ECEF
   else if(id == 22)  parse_ss_unkn(id,  "Ephemeris data");  // ephemeris data
   else if(id == 23)  parse_ss_raw();     // raw measurement data
   else if(id == 30)  parse_ss_config();  // receiver config
   else if(id == 33)  parse_ss_sats();    // sat visibility and status
   else if(id == 43)  parse_ss_unkn(id,  "DGPS config");  // DGPS config
   else if(id == 45)  parse_ss_id();      // hw/sw id info
   else if(id == 47)  parse_ss_unkn(id,  "Base station data");  // base station data
   else if(id == 48)  parse_ss_unkn(id,  "Differential status");  // differential status
   else if(id == 49)  parse_ss_status(); // receiver status
   else if(id == 50)  parse_ss_health(); // sat health
   else if(id == 51)  parse_ss_test();   // self test results
   else if(id == 65)  parse_ss_unkn(id,  "RTCM data");  // RTCM data message
   else if(id == 67)  parse_ss_unkn(id,  "SBAS data");  // SBAS data
   else if(id == 68)  parse_ss_unkn(id,  "SBAS status");  // SBAS status
   else if(id == 75)  parse_ss_utc()   ; // ionosphere and UTC time data
   else if(id == 76)  parse_ss_unkn(id,  "Almanac data");  // almanac data
   else if(id == 78)  parse_ss_unkn(id,  "Almanac status");  // almanac status
   else if(id == 113) parse_ss_timing(); // timing status
   else if(id == 125) parse_ss_link()  ; // link overflow
   else if(id == 126) parse_ss_ack();    // message acknowledge
   else               parse_ss_unkn(id,  "Unknown message");

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movl $0x1, %edi
callq 0x7f2b8
callq 0x587be
movl %eax, %ebx
cmpl $0x100, %eax            # imm = 0x100
jb 0x8813e
leaq 0x1b6e35(%rip), %rax    # 0x23ef70
orb $0x8, (%rax)
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x88154
leaq 0x1b6e1f(%rip), %rax    # 0x23ef70
orb $0x8, (%rax)
callq 0x587be
cmpl $0x100, %eax            # imm = 0x100
jb 0x8816a
leaq 0x1b6e09(%rip), %rax    # 0x23ef70
orb $0x8, (%rax)
movzbl %bl, %eax
cmpl $0x40, %eax
jg 0x88198
leal -0x14(%rax), %ecx
cmpl $0x1f, %ecx
ja 0x881ff
leaq 0x9700b(%rip), %rax     # 0x11f190
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
callq 0x87000
jmp 0x883e0
cmpl $0x70, %eax
jg 0x881d8
addl $-0x41, %eax
cmpl $0xd, %eax
ja 0x8838a
leaq 0x97060(%rip), %rcx     # 0x11f210
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2b4060(%rip), %rdi    # 0x33c220
leaq 0x9b157(%rip), %rsi     # 0x12331e
leaq 0x9b2b1(%rip), %rbx     # 0x12347f
movl $0x41, %edx
jmp 0x883ce
cmpl $0x71, %eax
je 0x883a4
cmpl $0x7d, %eax
je 0x883ab
cmpl $0x7e, %eax
jne 0x8838a
leaq 0x9b1ef(%rip), %rdi     # 0x1233e9
jmp 0x883db
cmpl $0x6, %eax
je 0x883b4
cmpl $0x7, %eax
jne 0x8838a
leaq 0x2b4008(%rip), %rdi    # 0x33c220
leaq 0x9b0ff(%rip), %rsi     # 0x12331e
leaq 0x9b1f0(%rip), %rbx     # 0x123416
movl $0x7, %edx
jmp 0x883ce
leaq 0x2b3fe9(%rip), %rdi    # 0x33c220
leaq 0x9b0e0(%rip), %rsi     # 0x12331e
leaq 0x99854(%rip), %rbx     # 0x121a99
movl $0x4c, %edx
jmp 0x883ce
leaq 0x2b3fca(%rip), %rdi    # 0x33c220
leaq 0x9b0c1(%rip), %rsi     # 0x12331e
leaq 0x9b225(%rip), %rbx     # 0x123489
movl $0x43, %edx
jmp 0x883ce
leaq 0x2b3fab(%rip), %rdi    # 0x33c220
leaq 0x9b0a2(%rip), %rsi     # 0x12331e
leaq 0x9b210(%rip), %rbx     # 0x123493
movl $0x44, %edx
jmp 0x883ce
callq 0x87d18
jmp 0x883e0
leaq 0x2b3f82(%rip), %rdi    # 0x33c220
leaq 0x9b079(%rip), %rsi     # 0x12331e
leaq 0x9b1f3(%rip), %rbx     # 0x12349f
movl $0x4e, %edx
jmp 0x883ce
leaq 0x2b3f63(%rip), %rdi    # 0x33c220
leaq 0x9b05a(%rip), %rsi     # 0x12331e
leaq 0x9b173(%rip), %rbx     # 0x12343e
movl $0x16, %edx
jmp 0x883ce
leaq 0x2b3f44(%rip), %rdi    # 0x33c220
leaq 0x9b03b(%rip), %rsi     # 0x12331e
leaq 0x9b163(%rip), %rbx     # 0x12344d
movl $0x2b, %edx
jmp 0x883ce
leaq 0x2b3f25(%rip), %rdi    # 0x33c220
leaq 0x9b01c(%rip), %rsi     # 0x12331e
leaq 0x9b127(%rip), %rbx     # 0x123430
movl $0x15, %edx
jmp 0x883ce
callq 0x87659
jmp 0x883e0
leaq 0x9b01e(%rip), %rdi     # 0x123342
jmp 0x883db
callq 0x872c3
jmp 0x883e0
callq 0x87428
jmp 0x883e0
leaq 0x2b3edc(%rip), %rdi    # 0x33c220
leaq 0x9afd3(%rip), %rsi     # 0x12331e
leaq 0x9b107(%rip), %rbx     # 0x123459
movl $0x2f, %edx
jmp 0x883ce
leaq 0x2b3ec0(%rip), %rdi    # 0x33c220
leaq 0x9afb7(%rip), %rsi     # 0x12331e
leaq 0x9b0fd(%rip), %rbx     # 0x12346b
movl $0x30, %edx
jmp 0x883ce
callq 0x8780b
jmp 0x883e0
callq 0x87a6b
jmp 0x883e0
callq 0x87b0a
jmp 0x883e0
movzbl %bl, %edx
leaq 0x2b3e8c(%rip), %rdi    # 0x33c220
leaq 0x9af83(%rip), %rsi     # 0x12331e
leaq 0x9b10c(%rip), %rbx     # 0x1234ae
jmp 0x883ce
callq 0x87ea7
jmp 0x883e0
leaq 0x9b029(%rip), %rdi     # 0x1233db
jmp 0x883db
leaq 0x2b3e65(%rip), %rdi    # 0x33c220
leaq 0x9af5c(%rip), %rsi     # 0x12331e
leaq 0x9b034(%rip), %rbx     # 0x1233fd
movl $0x6, %edx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x9060
movq %rbx, %rdi
callq 0x58dc2
leaq 0x1b5fd9(%rip), %rax    # 0x23e3c0
cmpq $0x0, (%rax)
setne %al
leaq 0x19b20b(%rip), %rcx    # 0x223600
movq (%rcx), %rdi
testq %rdi, %rdi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x8840a
callq 0xafe8
leaq 0x1b6b8f(%rip), %rax    # 0x23efa0
movl $0x1, (%rax)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq