// File: 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
subq $0x10, %rsp
movl $0x2, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xddf17
leaq 0x2bcd22(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x28e7a4(%rip), %rax    # 0x36c6b0
movl %ecx, (%rax)
leaq 0x28e7d3(%rip), %rax    # 0x36c6e8
movl %ecx, (%rax)
movl $0x2, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xddf46
leaq 0x2bccf3(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x28e771(%rip), %rax    # 0x36c6ac
movl %ecx, (%rax)
leaq 0x28e7a0(%rip), %rax    # 0x36c6e4
movl %ecx, (%rax)
movl $0x5, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xddfa9
leaq 0x2bccc4(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
movl $0x3e8, %ecx            # imm = 0x3E8
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x28e730(%rip), %rax    # 0x36c6a8
movl %ecx, (%rax)
leaq 0x28e75f(%rip), %rax    # 0x36c6e0
movl %ecx, (%rax)
movl -0x4(%rbp), %eax
movl $0x3e8, %ecx            # imm = 0x3E8
cltd
idivl %ecx
cvtsi2sd %edx, %xmm0
movsd 0x91096(%rip), %xmm1    # 0x16f030
divsd %xmm1, %xmm0
leaq 0x28e753(%rip), %rax    # 0x36c6f8
movsd %xmm0, (%rax)
movl $0x2, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xddfd8
leaq 0x2bcc61(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x28e6e7(%rip), %rax    # 0x36c6b4
movl %ecx, (%rax)
leaq 0x28e716(%rip), %rax    # 0x36c6ec
movl %ecx, (%rax)
movl $0x2, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xde007
leaq 0x2bcc32(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x28e6bc(%rip), %rax    # 0x36c6b8
movl %ecx, (%rax)
leaq 0x28e6eb(%rip), %rax    # 0x36c6f0
movl %ecx, (%rax)
movl $0x4, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xde036
leaq 0x2bcc03(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, %ecx
leaq 0x28e691(%rip), %rax    # 0x36c6bc
movl %ecx, (%rax)
leaq 0x28e6c0(%rip), %rax    # 0x36c6f4
movl %ecx, (%rax)
movl $0x2, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xde076
leaq 0x2bcbd4(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x8(%rbp)
leaq 0x28e8b9(%rip), %rax    # 0x36c914
cmpl $0x0, (%rax)
jne 0xde06c
movl -0x8(%rbp), %ecx
leaq 0x28e89e(%rip), %rax    # 0x36c908
movl %ecx, (%rax)
movl $0x21, %edi
callq 0x7a270
movl $0x1, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xde094
leaq 0x2bcb94(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0xc(%rbp)
movl $0x2, %edi
callq 0xb4d60
cmpl $0x0, %eax
je 0xde0b2
leaq 0x2bcb76(%rip), %rdi    # 0x39ac20
callq 0x95c0
movl %eax, -0x10(%rbp)
movl $0x1, %edi
callq 0xb4d60
movl $0x5, %edi
callq 0xb4d60
leaq 0x28e5d0(%rip), %rax    # 0x36c69d
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xde0dc
callq 0x7fc70
jmp 0xde0e4
xorps %xmm0, %xmm0
callq 0x7fbf0
movl $0x29b, %edi            # imm = 0x29B
callq 0x9d790
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)