// File: /workspace/github_cpp_makefile_star2_O3/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 0x8bbed(%rip), %rdi     # 0x124b4b
callq 0x58dc2
callq 0x58964
callq 0x588d2
callq 0x588d2
movzwl %ax, %eax
cvtsi2ss %eax, %xmm0
divss 0x740ef(%rip), %xmm0    # 0x10d070
cvtss2sd %xmm0, %xmm0
leaq 0x18a574(%rip), %rax    # 0x223500
movsd %xmm0, (%rax)
callq 0x588d2
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x740c9(%rip), %xmm0    # 0x10d070
cvtss2sd %xmm0, %xmm0
leaq 0x18a536(%rip), %rax    # 0x2234e8
movsd %xmm0, (%rax)
callq 0x588d2
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x740a3(%rip), %xmm0    # 0x10d070
cvtss2sd %xmm0, %xmm0
leaq 0x18a518(%rip), %rax    # 0x2234f0
movsd %xmm0, (%rax)
callq 0x588d2
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x7407d(%rip), %xmm0    # 0x10d070
cvtss2sd %xmm0, %xmm0
leaq 0x18a4fa(%rip), %rax    # 0x2234f8
movsd %xmm0, (%rax)
callq 0x588d2
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x74057(%rip), %xmm0    # 0x10d070
cvtss2sd %xmm0, %xmm0
leaq 0x18a4e4(%rip), %rax    # 0x223508
movsd %xmm0, (%rax)
leaq 0x18a4b5(%rip), %rax    # 0x2234e4
movl $0x1f, (%rax)
callq 0x588d2
movl %eax, %ebx
movzwl %ax, %r14d
leaq 0x1a5ec5(%rip), %rax    # 0x23ef0c
movl %r14d, (%rax)
leaq 0x2742c7(%rip), %rax    # 0x30d318
movl $0x4, (%rax)
movl %r14d, %edi
callq 0x5e390
testw %r14w, %r14w
je 0x99132
cmpw $0xc, %bx
movl $0xc, %eax
cmovbl %ebx, %eax
movzwl %ax, %r15d
leaq 0x274214(%rip), %r12    # 0x30d294
callq 0x588d2
movl %eax, %ebx
callq 0x588d2
movl %eax, %r14d
callq 0x588d2
leal -0x1(%rbx), %ecx
movzwl %cx, %ecx
cmpl $0x3e6, %ecx            # imm = 0x3E6
ja 0x99129
movswl %r14w, %ecx
xorps %xmm0, %xmm0
cvtsi2sd %ecx, %xmm0
movsd 0x856d7(%rip), %xmm3    # 0x11e790
mulsd %xmm3, %xmm0
movsd 0x7276b(%rip), %xmm4    # 0x10b830
mulsd %xmm4, %xmm0
movsd 0x72757(%rip), %xmm5    # 0x10b828
divsd %xmm5, %xmm0
movapd %xmm0, %xmm1
addsd 0x85057(%rip), %xmm1    # 0x11e138
movapd %xmm0, %xmm2
cmpltsd 0x7002a(%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 0x5ace1
movl $0x6, (%r12)
decl %r15d
jne 0x99080
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq