// File: jkingan[P]ladyheather/heathgps.cpp
// Function: utm_lat_zone(double, double)
char utm_lat_zone(double lat, double lon)
{
   if(lat >= 84.0) { // north polar
      if(lon >= 0.0)                        return 'Z'; // east
      else                                  return 'Y'; // west
   }
   else if((84.0 >= lat) && (lat >= 72.0))  return 'X';
   else if((72.0 > lat)  && (lat >= 64.0))  return 'W';
   else if((64.0 > lat)  && (lat >= 56.0))  return 'V';
   else if((56.0 > lat)  && (lat >= 48.0))  return 'U';
   else if((48.0 > lat)  && (lat >= 40.0))  return 'T';
   else if((40.0 > lat)  && (lat >= 32.0))  return 'S';
   else if((32.0 > lat)  && (lat >= 24.0))  return 'R';
   else if((24.0 > lat)  && (lat >= 16.0))  return 'Q';
   else if((16.0 > lat)  && (lat >= 8.0))   return 'P';
   else if((8.0 > lat)   && (lat >= 0.0))   return 'N';
   else if((0.0 > lat)   && (lat >= -8.0))  return 'M';
   else if((-8.0 > lat)  && (lat >= -16.0)) return 'L';
   else if((-16.0 > lat) && (lat >= -24.0)) return 'K';
   else if((-24.0 > lat) && (lat >= -32.0)) return 'J';
   else if((-32.0 > lat) && (lat >= -40.0)) return 'H';
   else if((-40.0 > lat) && (lat >= -48.0)) return 'G';
   else if((-48.0 > lat) && (lat >= -56.0)) return 'F';
   else if((-56.0 > lat) && (lat >= -64.0)) return 'E';
   else if((-64.0 > lat) && (lat >= -72.0)) return 'D';
   else if((-72.0 > lat) && (lat >= -80.0)) return 'C';
   else if (lat <= (-80.0)) { // south polar
      if(lon >= 0.0)                        return 'B'; // east
      else                                  return 'A'; // west
   }
   else                                     return 'Z';
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movsd %xmm0, -0x10(%rbp)
movsd %xmm1, -0x18(%rbp)
movsd -0x10(%rbp), %xmm0
movsd 0x8f25d(%rip), %xmm1    # 0x183198
ucomisd %xmm1, %xmm0
jb 0xf3f61
movsd -0x18(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xf3f58
movb $0x5a, -0x1(%rbp)
jmp 0xf42d7
movb $0x59, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f22f(%rip), %xmm0    # 0x183198
ucomisd -0x10(%rbp), %xmm0
jb 0xf3f8c
movsd -0x10(%rbp), %xmm0
movsd 0x8f213(%rip), %xmm1    # 0x183190
ucomisd %xmm1, %xmm0
jb 0xf3f8c
movb $0x58, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f1fc(%rip), %xmm0    # 0x183190
ucomisd -0x10(%rbp), %xmm0
jbe 0xf3fb7
movsd -0x10(%rbp), %xmm0
movsd 0x8f028(%rip), %xmm1    # 0x182fd0
ucomisd %xmm1, %xmm0
jb 0xf3fb7
movb $0x57, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f011(%rip), %xmm0    # 0x182fd0
ucomisd -0x10(%rbp), %xmm0
jbe 0xf3fe2
movsd -0x10(%rbp), %xmm0
movsd 0x8f1b5(%rip), %xmm1    # 0x183188
ucomisd %xmm1, %xmm0
jb 0xf3fe2
movb $0x56, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f19e(%rip), %xmm0    # 0x183188
ucomisd -0x10(%rbp), %xmm0
jbe 0xf400d
movsd -0x10(%rbp), %xmm0
movsd 0x8f1ba(%rip), %xmm1    # 0x1831b8
ucomisd %xmm1, %xmm0
jb 0xf400d
movb $0x55, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f1a3(%rip), %xmm0    # 0x1831b8
ucomisd -0x10(%rbp), %xmm0
jbe 0xf4038
movsd -0x10(%rbp), %xmm0
movsd 0x7b237(%rip), %xmm1    # 0x16f260
ucomisd %xmm1, %xmm0
jb 0xf4038
movb $0x54, -0x1(%rbp)
jmp 0xf42d7
movsd 0x7b220(%rip), %xmm0    # 0x16f260
ucomisd -0x10(%rbp), %xmm0
jbe 0xf4063
movsd -0x10(%rbp), %xmm0
movsd 0x7b07c(%rip), %xmm1    # 0x16f0d0
ucomisd %xmm1, %xmm0
jb 0xf4063
movb $0x53, -0x1(%rbp)
jmp 0xf42d7
movsd 0x7b065(%rip), %xmm0    # 0x16f0d0
ucomisd -0x10(%rbp), %xmm0
jbe 0xf408e
movsd -0x10(%rbp), %xmm0
movsd 0x7afb9(%rip), %xmm1    # 0x16f038
ucomisd %xmm1, %xmm0
jb 0xf408e
movb $0x52, -0x1(%rbp)
jmp 0xf42d7
movsd 0x7afa2(%rip), %xmm0    # 0x16f038
ucomisd -0x10(%rbp), %xmm0
jbe 0xf40b9
movsd -0x10(%rbp), %xmm0
movsd 0x7d536(%rip), %xmm1    # 0x1715e0
ucomisd %xmm1, %xmm0
jb 0xf40b9
movb $0x51, -0x1(%rbp)
jmp 0xf42d7
movsd 0x7d51f(%rip), %xmm0    # 0x1715e0
ucomisd -0x10(%rbp), %xmm0
jbe 0xf40e4
movsd -0x10(%rbp), %xmm0
movsd 0x7d503(%rip), %xmm1    # 0x1715d8
ucomisd %xmm1, %xmm0
jb 0xf40e4
movb $0x50, -0x1(%rbp)
jmp 0xf42d7
movsd 0x7d4ec(%rip), %xmm0    # 0x1715d8
ucomisd -0x10(%rbp), %xmm0
jbe 0xf410a
movsd -0x10(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xf410a
movb $0x4e, -0x1(%rbp)
jmp 0xf42d7
xorps %xmm0, %xmm0
ucomisd -0x10(%rbp), %xmm0
jbe 0xf4130
movsd -0x10(%rbp), %xmm0
movsd 0x8f09f(%rip), %xmm1    # 0x1831c0
ucomisd %xmm1, %xmm0
jb 0xf4130
movb $0x4d, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f088(%rip), %xmm0    # 0x1831c0
ucomisd -0x10(%rbp), %xmm0
jbe 0xf415b
movsd -0x10(%rbp), %xmm0
movsd 0x8f07c(%rip), %xmm1    # 0x1831c8
ucomisd %xmm1, %xmm0
jb 0xf415b
movb $0x4c, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f065(%rip), %xmm0    # 0x1831c8
ucomisd -0x10(%rbp), %xmm0
jbe 0xf4186
movsd -0x10(%rbp), %xmm0
movsd 0x8f059(%rip), %xmm1    # 0x1831d0
ucomisd %xmm1, %xmm0
jb 0xf4186
movb $0x4b, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f042(%rip), %xmm0    # 0x1831d0
ucomisd -0x10(%rbp), %xmm0
jbe 0xf41b1
movsd -0x10(%rbp), %xmm0
movsd 0x8f036(%rip), %xmm1    # 0x1831d8
ucomisd %xmm1, %xmm0
jb 0xf41b1
movb $0x4a, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8f01f(%rip), %xmm0    # 0x1831d8
ucomisd -0x10(%rbp), %xmm0
jbe 0xf41dc
movsd -0x10(%rbp), %xmm0
movsd 0x8f013(%rip), %xmm1    # 0x1831e0
ucomisd %xmm1, %xmm0
jb 0xf41dc
movb $0x48, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8effc(%rip), %xmm0    # 0x1831e0
ucomisd -0x10(%rbp), %xmm0
jbe 0xf4207
movsd -0x10(%rbp), %xmm0
movsd 0x8eff0(%rip), %xmm1    # 0x1831e8
ucomisd %xmm1, %xmm0
jb 0xf4207
movb $0x47, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8efd9(%rip), %xmm0    # 0x1831e8
ucomisd -0x10(%rbp), %xmm0
jbe 0xf4232
movsd -0x10(%rbp), %xmm0
movsd 0x8efcd(%rip), %xmm1    # 0x1831f0
ucomisd %xmm1, %xmm0
jb 0xf4232
movb $0x46, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8efb6(%rip), %xmm0    # 0x1831f0
ucomisd -0x10(%rbp), %xmm0
jbe 0xf425a
movsd -0x10(%rbp), %xmm0
movsd 0x8efaa(%rip), %xmm1    # 0x1831f8
ucomisd %xmm1, %xmm0
jb 0xf425a
movb $0x45, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8ef96(%rip), %xmm0    # 0x1831f8
ucomisd -0x10(%rbp), %xmm0
jbe 0xf4282
movsd -0x10(%rbp), %xmm0
movsd 0x8ef8a(%rip), %xmm1    # 0x183200
ucomisd %xmm1, %xmm0
jb 0xf4282
movb $0x44, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8ef76(%rip), %xmm0    # 0x183200
ucomisd -0x10(%rbp), %xmm0
jbe 0xf42aa
movsd -0x10(%rbp), %xmm0
movsd 0x8ef6a(%rip), %xmm1    # 0x183208
ucomisd %xmm1, %xmm0
jb 0xf42aa
movb $0x43, -0x1(%rbp)
jmp 0xf42d7
movsd 0x8ef56(%rip), %xmm0    # 0x183208
ucomisd -0x10(%rbp), %xmm0
jb 0xf42d3
movsd -0x18(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xf42cd
movb $0x42, -0x1(%rbp)
jmp 0xf42d7
movb $0x41, -0x1(%rbp)
jmp 0xf42d7
movb $0x5a, -0x1(%rbp)
movb -0x1(%rbp), %al
popq %rbp
retq
nopl (%rax)