// File: jkingan[P]ladyheather/heathgps.cpp
// Function: ura_to_dist(int, int)
float ura_to_dist(int prn, int acc)
{
   // convert GPS system URA code to distance in meters
   if(prn < 1) return (-1.0F);
   if(prn > MAX_PRN) return (-1.0F);

   if(rinex_gnss(prn) & (GPS | SBAS)) {  // field is a GPS URA code
      if     (acc == 0)  return 2.4F;
      else if(acc == 1)  return 3.4F;
      else if(acc == 2)  return 4.85F;
      else if(acc == 3)  return 6.85F;
      else if(acc == 4)  return 9.65F;
      else if(acc == 5)  return 13.65F;
      else if(acc == 6)  return 24.00F;
      else if(acc == 7)  return 48.00F;
      else if(acc == 8)  return 96.00F;
      else if(acc == 9)  return 192.00F;
      else if(acc == 10) return 384.00F;
      else if(acc == 11) return 768.00F;
   }
   else if(rinex_gnss(prn) & GLONASS) {  // Ft word
      if     (acc == 0)  return 1.0F;
      else if(acc == 1)  return 2.0F;
      else if(acc == 2)  return 2.50F;
      else if(acc == 3)  return 4.00F;
      else if(acc == 4)  return 5.00F;
      else if(acc == 5)  return 7.00F;
      else if(acc == 6)  return 10.00F;
      else if(acc == 7)  return 12.00F;
      else if(acc == 8)  return 14.00F;
      else if(acc == 9)  return 16.00F;
      else if(acc == 10) return 32.00F;
      else if(acc == 11) return 64.00F;
      else if(acc == 12) return 128.00F;
      else if(acc == 13) return 256.00F;
      else if(acc == 14) return 512.00F;
   }

   return (-1.00F);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpl $0x1, -0x8(%rbp)
jge 0xb3246
movss 0xbe6fc(%rip), %xmm0    # 0x171938
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x3e7, -0x8(%rbp)      # imm = 0x3E7
jle 0xb3261
movss 0xbe6e1(%rip), %xmm0    # 0x171938
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
movl -0x8(%rbp), %edi
callq 0x12d280
andl $0x8001, %eax           # imm = 0x8001
cmpl $0x0, %eax
je 0xb33b2
cmpl $0x0, -0xc(%rbp)
jne 0xb328f
movss 0xd0113(%rip), %xmm0    # 0x183398
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x1, -0xc(%rbp)
jne 0xb32a7
movss 0xd00f7(%rip), %xmm0    # 0x183394
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x2, -0xc(%rbp)
jne 0xb32bf
movss 0xd00db(%rip), %xmm0    # 0x183390
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x3, -0xc(%rbp)
jne 0xb32d7
movss 0xd00bf(%rip), %xmm0    # 0x18338c
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x4, -0xc(%rbp)
jne 0xb32ef
movss 0xd00a3(%rip), %xmm0    # 0x183388
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x5, -0xc(%rbp)
jne 0xb3307
movss 0xd0087(%rip), %xmm0    # 0x183384
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x6, -0xc(%rbp)
jne 0xb331f
movss 0xd006b(%rip), %xmm0    # 0x183380
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x7, -0xc(%rbp)
jne 0xb3337
movss 0xbe603(%rip), %xmm0    # 0x171930
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x8, -0xc(%rbp)
jne 0xb334f
movss 0xd0037(%rip), %xmm0    # 0x18337c
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x9, -0xc(%rbp)
jne 0xb3367
movss 0xd001b(%rip), %xmm0    # 0x183378
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0xa, -0xc(%rbp)
jne 0xb337f
movss 0xcffff(%rip), %xmm0    # 0x183374
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0xb, -0xc(%rbp)
jne 0xb3397
movss 0xcffe3(%rip), %xmm0    # 0x183370
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
jmp 0xb3399
jmp 0xb339b
jmp 0xb339d
jmp 0xb339f
jmp 0xb33a1
jmp 0xb33a3
jmp 0xb33a5
jmp 0xb33a7
jmp 0xb33a9
jmp 0xb33ab
jmp 0xb33ad
jmp 0xb3542
movl -0x8(%rbp), %edi
callq 0x12d280
andl $0x2, %eax
cmpl $0x0, %eax
je 0xb3540
cmpl $0x0, -0xc(%rbp)
jne 0xb33de
movss 0xbe568(%rip), %xmm0    # 0x17193c
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x1, -0xc(%rbp)
jne 0xb33f6
movss 0xcff80(%rip), %xmm0    # 0x18336c
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x2, -0xc(%rbp)
jne 0xb340e
movss 0xcff64(%rip), %xmm0    # 0x183368
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x3, -0xc(%rbp)
jne 0xb3426
movss 0xbe52c(%rip), %xmm0    # 0x171948
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x4, -0xc(%rbp)
jne 0xb343e
movss 0xcff30(%rip), %xmm0    # 0x183364
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x5, -0xc(%rbp)
jne 0xb3456
movss 0xcff14(%rip), %xmm0    # 0x183360
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x6, -0xc(%rbp)
jne 0xb346e
movss 0xcfebc(%rip), %xmm0    # 0x183320
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x7, -0xc(%rbp)
jne 0xb3486
movss 0xcfee0(%rip), %xmm0    # 0x18335c
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x8, -0xc(%rbp)
jne 0xb349e
movss 0xcfec4(%rip), %xmm0    # 0x183358
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0x9, -0xc(%rbp)
jne 0xb34b6
movss 0xbe4a0(%rip), %xmm0    # 0x17194c
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0xa, -0xc(%rbp)
jne 0xb34ce
movss 0xcfe90(%rip), %xmm0    # 0x183354
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0xb, -0xc(%rbp)
jne 0xb34e3
movss 0xcfe74(%rip), %xmm0    # 0x183350
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0xc, -0xc(%rbp)
jne 0xb34f8
movss 0xcfe5b(%rip), %xmm0    # 0x18334c
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0xd, -0xc(%rbp)
jne 0xb350d
movss 0xcfe42(%rip), %xmm0    # 0x183348
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
cmpl $0xe, -0xc(%rbp)
jne 0xb3522
movss 0xcfe29(%rip), %xmm0    # 0x183344
movss %xmm0, -0x4(%rbp)
jmp 0xb354f
jmp 0xb3524
jmp 0xb3526
jmp 0xb3528
jmp 0xb352a
jmp 0xb352c
jmp 0xb352e
jmp 0xb3530
jmp 0xb3532
jmp 0xb3534
jmp 0xb3536
jmp 0xb3538
jmp 0xb353a
jmp 0xb353c
jmp 0xb353e
jmp 0xb3540
jmp 0xb3542
movss 0xbe3ee(%rip), %xmm0    # 0x171938
movss %xmm0, -0x4(%rbp)
movss -0x4(%rbp), %xmm0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)