// File: /workspace/github_cpp_makefile_star2_O3/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 0x295f6d(%rip), %rax    # 0x33bc44
movl $0x0, (%rax)
movl $0x2, %edi
callq 0x83d8c
leaq 0x295d52(%rip), %rbx    # 0x33ba40
movq %rbx, %rdi
callq 0x95e0
leaq 0x26780b(%rip), %rcx    # 0x30d508
movl %eax, (%rcx)
leaq 0x2677ca(%rip), %rcx    # 0x30d4d0
movl %eax, (%rcx)
movl $0x2, %edi
callq 0x83d8c
movq %rbx, %rdi
callq 0x95e0
leaq 0x2677e3(%rip), %rcx    # 0x30d504
movl %eax, (%rcx)
leaq 0x2677a2(%rip), %r15    # 0x30d4cc
movl %eax, (%r15)
movl $0x2, %edi
callq 0x83d8c
movq %rbx, %rdi
callq 0x95e0
leaq 0x2677ba(%rip), %rcx    # 0x30d500
movl %eax, (%rcx)
leaq 0x267779(%rip), %r12    # 0x30d4c8
movl %eax, (%r12)
leaq 0x2677be(%rip), %rax    # 0x30d518
movq $0x0, (%rax)
movl $0x1, %edi
callq 0x83d8c
movl $0x2, %edi
callq 0x83d8c
movq %rbx, %rdi
callq 0x95e0
leaq 0x267788(%rip), %rcx    # 0x30d50c
movl %eax, (%rcx)
leaq 0x267747(%rip), %r13    # 0x30d4d4
movl %eax, (%r13)
movl $0x2, %edi
callq 0x83d8c
movq %rbx, %rdi
callq 0x95e0
leaq 0x267766(%rip), %rcx    # 0x30d510
movl %eax, (%rcx)
leaq 0x267725(%rip), %r14    # 0x30d4d8
movl %eax, (%r14)
movl $0x2, %edi
callq 0x83d8c
movq %rbx, %rdi
callq 0x95e0
addl $0x7d0, %eax            # imm = 0x7D0
leaq 0x267740(%rip), %rcx    # 0x30d514
movl %eax, (%rcx)
leaq 0x2676ff(%rip), %rcx    # 0x30d4dc
movl %eax, (%rcx)
leaq 0x1985aa(%rip), %rbx    # 0x23e390
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xa5e2b
movl (%r14), %r8d
movl (%r13), %r9d
leaq 0x2676d4(%rip), %rcx    # 0x30d4d0
movl (%rcx), %r10d
movl (%r15), %r11d
movl (%r12), %r14d
subq $0x8, %rsp
leaq 0x7fe47(%rip), %rsi     # 0x125c58
leaq 0x295a18(%rip), %rdx    # 0x33b830
movl %eax, %ecx
xorl %eax, %eax
pushq %r14
pushq %r11
pushq %r10
callq 0x9560
addq $0x20, %rsp
movl $0x1, %edi
callq 0x83d8c
leaq 0x295c04(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x267390(%rip), %rcx    # 0x30d1d8
movl $0xffffff7f, %edx       # imm = 0xFFFFFF7F
andl (%rcx), %edx
andl $0x4, %eax
shll $0x5, %eax
orl %edx, %eax
movl %eax, (%rcx)
leaq 0x267438(%rip), %rax    # 0x30d298
movl $0x21, (%rax)
movl $0x1, %edi
callq 0x83d8c
leaq 0x267646(%rip), %rax    # 0x30d4bd
cmpb $0x0, (%rax)
je 0xa5e87
xorpd %xmm0, %xmm0
callq 0x5c7ed
jmp 0xa5eae
leaq 0x26789a(%rip), %rax    # 0x30d728
cvtsi2sdl (%rax), %xmm0
callq 0x5c7ed
leaq 0x267606(%rip), %rax    # 0x30d4a4
andb $-0x2, (%rax)
leaq 0x267524(%rip), %rax    # 0x30d3cc
movl $0x1, (%rax)
callq 0x730e8
cmpq $0x0, (%rbx)
je 0xa5f30
leaq 0x267688(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
xorl %edi, %edi
callq 0xd12da
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xa5f30
leaq 0x2677ca(%rip), %rax    # 0x30d6a4
movl (%rax), %edx
leaq 0x2677b9(%rip), %rax    # 0x30d69c
movl (%rax), %ecx
leaq 0x2677b4(%rip), %rax    # 0x30d6a0
movl (%rax), %r8d
leaq 0x2677b2(%rip), %rax    # 0x30d6a8
movl (%rax), %r9d
leaq 0x2677ac(%rip), %rax    # 0x30d6ac
movl (%rax), %r10d
leaq 0x2677a6(%rip), %rax    # 0x30d6b0
movl (%rax), %r11d
leaq 0x2677a4(%rip), %rax    # 0x30d6b8
movsd (%rax), %xmm0
leaq 0x7fd6a(%rip), %rsi     # 0x125c89
movb $0x1, %al
pushq %r11
pushq %r10
callq 0x9560
addq $0x18, %rsp
jmp 0xa5f34
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq