// File: /workspace/github_cpp_makefile_star2_O2/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
pushq $0x1
popq %rdi
callq 0x73dcb
callq 0x51c47
movl %eax, %ebx
callq 0x51c47
callq 0x51c47
movzbl %bl, %edi
leal -0x14(%rdi), %eax
cmpl $0x1f, %eax
ja 0x7bdd9
leaq 0x8d30e(%rip), %rcx     # 0x1090d4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x7b445
jmp 0x7bf02
leal -0x41(%rdi), %eax
cmpl $0xd, %eax
ja 0x7bdff
leaq 0x8d36c(%rip), %rcx     # 0x109154
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x915cf(%rip), %rsi     # 0x10d3c7
pushq $0x41
jmp 0x7befc
cmpl $0x7e, %edi
je 0x7beec
cmpl $0x7, %edi
je 0x7bef3
cmpl $0x71, %edi
je 0x7bf40
cmpl $0x7d, %edi
je 0x7bf47
cmpl $0x6, %edi
jne 0x7be36
leaq 0x91516(%rip), %rsi     # 0x10d345
pushq $0x6
jmp 0x7befc
leaq 0x915b9(%rip), %rsi     # 0x10d3f6
jmp 0x7befd
callq 0x7ba15
jmp 0x7bf02
leaq 0x91560(%rip), %rsi     # 0x10d3b3
pushq $0x30
jmp 0x7befc
leaq 0x91534(%rip), %rsi     # 0x10d395
pushq $0x2b
jmp 0x7befc
leaq 0x91532(%rip), %rsi     # 0x10d3a1
pushq $0x2f
jmp 0x7befc
callq 0x7ba82
jmp 0x7bf02
callq 0x7b6ee
jmp 0x7bf02
callq 0x7b676
jmp 0x7bf02
callq 0x7b665
jmp 0x7bf02
callq 0x7b928
jmp 0x7bf02
leaq 0x914e3(%rip), %rsi     # 0x10d386
pushq $0x16
jmp 0x7befc
leaq 0x914ca(%rip), %rsi     # 0x10d378
pushq $0x15
jmp 0x7befc
callq 0x7b866
jmp 0x7bf02
leaq 0x9151b(%rip), %rsi     # 0x10d3db
pushq $0x44
jmp 0x7befc
leaq 0x91506(%rip), %rsi     # 0x10d3d1
pushq $0x43
jmp 0x7befc
callq 0x7bb8e
jmp 0x7bf02
leaq 0x8fb04(%rip), %rsi     # 0x10b9e1
pushq $0x4c
jmp 0x7befc
leaq 0x914ff(%rip), %rsi     # 0x10d3e7
pushq $0x4e
jmp 0x7befc
callq 0x7bd84
jmp 0x7bf02
leaq 0x91464(%rip), %rsi     # 0x10d35e
pushq $0x7
popq %rdi
callq 0x7b409
leaq 0x1ac4b7(%rip), %rax    # 0x2283c0
cmpq $0x0, (%rax)
setne %al
leaq 0x1916e9(%rip), %rcx    # 0x20d600
movq (%rcx), %rdi
testq %rdi, %rdi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x7bf2c
callq 0xae83
leaq 0x1ad06d(%rip), %rax    # 0x228fa0
movl $0x1, (%rax)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
callq 0x7bc0d
jmp 0x7bf02
callq 0x7bd73
jmp 0x7bf02