// File: jkingan[P]ladyheather/heathgps.cpp
// Function: average_dop()
DATA_SIZE average_dop()
{
DATA_SIZE dop, div;

   // returns the average of all dop values
   // (this should probably be a geometric average or maybe an AGM average !!!!!)

   dop = 0.0;
   div = 0.0;

   if((have_dops & TDOP) && tdop) { dop += tdop; ++div; }
   if((have_dops & HDOP) && hdop) { dop += hdop; ++div; }
   if((have_dops & VDOP) && vdop) { dop += vdop; ++div; }
   if((have_dops & PDOP) && pdop) { dop += pdop; ++div; }
   if((have_dops & GDOP) && gdop) { dop += gdop; ++div; }
   if((have_dops & EDOP) && edop) { dop += edop; ++div; }
   if((have_dops & NDOP) && ndop) { dop += ndop; ++div; }
   if((have_dops & XDOP) && xdop) { dop += xdop; ++div; }
   if((have_dops & YDOP) && ydop) { dop += ydop; ++div; }
   if(div) dop /= div;

   avg_dop = dop;
   return dop;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
xorps %xmm0, %xmm0
movsd %xmm0, -0x8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206f59(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x7b7b4
leaq 0x206f6c(%rip), %rax    # 0x2826e8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b78d
jp 0x7b78d
jmp 0x7b7b4
leaq 0x206f54(%rip), %rax    # 0x2826e8
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf38be(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206f09(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x7b804
leaq 0x206f04(%rip), %rax    # 0x2826d0
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b7dd
jp 0x7b7dd
jmp 0x7b804
leaq 0x206eec(%rip), %rax    # 0x2826d0
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf386e(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206eb9(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7b854
leaq 0x206ebc(%rip), %rax    # 0x2826d8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b82d
jp 0x7b82d
jmp 0x7b854
leaq 0x206ea4(%rip), %rax    # 0x2826d8
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf381e(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206e69(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x7b8a4
leaq 0x206e5c(%rip), %rax    # 0x2826c8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b87d
jp 0x7b87d
jmp 0x7b8a4
leaq 0x206e44(%rip), %rax    # 0x2826c8
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf37ce(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206e19(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x7b8f4
leaq 0x206e24(%rip), %rax    # 0x2826e0
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b8cd
jp 0x7b8cd
jmp 0x7b8f4
leaq 0x206e0c(%rip), %rax    # 0x2826e0
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf377e(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206dc9(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x7b944
leaq 0x206dec(%rip), %rax    # 0x2826f8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b91d
jp 0x7b91d
jmp 0x7b944
leaq 0x206dd4(%rip), %rax    # 0x2826f8
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf372e(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206d79(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x7b994
leaq 0x206d94(%rip), %rax    # 0x2826f0
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b96d
jp 0x7b96d
jmp 0x7b994
leaq 0x206d7c(%rip), %rax    # 0x2826f0
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf36de(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206d29(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x7b9e6
leaq 0x206d52(%rip), %rax    # 0x282700
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b9bf
jp 0x7b9bf
jmp 0x7b9e6
leaq 0x206d3a(%rip), %rax    # 0x282700
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf368c(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
leaq 0x206cd7(%rip), %rax    # 0x2826c4
movl (%rax), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x7ba38
leaq 0x206d08(%rip), %rax    # 0x282708
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7ba11
jp 0x7ba11
jmp 0x7ba38
leaq 0x206cf0(%rip), %rax    # 0x282708
movsd (%rax), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0xf363a(%rip), %xmm0    # 0x16f068
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7ba4a
jp 0x7ba4a
jmp 0x7ba5d
movsd -0x10(%rbp), %xmm1
movsd -0x8(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
leaq 0x206ca7(%rip), %rax    # 0x282710
movsd %xmm0, (%rax)
movsd -0x8(%rbp), %xmm0
popq %rbp
retq
nopw %cs:(%rax,%rax)