// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_rmc()
void send_rmc()
{
char valid;

   // send NMEA GPRMC sentence
   // !!!!!! we should handle GLONASS/GALILEO/BEIDOU

   valid = 'V';
   if     (rcvr_type == NO_RCVR)   valid = 'A';
   else if(rcvr_type == TIDE_RCVR) valid = 'A';
   else if(lat || lon)             valid = 'A';

//   gregorian(0, jd_utc);
   if     (echo_fmt & ECHO_MSECS) sprintf(out, "GPRMC,%010.3f,%c,%s,%s,%s,%s,%06d,,", nmea_time(),valid,nmea_lat(),nmea_lon(),nmea_speed(),nmea_heading(),nmea_date());
   else if(echo_fmt & ECHO_HSECS) sprintf(out, "GPRMC,%09.2f,%c,%s,%s,%s,%s,%06d,,", nmea_time(),valid,nmea_lat(),nmea_lon(),nmea_speed(),nmea_heading(),nmea_date());
   else                           sprintf(out, "GPRMC,%06d,%c,%s,%s,%s,%s,%06d,,", (int) nmea_time(),valid,nmea_lat(),nmea_lon(),nmea_speed(),nmea_heading(),nmea_date());
   echo_nmea_string(out);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movb $0x56, -0x1(%rbp)
leaq 0x1fb9aa(%rip), %rax    # 0x277ab0
cmpq $0x400, (%rax)          # imm = 0x400
jne 0x7c115
movb $0x41, -0x1(%rbp)
jmp 0x7c161
leaq 0x1fb994(%rip), %rax    # 0x277ab0
cmpq $0x800000, (%rax)       # imm = 0x800000
jne 0x7c12b
movb $0x41, -0x1(%rbp)
jmp 0x7c15f
leaq 0x2f007e(%rip), %rax    # 0x36c1b0
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7c159
jp 0x7c159
leaq 0x2f0070(%rip), %rax    # 0x36c1b8
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7c159
jp 0x7c159
jmp 0x7c15d
movb $0x41, -0x1(%rbp)
jmp 0x7c15f
jmp 0x7c161
movl 0x14d409(%rip), %eax    # 0x1c9570
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7c1e3
callq 0x7bc70
movsd %xmm0, -0x38(%rbp)
movsbl -0x1(%rbp), %eax
movl %eax, -0x2c(%rbp)
callq 0x7bd40
movq %rax, -0x28(%rbp)
callq 0x7be40
movq %rax, -0x20(%rbp)
callq 0x7bf80
movq %rax, -0x18(%rbp)
callq 0x7bfd0
movq %rax, -0x10(%rbp)
callq 0x7bd00
movsd -0x38(%rbp), %xmm0
movl -0x2c(%rbp), %edx
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %r8
movq -0x18(%rbp), %r9
movq -0x10(%rbp), %r10
leaq 0x31f238(%rip), %rdi    # 0x39b400
leaq 0x107390(%rip), %rsi    # 0x18355f
movq %r10, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x1, %al
callq 0x9060
jmp 0x7c2ed
movl 0x14d387(%rip), %eax    # 0x1c9570
andl $0x2, %eax
cmpl $0x0, %eax
je 0x7c265
callq 0x7bc70
movsd %xmm0, -0x68(%rbp)
movsbl -0x1(%rbp), %eax
movl %eax, -0x5c(%rbp)
callq 0x7bd40
movq %rax, -0x58(%rbp)
callq 0x7be40
movq %rax, -0x50(%rbp)
callq 0x7bf80
movq %rax, -0x48(%rbp)
callq 0x7bfd0
movq %rax, -0x40(%rbp)
callq 0x7bd00
movsd -0x68(%rbp), %xmm0
movl -0x5c(%rbp), %edx
movq -0x58(%rbp), %rcx
movq -0x50(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x40(%rbp), %r10
leaq 0x31f1b6(%rip), %rdi    # 0x39b400
leaq 0x107332(%rip), %rsi    # 0x183583
movq %r10, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x1, %al
callq 0x9060
jmp 0x7c2eb
callq 0x7bc70
cvttsd2si %xmm0, %eax
movl %eax, -0x90(%rbp)
movsbl -0x1(%rbp), %eax
movl %eax, -0x8c(%rbp)
callq 0x7bd40
movq %rax, -0x88(%rbp)
callq 0x7be40
movq %rax, -0x80(%rbp)
callq 0x7bf80
movq %rax, -0x78(%rbp)
callq 0x7bfd0
movq %rax, -0x70(%rbp)
callq 0x7bd00
movl -0x90(%rbp), %edx
movl -0x8c(%rbp), %ecx
movq -0x88(%rbp), %r8
movq -0x80(%rbp), %r9
movq -0x78(%rbp), %r11
movq -0x70(%rbp), %r10
leaq 0x31f130(%rip), %rdi    # 0x39b400
leaq 0x1072cf(%rip), %rsi    # 0x1835a6
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movl %eax, 0x10(%rsp)
movb $0x0, %al
callq 0x9060
jmp 0x7c2ed
leaq 0x31f10c(%rip), %rdi    # 0x39b400
callq 0x7bad0
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)