// File: /workspace/github_cpp_makefile_star2_O3/jkingan[P]ladyheather/heathgps.cpp
// Function: parse_taip_time()
void parse_taip_time()
{
int sec;
int i;
int source;
int count;

   if(get_fixed_field(2)) pri_hours = hours = atoi(msg_field);
   if(get_fixed_field(2)) pri_minutes = minutes = atoi(msg_field);
   if(get_fixed_field(5)) {
      sec = atoi(msg_field);
      pri_seconds = seconds = sec/1000;
      pri_frac = ((double) (sec % 1000)) / 1000.0;
   }

   if(get_fixed_field(2)) pri_day = day = atoi(msg_field);
   if(get_fixed_field(2)) pri_month = month = atoi(msg_field);
   if(get_fixed_field(4)) pri_year = year = atoi(msg_field);

   if(get_fixed_field(2)) {
      i = atoi(msg_field);
      if(!user_set_utc_ofs) utc_offset = i;
      check_utc_ofs(33);
   }

   if(get_fixed_field(1)) source = atoi(msg_field);
   if(get_fixed_field(2)) count = atoi(msg_field);

   get_fixed_field(1);  // gps/utc
   get_fixed_field(5);  // reserved

   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
   }

   update_gps_screen(667);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl $0x2, %edi
callq 0x83d8c
testl %eax, %eax
je 0xa3ad1
leaq 0x297f86(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269a0a(%rip), %rcx    # 0x30d4d0
movl %eax, (%rcx)
leaq 0x269a39(%rip), %rcx    # 0x30d508
movl %eax, (%rcx)
movl $0x2, %edi
callq 0x83d8c
testl %eax, %eax
je 0xa3afd
leaq 0x297f5a(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x2699da(%rip), %rcx    # 0x30d4cc
movl %eax, (%rcx)
leaq 0x269a09(%rip), %rcx    # 0x30d504
movl %eax, (%rcx)
movl $0x5, %edi
callq 0x83d8c
testl %eax, %eax
je 0xa3b5e
leaq 0x297f2e(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x2699aa(%rip), %rcx    # 0x30d4c8
cltq
imulq $0x10624dd3, %rax, %rdx # imm = 0x10624DD3
movq %rdx, %rsi
shrq $0x3f, %rsi
sarq $0x26, %rdx
addl %esi, %edx
movl %edx, (%rcx)
leaq 0x2699c3(%rip), %rcx    # 0x30d500
movl %edx, (%rcx)
imull $0x3e8, %edx, %ecx      # imm = 0x3E8
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
divsd 0x654e5(%rip), %xmm0    # 0x109038
leaq 0x2699be(%rip), %rax    # 0x30d518
movsd %xmm0, (%rax)
movl $0x2, %edi
callq 0x83d8c
testl %eax, %eax
je 0xa3b8a
leaq 0x297ecd(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269955(%rip), %rcx    # 0x30d4d4
movl %eax, (%rcx)
leaq 0x269984(%rip), %rcx    # 0x30d50c
movl %eax, (%rcx)
movl $0x2, %edi
callq 0x83d8c
testl %eax, %eax
je 0xa3bb6
leaq 0x297ea1(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x26992d(%rip), %rcx    # 0x30d4d8
movl %eax, (%rcx)
leaq 0x26995c(%rip), %rcx    # 0x30d510
movl %eax, (%rcx)
movl $0x4, %edi
callq 0x83d8c
testl %eax, %eax
je 0xa3be2
leaq 0x297e75(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269905(%rip), %rcx    # 0x30d4dc
movl %eax, (%rcx)
leaq 0x269934(%rip), %rcx    # 0x30d514
movl %eax, (%rcx)
movl $0x2, %edi
callq 0x83d8c
testl %eax, %eax
je 0xa3c5e
leaq 0x269b3d(%rip), %rax    # 0x30d734
cmpl $0x0, (%rax)
jne 0xa3c11
leaq 0x297e3d(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269b19(%rip), %rcx    # 0x30d728
movl %eax, (%rcx)
leaq 0x269704(%rip), %rax    # 0x30d31c
cmpl $0x0, (%rax)
jne 0xa3c5e
leaq 0x2698f0(%rip), %rcx    # 0x30d514
cmpl $0x7e1, (%rcx)          # imm = 0x7E1
setge %cl
leaq 0x269af4(%rip), %rdx    # 0x30d728
movl (%rdx), %edx
cmpl $0x12, %edx
setl %sil
andb %cl, %sil
cmpl $0x11, %edx
setl %cl
orb %sil, %cl
jne 0xa3c5e
leaq 0x174bf2(%rip), %rcx    # 0x218844
movl $0x7f1, (%rcx)          # imm = 0x7F1
movl $0x21, (%rax)
movl $0x1, %edi
callq 0x83d8c
movl $0x2, %edi
callq 0x83d8c
movl $0x1, %edi
callq 0x83d8c
movl $0x5, %edi
callq 0x83d8c
leaq 0x269830(%rip), %rax    # 0x30d4bd
cmpb $0x0, (%rax)
je 0xa3c9d
xorpd %xmm0, %xmm0
callq 0x5c7ed
jmp 0xa3cc7
leaq 0x269a84(%rip), %rax    # 0x30d728
xorps %xmm0, %xmm0
cvtsi2sdl (%rax), %xmm0
callq 0x5c7ed
leaq 0x2697ed(%rip), %rax    # 0x30d4a4
andb $-0x2, (%rax)
leaq 0x26970b(%rip), %rax    # 0x30d3cc
movl $0x1, (%rax)
popq %rbp
jmp 0x730e8