LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_rtop()
void rpn_rtop()
{
double x, y;

   // rectangular to polar

   last_x = rpn[0];
   x = rpn[0];
   y = rpn[1];
   rpn[0] = sqrt(x*x + y*y);
   rpn[1] = atan2(y,x) * deg_mode;
   last_rpn0 = rpn[0];
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd 0x372880(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, 0x372c30(%rip)   # 0x3a1f08
movsd 0x372870(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
movsd 0x37286b(%rip), %xmm0   # 0x3a1b58
movsd %xmm0, -0x10(%rbp)
movsd -0x8(%rbp), %xmm0
movsd -0x8(%rbp), %xmm2
movsd -0x10(%rbp), %xmm1
mulsd -0x10(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x9280
movsd %xmm0, 0x372835(%rip)   # 0x3a1b50
movsd -0x10(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
callq 0x9050
mulsd 0x199d16(%rip), %xmm0   # 0x1c9048
movsd %xmm0, 0x37281e(%rip)   # 0x3a1b58
movsd 0x37280e(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, 0x372bce(%rip)   # 0x3a1f18
movl $0x0, 0x372bbc(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_ptor()
void rpn_ptor()
{
double r, theta;

   // polar to rectangular

   last_x = rpn[0];
   r = rpn[0];
   theta = rpn[1];
   rpn[0] = r * cos(theta/deg_mode);
   rpn[1] = r * sin(theta/deg_mode);
   last_rpn0 = rpn[0];
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd 0x3727e0(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, 0x372b90(%rip)   # 0x3a1f08
movsd 0x3727d0(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
movsd 0x3727cb(%rip), %xmm0   # 0x3a1b58
movsd %xmm0, -0x10(%rbp)
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x10(%rbp), %xmm0
divsd 0x199c9f(%rip), %xmm0   # 0x1c9048
callq 0x96f0
movaps %xmm0, %xmm1
movsd -0x20(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x37278e(%rip)   # 0x3a1b50
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x10(%rbp), %xmm0
divsd 0x199c6f(%rip), %xmm0   # 0x1c9048
callq 0x9080
movaps %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x372766(%rip)   # 0x3a1b58
movsd 0x372756(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, 0x372b16(%rip)   # 0x3a1f18
movl $0x0, 0x372b04(%rip)    # 0x3a1f10
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_rn()
void rpn_rn()
{
double temp, ohms;
double val;

   // resistor noise (in nV/sqrt(Hz))
   ohms = rpn_top();
   temp = rpn[0] - ABS_ZERO;

   val = sqrt(4.0 * KB * temp * ohms);
   rpn_set(val*1.0E9);

   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
callq 0x2ea80
movsd %xmm0, -0x10(%rbp)
movsd 0x372716(%rip), %xmm0   # 0x3a1b50
movsd 0x14217e(%rip), %xmm1   # 0x1715c0
subsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd 0x142165(%rip), %xmm0   # 0x1715b8
mulsd -0x8(%rbp), %xmm0
mulsd -0x10(%rbp), %xmm0
callq 0x9280
movsd %xmm0, -0x18(%rbp)
movsd 0x13fbb9(%rip), %xmm0   # 0x16f028
mulsd -0x18(%rbp), %xmm0
callq 0x2ee20
movl $0x0, 0x372a8d(%rip)    # 0x3a1f10
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_az(int)
void rpn_az(int i)
{
double val;

   // push sat azimuth

   if(i == 0) {
      i = highest_sat();
      if(isdigit(msg_field[2])) {
         i = atoi(&msg_field[2]);
      }
   }
   if(i < 0) i = 0 - i;

   sprintf(out, "PRN out of range 0..%d", SUN_MOON_PRN);
   if(i > SUN_MOON_PRN) rpn_error(out);
   else if(NO_SATS || (sat[i].level_msg == 0)) {
      rpn_error("Satellite info not available");
   }
   else {
      val = sat[i].azimuth;
      if(deg_mode == 1.0) val = val * PI / 180.0;
      rpn_push(val);
   }
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x2f4d3
callq 0xec370
movl %eax, -0x4(%rbp)
leaq 0x36b770(%rip), %rax    # 0x39ac20
movsbl 0x2(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x2f4d1
leaq 0x36b75b(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x2f4d3
cmpl $0x0, -0x4(%rbp)
jge 0x2f4e1
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x36bf18(%rip), %rdi    # 0x39b400
leaq 0x142949(%rip), %rsi    # 0x171e38
movl $0x3e9, %edx            # imm = 0x3E9
movb $0x0, %al
callq 0x9060
cmpl $0x3e9, -0x4(%rbp)      # imm = 0x3E9
jle 0x2f515
leaq 0x36bef5(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x2f5f4
leaq 0x248594(%rip), %rcx    # 0x277ab0
movabsq $0x105b8b0400, %rax     # imm = 0x105B8B0400
andq (%rcx), %rax
cmpq $0x0, %rax
jne 0x2f57e
leaq 0x24ac7a(%rip), %rax    # 0x27a1b0
cmpl $0x0, (%rax)
je 0x2f547
leaq 0x33d062(%rip), %rax    # 0x36c5a4
cmpl $0x0, (%rax)
je 0x2f57e
leaq 0x248562(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x2f563
leaq 0x33d636(%rip), %rax    # 0x36cb94
cmpl $0x0, (%rax)
je 0x2f57e
movslq -0x4(%rbp), %rcx
leaq 0x26ec22(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
jne 0x2f58c
leaq 0x1428ca(%rip), %rdi    # 0x171e4f
callq 0x2e640
jmp 0x2f5f2
movslq -0x4(%rbp), %rcx
leaq 0x26ebf9(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss 0x208(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd 0x199a8e(%rip), %xmm0   # 0x1c9048
movsd 0x13faa6(%rip), %xmm1   # 0x16f068
ucomisd %xmm1, %xmm0
jne 0x2f5e8
jp 0x2f5e8
movsd 0x141ff6(%rip), %xmm0   # 0x1715c8
mulsd -0x10(%rbp), %xmm0
movsd 0x13fa99(%rip), %xmm1   # 0x16f078
divsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x2eba0
jmp 0x2f5f4
movl $0x0, 0x372912(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_el(int)
void rpn_el(int i)
{
double val;

   // push sat elevation

   if(i == 0) {
      i = highest_sat();
      if(isdigit(msg_field[2])) {
         i = atoi(&msg_field[2]);
      }
   }
   if(i < 0) i = 0 - i;

   sprintf(out, "PRN out of range 0..%d", SUN_MOON_PRN);
   if(i > SUN_MOON_PRN) rpn_error(out);
   else if(NO_SATS || (sat[i].level_msg == 0)) {
      rpn_error("Satellite info not available");
   }
   else {
      val = sat[i].elevation;
      if(deg_mode == 1.0) val = val * PI / 180.0;
      rpn_push(val);
   }
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x2f653
callq 0xec370
movl %eax, -0x4(%rbp)
leaq 0x36b5f0(%rip), %rax    # 0x39ac20
movsbl 0x2(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x2f651
leaq 0x36b5db(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x2f653
cmpl $0x0, -0x4(%rbp)
jge 0x2f661
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x36bd98(%rip), %rdi    # 0x39b400
leaq 0x1427c9(%rip), %rsi    # 0x171e38
movl $0x3e9, %edx            # imm = 0x3E9
movb $0x0, %al
callq 0x9060
cmpl $0x3e9, -0x4(%rbp)      # imm = 0x3E9
jle 0x2f695
leaq 0x36bd75(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x2f774
leaq 0x248414(%rip), %rcx    # 0x277ab0
movabsq $0x105b8b0400, %rax     # imm = 0x105B8B0400
andq (%rcx), %rax
cmpq $0x0, %rax
jne 0x2f6fe
leaq 0x24aafa(%rip), %rax    # 0x27a1b0
cmpl $0x0, (%rax)
je 0x2f6c7
leaq 0x33cee2(%rip), %rax    # 0x36c5a4
cmpl $0x0, (%rax)
je 0x2f6fe
leaq 0x2483e2(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x2f6e3
leaq 0x33d4b6(%rip), %rax    # 0x36cb94
cmpl $0x0, (%rax)
je 0x2f6fe
movslq -0x4(%rbp), %rcx
leaq 0x26eaa2(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
jne 0x2f70c
leaq 0x14274a(%rip), %rdi    # 0x171e4f
callq 0x2e640
jmp 0x2f772
movslq -0x4(%rbp), %rcx
leaq 0x26ea79(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss 0x20c(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd 0x19990e(%rip), %xmm0   # 0x1c9048
movsd 0x13f926(%rip), %xmm1   # 0x16f068
ucomisd %xmm1, %xmm0
jne 0x2f768
jp 0x2f768
movsd 0x141e76(%rip), %xmm0   # 0x1715c8
mulsd -0x10(%rbp), %xmm0
movsd 0x13f919(%rip), %xmm1   # 0x16f078
divsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x2eba0
jmp 0x2f774
movl $0x0, 0x372792(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_sig(int)
void rpn_sig(int i)
{
   // push sat sig level

   if(i == 0) {
      i = highest_sat();
      if(isdigit(msg_field[3])) {
         i = atoi(&msg_field[3]);
      }
   }
   if(i < 0) i = 0 - i;

   sprintf(out, "PRN out of range 0..%d", SUN_MOON_PRN);
   if(i > SUN_MOON_PRN) rpn_error(out);
   else if(NO_SATS || (sat[i].level_msg == 0)) {
      rpn_error("Satellite info not available");
   }
   else rpn_push(sat[i].sig_level);
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x2f7d3
callq 0xec370
movl %eax, -0x4(%rbp)
leaq 0x36b470(%rip), %rax    # 0x39ac20
movsbl 0x3(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x2f7d1
leaq 0x36b45b(%rip), %rdi    # 0x39ac20
addq $0x3, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x2f7d3
cmpl $0x0, -0x4(%rbp)
jge 0x2f7e1
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x36bc18(%rip), %rdi    # 0x39b400
leaq 0x142649(%rip), %rsi    # 0x171e38
movl $0x3e9, %edx            # imm = 0x3E9
movb $0x0, %al
callq 0x9060
cmpl $0x3e9, -0x4(%rbp)      # imm = 0x3E9
jle 0x2f815
leaq 0x36bbf5(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x2f8b1
leaq 0x248294(%rip), %rcx    # 0x277ab0
movabsq $0x105b8b0400, %rax     # imm = 0x105B8B0400
andq (%rcx), %rax
cmpq $0x0, %rax
jne 0x2f87e
leaq 0x24a97a(%rip), %rax    # 0x27a1b0
cmpl $0x0, (%rax)
je 0x2f847
leaq 0x33cd62(%rip), %rax    # 0x36c5a4
cmpl $0x0, (%rax)
je 0x2f87e
leaq 0x248262(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x2f863
leaq 0x33d336(%rip), %rax    # 0x36cb94
cmpl $0x0, (%rax)
je 0x2f87e
movslq -0x4(%rbp), %rcx
leaq 0x26e922(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
jne 0x2f88c
leaq 0x1425ca(%rip), %rdi    # 0x171e4f
callq 0x2e640
jmp 0x2f8af
movslq -0x4(%rbp), %rcx
leaq 0x26e8f9(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x2eba0
jmp 0x2f8b1
movl $0x0, 0x372655(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_doppler(int)
void rpn_doppler(int i)
{
   // push sat doppler

   if(i == 0) {
      i = highest_sat();
      if(isdigit(msg_field[7])) {
         i = atoi(&msg_field[7]);
      }
   }
   if(i < 0) i = 0 - i;

   sprintf(out, "PRN out of range 0..%d", SUN_MOON_PRN);
   if(i > SUN_MOON_PRN) rpn_error(out);
   else if(NO_SATS || (sat[i].level_msg == 0)) {
      rpn_error("Satellite info not available");
   }
   else rpn_push(sat[i].doppler);
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x2f913
callq 0xec370
movl %eax, -0x4(%rbp)
leaq 0x36b330(%rip), %rax    # 0x39ac20
movsbl 0x7(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x2f911
leaq 0x36b31b(%rip), %rdi    # 0x39ac20
addq $0x7, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x2f913
cmpl $0x0, -0x4(%rbp)
jge 0x2f921
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x36bad8(%rip), %rdi    # 0x39b400
leaq 0x142509(%rip), %rsi    # 0x171e38
movl $0x3e9, %edx            # imm = 0x3E9
movb $0x0, %al
callq 0x9060
cmpl $0x3e9, -0x4(%rbp)      # imm = 0x3E9
jle 0x2f955
leaq 0x36bab5(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x2f9ed
leaq 0x248154(%rip), %rcx    # 0x277ab0
movabsq $0x105b8b0400, %rax     # imm = 0x105B8B0400
andq (%rcx), %rax
cmpq $0x0, %rax
jne 0x2f9be
leaq 0x24a83a(%rip), %rax    # 0x27a1b0
cmpl $0x0, (%rax)
je 0x2f987
leaq 0x33cc22(%rip), %rax    # 0x36c5a4
cmpl $0x0, (%rax)
je 0x2f9be
leaq 0x248122(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x2f9a3
leaq 0x33d1f6(%rip), %rax    # 0x36cb94
cmpl $0x0, (%rax)
je 0x2f9be
movslq -0x4(%rbp), %rcx
leaq 0x26e7e2(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
jne 0x2f9cc
leaq 0x14248a(%rip), %rdi    # 0x171e4f
callq 0x2e640
jmp 0x2f9eb
movslq -0x4(%rbp), %rcx
leaq 0x26e7b9(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x30(%rax), %xmm0
callq 0x2eba0
jmp 0x2f9ed
movl $0x0, 0x372519(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_range(int)
void rpn_range(int i)
{
   // push sat pseudorange

   if(i == 0) {
      i = highest_sat();
      if(isdigit(msg_field[5])) {
         i = atoi(&msg_field[5]);
      }
   }
   if(i < 0) i = 0 - i;

   sprintf(out, "PRN out of range 0..%d", SUN_MOON_PRN);
   if(i > SUN_MOON_PRN) rpn_error(out);
   else if(NO_SATS || (sat[i].level_msg == 0)) {
      rpn_error("Satellite info not available");
   }
   else rpn_push(sat[i].range);
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x2fa43
callq 0xec370
movl %eax, -0x4(%rbp)
leaq 0x36b200(%rip), %rax    # 0x39ac20
movsbl 0x5(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x2fa41
leaq 0x36b1eb(%rip), %rdi    # 0x39ac20
addq $0x5, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x2fa43
cmpl $0x0, -0x4(%rbp)
jge 0x2fa51
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x36b9a8(%rip), %rdi    # 0x39b400
leaq 0x1423d9(%rip), %rsi    # 0x171e38
movl $0x3e9, %edx            # imm = 0x3E9
movb $0x0, %al
callq 0x9060
cmpl $0x3e9, -0x4(%rbp)      # imm = 0x3E9
jle 0x2fa85
leaq 0x36b985(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x2fb1d
leaq 0x248024(%rip), %rcx    # 0x277ab0
movabsq $0x105b8b0400, %rax     # imm = 0x105B8B0400
andq (%rcx), %rax
cmpq $0x0, %rax
jne 0x2faee
leaq 0x24a70a(%rip), %rax    # 0x27a1b0
cmpl $0x0, (%rax)
je 0x2fab7
leaq 0x33caf2(%rip), %rax    # 0x36c5a4
cmpl $0x0, (%rax)
je 0x2faee
leaq 0x247ff2(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x2fad3
leaq 0x33d0c6(%rip), %rax    # 0x36cb94
cmpl $0x0, (%rax)
je 0x2faee
movslq -0x4(%rbp), %rcx
leaq 0x26e6b2(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
jne 0x2fafc
leaq 0x14235a(%rip), %rdi    # 0x171e4f
callq 0x2e640
jmp 0x2fb1b
movslq -0x4(%rbp), %rcx
leaq 0x26e689(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x38(%rax), %xmm0
callq 0x2eba0
jmp 0x2fb1d
movl $0x0, 0x3723e9(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_phase(int)
void rpn_phase(int i)
{
   // push sat code or carrier phase

   if(i == 0) {
      i = highest_sat();
      if(isdigit(msg_field[5])) {
         i = atoi(&msg_field[5]);
      }
   }
   if(i < 0) i = 0 - i;

   sprintf(out, "PRN out of range 1..%d", SUN_MOON_PRN);
   if(i > SUN_MOON_PRN) rpn_error(out);
   else if(i <= 0) rpn_error(out);
   else if(NO_SATS || (sat[i].level_msg == 0)) {
      rpn_error("Satellite info not available");
   }
   else rpn_push(sat[i].code_phase);
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x2fb73
callq 0xec370
movl %eax, -0x4(%rbp)
leaq 0x36b0d0(%rip), %rax    # 0x39ac20
movsbl 0x5(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x2fb71
leaq 0x36b0bb(%rip), %rdi    # 0x39ac20
addq $0x5, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x2fb73
cmpl $0x0, -0x4(%rbp)
jge 0x2fb81
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x36b878(%rip), %rdi    # 0x39b400
leaq 0x1422dd(%rip), %rsi    # 0x171e6c
movl $0x3e9, %edx            # imm = 0x3E9
movb $0x0, %al
callq 0x9060
cmpl $0x3e9, -0x4(%rbp)      # imm = 0x3E9
jle 0x2fbb5
leaq 0x36b855(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x2fc66
cmpl $0x0, -0x4(%rbp)
jg 0x2fbcc
leaq 0x36b83e(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x2fc64
leaq 0x247edd(%rip), %rcx    # 0x277ab0
movabsq $0x105b8b0400, %rax     # imm = 0x105B8B0400
andq (%rcx), %rax
cmpq $0x0, %rax
jne 0x2fc35
leaq 0x24a5c3(%rip), %rax    # 0x27a1b0
cmpl $0x0, (%rax)
je 0x2fbfe
leaq 0x33c9ab(%rip), %rax    # 0x36c5a4
cmpl $0x0, (%rax)
je 0x2fc35
leaq 0x247eab(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x2fc1a
leaq 0x33cf7f(%rip), %rax    # 0x36cb94
cmpl $0x0, (%rax)
je 0x2fc35
movslq -0x4(%rbp), %rcx
leaq 0x26e56b(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
jne 0x2fc43
leaq 0x142213(%rip), %rdi    # 0x171e4f
callq 0x2e640
jmp 0x2fc62
movslq -0x4(%rbp), %rcx
leaq 0x26e542(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
movsd 0x28(%rax), %xmm0
callq 0x2eba0
jmp 0x2fc64
jmp 0x2fc66
movl $0x0, 0x3722a0(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_prn(int)
void rpn_prn(int i)
{
   // push all info for a sat prn onto the stack

   if(i == 0) {
      i = highest_sat();
      if(isdigit(msg_field[3])) {
         i = atoi(&msg_field[3]);
      }
   }
   if(i < 0) i = 0 - i;

   sprintf(out, "PRN out of range 0..%d", SUN_MOON_PRN);
   if((i == 0) || (i > SUN_MOON_PRN)) rpn_error(out);
   else if(NO_SATS || (sat[i].level_msg == 0)) {
      rpn_error("Satellite info not available");
   }
   else {
      rpn_phase(i);
      rpn_range(i);
      rpn_doppler(i);
      rpn_sig(i);
      rpn_el(i);
      rpn_az(i);
   }
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x2fcc3
callq 0xec370
movl %eax, -0x4(%rbp)
leaq 0x36af80(%rip), %rax    # 0x39ac20
movsbl 0x3(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x2fcc1
leaq 0x36af6b(%rip), %rdi    # 0x39ac20
addq $0x3, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x2fcc3
cmpl $0x0, -0x4(%rbp)
jge 0x2fcd1
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x36b728(%rip), %rdi    # 0x39b400
leaq 0x142159(%rip), %rsi    # 0x171e38
movl $0x3e9, %edx            # imm = 0x3E9
movb $0x0, %al
callq 0x9060
cmpl $0x0, -0x4(%rbp)
je 0x2fcfa
cmpl $0x3e9, -0x4(%rbp)      # imm = 0x3E9
jle 0x2fd0b
leaq 0x36b6ff(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x2fdb4
leaq 0x247d9e(%rip), %rcx    # 0x277ab0
movabsq $0x105b8b0400, %rax     # imm = 0x105B8B0400
andq (%rcx), %rax
cmpq $0x0, %rax
jne 0x2fd74
leaq 0x24a484(%rip), %rax    # 0x27a1b0
cmpl $0x0, (%rax)
je 0x2fd3d
leaq 0x33c86c(%rip), %rax    # 0x36c5a4
cmpl $0x0, (%rax)
je 0x2fd74
leaq 0x247d6c(%rip), %rax    # 0x277ab0
cmpq $0x400000, (%rax)       # imm = 0x400000
jne 0x2fd59
leaq 0x33ce40(%rip), %rax    # 0x36cb94
cmpl $0x0, (%rax)
je 0x2fd74
movslq -0x4(%rbp), %rcx
leaq 0x26e42c(%rip), %rax    # 0x29e190
imulq $0x348, %rcx, %rcx      # imm = 0x348
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
jne 0x2fd82
leaq 0x1420d4(%rip), %rdi    # 0x171e4f
callq 0x2e640
jmp 0x2fdb2
movl -0x4(%rbp), %edi
callq 0x2fb30
movl -0x4(%rbp), %edi
callq 0x2fa00
movl -0x4(%rbp), %edi
callq 0x2f8d0
movl -0x4(%rbp), %edi
callq 0x2f790
movl -0x4(%rbp), %edi
callq 0x2f610
movl -0x4(%rbp), %edi
callq 0x2f490
jmp 0x2fdb4
movl $0x0, 0x372152(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_dist()
void rpn_dist()
{
double last;
double x0,y0;
double x1,y1;
double val;

   // linear distance between two points

   last = rpn[0];
   x0 = rpn_top();
   y0 = rpn_top();
   x1 = rpn_top();
   y1 = rpn_top();

   x0 -= x1;
   y0 -= y1;
   val = sqrt(x0*x0 + y0*y0);
   rpn_new(val);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movsd 0x371d70(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
callq 0x2ea80
movsd %xmm0, -0x10(%rbp)
callq 0x2ea80
movsd %xmm0, -0x18(%rbp)
callq 0x2ea80
movsd %xmm0, -0x20(%rbp)
callq 0x2ea80
movsd %xmm0, -0x28(%rbp)
movsd -0x20(%rbp), %xmm1
movsd -0x10(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x28(%rbp), %xmm1
movsd -0x18(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x10(%rbp), %xmm0
movsd -0x10(%rbp), %xmm2
movsd -0x18(%rbp), %xmm1
mulsd -0x18(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x9280
movsd %xmm0, -0x30(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x2ede0
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x372098(%rip)   # 0x3a1f08
movl $0x0, 0x372096(%rip)    # 0x3a1f10
addq $0x30, %rsp
popq %rbp
retq
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_gcd()
void rpn_gcd()
{
double last;
double x0,y0;
double x1,y1;
double val;
double az;

   // great circle distance between two locations (lat,lon = R,Z and Y,X)
   // also calculate azimuth angle

   last = rpn[0];

   x0 = rpn_top() / deg_mode;
   y0 = rpn_top() / deg_mode;
   x1 = rpn_top() / deg_mode;
   y1 = rpn_top() / deg_mode;

   val = greatcircle(y0,x0, y1,x1) * 1000.0;

   az = az_angle(y1,x1, y0,x0);
   if(deg_mode == 1.0) az = az * PI / 180.0;
   rpn_push(az);
   rpn_push(val);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movsd 0x371cc0(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
callq 0x2ea80
divsd 0x1991a6(%rip), %xmm0   # 0x1c9048
movsd %xmm0, -0x10(%rbp)
callq 0x2ea80
divsd 0x199194(%rip), %xmm0   # 0x1c9048
movsd %xmm0, -0x18(%rbp)
callq 0x2ea80
divsd 0x199182(%rip), %xmm0   # 0x1c9048
movsd %xmm0, -0x20(%rbp)
callq 0x2ea80
divsd 0x199170(%rip), %xmm0   # 0x1c9048
movsd %xmm0, -0x28(%rbp)
movsd -0x18(%rbp), %xmm0
movsd -0x10(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movsd -0x20(%rbp), %xmm3
callq 0x13f830
movsd 0x13f132(%rip), %xmm1   # 0x16f030
mulsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x28(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x18(%rbp), %xmm2
movsd -0x10(%rbp), %xmm3
callq 0x13f980
movsd %xmm0, -0x38(%rbp)
movsd 0x19911b(%rip), %xmm0   # 0x1c9048
movsd 0x13f133(%rip), %xmm1   # 0x16f068
ucomisd %xmm1, %xmm0
jne 0x2ff5b
jp 0x2ff5b
movsd 0x141683(%rip), %xmm0   # 0x1715c8
mulsd -0x38(%rbp), %xmm0
movsd 0x13f126(%rip), %xmm1   # 0x16f078
divsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
callq 0x2eba0
movsd -0x30(%rbp), %xmm0
callq 0x2eba0
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x371f8c(%rip)   # 0x3a1f08
movl $0x0, 0x371f8a(%rip)    # 0x3a1f10
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_bearing()
void rpn_bearing()
{
double last;
double x0,y0;
double x1,y1;
double az;

   // calculate azimuth angle between two points

   last = rpn[0];

   x0 = rpn_top() / deg_mode;
   y0 = rpn_top() / deg_mode;
   x1 = rpn_top() / deg_mode;
   y1 = rpn_top() / deg_mode;

   az = az_angle(y1,x1, y0,x0);
   if(deg_mode == 1.0) az = az * PI / 180.0;
   rpn_push(az);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movsd 0x371bb0(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
callq 0x2ea80
divsd 0x199096(%rip), %xmm0   # 0x1c9048
movsd %xmm0, -0x10(%rbp)
callq 0x2ea80
divsd 0x199084(%rip), %xmm0   # 0x1c9048
movsd %xmm0, -0x18(%rbp)
callq 0x2ea80
divsd 0x199072(%rip), %xmm0   # 0x1c9048
movsd %xmm0, -0x20(%rbp)
callq 0x2ea80
divsd 0x199060(%rip), %xmm0   # 0x1c9048
movsd %xmm0, -0x28(%rbp)
movsd -0x28(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x18(%rbp), %xmm2
movsd -0x10(%rbp), %xmm3
callq 0x13f980
movsd %xmm0, -0x30(%rbp)
movsd 0x199035(%rip), %xmm0   # 0x1c9048
movsd 0x13f04d(%rip), %xmm1   # 0x16f068
ucomisd %xmm1, %xmm0
jne 0x30041
jp 0x30041
movsd 0x14159d(%rip), %xmm0   # 0x1715c8
mulsd -0x30(%rbp), %xmm0
movsd 0x13f040(%rip), %xmm1   # 0x16f078
divsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x2eba0
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x371eb0(%rip)   # 0x3a1f08
movl $0x0, 0x371eae(%rip)    # 0x3a1f10
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_secs()
void rpn_secs()
{
double val;
double last;

   // convert hours minutes sseconds in top 3 stack entries to seconds

   last = rpn[0];

   val = rpn_top();
   val += rpn_top() * 60.0;
   val += rpn_top() * 3600.0;
   rpn_push(val);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd 0x371ad0(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x10(%rbp)
callq 0x2ea80
movsd %xmm0, -0x8(%rbp)
callq 0x2ea80
movsd -0x8(%rbp), %xmm1
movsd 0x13ef77(%rip), %xmm2   # 0x16f018
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
callq 0x2ea80
movsd -0x8(%rbp), %xmm1
movsd 0x13ef50(%rip), %xmm2   # 0x16f010
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x2eba0
movsd -0x10(%rbp), %xmm0
movsd %xmm0, 0x371e24(%rip)   # 0x3a1f08
movl $0x0, 0x371e22(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_dow()
void rpn_dow()
{
double val;
double last;
int year,month,day;

   // convert year month day in top 3 stack entries to day-of-week (0..6)

   last = rpn[0];

   day = (int) rpn_top();
   month = (int) rpn_top();
   year = (int) rpn_top();

   val = day_of_week(year,month,day);
   rpn_push(val);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd 0x371a40(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x10(%rbp)
callq 0x2ea80
cvttsd2si %xmm0, %eax
movl %eax, -0x1c(%rbp)
callq 0x2ea80
cvttsd2si %xmm0, %eax
movl %eax, -0x18(%rbp)
callq 0x2ea80
cvttsd2si %xmm0, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %esi
movl -0x1c(%rbp), %edx
callq 0x132a50
movzbl %al, %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x2eba0
movsd -0x10(%rbp), %xmm0
movsd %xmm0, 0x371d9e(%rip)   # 0x3a1f08
movl $0x0, 0x371d9c(%rip)    # 0x3a1f10
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_dms()
void rpn_dms()
{
double last;
double val;
double degs, mins, secs;
double sign;

   // break up X into degrees minutes seconds

   last = rpn[0];

   val = rpn_top();
   if(deg_mode == 1.0) {
      val = val * 180.0 / PI;
   }
   if(val < 0) {
      sign = (-1.0);
      val = 0.0 - val;
   }
   else sign = 1.0;

   degs = (double) (int) val;

   val = (val - degs) * 60.0;
   mins = (double) (int) val;

   val = (val - mins) * 60.0;
   secs = val;

   rpn_push(degs*sign);
   rpn_push(mins);
   rpn_push(secs);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movsd 0x3719c0(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
callq 0x2ea80
movsd %xmm0, -0x10(%rbp)
movsd 0x198ea1(%rip), %xmm0   # 0x1c9048
movsd 0x13eeb9(%rip), %xmm1   # 0x16f068
ucomisd %xmm1, %xmm0
jne 0x301d5
jp 0x301d5
movsd 0x13eeb9(%rip), %xmm0   # 0x16f078
mulsd -0x10(%rbp), %xmm0
movsd 0x1413fc(%rip), %xmm1   # 0x1715c8
divsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x10(%rbp), %xmm0
jbe 0x301fb
movsd 0x13ef31(%rip), %xmm0   # 0x16f118
movsd %xmm0, -0x30(%rbp)
xorps %xmm0, %xmm0
subsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x30208
movsd 0x13ee65(%rip), %xmm0   # 0x16f068
movsd %xmm0, -0x30(%rbp)
cvttsd2si -0x10(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x10(%rbp), %xmm0
subsd -0x18(%rbp), %xmm0
movsd 0x13edf0(%rip), %xmm1   # 0x16f018
mulsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
cvttsd2si -0x10(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x10(%rbp), %xmm0
subsd -0x20(%rbp), %xmm0
movsd 0x13edc7(%rip), %xmm1   # 0x16f018
mulsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x18(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
callq 0x2eba0
movsd -0x20(%rbp), %xmm0
callq 0x2eba0
movsd -0x28(%rbp), %xmm0
callq 0x2eba0
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x371c74(%rip)   # 0x3a1f08
movl $0x0, 0x371c72(%rip)    # 0x3a1f10
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_time()
void rpn_time()
{
double last;

   // put current displayed time on stack

   last = rpn[0];

   rpn_push((double) pri_hours);
   rpn_push((double) pri_minutes);
   rpn_push((double) pri_seconds + pri_frac);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd 0x371890(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
leaq 0x33c41c(%rip), %rax    # 0x36c6e8
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c408(%rip), %rax    # 0x36c6e4
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c3f4(%rip), %rax    # 0x36c6e0
cvtsi2sdl (%rax), %xmm0
leaq 0x33c401(%rip), %rax    # 0x36c6f8
addsd (%rax), %xmm0
callq 0x2eba0
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x371bfb(%rip)   # 0x3a1f08
movl $0x0, 0x371bf9(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_date()
void rpn_date()
{
double last;

   // put current displayed date on stack

   last = rpn[0];

   rpn_push((double) pri_year);
   rpn_push((double) pri_month);
   rpn_push((double) pri_day);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd 0x371820(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
leaq 0x33c3b8(%rip), %rax    # 0x36c6f4
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c3a4(%rip), %rax    # 0x36c6f0
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c390(%rip), %rax    # 0x36c6ec
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x371b96(%rip)   # 0x3a1f08
movl $0x0, 0x371b94(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_gregorian()
void rpn_gregorian()
{
double last;

   // convert rpn[0] julian date to gregorian date / time

   last = rpn[0];
   gregorian(0, rpn[0]);

   rpn_push((double) g_year);
   rpn_push((double) g_month);
   rpn_push((double) g_day);

   rpn_push((double) g_hours);
   rpn_push((double) g_minutes);
   rpn_push((double) g_seconds + g_frac);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd 0x3717b0(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
movsd 0x3717a3(%rip), %xmm0   # 0x3a1b50
xorl %edi, %edi
callq 0x11dd00
leaq 0x33c4c9(%rip), %rax    # 0x36c884
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c4b1(%rip), %rax    # 0x36c87c
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c4a5(%rip), %rax    # 0x36c880
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c49d(%rip), %rax    # 0x36c888
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c491(%rip), %rax    # 0x36c88c
cvtsi2sdl (%rax), %xmm0
callq 0x2eba0
leaq 0x33c485(%rip), %rax    # 0x36c890
cvtsi2sdl (%rax), %xmm0
leaq 0x33c482(%rip), %rax    # 0x36c898
addsd (%rax), %xmm0
callq 0x2eba0
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x371adc(%rip)   # 0x3a1f08
movl $0x0, 0x371ada(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_dec()
void rpn_dec()
{
double last;
double val;
double degs, mins, secs;
double sign;

   // convert X,Y,Z degrees minutes seconds to decimal

   last = rpn[0];

   secs = rpn_top();
   mins = rpn_top();
   degs = rpn_top();
   if(degs < 0.0) {
      sign = (-1.0);
      degs = 0.0 - degs;
   }
   else sign = 1.0;

   secs = fabs(secs) * sign;
   mins = fabs(mins) * sign;
   degs *= sign;

   val = degs + (mins/60.0) + (secs/3600.0);

   if(deg_mode == 1.0) {
      val = val * PI / 180.0;
   }

   rpn_push(val);

   last_x = last;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movsd 0x371700(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, -0x8(%rbp)
callq 0x2ea80
movsd %xmm0, -0x28(%rbp)
callq 0x2ea80
movsd %xmm0, -0x20(%rbp)
callq 0x2ea80
movsd %xmm0, -0x18(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x18(%rbp), %xmm0
jbe 0x30499
movsd 0x13ec93(%rip), %xmm0   # 0x16f118
movsd %xmm0, -0x30(%rbp)
xorps %xmm0, %xmm0
subsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0x304a6
movsd 0x13ebc7(%rip), %xmm0   # 0x16f068
movsd %xmm0, -0x30(%rbp)
movsd -0x28(%rbp), %xmm0
movaps 0x13edde(%rip), %xmm1   # 0x16f290
pand %xmm1, %xmm0
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x20(%rbp), %xmm0
movaps 0x13edc4(%rip), %xmm1   # 0x16f290
pand %xmm1, %xmm0
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x30(%rbp), %xmm0
mulsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd 0x13eb1d(%rip), %xmm2   # 0x16f018
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd -0x28(%rbp), %xmm1
movsd 0x13eb00(%rip), %xmm2   # 0x16f010
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd 0x198b23(%rip), %xmm0   # 0x1c9048
movsd 0x13eb3b(%rip), %xmm1   # 0x16f068
ucomisd %xmm1, %xmm0
jne 0x30553
jp 0x30553
movsd 0x14108b(%rip), %xmm0   # 0x1715c8
mulsd -0x10(%rbp), %xmm0
movsd 0x13eb2e(%rip), %xmm1   # 0x16f078
divsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x2eba0
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0x37199e(%rip)   # 0x3a1f08
movl $0x0, 0x37199c(%rip)    # 0x3a1f10
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_shr()
void rpn_shr()
{
int count;
s32 val;

   // shift right

   if(isdigit(msg_field[2])) count = atoi(&msg_field[2]);
   else if(msg_field[2] == '-') count = atoi(&msg_field[2]);
   else count = 1;

   val = (int) rpn[0];
   if(count > 0) {
      val >>= count;
   }
   else if(count < 0) {
      count = 0-count;
      val <<= count;
   }

   last_x = rpn[0];
   rpn[0] = (double) val;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x36a691(%rip), %rax    # 0x39ac20
movsbl 0x2(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x305b2
leaq 0x36a67c(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x305e0
leaq 0x36a667(%rip), %rax    # 0x39ac20
movsbl 0x2(%rax), %eax
cmpl $0x2d, %eax
jne 0x305d7
leaq 0x36a657(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x305de
movl $0x1, -0x4(%rbp)
jmp 0x305e0
cvttsd2si 0x371568(%rip), %eax # 0x3a1b50
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x4(%rbp)
jle 0x305fe
movl -0x4(%rbp), %ecx
movl -0x8(%rbp), %eax
sarl %cl, %eax
movl %eax, -0x8(%rbp)
jmp 0x30619
cmpl $0x0, -0x4(%rbp)
jge 0x30617
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %ecx
movl -0x8(%rbp), %eax
shll %cl, %eax
movl %eax, -0x8(%rbp)
jmp 0x30619
movsd 0x37152f(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, 0x3718df(%rip)   # 0x3a1f08
cvtsi2sdl -0x8(%rbp), %xmm0
movsd %xmm0, 0x37151a(%rip)   # 0x3a1b50
movl $0x0, 0x3718d0(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_shl()
void rpn_shl()
{
int count;
s32 val;

   // shift left

   if(isdigit(msg_field[2])) count = atoi(&msg_field[2]);
   else if(msg_field[2] == '-') count = atoi(&msg_field[2]);
   else count = 1;

   val = (int) rpn[0];
   if(count > 0) {
      val <<= count;
   }
   else if(count < 0) {
      count = 0-count;
      val >>= count;
   }

   last_x = rpn[0];
   rpn[0] = (double) val;
   last_was_clx = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x36a5c1(%rip), %rax    # 0x39ac20
movsbl 0x2(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x30682
leaq 0x36a5ac(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x306b0
leaq 0x36a597(%rip), %rax    # 0x39ac20
movsbl 0x2(%rax), %eax
cmpl $0x2d, %eax
jne 0x306a7
leaq 0x36a587(%rip), %rdi    # 0x39ac20
addq $0x2, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
jmp 0x306ae
movl $0x1, -0x4(%rbp)
jmp 0x306b0
cvttsd2si 0x371498(%rip), %eax # 0x3a1b50
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x4(%rbp)
jle 0x306ce
movl -0x4(%rbp), %ecx
movl -0x8(%rbp), %eax
shll %cl, %eax
movl %eax, -0x8(%rbp)
jmp 0x306e9
cmpl $0x0, -0x4(%rbp)
jge 0x306e7
xorl %eax, %eax
subl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %ecx
movl -0x8(%rbp), %eax
sarl %cl, %eax
movl %eax, -0x8(%rbp)
jmp 0x306e9
movsd 0x37145f(%rip), %xmm0   # 0x3a1b50
movsd %xmm0, 0x37180f(%rip)   # 0x3a1f08
cvtsi2sdl -0x8(%rbp), %xmm0
movsd %xmm0, 0x37144a(%rip)   # 0x3a1b50
movl $0x0, 0x371800(%rip)    # 0x3a1f10
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_size()
void rpn_size()
{
int count;

   // set stack size

   count = 6;
   if(isdigit(msg_field[4])) count = atoi(&msg_field[4]);
   if((count < 4) || (count > MAX_RPN_SIZE)) {
      sprintf(out, "Stack size must be 4..%d", MAX_RPN_SIZE);
      rpn_error(out);
      return;
   }
   RPN_SIZE = count;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x6, -0x4(%rbp)
leaq 0x36a4ea(%rip), %rax    # 0x39ac20
movsbl 0x4(%rax), %edi
callq 0x9330
cmpl $0x0, %eax
je 0x30757
leaq 0x36a4d5(%rip), %rdi    # 0x39ac20
addq $0x4, %rdi
callq 0x95c0
movl %eax, -0x4(%rbp)
cmpl $0x4, -0x4(%rbp)
jl 0x30763
cmpl $0x10, -0x4(%rbp)
jle 0x3078b
leaq 0x36ac96(%rip), %rdi    # 0x39b400
leaq 0x141712(%rip), %rsi    # 0x171e83
movl $0x10, %edx
movb $0x0, %al
callq 0x9060
leaq 0x36ac7c(%rip), %rdi    # 0x39b400
callq 0x2e640
jmp 0x30794
movl -0x4(%rbp), %eax
movl %eax, 0x1988ac(%rip)    # 0x1c9040
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: find_rpn_def(char*)
int find_rpn_def(char *s)
{
int i;

   // see if user defined command has been defined

   if(s == 0) {
      return (-2);
   }

   for(i=0; i<num_rpn_defs; i++) {
      if(!strncmp(s, rpn_defs[i], strlen(s))) return i;
   }

   return (-1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x309dc
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x30a43
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl 0x37187c(%rip), %eax    # 0x3a2268
jge 0x30a3c
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x37153f(%rip), %rax    # 0x3a1f40
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x9120
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq %rax, %rdx
callq 0x9140
cmpl $0x0, %eax
jne 0x30a2f
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x30a43
jmp 0x30a31
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x309e3
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_edit()
void rpn_edit()
{
int i;

   // edit a user defined command
   if(get_msg_field()) {
      i = find_rpn_def(msg_field);
      if(i >= 0) {
         if(zoom_screen) remove_zoom();
         rpn_mode = 0;
         show_version_header();
         add_kbd(0x0D);
         add_kbd('!'); // edit DEFINE
         add_kbd('`');
         strcpy(edit_buffer, rpn_defs[i]);
      }
      else {
         sprintf(out, "DEFINE %s not found!", msg_field);
         edit_error(out);
      }
   }
   else {
      edit_error("DEFINE name missing!");
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0xb0bd0
cmpl $0x0, %eax
je 0x31993
leaq 0x369323(%rip), %rdi    # 0x39ac20
callq 0x309c0
movl %eax, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jl 0x31969
leaq 0x33a076(%rip), %rax    # 0x36b988
cmpb $0x0, (%rax)
je 0x3191c
callq 0x319b0
leaq 0x3690e5(%rip), %rax    # 0x39aa08
movl $0x0, (%rax)
callq 0x9c6d0
movl $0xd, %edi
callq 0xf320
movl $0x21, %edi
callq 0xf320
movl $0x60, %edi
callq 0xf320
movslq -0x4(%rbp), %rcx
leaq 0x3705e9(%rip), %rax    # 0x3a1f40
movq (%rax,%rcx,8), %rsi
leaq 0x36cb5e(%rip), %rdi    # 0x39e4c0
callq 0x9350
jmp 0x31991
leaq 0x369a90(%rip), %rdi    # 0x39b400
leaq 0x140635(%rip), %rsi    # 0x171fac
leaq 0x3692a2(%rip), %rdx    # 0x39ac20
movb $0x0, %al
callq 0x9060
leaq 0x369a74(%rip), %rdi    # 0x39b400
callq 0x30d60
jmp 0x3199f
leaq 0x1405fd(%rip), %rdi    # 0x171f97
callq 0x30d60
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: remove_zoom()
void remove_zoom()
{
   // exit a zoomed screen mode and re-config the screen
   change_zoom_config(-2);
   cancel_zoom(2);
   zoom_fixes = show_fixes;
   show_rpn_help = 0;
   config_screen(117);
   force_adev_redraw(106);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl $0xfffffffe, %edi       # imm = 0xFFFFFFFE
callq 0x375a0
movl $0x2, %edi
callq 0x376e0
leaq 0x368ae5(%rip), %rax    # 0x39a4b4
movzbl (%rax), %ecx
leaq 0x339fb3(%rip), %rax    # 0x36b98c
movl %ecx, (%rax)
leaq 0x36902a(%rip), %rax    # 0x39aa0c
movl $0x0, (%rax)
movl $0x75, %edi
callq 0xeaf0
movl $0x6a, %edi
callq 0x127cf0
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_nest()
int rpn_nest()
{
   // save where we are in the current line

   if(rpn_exec_level < RPN_EXEC_DEPTH) {
      rpn_exec_stack[rpn_exec_level].col = msg_col;
      rpn_exec_stack[rpn_exec_level].skip = skip_next_rpn;
      strcpy(rpn_exec_stack[rpn_exec_level].msg, nmea_msg);
      skip_next_rpn = 0;
      ++rpn_exec_level;
      return 0;
   }

   return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpl $0xa, 0x371ee5(%rip)    # 0x3a38f4
jge 0x31aa6
leaq 0x369408(%rip), %rax    # 0x39ae24
movl (%rax), %ecx
movslq 0x371ecf(%rip), %rdx    # 0x3a38f4
leaq 0x370844(%rip), %rax    # 0x3a2270
imulq $0x20c, %rdx, %rdx      # imm = 0x20C
addq %rdx, %rax
movl %ecx, 0x204(%rax)
movl 0x3704ea(%rip), %ecx    # 0x3a1f2c
movslq 0x371eab(%rip), %rdx    # 0x3a38f4
leaq 0x370820(%rip), %rax    # 0x3a2270
imulq $0x20c, %rdx, %rdx      # imm = 0x20C
addq %rdx, %rax
movl %ecx, 0x208(%rax)
movslq 0x371e8d(%rip), %rax    # 0x3a38f4
leaq 0x370802(%rip), %rdi    # 0x3a2270
imulq $0x20c, %rax, %rax      # imm = 0x20C
addq %rax, %rdi
leaq 0x368f91(%rip), %rsi    # 0x39aa10
callq 0x9350
movl $0x0, 0x37049e(%rip)    # 0x3a1f2c
movl 0x371e60(%rip), %eax    # 0x3a38f4
addl $0x1, %eax
movl %eax, 0x371e57(%rip)    # 0x3a38f4
movl $0x0, -0x4(%rbp)
jmp 0x31aad
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_unnest()
int rpn_unnest()
{
   // exit a user defined command string back to the previous nesting level

   if(rpn_exec_level) {
      --rpn_exec_level;
      msg_col = rpn_exec_stack[rpn_exec_level].col;
      skip_next_rpn = rpn_exec_stack[rpn_exec_level].skip;
      strcpy(nmea_msg, rpn_exec_stack[rpn_exec_level].msg);
      return 1;
   }

   return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpl $0x0, 0x371e25(%rip)    # 0x3a38f4
je 0x31b5c
movl 0x371e19(%rip), %eax    # 0x3a38f4
addl $-0x1, %eax
movl %eax, 0x371e10(%rip)    # 0x3a38f4
movslq 0x371e09(%rip), %rcx    # 0x3a38f4
leaq 0x37077e(%rip), %rax    # 0x3a2270
imulq $0x20c, %rcx, %rcx      # imm = 0x20C
addq %rcx, %rax
movl 0x204(%rax), %ecx
leaq 0x36931b(%rip), %rax    # 0x39ae24
movl %ecx, (%rax)
movslq 0x371de2(%rip), %rcx    # 0x3a38f4
leaq 0x370757(%rip), %rax    # 0x3a2270
imulq $0x20c, %rcx, %rcx      # imm = 0x20C
addq %rcx, %rax
movl 0x208(%rax), %eax
movl %eax, 0x3703fd(%rip)    # 0x3a1f2c
movslq 0x371dbe(%rip), %rax    # 0x3a38f4
leaq 0x370733(%rip), %rsi    # 0x3a2270
imulq $0x20c, %rax, %rax      # imm = 0x20C
addq %rax, %rsi
leaq 0x368ec2(%rip), %rdi    # 0x39aa10
callq 0x9350
movl $0x1, -0x4(%rbp)
jmp 0x31b63
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_save(int)
void rpn_save(int save_mem)
{
FILE *file;
int i;

   // save the current DEFINEs (and optionally memory) to a file

   get_msg_field();
   if(msg_field[0]) {
      file = topen(msg_field, "w");
      if(file) {
         for(i=0; i<num_rpn_defs; i++) {
            if(rpn_defs[i]) fprintf(file, "define %s\n", rpn_defs[i]);
         }

         if(save_mem) {  // also save the rpn memory and stack
            for(i=0; i<RPN_MEM; i++) { // save memory regs
               fprintf(file, "%.16g sto%d\n", rpn_mem[i], i);
            }
            for(i=RPN_SIZE-1; i>=0; i--) {  // save stack values
               fprintf(file, "%.16g\n", rpn[i]);
            }
         }
         fclose(file);
      }
      else {
         sprintf(out, "Could not write DEFINEs file: %s", msg_field);
         edit_error(out);
      }
   }
   else {
      edit_error("No file name given.");
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
callq 0xb0bd0
leaq 0x369099(%rip), %rax    # 0x39ac20
cmpb $0x0, (%rax)
je 0x31cbd
leaq 0x369089(%rip), %rdi    # 0x39ac20
leaq 0x152aad(%rip), %rsi    # 0x18464b
callq 0x9b20
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x31c93
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl 0x3706a6(%rip), %eax    # 0x3a2268
jge 0x31c04
movslq -0x14(%rbp), %rcx
leaq 0x370371(%rip), %rax    # 0x3a1f40
cmpq $0x0, (%rax,%rcx,8)
je 0x31bf7
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rcx
leaq 0x37035b(%rip), %rax    # 0x3a1f40
movq (%rax,%rcx,8), %rdx
leaq 0x1403d1(%rip), %rsi    # 0x171fc1
movb $0x0, %al
callq 0x9550
jmp 0x31bf9
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x31bb9
cmpl $0x0, -0x4(%rbp)
je 0x31c88
movl $0x0, -0x14(%rbp)
cmpl $0x64, -0x14(%rbp)
jge 0x31c47
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rcx
leaq 0x36ffba(%rip), %rax    # 0x3a1be0
movsd (%rax,%rcx,8), %xmm0
movl -0x14(%rbp), %edx
leaq 0x140397(%rip), %rsi    # 0x171fcc
movb $0x1, %al
callq 0x9550
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x31c11
movl 0x1973f3(%rip), %eax    # 0x1c9040
subl $0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0x31c86
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rcx
leaq 0x36fee8(%rip), %rax    # 0x3a1b50
movsd (%rax,%rcx,8), %xmm0
leaq 0x140365(%rip), %rsi    # 0x171fd9
movb $0x1, %al
callq 0x9550
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x31c53
jmp 0x31c88
movq -0x10(%rbp), %rdi
callq 0x9380
jmp 0x31cbb
leaq 0x369766(%rip), %rdi    # 0x39b400
leaq 0x14033f(%rip), %rsi    # 0x171fe0
leaq 0x368f78(%rip), %rdx    # 0x39ac20
movb $0x0, %al
callq 0x9060
leaq 0x36974a(%rip), %rdi    # 0x39b400
callq 0x30d60
jmp 0x31cc9
leaq 0x14033d(%rip), %rdi    # 0x172001
callq 0x30d60
addq $0x20, %rsp
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heathui.cpp
// Function: rpn_run()
void rpn_run()
{
int i;

   // read and execute the commands in a RPN file

   get_msg_field();
   if(msg_field[0]) {
      i = read_rpn_file(msg_field, 0);
      if(i == (-1)) {
         sprintf(out, "Could not read RPN file: %s", msg_field);
         edit_error(out);
      }
      else if(i) {
         edit_error("Error in RPN file.");
      }
   }
   else {
      edit_error("No file name given.");
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0xb0bd0
leaq 0x368f3c(%rip), %rax    # 0x39ac20
cmpb $0x0, (%rax)
je 0x31d40
leaq 0x368f30(%rip), %rdi    # 0x39ac20
xorl %esi, %esi
callq 0x310f0
movl %eax, -0x4(%rbp)
cmpl $-0x1, -0x4(%rbp)
jne 0x31d2a
leaq 0x3696f9(%rip), %rdi    # 0x39b400
leaq 0x140307(%rip), %rsi    # 0x172015
leaq 0x368f0b(%rip), %rdx    # 0x39ac20
movb $0x0, %al
callq 0x9060
leaq 0x3696dd(%rip), %rdi    # 0x39b400
callq 0x30d60
jmp 0x31d3e
cmpl $0x0, -0x4(%rbp)
je 0x31d3c
leaq 0x1402fa(%rip), %rdi    # 0x172031
callq 0x30d60
jmp 0x31d3e
jmp 0x31d4c
leaq 0x1402ba(%rip), %rdi    # 0x172001
callq 0x30d60
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)