// File: /workspace/github_cpp_makefile_star2_O2/jkingan[P]ladyheather/heathgps.cpp
// Function: parse_scpi_posn()
void parse_scpi_posn()
{
double sign;

   log_packet_id("scpi posn");

   sign = 1.0;
   msg_col = 0;
   if(get_msg_field()) {
      if(msg_field[0] == 'S') sign = (-1.0);
      else if(msg_field[1] == 'S') sign = (-1.0);
   }
   if(get_msg_field()) {
      lat = atof(msg_field);
   }
   if(get_msg_field()) {
      lat += atof(msg_field) / 60.0;
   }
   if(get_msg_field()) {
      lat += atof(msg_field) / 3600.0;
   }
   lat *= sign;

   sign = 1.0;
   if(get_msg_field()) {
      if(msg_field[0] == 'W') sign = (-1.0);
   }
   if(get_msg_field()) {
      lon = atof(msg_field);
   }
   if(get_msg_field()) {
      lon += atof(msg_field) / 60.0;
   }
   if(get_msg_field()) {
      lon += atof(msg_field) / 3600.0;
   }
   lon *= sign;

   if(get_msg_field()) {
      alt = atof(msg_field);
   }
if(debug_file) fprintf(debug_file, "###lla: %.9f %.9f %.3f\n", lat,lon,alt);
   lat = lat * PI / 180.0;
   lon = lon * PI / 180.0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
leaq 0x7edd7(%rip), %rdi     # 0x10f104
callq 0x520bf
leaq 0x29590b(%rip), %rax    # 0x325c44
andl $0x0, (%rax)
callq 0x75767
movsd 0x62d27(%rip), %xmm1    # 0xf3070
testl %eax, %eax
je 0x9036b
leaq 0x2956ec(%rip), %rax    # 0x325a40
movsd 0x62d9c(%rip), %xmm0    # 0xf30f8
cmpb $0x53, (%rax)
je 0x90367
cmpb $0x53, 0x1(%rax)
jne 0x9036b
movapd %xmm0, %xmm1
movsd %xmm1, -0x30(%rbp)
callq 0x75767
testl %eax, %eax
je 0x90390
leaq 0x2956c0(%rip), %rdi    # 0x325a40
callq 0x9470
leaq 0x266c44(%rip), %rax    # 0x2f6fd0
movsd %xmm0, (%rax)
callq 0x75767
testl %eax, %eax
je 0x903bc
leaq 0x2956a0(%rip), %rdi    # 0x325a40
callq 0x9470
divsd 0x62c5b(%rip), %xmm0    # 0xf3008
leaq 0x266c1c(%rip), %rax    # 0x2f6fd0
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
callq 0x75767
leaq 0x266c08(%rip), %rbx    # 0x2f6fd0
movsd (%rbx), %xmm1
testl %eax, %eax
je 0x903f2
leaq 0x295669(%rip), %rdi    # 0x325a40
movsd %xmm1, -0x38(%rbp)
callq 0x9470
movsd -0x38(%rbp), %xmm1
divsd 0x62c22(%rip), %xmm0    # 0xf3010
addsd %xmm0, %xmm1
movsd -0x30(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rbx)
callq 0x75767
testl %eax, %eax
setne %r15b
leaq 0x29562f(%rip), %rax    # 0x325a40
cmpb $0x57, (%rax)
sete %r14b
callq 0x75767
testl %eax, %eax
je 0x90438
leaq 0x295618(%rip), %rdi    # 0x325a40
callq 0x9470
leaq 0x266ba4(%rip), %rax    # 0x2f6fd8
movsd %xmm0, (%rax)
callq 0x75767
testl %eax, %eax
je 0x90464
leaq 0x2955f8(%rip), %rdi    # 0x325a40
callq 0x9470
divsd 0x62bb3(%rip), %xmm0    # 0xf3008
leaq 0x266b7c(%rip), %rax    # 0x2f6fd8
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
andb %r14b, %r15b
callq 0x75767
leaq 0x266b65(%rip), %r14    # 0x2f6fd8
movsd (%r14), %xmm0
testl %eax, %eax
je 0x904a8
leaq 0x2955bd(%rip), %rdi    # 0x325a40
movapd %xmm0, -0x30(%rbp)
callq 0x9470
divsd 0x62b7b(%rip), %xmm0    # 0xf3010
movapd -0x30(%rbp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, -0x30(%rbp)
movapd -0x30(%rbp), %xmm0
testb %r15b, %r15b
je 0x904b5
xorpd 0x62cfb(%rip), %xmm0    # 0xf31b0
movsd %xmm0, (%r14)
callq 0x75767
testl %eax, %eax
je 0x904da
leaq 0x295576(%rip), %rdi    # 0x325a40
callq 0x9470
leaq 0x266b0a(%rip), %rax    # 0x2f6fe0
movsd %xmm0, (%rax)
leaq 0x197eaf(%rip), %rax    # 0x228390
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9050b
movsd (%rbx), %xmm0
movsd (%r14), %xmm1
leaq 0x266ae7(%rip), %rax    # 0x2f6fe0
movsd (%rax), %xmm2
leaq 0x7ec0a(%rip), %rsi     # 0x10f10e
movb $0x3, %al
callq 0x9560
movsd 0x6538d(%rip), %xmm0    # 0xf58a0
movsd (%rbx), %xmm1
mulsd %xmm0, %xmm1
movsd 0x65385(%rip), %xmm2    # 0xf58a8
divsd %xmm2, %xmm1
movsd %xmm1, (%rbx)
mulsd (%r14), %xmm0
divsd %xmm2, %xmm0
movsd %xmm0, (%r14)
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq