// File: /workspace/github_cpp_makefile_star2_O3/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 0x85f2b(%rip), %rdi     # 0x1251bc
callq 0x58dc2
leaq 0x29c9a7(%rip), %rax    # 0x33bc44
movl $0x0, (%rax)
callq 0x810b1
movsd 0x69dc0(%rip), %xmm1    # 0x109070
testl %eax, %eax
je 0x9f2d2
leaq 0x29c785(%rip), %rax    # 0x33ba40
movsd 0x69e35(%rip), %xmm0    # 0x1090f8
cmpb $0x53, (%rax)
je 0x9f2ce
cmpb $0x53, 0x1(%rax)
jne 0x9f2d2
movapd %xmm0, %xmm1
movsd %xmm1, -0x30(%rbp)
callq 0x810b1
testl %eax, %eax
je 0x9f2f7
leaq 0x29c759(%rip), %rdi    # 0x33ba40
callq 0x9470
leaq 0x26dcdd(%rip), %rax    # 0x30cfd0
movsd %xmm0, (%rax)
callq 0x810b1
testl %eax, %eax
je 0x9f323
leaq 0x29c739(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x69cf4(%rip), %xmm0    # 0x109008
leaq 0x26dcb5(%rip), %rax    # 0x30cfd0
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
callq 0x810b1
leaq 0x26dca1(%rip), %rbx    # 0x30cfd0
movsd (%rbx), %xmm1
testl %eax, %eax
je 0x9f359
leaq 0x29c702(%rip), %rdi    # 0x33ba40
movsd %xmm1, -0x38(%rbp)
callq 0x9470
movsd -0x38(%rbp), %xmm1
divsd 0x69cbb(%rip), %xmm0    # 0x109010
addsd %xmm0, %xmm1
movsd -0x30(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rbx)
callq 0x810b1
testl %eax, %eax
setne %r15b
leaq 0x29c6c8(%rip), %rax    # 0x33ba40
cmpb $0x57, (%rax)
sete %r14b
callq 0x810b1
testl %eax, %eax
je 0x9f39f
leaq 0x29c6b1(%rip), %rdi    # 0x33ba40
callq 0x9470
leaq 0x26dc3d(%rip), %rax    # 0x30cfd8
movsd %xmm0, (%rax)
callq 0x810b1
testl %eax, %eax
je 0x9f3cb
leaq 0x29c691(%rip), %rdi    # 0x33ba40
callq 0x9470
divsd 0x69c4c(%rip), %xmm0    # 0x109008
leaq 0x26dc15(%rip), %rax    # 0x30cfd8
addsd (%rax), %xmm0
movsd %xmm0, (%rax)
andb %r14b, %r15b
callq 0x810b1
leaq 0x26dbfe(%rip), %r14    # 0x30cfd8
movsd (%r14), %xmm0
testl %eax, %eax
je 0x9f40f
leaq 0x29c656(%rip), %rdi    # 0x33ba40
movapd %xmm0, -0x30(%rbp)
callq 0x9470
divsd 0x69c14(%rip), %xmm0    # 0x109010
movapd -0x30(%rbp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, -0x30(%rbp)
movapd -0x30(%rbp), %xmm0
testb %r15b, %r15b
je 0x9f41c
xorpd 0x69d94(%rip), %xmm0    # 0x1091b0
movsd %xmm0, (%r14)
callq 0x810b1
testl %eax, %eax
je 0x9f441
leaq 0x29c60f(%rip), %rdi    # 0x33ba40
callq 0x9470
leaq 0x26dba3(%rip), %rax    # 0x30cfe0
movsd %xmm0, (%rax)
leaq 0x19ef48(%rip), %rax    # 0x23e390
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9f472
movsd (%rbx), %xmm0
movsd (%r14), %xmm1
leaq 0x26db80(%rip), %rax    # 0x30cfe0
movsd (%rax), %xmm2
leaq 0x85d5b(%rip), %rsi     # 0x1251c6
movb $0x3, %al
callq 0x9560
movsd 0x6c3ae(%rip), %xmm0    # 0x10b828
movsd (%rbx), %xmm1
mulsd %xmm0, %xmm1
movsd 0x6c3a6(%rip), %xmm2    # 0x10b830
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