// File: /workspace/github_cpp_makefile_star2_O2/jkingan[P]ladyheather/heathgps.cpp
// Function: parse_acron_time()
void parse_acron_time()
{
int dow;
int leap;
int status;
static int last_sec = 99;

   msg_col = 0;

   get_fixed_field(2);
   hours = pri_hours = atoi(msg_field);
   get_fixed_field(2);
   minutes = pri_minutes = atoi(msg_field);
   get_fixed_field(2);
   seconds = pri_seconds = atoi(msg_field);
   pri_frac = 0.0;

   get_fixed_field(1);
   dow = atoi(msg_field);

   get_fixed_field(2);
   day = pri_day = atoi(msg_field);
   get_fixed_field(2);
   month = pri_month = atoi(msg_field);
   get_fixed_field(2);
   year = pri_year = atoi(msg_field) + 2000;

if(debug_file) fprintf(debug_file, "acron time(%s) -> %02d/%02d/%02d %02d:%02d:%02d\n", nmea_msg, year,month,day,hours,minutes,seconds);

   get_fixed_field(1);
   leap = atoi(msg_field);

   if(leap & 0x04) {  // leap pending
      minor_alarms |= MINOR_LEAP_PEND;
   }
   else {
      minor_alarms &= (~MINOR_LEAP_PEND);
   }
   have_leap_info = 33;

   get_fixed_field(1);
   status = atoi(msg_field);

   if(timing_mode == TMODE_GPS) {     // convert utc time to gps time
      utc_to_gps();
   }
   else {
      adjust_rcvr_time(0.0);  // incorporarte possibly negative fractional second into time variables
   }

   if(FAKE_ACRON_RCVR && (seconds == last_sec)) {
   }
   else {
      last_sec = seconds;
      update_gps_screen(1556);
   }
if(debug_file) {
   gregorian(0, jd_local);
if(debug_file) fprintf(debug_file, "local: %02d/%02d/%02d %02d:%02d:%02d %f\n", g_year,g_month,g_day,g_hours,g_minutes,g_seconds, g_frac);
}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
leaq 0x28f4b0(%rip), %rax    # 0x325c44
andl $0x0, (%rax)
pushq $0x2
popq %rbx
movl %ebx, %edi
callq 0x78198
leaq 0x28f298(%rip), %r14    # 0x325a40
movq %r14, %rdi
callq 0x95e0
leaq 0x260d51(%rip), %rcx    # 0x2f7508
movl %eax, (%rcx)
leaq 0x260d10(%rip), %rcx    # 0x2f74d0
movl %eax, (%rcx)
movl %ebx, %edi
callq 0x78198
movq %r14, %rdi
callq 0x95e0
leaq 0x260d2c(%rip), %rcx    # 0x2f7504
movl %eax, (%rcx)
leaq 0x260ceb(%rip), %rcx    # 0x2f74cc
movl %eax, (%rcx)
movl %ebx, %edi
callq 0x78198
movq %r14, %rdi
callq 0x95e0
leaq 0x260d07(%rip), %rcx    # 0x2f7500
movl %eax, (%rcx)
leaq 0x260cc6(%rip), %r13    # 0x2f74c8
movl %eax, (%r13)
leaq 0x260d0b(%rip), %rax    # 0x2f7518
andq $0x0, (%rax)
pushq $0x1
popq %rdi
callq 0x78198
movl %ebx, %edi
callq 0x78198
movq %r14, %rdi
callq 0x95e0
leaq 0x260cdd(%rip), %rcx    # 0x2f750c
movl %eax, (%rcx)
leaq 0x260c9c(%rip), %r15    # 0x2f74d4
movl %eax, (%r15)
movl %ebx, %edi
callq 0x78198
movq %r14, %rdi
callq 0x95e0
leaq 0x260cbf(%rip), %rcx    # 0x2f7510
movl %eax, (%rcx)
leaq 0x260c7e(%rip), %r12    # 0x2f74d8
movl %eax, (%r12)
movl %ebx, %edi
callq 0x78198
movq %r14, %rdi
callq 0x95e0
addl $0x7d0, %eax            # imm = 0x7D0
leaq 0x260c9b(%rip), %rcx    # 0x2f7514
movl %eax, (%rcx)
leaq 0x260c5a(%rip), %rcx    # 0x2f74dc
movl %eax, (%rcx)
leaq 0x191b05(%rip), %r14    # 0x228390
movq (%r14), %rdi
testq %rdi, %rdi
je 0x968d6
movl (%r12), %r8d
movl (%r15), %r9d
leaq 0x260c2f(%rip), %rcx    # 0x2f74d0
movl (%rcx), %r10d
leaq 0x260c21(%rip), %rcx    # 0x2f74cc
movl (%rcx), %r11d
movl (%r13), %ebx
subq $0x8, %rsp
leaq 0x792e0(%rip), %rsi     # 0x10fb9d
leaq 0x28ef6c(%rip), %rdx    # 0x325830
movl %eax, %ecx
xorl %eax, %eax
pushq %rbx
pushq %r11
pushq %r10
callq 0x9560
addq $0x20, %rsp
pushq $0x1
popq %rbx
movl %ebx, %edi
callq 0x78198
leaq 0x28f159(%rip), %rdi    # 0x325a40
callq 0x95e0
leaq 0x2608e5(%rip), %rcx    # 0x2f71d8
movl $0xffffff7f, %edx       # imm = 0xFFFFFF7F
andl (%rcx), %edx
andl $0x4, %eax
shll $0x5, %eax
orl %edx, %eax
movl %eax, (%rcx)
leaq 0x26098d(%rip), %rax    # 0x2f7298
movl $0x21, (%rax)
movl %ebx, %edi
callq 0x78198
leaq 0x260b9e(%rip), %rax    # 0x2f74bd
cmpb $0x0, (%rax)
je 0x9692e
xorps %xmm0, %xmm0
callq 0x55462
jmp 0x96933
callq 0x554d3
callq 0x694f6
cmpq $0x0, (%r14)
je 0x969b1
leaq 0x260c03(%rip), %rax    # 0x2f7548
movsd (%rax), %xmm0
xorl %edi, %edi
callq 0xbfac2
movq (%r14), %rdi
testq %rdi, %rdi
je 0x969b1
leaq 0x260d45(%rip), %rax    # 0x2f76a4
movl (%rax), %edx
leaq 0x260d34(%rip), %rax    # 0x2f769c
movl (%rax), %ecx
leaq 0x260d2f(%rip), %rax    # 0x2f76a0
movl (%rax), %r8d
leaq 0x260d2d(%rip), %rax    # 0x2f76a8
movl (%rax), %r9d
leaq 0x260d27(%rip), %rax    # 0x2f76ac
movl (%rax), %r10d
leaq 0x260d21(%rip), %rax    # 0x2f76b0
movl (%rax), %r11d
leaq 0x260d1f(%rip), %rax    # 0x2f76b8
movsd (%rax), %xmm0
leaq 0x7922a(%rip), %rsi     # 0x10fbce
movb $0x1, %al
pushq %r11
pushq %r10
callq 0x9560
popq %rcx
popq %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq