// File: /workspace/github_cpp_makefile_star2_O2/jkingan[P]ladyheather/heathgps.cpp
// Function: drive_nmea_screen(int, int)
void drive_nmea_screen(int system, int why)
{
static int last_hours = 0;
static int last_minutes = 0;
static int last_seconds = 0;
static int last_month = 0;
static int last_day = 0;
static int last_year = 0;
static double last_frac;
static int last_why;

   // update the screen for NMEA receivers and polled receivers that can
   // send multiple time messages per second.  This routine filters out
   // duplicated time stamps
   if(lte_lite == 1) lte_lite = 2;     // LTE Lite with both NMEA and STATUS messages


   if     (hours != last_hours) ;      // filter out duplicate time stamps since
   else if(minutes != last_minutes) ;  // ... NMEA sends the time in several 
   else if(seconds != last_seconds) ;  // ... different messages and different
   else if(month != last_month) ;      // ... receivers send different sets
   else if(day != last_day) ;          // ... of messages that may have the
   else if(year != last_year) ;        // ... same time stamps.
   else if((nav_rate != 1.0) && (last_frac != raw_frac)) ;
   else return;

   last_hours = hours;
   last_minutes = minutes;
   last_seconds = seconds;
   last_month = month;
   last_day = day;
   last_year = year;
   last_frac = raw_frac;

   update_gps_screen(system);
   last_why = why;

   if(rcvr_type == BRANDY_RCVR) {
      if(pri_seconds == SCPI_STATUS_SECOND) {
         queue_brandy_cmd("l", BRANDY_SATINFO_MSG);
      }
      else {
         queue_polled_cmd("f", BRANDY_FREQ_MSG);  // request freq controller info
      }
   }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x18eabb(%rip), %rax    # 0x204fd0
cmpl $0x1, (%rax)
jne 0x76520
movl $0x2, (%rax)
leaq 0x280fa9(%rip), %rax    # 0x2f74d0
movl (%rax), %eax
leaq 0x280f9c(%rip), %rcx    # 0x2f74cc
movl (%rcx), %ecx
cmpl 0x2e5924(%rip), %eax    # 0x35be5c
jne 0x765c1
leaq 0x280f83(%rip), %rdx    # 0x2f74c8
movl (%rdx), %edx
cmpl 0x2e5913(%rip), %ecx    # 0x35be60
jne 0x765ca
cmpl 0x2e590f(%rip), %edx    # 0x35be64
jne 0x765ca
leaq 0x280f7a(%rip), %rsi    # 0x2f74d8
movl (%rsi), %esi
cmpl 0x2e5902(%rip), %esi    # 0x35be68
jne 0x765ca
leaq 0x280f65(%rip), %rsi    # 0x2f74d4
movl (%rsi), %esi
cmpl 0x2e58f5(%rip), %esi    # 0x35be6c
jne 0x765ca
leaq 0x280f5c(%rip), %rsi    # 0x2f74dc
movl (%rsi), %esi
cmpl 0x2e58e8(%rip), %esi    # 0x35be70
jne 0x765ca
leaq 0x18edc7(%rip), %rsi    # 0x205358
movsd (%rsi), %xmm0
ucomisd 0x7cad3(%rip), %xmm0    # 0xf3070
jne 0x765a5
jnp 0x7664b
movsd 0x2e58cb(%rip), %xmm0   # 0x35be78
leaq 0x280f2c(%rip), %rsi    # 0x2f74e0
ucomisd (%rsi), %xmm0
jne 0x765ca
jp 0x765ca
jmp 0x7664b
leaq 0x280f00(%rip), %rdx    # 0x2f74c8
movl (%rdx), %edx
movl %eax, 0x2e588c(%rip)    # 0x35be5c
movl %ecx, 0x2e588a(%rip)    # 0x35be60
movl %edx, 0x2e5888(%rip)    # 0x35be64
leaq 0x280ef5(%rip), %rax    # 0x2f74d8
movl (%rax), %eax
movl %eax, 0x2e587d(%rip)    # 0x35be68
leaq 0x280ee2(%rip), %rax    # 0x2f74d4
movl (%rax), %eax
movl %eax, 0x2e5872(%rip)    # 0x35be6c
leaq 0x280edb(%rip), %rax    # 0x2f74dc
movl (%rax), %eax
movl %eax, 0x2e5867(%rip)    # 0x35be70
leaq 0x280ed0(%rip), %rax    # 0x2f74e0
movsd (%rax), %xmm0
movsd %xmm0, 0x2e585c(%rip)   # 0x35be78
callq 0x694f6
leaq 0x18c2a8(%rip), %rax    # 0x2028d0
cmpq $0x40000, (%rax)        # imm = 0x40000
jne 0x7664b
leaq 0x280ec8(%rip), %rax    # 0x2f7500
cmpl $0x20, (%rax)
jne 0x7664d
leaq 0x8a51f(%rip), %rdi     # 0x100b63
movl $0x196, %esi            # imm = 0x196
jmp 0x76659
popq %rbp
retq
leaq 0x886c7(%rip), %rdi     # 0xfed1b
movl $0x193, %esi            # imm = 0x193
popq %rbp
jmp 0x576d4