// File: jkingan[P]ladyheather/heathgps.cpp
// Function: parse_pfec()
void parse_pfec()
{

   // Furuno proprietary messages

   if(get_msg_field()) {  // get the message identifier string
      if(strstr(msg_field, "GPssd")) ;  // message has lower case data
      else strupr(msg_field);
   }
   else return;

   if     (strstr(msg_field, "GPACC")) parse_gpacc();   // satellie accuracy
   else if(strstr(msg_field, "GPANC")) parse_gpanc();   // satellite health
   else if(strstr(msg_field, "GPAST")) parse_gpast();   // * posn,alt/speed/etc - we get from NMEA sentences
   else if(strstr(msg_field, "GPTST")) parse_gptst();   // test results
   else if(strstr(msg_field, "GPssd")) parse_gpssd();   // GPset data
   else if(strstr(msg_field, "GPISD")) parse_gpisd();   // * sentence output rates - we don't need this
   else if(strstr(msg_field, "GPDIE")) parse_gpdie();   // * DGPS status - we don't need this
   else if(strstr(msg_field, "GPTLP")) parse_gptlp();   // * leapseoncd info - we get this from gptps
   else if(strstr(msg_field, "GPTPS")) parse_gptps();   // time info
   else if(strstr(msg_field, "GPGPT")) parse_gpgpt();   // GPS time info
   else if(strstr(msg_field, "GPRRM")) parse_gprrm();   // traim info
   else if(strstr(msg_field, "GPRSD")) parse_gprsd();   // traim config  - gprrq
   else if(strstr(msg_field, "GPTMD")) parse_gptmd();   // survey status - gptmq
   else if(strstr(msg_field, "GPWAV")) parse_gpwav();   // SBAS sat info *
   else if(strstr(msg_field, "GPSTD")) parse_gpstd();   // position fix method  - gpstq
   else if(strstr(msg_field, "GPWAS")) parse_gpwas();   // SBAS posion fix params - gpwaq
   else if(strstr(msg_field, "GPMGE")) parse_gpmge();   // excluded SBAS sats - gpmgq 
   else if(strstr(msg_field, "GPPSP")) parse_gppsp();   // forced SBAS sat - gppsq
   else if(strstr(msg_field, "GPPRI")) parse_gppri();   // satellie position fix status - gpprq
   else if(strstr(msg_field, "GPGAC")) parse_gpgac();   // * SBAS sat almanac status gpgap - gpgaq
   else parse_gp_unkn();                                // * unknown message
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0xb0bd0
cmpl $0x0, %eax
je 0xb47b7
leaq 0x2e648b(%rip), %rdi    # 0x39ac20
leaq 0xd197f(%rip), %rsi     # 0x18611b
callq 0x9090
cmpq $0x0, %rax
je 0xb47a9
jmp 0xb47b5
leaq 0x2e6470(%rip), %rdi    # 0x39ac20
callq 0x9890
jmp 0xb47bc
jmp 0xb4a97
leaq 0x2e645d(%rip), %rdi    # 0x39ac20
leaq 0xd1957(%rip), %rsi     # 0x186121
callq 0x9090
cmpq $0x0, %rax
je 0xb47df
callq 0xb3560
jmp 0xb4a97
leaq 0x2e643a(%rip), %rdi    # 0x39ac20
leaq 0xd193a(%rip), %rsi     # 0x186127
callq 0x9090
cmpq $0x0, %rax
je 0xb4802
callq 0xb3630
jmp 0xb4a95
leaq 0x2e6417(%rip), %rdi    # 0x39ac20
leaq 0xd191d(%rip), %rsi     # 0x18612d
callq 0x9090
cmpq $0x0, %rax
je 0xb4825
callq 0xb4720
jmp 0xb4a93
leaq 0x2e63f4(%rip), %rdi    # 0x39ac20
leaq 0xd1900(%rip), %rsi     # 0x186133
callq 0x9090
cmpq $0x0, %rax
je 0xb4848
callq 0xb4310
jmp 0xb4a91
leaq 0x2e63d1(%rip), %rdi    # 0x39ac20
leaq 0xd18c5(%rip), %rsi     # 0x18611b
callq 0x9090
cmpq $0x0, %rax
je 0xb486b
callq 0xb3b80
jmp 0xb4a8f
leaq 0x2e63ae(%rip), %rdi    # 0x39ac20
leaq 0xd18c0(%rip), %rsi     # 0x186139
callq 0x9090
cmpq $0x0, %rax
je 0xb488e
callq 0xb4730
jmp 0xb4a8d
leaq 0x2e638b(%rip), %rdi    # 0x39ac20
leaq 0xd18a3(%rip), %rsi     # 0x18613f
callq 0x9090
cmpq $0x0, %rax
je 0xb48b1
callq 0xb4740
jmp 0xb4a8b
leaq 0x2e6368(%rip), %rdi    # 0x39ac20
leaq 0xd1886(%rip), %rsi     # 0x186145
callq 0x9090
cmpq $0x0, %rax
je 0xb48d4
callq 0xb4750
jmp 0xb4a89
leaq 0x2e6345(%rip), %rdi    # 0x39ac20
leaq 0xd1869(%rip), %rsi     # 0x18614b
callq 0x9090
cmpq $0x0, %rax
je 0xb48f7
callq 0xb3fd0
jmp 0xb4a87
leaq 0x2e6322(%rip), %rdi    # 0x39ac20
leaq 0xd184c(%rip), %rsi     # 0x186151
callq 0x9090
cmpq $0x0, %rax
je 0xb491a
callq 0xb3720
jmp 0xb4a85
leaq 0x2e62ff(%rip), %rdi    # 0x39ac20
leaq 0xd182f(%rip), %rsi     # 0x186157
callq 0x9090
cmpq $0x0, %rax
je 0xb493d
callq 0xb3a10
jmp 0xb4a83
leaq 0x2e62dc(%rip), %rdi    # 0x39ac20
leaq 0xd1812(%rip), %rsi     # 0x18615d
callq 0x9090
cmpq $0x0, %rax
je 0xb4960
callq 0xb3ae0
jmp 0xb4a81
leaq 0x2e62b9(%rip), %rdi    # 0x39ac20
leaq 0xd17f5(%rip), %rsi     # 0x186163
callq 0x9090
cmpq $0x0, %rax
je 0xb4983
callq 0xb3f30
jmp 0xb4a7f
leaq 0x2e6296(%rip), %rdi    # 0x39ac20
leaq 0xd17d8(%rip), %rsi     # 0x186169
callq 0x9090
cmpq $0x0, %rax
je 0xb49a6
callq 0xb4530
jmp 0xb4a7d
leaq 0x2e6273(%rip), %rdi    # 0x39ac20
leaq 0xd17bb(%rip), %rsi     # 0x18616f
callq 0x9090
cmpq $0x0, %rax
je 0xb49c9
callq 0xb3f00
jmp 0xb4a7b
leaq 0x2e6250(%rip), %rdi    # 0x39ac20
leaq 0xd179e(%rip), %rsi     # 0x186175
callq 0x9090
cmpq $0x0, %rax
je 0xb49ec
callq 0xb44e0
jmp 0xb4a79
leaq 0x2e622d(%rip), %rdi    # 0x39ac20
leaq 0xd1781(%rip), %rsi     # 0x18617b
callq 0x9090
cmpq $0x0, %rax
je 0xb4a0c
callq 0xb38b0
jmp 0xb4a77
leaq 0x2e620d(%rip), %rdi    # 0x39ac20
leaq 0xd1767(%rip), %rsi     # 0x186181
callq 0x9090
cmpq $0x0, %rax
je 0xb4a2c
callq 0xb39e0
jmp 0xb4a75
leaq 0x2e61ed(%rip), %rdi    # 0x39ac20
leaq 0xd174d(%rip), %rsi     # 0x186187
callq 0x9090
cmpq $0x0, %rax
je 0xb4a4c
callq 0xb3980
jmp 0xb4a73
leaq 0x2e61cd(%rip), %rdi    # 0x39ac20
leaq 0xd1733(%rip), %rsi     # 0x18618d
callq 0x9090
cmpq $0x0, %rax
je 0xb4a6c
callq 0xb4760
jmp 0xb4a71
callq 0xb4770
jmp 0xb4a73
jmp 0xb4a75
jmp 0xb4a77
jmp 0xb4a79
jmp 0xb4a7b
jmp 0xb4a7d
jmp 0xb4a7f
jmp 0xb4a81
jmp 0xb4a83
jmp 0xb4a85
jmp 0xb4a87
jmp 0xb4a89
jmp 0xb4a8b
jmp 0xb4a8d
jmp 0xb4a8f
jmp 0xb4a91
jmp 0xb4a93
jmp 0xb4a95
jmp 0xb4a97
popq %rbp
retq
nopl (%rax)