// File: /workspace/github_cpp_makefile_star2_O1/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 0x198fa7(%rip), %rax    # 0x21afd0
cmpl $0x1, (%rax)
jne 0x82034
movl $0x2, (%rax)
leaq 0x28b495(%rip), %rax    # 0x30d4d0
movl (%rax), %eax
cmpl 0x2efe19(%rip), %eax    # 0x371e5c
jne 0x820d4
leaq 0x28b47c(%rip), %rcx    # 0x30d4cc
movl (%rcx), %ecx
cmpl 0x2efe08(%rip), %ecx    # 0x371e60
jne 0x820d4
leaq 0x28b467(%rip), %rcx    # 0x30d4c8
movl (%rcx), %ecx
cmpl 0x2efdfb(%rip), %ecx    # 0x371e64
jne 0x820d4
leaq 0x28b466(%rip), %rcx    # 0x30d4d8
movl (%rcx), %ecx
cmpl 0x2efdee(%rip), %ecx    # 0x371e68
jne 0x820d4
leaq 0x28b451(%rip), %rcx    # 0x30d4d4
movl (%rcx), %ecx
cmpl 0x2efde1(%rip), %ecx    # 0x371e6c
jne 0x820d4
leaq 0x28b448(%rip), %rcx    # 0x30d4dc
movl (%rcx), %ecx
cmpl 0x2efdd4(%rip), %ecx    # 0x371e70
jne 0x820d4
leaq 0x1992b3(%rip), %rcx    # 0x21b358
movsd (%rcx), %xmm0
ucomisd 0x86fbf(%rip), %xmm0    # 0x109070
jne 0x820b9
jnp 0x82167
movsd 0x2efdb7(%rip), %xmm0   # 0x371e78
leaq 0x28b418(%rip), %rcx    # 0x30d4e0
ucomisd (%rcx), %xmm0
jne 0x820d4
jnp 0x82167
movl %eax, 0x2efd82(%rip)    # 0x371e5c
leaq 0x28b3eb(%rip), %rax    # 0x30d4cc
movl (%rax), %eax
movl %eax, 0x2efd77(%rip)    # 0x371e60
leaq 0x28b3d8(%rip), %rax    # 0x30d4c8
movl (%rax), %eax
movl %eax, 0x2efd6c(%rip)    # 0x371e64
leaq 0x28b3d9(%rip), %rax    # 0x30d4d8
movl (%rax), %eax
movl %eax, 0x2efd61(%rip)    # 0x371e68
leaq 0x28b3c6(%rip), %rax    # 0x30d4d4
movl (%rax), %eax
movl %eax, 0x2efd56(%rip)    # 0x371e6c
leaq 0x28b3bf(%rip), %rax    # 0x30d4dc
movl (%rax), %eax
movl %eax, 0x2efd4b(%rip)    # 0x371e70
leaq 0x28b3b4(%rip), %rax    # 0x30d4e0
movsd (%rax), %xmm0
movsd %xmm0, 0x2efd40(%rip)   # 0x371e78
callq 0x7327e
leaq 0x19678c(%rip), %rax    # 0x2188d0
cmpq $0x40000, (%rax)        # imm = 0x40000
jne 0x82167
leaq 0x28b3ac(%rip), %rax    # 0x30d500
cmpl $0x20, (%rax)
jne 0x82169
leaq 0x948ef(%rip), %rdi     # 0x116a4f
movl $0x196, %esi            # imm = 0x196
jmp 0x82175
popq %rbp
retq
leaq 0x92a97(%rip), %rdi     # 0x114c07
movl $0x193, %esi            # imm = 0x193
popq %rbp
jmp 0x5ee52