// File: /workspace/github_cpp_makefile_star2_O3/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 0x199088(%rip), %rax    # 0x21afd0
cmpl $0x1, (%rax)
jne 0x81f53
movl $0x2, (%rax)
leaq 0x28b576(%rip), %rax    # 0x30d4d0
movl (%rax), %eax
leaq 0x28b569(%rip), %rcx    # 0x30d4cc
movl (%rcx), %ecx
cmpl 0x2efef1(%rip), %eax    # 0x371e5c
jne 0x81ff4
leaq 0x28b550(%rip), %rdx    # 0x30d4c8
movl (%rdx), %edx
cmpl 0x2efee0(%rip), %ecx    # 0x371e60
jne 0x81ffd
cmpl 0x2efedc(%rip), %edx    # 0x371e64
jne 0x81ffd
leaq 0x28b547(%rip), %rsi    # 0x30d4d8
movl (%rsi), %esi
cmpl 0x2efecf(%rip), %esi    # 0x371e68
jne 0x81ffd
leaq 0x28b532(%rip), %rsi    # 0x30d4d4
movl (%rsi), %esi
cmpl 0x2efec2(%rip), %esi    # 0x371e6c
jne 0x81ffd
leaq 0x28b529(%rip), %rsi    # 0x30d4dc
movl (%rsi), %esi
cmpl 0x2efeb5(%rip), %esi    # 0x371e70
jne 0x81ffd
leaq 0x199394(%rip), %rsi    # 0x21b358
movsd (%rsi), %xmm0
ucomisd 0x870a0(%rip), %xmm0    # 0x109070
jne 0x81fd8
jnp 0x8207e
movsd 0x2efe98(%rip), %xmm0   # 0x371e78
leaq 0x28b4f9(%rip), %rsi    # 0x30d4e0
ucomisd (%rsi), %xmm0
jne 0x81ffd
jp 0x81ffd
jmp 0x8207e
leaq 0x28b4cd(%rip), %rdx    # 0x30d4c8
movl (%rdx), %edx
movl %eax, 0x2efe59(%rip)    # 0x371e5c
movl %ecx, 0x2efe57(%rip)    # 0x371e60
movl %edx, 0x2efe55(%rip)    # 0x371e64
leaq 0x28b4c2(%rip), %rax    # 0x30d4d8
movl (%rax), %eax
movl %eax, 0x2efe4a(%rip)    # 0x371e68
leaq 0x28b4af(%rip), %rax    # 0x30d4d4
movl (%rax), %eax
movl %eax, 0x2efe3f(%rip)    # 0x371e6c
leaq 0x28b4a8(%rip), %rax    # 0x30d4dc
movl (%rax), %eax
movl %eax, 0x2efe34(%rip)    # 0x371e70
leaq 0x28b49d(%rip), %rax    # 0x30d4e0
movsd (%rax), %xmm0
movsd %xmm0, 0x2efe29(%rip)   # 0x371e78
callq 0x730e8
leaq 0x196875(%rip), %rax    # 0x2188d0
cmpq $0x40000, (%rax)        # imm = 0x40000
jne 0x8207e
leaq 0x28b495(%rip), %rax    # 0x30d500
cmpl $0x20, (%rax)
jne 0x82080
leaq 0x94a6c(%rip), %rdi     # 0x116ae3
movl $0x196, %esi            # imm = 0x196
jmp 0x8208c
popq %rbp
retq
leaq 0x92c14(%rip), %rdi     # 0x114c9b
movl $0x193, %esi            # imm = 0x193
popq %rbp
jmp 0x5edda