// File: /workspace/github_cpp_makefile_star2_O1/jkingan[P]ladyheather/heathgps.cpp
// Function: parse_zod_vis()
void parse_zod_vis()
{
int i;
int prn;
double a, e;

   log_packet_id("sat visibility");

   get_zod_seq(0);

   gdop = ((float) tsip_word()) / 100.0F;
   pdop = ((float) tsip_word()) / 100.0F;
   hdop = ((float) tsip_word()) / 100.0F;
   vdop = ((float) tsip_word()) / 100.0F;
   tdop = ((float) tsip_word()) / 100.0F;
   have_dops = (GDOP | PDOP | HDOP | VDOP | TDOP);

   i = tsip_word();
   sat_count = i;
   have_count = 4;
   config_sat_count(i);

   if(i > 12) i = 12;
   else if(i < 0) i = 0;
   while(i--) {
      prn = tsip_word();
      a = (((double) (s16) tsip_word()) * 1.0E-4 * 180.0 / PI);
      if(a < 0.0) a += 360.0;
      e = (((double) (s16) tsip_word()) * 1.0E-4 * 180.0 / PI);

      if((prn >= 1) && (prn <= MAX_PRN)) { 
         set_sat_azel(prn, (float) a, (float) e);
         have_sat_azel = 6;
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
leaq 0x8bc19(%rip), %rdi     # 0x124a6b
callq 0x58e77
callq 0x589b0
callq 0x588f0
callq 0x588f0
movzwl %ax, %eax
cvtsi2ss %eax, %xmm0
divss 0x74163(%rip), %xmm0    # 0x10cfd8
cvtss2sd %xmm0, %xmm0
leaq 0x18a680(%rip), %rax    # 0x223500
movsd %xmm0, (%rax)
callq 0x588f0
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x7413d(%rip), %xmm0    # 0x10cfd8
cvtss2sd %xmm0, %xmm0
leaq 0x18a642(%rip), %rax    # 0x2234e8
movsd %xmm0, (%rax)
callq 0x588f0
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x74117(%rip), %xmm0    # 0x10cfd8
cvtss2sd %xmm0, %xmm0
leaq 0x18a624(%rip), %rax    # 0x2234f0
movsd %xmm0, (%rax)
callq 0x588f0
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x740f1(%rip), %xmm0    # 0x10cfd8
cvtss2sd %xmm0, %xmm0
leaq 0x18a606(%rip), %rax    # 0x2234f8
movsd %xmm0, (%rax)
callq 0x588f0
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x740cb(%rip), %xmm0    # 0x10cfd8
cvtss2sd %xmm0, %xmm0
leaq 0x18a5f0(%rip), %rax    # 0x223508
movsd %xmm0, (%rax)
leaq 0x18a5c1(%rip), %rax    # 0x2234e4
movl $0x1f, (%rax)
callq 0x588f0
movl %eax, %ebx
movzwl %ax, %r14d
leaq 0x1a5fd1(%rip), %rax    # 0x23ef0c
movl %r14d, (%rax)
leaq 0x2743d3(%rip), %rax    # 0x30d318
movl $0x4, (%rax)
movl %r14d, %edi
callq 0x5e411
testw %r14w, %r14w
je 0x99026
cmpw $0xc, %bx
movl $0xc, %eax
cmovbl %ebx, %eax
movzwl %ax, %r15d
leaq 0x274320(%rip), %r12    # 0x30d294
callq 0x588f0
movl %eax, %ebx
callq 0x588f0
movl %eax, %r14d
callq 0x588f0
leal -0x1(%rbx), %ecx
movzwl %cx, %ecx
cmpl $0x3e6, %ecx            # imm = 0x3E6
ja 0x9901d
movswl %r14w, %ecx
xorps %xmm0, %xmm0
cvtsi2sd %ecx, %xmm0
movsd 0x85733(%rip), %xmm3    # 0x11e6e0
mulsd %xmm3, %xmm0
movsd 0x72867(%rip), %xmm4    # 0x10b820
mulsd %xmm4, %xmm0
movsd 0x72853(%rip), %xmm5    # 0x10b818
divsd %xmm5, %xmm0
movapd %xmm0, %xmm1
addsd 0x850bb(%rip), %xmm1    # 0x11e090
movapd %xmm0, %xmm2
cmpltsd 0x70136(%rip), %xmm2    # 0x109118
andpd %xmm2, %xmm1
andnpd %xmm0, %xmm2
orpd %xmm1, %xmm2
cwtl
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movzwl %bx, %edi
mulsd %xmm3, %xmm1
mulsd %xmm4, %xmm1
divsd %xmm5, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss %xmm2, %xmm0
cvtsd2ss %xmm1, %xmm1
callq 0x5ad98
movl $0x6, (%r12)
decl %r15d
jne 0x98f74
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq