// File: /workspace/github_cpp_makefile_star2_O1/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 0x83e83
testl %eax, %eax
je 0xa38ba
leaq 0x29819d(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269c21(%rip), %rcx    # 0x30d4d0
movl %eax, (%rcx)
leaq 0x269c50(%rip), %rcx    # 0x30d508
movl %eax, (%rcx)
movl $0x2, %edi
callq 0x83e83
testl %eax, %eax
je 0xa38e6
leaq 0x298171(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269bf1(%rip), %rcx    # 0x30d4cc
movl %eax, (%rcx)
leaq 0x269c20(%rip), %rcx    # 0x30d504
movl %eax, (%rcx)
movl $0x5, %edi
callq 0x83e83
testl %eax, %eax
je 0xa3947
leaq 0x298145(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269bc1(%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 0x269bda(%rip), %rcx    # 0x30d500
movl %edx, (%rcx)
imull $0x3e8, %edx, %ecx      # imm = 0x3E8
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
divsd 0x656fc(%rip), %xmm0    # 0x109038
leaq 0x269bd5(%rip), %rax    # 0x30d518
movsd %xmm0, (%rax)
movl $0x2, %edi
callq 0x83e83
testl %eax, %eax
je 0xa3973
leaq 0x2980e4(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269b6c(%rip), %rcx    # 0x30d4d4
movl %eax, (%rcx)
leaq 0x269b9b(%rip), %rcx    # 0x30d50c
movl %eax, (%rcx)
movl $0x2, %edi
callq 0x83e83
testl %eax, %eax
je 0xa399f
leaq 0x2980b8(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269b44(%rip), %rcx    # 0x30d4d8
movl %eax, (%rcx)
leaq 0x269b73(%rip), %rcx    # 0x30d510
movl %eax, (%rcx)
movl $0x4, %edi
callq 0x83e83
testl %eax, %eax
je 0xa39cb
leaq 0x29808c(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269b1c(%rip), %rcx    # 0x30d4dc
movl %eax, (%rcx)
leaq 0x269b4b(%rip), %rcx    # 0x30d514
movl %eax, (%rcx)
movl $0x2, %edi
callq 0x83e83
testl %eax, %eax
je 0xa3a47
leaq 0x269d54(%rip), %rax    # 0x30d734
cmpl $0x0, (%rax)
jne 0xa39fa
leaq 0x298054(%rip), %rdi    # 0x33ba40
callq 0x95e0
leaq 0x269d30(%rip), %rcx    # 0x30d728
movl %eax, (%rcx)
leaq 0x26991b(%rip), %rax    # 0x30d31c
cmpl $0x0, (%rax)
jne 0xa3a47
leaq 0x269b07(%rip), %rcx    # 0x30d514
cmpl $0x7e1, (%rcx)          # imm = 0x7E1
setge %cl
leaq 0x269d0b(%rip), %rdx    # 0x30d728
movl (%rdx), %edx
cmpl $0x12, %edx
setl %sil
andb %cl, %sil
cmpl $0x11, %edx
setl %cl
orb %sil, %cl
jne 0xa3a47
leaq 0x174e09(%rip), %rcx    # 0x218844
movl $0x7f1, (%rcx)          # imm = 0x7F1
movl $0x21, (%rax)
movl $0x1, %edi
callq 0x83e83
movl $0x2, %edi
callq 0x83e83
movl $0x1, %edi
callq 0x83e83
movl $0x5, %edi
callq 0x83e83
leaq 0x269a47(%rip), %rax    # 0x30d4bd
cmpb $0x0, (%rax)
je 0xa3a86
xorpd %xmm0, %xmm0
callq 0x5c907
jmp 0xa3ab0
leaq 0x269c9b(%rip), %rax    # 0x30d728
xorps %xmm0, %xmm0
cvtsi2sdl (%rax), %xmm0
callq 0x5c907
leaq 0x269a04(%rip), %rax    # 0x30d4a4
andb $-0x2, (%rax)
leaq 0x269922(%rip), %rax    # 0x30d3cc
movl $0x1, (%rax)
popq %rbp
jmp 0x7327e