// File: /workspace/github_cpp_makefile_star2_O1/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 0x296157(%rip), %rax    # 0x33bc44
movl $0x0, (%rax)
movl $0x2, %edi
callq 0x83e83
leaq 0x295f3c(%rip), %rbx    # 0x33ba40
movq %rbx, %rdi
callq 0x95e0
leaq 0x2679f5(%rip), %rcx    # 0x30d508
movl %eax, (%rcx)
leaq 0x2679b4(%rip), %rcx    # 0x30d4d0
movl %eax, (%rcx)
movl $0x2, %edi
callq 0x83e83
movq %rbx, %rdi
callq 0x95e0
leaq 0x2679cd(%rip), %rcx    # 0x30d504
movl %eax, (%rcx)
leaq 0x26798c(%rip), %r15    # 0x30d4cc
movl %eax, (%r15)
movl $0x2, %edi
callq 0x83e83
movq %rbx, %rdi
callq 0x95e0
leaq 0x2679a4(%rip), %rcx    # 0x30d500
movl %eax, (%rcx)
leaq 0x267963(%rip), %r12    # 0x30d4c8
movl %eax, (%r12)
leaq 0x2679a8(%rip), %rax    # 0x30d518
movq $0x0, (%rax)
movl $0x1, %edi
callq 0x83e83
movl $0x2, %edi
callq 0x83e83
movq %rbx, %rdi
callq 0x95e0
leaq 0x267972(%rip), %rcx    # 0x30d50c
movl %eax, (%rcx)
leaq 0x267931(%rip), %r13    # 0x30d4d4
movl %eax, (%r13)
movl $0x2, %edi
callq 0x83e83
movq %rbx, %rdi
callq 0x95e0
leaq 0x267950(%rip), %rcx    # 0x30d510
movl %eax, (%rcx)
leaq 0x26790f(%rip), %r14    # 0x30d4d8
movl %eax, (%r14)
movl $0x2, %edi
callq 0x83e83
movq %rbx, %rdi
callq 0x95e0
addl $0x7d0, %eax            # imm = 0x7D0
leaq 0x26792a(%rip), %rcx    # 0x30d514
movl %eax, (%rcx)
leaq 0x2678e9(%rip), %rcx    # 0x30d4dc
movl %eax, (%rcx)
leaq 0x198794(%rip), %rbx    # 0x23e390
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xa5c41
movl (%r14), %r8d
movl (%r13), %r9d
leaq 0x2678be(%rip), %rcx    # 0x30d4d0
movl (%rcx), %r10d
movl (%r15), %r11d
movl (%r12), %r14d
subq $0x8, %rsp
leaq 0x7ff51(%rip), %rsi     # 0x125b78
leaq 0x295c02(%rip), %rdx    # 0x33b830
movl %eax, %ecx
xorl %eax, %eax
pushq %r14
pushq %r11
pushq %r10
callq 0x9560
addq $0x20, %rsp
movl $0x1, %edi
callq 0x83e83
leaq 0x295dee(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x26757a(%rip), %rcx    # 0x30d1d8
movl $0xffffff7f, %edx       # imm = 0xFFFFFF7F
andl (%rcx), %edx
andl $0x4, %eax
shll $0x5, %eax
orl %edx, %eax
movl %eax, (%rcx)
leaq 0x267622(%rip), %rax    # 0x30d298
movl $0x21, (%rax)
movl $0x1, %edi
callq 0x83e83
leaq 0x267830(%rip), %rax    # 0x30d4bd
cmpb $0x0, (%rax)
je 0xa5c9d
xorpd %xmm0, %xmm0
callq 0x5c907
jmp 0xa5cc4
leaq 0x267a84(%rip), %rax    # 0x30d728
cvtsi2sdl (%rax), %xmm0
callq 0x5c907
leaq 0x2677f0(%rip), %rax    # 0x30d4a4
andb $-0x2, (%rax)
leaq 0x26770e(%rip), %rax    # 0x30d3cc
movl $0x1, (%rax)
callq 0x7327e
cmpq $0x0, (%rbx)
je 0xa5d46
leaq 0x267872(%rip), %rax    # 0x30d548
movsd (%rax), %xmm0
xorl %edi, %edi
callq 0xd0c46
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xa5d46
leaq 0x2679b4(%rip), %rax    # 0x30d6a4
movl (%rax), %edx
leaq 0x2679a3(%rip), %rax    # 0x30d69c
movl (%rax), %ecx
leaq 0x26799e(%rip), %rax    # 0x30d6a0
movl (%rax), %r8d
leaq 0x26799c(%rip), %rax    # 0x30d6a8
movl (%rax), %r9d
leaq 0x267996(%rip), %rax    # 0x30d6ac
movl (%rax), %r10d
leaq 0x267990(%rip), %rax    # 0x30d6b0
movl (%rax), %r11d
leaq 0x26798e(%rip), %rax    # 0x30d6b8
movsd (%rax), %xmm0
leaq 0x7fe74(%rip), %rsi     # 0x125ba9
movb $0x1, %al
pushq %r11
pushq %r10
callq 0x9560
addq $0x18, %rsp
jmp 0xa5d4a
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq