LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: jkingan[P]ladyheather/heather.cpp
// Function: goto_event(unsigned short)
long goto_event(u16 flags)
{
long val;

   // move plot to the next holdover event or time sequence error
++go_count;

   val = find_event(last_mouse_q, flags);
   if(val < 0) return val;

//   if(1 || !mouse_plot_valid) ; // mouse is out of the plot area
//   else if(plot_mag) val -= ((last_plot_mouse_x * view_interval) / (long) plot_mag); // center point on mouse

   if(val > plot_q_count) val = plot_q_count - 1;
   if(val < 0) val = 0;

   if(val != last_mouse_q) last_plot_glitch = val; // mouse was moved
   last_mouse_q = val;
   last_plot_glitch = last_mouse_q;
   last_plot_mouse_q = val;
   if(1 || !mouse_plot_valid) {  // mouse is out of the plot area
      if(plot_mag) val -= ((last_plot_mouse_x * view_interval) / (long) plot_mag); // center point on mouse
   }
   zoom_review(val, REVIEW_BEEP);

   return val;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %di, %ax
movw %ax, -0xa(%rbp)
movl 0x38a353(%rip), %eax    # 0x39f428
addl $0x1, %eax
movl %eax, 0x38a34a(%rip)    # 0x39f428
movq 0x265373(%rip), %rdi    # 0x27a458
movzwl -0xa(%rbp), %esi
callq 0x14f10
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jge 0x15106
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x151b5
movq -0x18(%rbp), %rax
cmpq 0x265407(%rip), %rax    # 0x27a518
jle 0x15122
movq 0x2653fe(%rip), %rax    # 0x27a518
subq $0x1, %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jge 0x15131
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq 0x26531c(%rip), %rax    # 0x27a458
je 0x15149
movq -0x18(%rbp), %rax
movq %rax, 0x265317(%rip)    # 0x27a460
movq -0x18(%rbp), %rax
movq %rax, 0x265304(%rip)    # 0x27a458
movq 0x2652fd(%rip), %rax    # 0x27a458
movq %rax, 0x2652fe(%rip)    # 0x27a460
movq -0x18(%rbp), %rax
movq %rax, 0x2652fb(%rip)    # 0x27a468
cmpl $0x0, 0x26543c(%rip)    # 0x27a5b0
je 0x1519f
movslq 0x2652b3(%rip), %rax    # 0x27a430
imulq 0x2653fb(%rip), %rax    # 0x27a580
movslq 0x265424(%rip), %rcx    # 0x27a5b0
cqto
idivq %rcx
movq %rax, %rcx
movq -0x18(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x151c0
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heather.cpp
// Function: zoom_review(long, unsigned char)
void zoom_review(long i, u08 beep_ok)
{
   i -= plot_q_out;

   if(i >= plot_q_count) {  // we are past the end of the data, back up a minor tick
      i -= plot_q_count;
      if(beep_ok) BEEP(10);
   }
   if(i < 0) {  // we are at the start of the data in the queue
      i = 0;
      if(beep_ok) BEEP(11);
   }

   review = i;
   review_mode = 1;
   plot_start = review;

   draw_plot(NO_REFRESH);

   if(no_mouse_review) ;
   else get_mouse_info();  // update cursor info in case we are not doing live data

   refresh_page();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq 0x265337(%rip), %rcx    # 0x27a510
movq -0x8(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq 0x265329(%rip), %rax    # 0x27a518
jl 0x15215
movq 0x265320(%rip), %rcx    # 0x27a518
movq -0x8(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x8(%rbp)
cmpb $0x0, -0x9(%rbp)
je 0x15213
movl $0xa, %edi
callq 0x9ec0
jmp 0x15215
cmpq $0x0, -0x8(%rbp)
jge 0x15236
movq $0x0, -0x8(%rbp)
cmpb $0x0, -0x9(%rbp)
je 0x15234
movl $0xb, %edi
callq 0x9ec0
jmp 0x15236
movq -0x8(%rbp), %rax
movq %rax, 0x286ce7(%rip)    # 0x29bf28
movb $0x1, 0x286cd8(%rip)    # 0x29bf20
movq 0x286cd9(%rip), %rax    # 0x29bf28
movq %rax, 0x2652d2(%rip)    # 0x27a528
xorl %edi, %edi
callq 0x24e80
cmpl $0x0, 0x389e74(%rip)    # 0x39f0d8
je 0x15268
jmp 0x1526d
callq 0x28690
callq 0xb0d0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: disp_filter_size()
long disp_filter_size()
{
DATA_SIZE show_time;

   // return the length of the display averaging filter

   if(filter_count < 0) {   // filter size based up display config
      show_time = (DATA_SIZE) (view_interval*queue_interval*PLOT_WIDTH);  // seconds per screen
show_time *= (DATA_SIZE) (0-filter_count);
      show_time /= plot_mag;
      show_time /= nav_rate;
      show_time /= PLOT_WIDTH;
      show_time += (DATA_SIZE) 0.5;
      if(show_time < 1.0) show_time = (DATA_SIZE) 1.0;
      if(show_time > PLOT_WIDTH) show_time = (DATA_SIZE) PLOT_WIDTH;

      return (long) show_time;
   }
   else {  // fixed filter size
      if(filter_count > PLOT_WIDTH) return PLOT_WIDTH;
      return filter_count;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpq $0x0, 0x265214(%rip)    # 0x27a650
jge 0x1551a
movq 0x265137(%rip), %rax    # 0x27a580
imulq 0x265127(%rip), %rax    # 0x27a578
movslq 0x26260c(%rip), %rcx    # 0x277a64
imulq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x10(%rbp)
xorl %eax, %eax
subq 0x2651e1(%rip), %rax    # 0x27a650
cvtsi2sd %rax, %xmm0
mulsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
cvtsi2sdl 0x26512a(%rip), %xmm1 # 0x27a5b0
movsd -0x10(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd 0x26509c(%rip), %xmm1   # 0x27a538
movsd -0x10(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
cvtsi2sdl 0x2625b2(%rip), %xmm1 # 0x277a64
movsd -0x10(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd 0x159bc8(%rip), %xmm0   # 0x16f090
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
movsd 0x159b8e(%rip), %xmm0   # 0x16f068
ucomisd -0x10(%rbp), %xmm0
jbe 0x154ee
movsd 0x159b7f(%rip), %xmm0   # 0x16f068
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
cvtsi2sdl 0x262569(%rip), %xmm1 # 0x277a64
ucomisd %xmm1, %xmm0
jbe 0x1550e
cvtsi2sdl 0x26255b(%rip), %xmm0 # 0x277a64
movsd %xmm0, -0x10(%rbp)
cvttsd2si -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x15545
movq 0x26512f(%rip), %rax    # 0x27a650
movslq 0x26253c(%rip), %rcx    # 0x277a64
cmpq %rcx, %rax
jle 0x1553a
movslq 0x262530(%rip), %rax    # 0x277a64
movq %rax, -0x8(%rbp)
jmp 0x15545
movq 0x26510f(%rip), %rax    # 0x27a650
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: scale_plot_row()
int scale_plot_row()
{
   // adjust plot row for scaled up text size
   if(use_vc_fonts) {
      PLOT_ROW = (PLOT_ROW * vc_font_scale) / 100;
if(vc_font_scale < 100) PLOT_ROW += TEXT_HEIGHT*2;  // piss
      config_text();
      vidstr(0,0, WHITE, " ");
   }
   return PLOT_ROW;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0x0, 0x26c245(%rip)    # 0x282720
je 0x1652f
movl 0x261579(%rip), %eax    # 0x277a5c
imull 0x26c23a(%rip), %eax    # 0x282724
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, 0x261564(%rip)    # 0x277a5c
cmpl $0x64, 0x26c225(%rip)   # 0x282724
jge 0x16515
movl 0x2614ed(%rip), %eax    # 0x2779f4
shll %eax
addl 0x26154d(%rip), %eax    # 0x277a5c
movl %eax, 0x261547(%rip)    # 0x277a5c
callq 0x16300
xorl %esi, %esi
movl $0xf, %edx
leaq 0x16f8bc(%rip), %rcx    # 0x185de4
movl %esi, %edi
callq 0x10ee0
movl 0x261527(%rip), %eax    # 0x277a5c
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: config_undersized()
void config_undersized()
{
   // setup for 640x480 screen
   if(user_font_size > 12) user_font_size = 12;

   HORIZ_MAJOR = 30;
   HORIZ_MINOR = 5;
   VERT_MAJOR = 20;
   VERT_MINOR = 4;
   COUNT_SCALE = (VERT_MAJOR/2);

   if(rcvr_type == NO_RCVR) {  // size of the analog watch area
      AZEL_SIZE = LLA_SIZE = (SCREEN_WIDTH / 4); // piss (160);
   }

   if(user_set_plot_row == 0) {
      if(user_font_size && (user_font_size <= 8)) PLOT_ROW = SCREEN_HEIGHT-VERT_MAJOR*8;
      else PLOT_ROW = SCREEN_HEIGHT-VERT_MAJOR*6;
      scale_plot_row();
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movzbl 0x2614ed(%rip), %eax    # 0x277a38
cmpl $0xc, %eax
jle 0x16557
movb $0xc, 0x2614e1(%rip)    # 0x277a38
movl $0x1e, 0x2614f3(%rip)   # 0x277a54
movl $0x5, 0x2614ed(%rip)    # 0x277a58
movl $0x14, 0x2614d7(%rip)   # 0x277a4c
movl $0x4, 0x2614d1(%rip)    # 0x277a50
movl 0x2614c7(%rip), %eax    # 0x277a4c
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, 0x2614f5(%rip)    # 0x277a88
cmpq $0x400, 0x261512(%rip) # imm = 0x400
jne 0x165ba
movl 0x26143a(%rip), %eax    # 0x2779e0
movl $0x4, %ecx
cltd
idivl %ecx
movl %eax, 0x383ec4(%rip)    # 0x39a478
movl %eax, 0x383fb2(%rip)    # 0x39a56c
cmpl $0x0, 0x26c16b(%rip)    # 0x28272c
jne 0x1660b
cmpb $0x0, 0x26146e(%rip)    # 0x277a38
je 0x165f1
movzbl 0x261465(%rip), %eax    # 0x277a38
cmpl $0x8, %eax
jg 0x165f1
movl 0x261406(%rip), %eax    # 0x2779e4
movl 0x261468(%rip), %ecx    # 0x277a4c
shll $0x3, %ecx
subl %ecx, %eax
movl %eax, 0x26146d(%rip)    # 0x277a5c
jmp 0x16606
movl 0x2613ed(%rip), %eax    # 0x2779e4
imull $0x6, 0x26144e(%rip), %ecx # 0x277a4c
subl %ecx, %eax
movl %eax, 0x261456(%rip)    # 0x277a5c
callq 0x164d0
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: config_small()
void config_small()
{
   // setup for 800x600 screen
   if(user_set_plot_row == 0) {
      PLOT_ROW = (400+8);
      scale_plot_row();
   }

   FILTER_ROW = 17;
   FILTER_COL = INFO_COL;

   COUNT_SCALE = (VERT_MAJOR/2);

   AZEL_SIZE = LLA_SIZE = (160);       // size of the az/el map area

   if(TEXT_HEIGHT >= 16) eofs = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0x0, 0x26c111(%rip)    # 0x28272c
jne 0x1662c
movl $0x198, 0x261435(%rip)  # imm = 0x198
callq 0x164d0
movl $0x11, 0x26134a(%rip)   # 0x277980
movl 0x261340(%rip), %eax    # 0x27797c
movl %eax, 0x261342(%rip)    # 0x277984
movl 0x261404(%rip), %eax    # 0x277a4c
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, 0x261432(%rip)    # 0x277a88
movl $0xa0, 0x383e18(%rip)   # 0x39a478
movl $0xa0, 0x383f02(%rip)   # 0x39a56c
cmpl $0x10, 0x261383(%rip)   # 0x2779f4
jl 0x1667d
movl $0x0, 0x287aa3(%rip)    # 0x29e120
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heather.cpp
// Function: config_zoom()
void config_zoom()
{
   if(zoom_screen == 0) return;
   if(plot_signals) return;
   if(plot_watch) return;
   if(plot_digital_clock) return;
   if(plot_azel) return;
   if(plot_lla && (zoom_screen == 'L')) return;

   if(text_mode) cancel_zoom(3);
   if(zoom_screen == 'L') cancel_zoom(4);
//zzzzzzz   zoom_lla = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movzbl 0x35431d(%rip), %eax    # 0x36b988
cmpl $0x0, %eax
jne 0x17672
jmp 0x176de
cmpb $0x0, 0x262f7c(%rip)    # 0x27a5f5
je 0x1767d
jmp 0x176de
cmpb $0x0, 0x262f64(%rip)    # 0x27a5e8
je 0x17688
jmp 0x176de
cmpb $0x0, 0x262f36(%rip)    # 0x27a5c5
je 0x17693
jmp 0x176de
cmpb $0x0, 0x262f59(%rip)    # 0x27a5f3
je 0x1769e
jmp 0x176de
cmpb $0x0, 0x382deb(%rip)    # 0x39a490
je 0x176b5
movzbl 0x3542da(%rip), %eax    # 0x36b988
cmpl $0x4c, %eax
jne 0x176b5
jmp 0x176de
cmpl $0x0, 0x2602fc(%rip)    # 0x2779b8
je 0x176c8
movl $0x3, %edi
callq 0x376e0
movzbl 0x3542b9(%rip), %eax    # 0x36b988
cmpl $0x4c, %eax
jne 0x176de
movl $0x4, %edi
callq 0x376e0
popq %rbp
retq
// File: jkingan[P]ladyheather/heather.cpp
// Function: scale_temp(double)
DATA_SIZE scale_temp(double t)
{
double x;

   // convert degrees C into user specified measurement system
   x = (double) t;
   if     (DEG_SCALE == 'C') ;
   else if(DEG_SCALE == 'D') x = (100.0-x) * 1.5;
   else if(DEG_SCALE == 'E') x = (x * (21.0 / 40.0)) + 7.5;
   else if(DEG_SCALE == 'F') x = (x * 1.8) + 32.0;
   else if(DEG_SCALE == 'H') x = (x - 20.0) / 10.0;   // degrees Hilton (as in Paris Hilton)
   else if(DEG_SCALE == 'N') x = x * 0.33F;
   else if(DEG_SCALE == 'O') x = (x * (21.0 / 40.0)) + 7.5;
   else if(DEG_SCALE == 'R') x = (x + 273.15) * 1.8;
   else if(DEG_SCALE == 'K') x = x + 273.15;

   return (DATA_SIZE) x;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
movsbl 0x35410b(%rip), %eax    # 0x36c185
cmpl $0x43, %eax
jne 0x18084
jmp 0x181f9
movsbl 0x3540fa(%rip), %eax    # 0x36c185
cmpl $0x44, %eax
jne 0x180b3
movsd 0x156fb8(%rip), %xmm0   # 0x16f050
subsd -0x10(%rbp), %xmm0
movsd 0x157033(%rip), %xmm1   # 0x16f0d8
mulsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x181f7
movsbl 0x3540cb(%rip), %eax    # 0x36c185
cmpl $0x45, %eax
jne 0x180e6
movsd -0x10(%rbp), %xmm0
movsd 0x156fdc(%rip), %xmm1   # 0x16f0a8
mulsd %xmm1, %xmm0
movsd 0x156fd8(%rip), %xmm1   # 0x16f0b0
addsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x181f5
movsbl 0x354098(%rip), %eax    # 0x36c185
cmpl $0x46, %eax
jne 0x18119
movsd -0x10(%rbp), %xmm0
movsd 0x156fa1(%rip), %xmm1   # 0x16f0a0
mulsd %xmm1, %xmm0
movsd 0x156fc5(%rip), %xmm1   # 0x16f0d0
addsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x181f3
movsbl 0x354065(%rip), %eax    # 0x36c185
cmpl $0x48, %eax
jne 0x1814c
movsd -0x10(%rbp), %xmm0
movsd 0x156f96(%rip), %xmm1   # 0x16f0c8
subsd %xmm1, %xmm0
movsd 0x156f82(%rip), %xmm1   # 0x16f0c0
divsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x181f1
movsbl 0x354032(%rip), %eax    # 0x36c185
cmpl $0x4e, %eax
jne 0x1816f
movsd 0x156f58(%rip), %xmm0   # 0x16f0b8
mulsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x181ef
movsbl 0x35400f(%rip), %eax    # 0x36c185
cmpl $0x4f, %eax
jne 0x1819f
movsd -0x10(%rbp), %xmm0
movsd 0x156f20(%rip), %xmm1   # 0x16f0a8
mulsd %xmm1, %xmm0
movsd 0x156f1c(%rip), %xmm1   # 0x16f0b0
addsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x181ed
movsbl 0x353fdf(%rip), %eax    # 0x36c185
cmpl $0x52, %eax
jne 0x181cb
movsd 0x156ee5(%rip), %xmm0   # 0x16f098
addsd -0x10(%rbp), %xmm0
movsd 0x156ee0(%rip), %xmm1   # 0x16f0a0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x181eb
movsbl 0x353fb3(%rip), %eax    # 0x36c185
cmpl $0x4b, %eax
jne 0x181e9
movsd 0x156eb9(%rip), %xmm0   # 0x16f098
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x181eb
jmp 0x181ed
jmp 0x181ef
jmp 0x181f1
jmp 0x181f3
jmp 0x181f5
jmp 0x181f7
jmp 0x181f9
movsd -0x10(%rbp), %xmm0
popq %rbp
retq
// File: jkingan[P]ladyheather/heather.cpp
// Function: fmt_temp(double)
char *fmt_temp(double temp)
{
static char buf[SLEN];
double val;

   val = scale_temp(temp);
   if     (round_temp == 1) sprintf(buf, "%.1f %c%c", val, DEGREES, DEG_SCALE);
   else if(round_temp == 2) sprintf(buf, "%.2f %c%c", val, DEGREES, DEG_SCALE);
   else if(round_temp == 3) sprintf(buf, "%.3f %c%c", val, DEGREES, DEG_SCALE);
   else if(round_temp == 4) sprintf(buf, "%.4f %c%c", val, DEGREES, DEG_SCALE);
   else if(round_temp == 5) sprintf(buf, "%.5f %c%c", val, DEGREES, DEG_SCALE);
   else {
      if((rcvr_type == THERMO_RCVR) || (enviro_mode() && (have_temperature == 0))) {  // flag external temp sensor with upper case
         sprintf(buf, "%.5f %c%c", val, DEGREES, DEG_SCALE);
      }
      else {
         sprintf(buf, "%.6f %c%c", val, DEGREES, DEG_SCALE);
      }
   }
   return &buf[0];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x18060
movsd %xmm0, -0x10(%rbp)
cmpl $0x1, 0x353c45(%rip)    # 0x36be68
jne 0x18250
movsd -0x10(%rbp), %xmm0
movsbl 0x353f54(%rip), %ecx    # 0x36c185
leaq 0x387208(%rip), %rdi    # 0x39f440
leaq 0x158097(%rip), %rsi    # 0x1702d6
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x18395
cmpl $0x2, 0x353c11(%rip)    # 0x36be68
jne 0x18284
movsd -0x10(%rbp), %xmm0
movsbl 0x353f20(%rip), %ecx    # 0x36c185
leaq 0x3871d4(%rip), %rdi    # 0x39f440
leaq 0x15806d(%rip), %rsi    # 0x1702e0
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x18393
cmpl $0x3, 0x353bdd(%rip)    # 0x36be68
jne 0x182b8
movsd -0x10(%rbp), %xmm0
movsbl 0x353eec(%rip), %ecx    # 0x36c185
leaq 0x3871a0(%rip), %rdi    # 0x39f440
leaq 0x158043(%rip), %rsi    # 0x1702ea
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x18391
cmpl $0x4, 0x353ba9(%rip)    # 0x36be68
jne 0x182ec
movsd -0x10(%rbp), %xmm0
movsbl 0x353eb8(%rip), %ecx    # 0x36c185
leaq 0x38716c(%rip), %rdi    # 0x39f440
leaq 0x158019(%rip), %rsi    # 0x1702f4
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x1838f
cmpl $0x5, 0x353b75(%rip)    # 0x36be68
jne 0x1831d
movsd -0x10(%rbp), %xmm0
movsbl 0x353e84(%rip), %ecx    # 0x36c185
leaq 0x387138(%rip), %rdi    # 0x39f440
leaq 0x157fef(%rip), %rsi    # 0x1702fe
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x1838d
cmpq $0x80000, 0x25f788(%rip) # imm = 0x80000
je 0x1833d
callq 0x83ad0
cmpl $0x0, %eax
je 0x18365
cmpl $0x0, 0x3540f1(%rip)    # 0x36c42c
jne 0x18365
movsd -0x10(%rbp), %xmm0
movsbl 0x353e3c(%rip), %ecx    # 0x36c185
leaq 0x3870f0(%rip), %rdi    # 0x39f440
leaq 0x157fa7(%rip), %rsi    # 0x1702fe
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x1838b
movsd -0x10(%rbp), %xmm0
movsbl 0x353e14(%rip), %ecx    # 0x36c185
leaq 0x3870c8(%rip), %rdi    # 0x39f440
leaq 0x157f89(%rip), %rsi    # 0x170308
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
jmp 0x1838d
jmp 0x1838f
jmp 0x18391
jmp 0x18393
jmp 0x18395
leaq 0x3870a4(%rip), %rax    # 0x39f440
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: fmt_pressure(double)
char *fmt_pressure(double pressure)
{
static char buf[SLEN];
double val;

   val = scale_pressure(pressure);
   if(HG_PRESS) sprintf(buf, "%.5f %s", val, "Hg");
   else         sprintf(buf, "%.5f %s", val, "mb");
   return &buf[0];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x183b0
movsd %xmm0, -0x10(%rbp)
movq 0x353d75(%rip), %rax    # 0x36c188
movsbl (%rax), %eax
cmpl $0x66, %eax
jne 0x1843e
movsd -0x10(%rbp), %xmm0
leaq 0x387119(%rip), %rdi    # 0x39f540
leaq 0x1583b5(%rip), %rsi    # 0x1707e3
leaq 0x1750bd(%rip), %rdx    # 0x18d4f2
movb $0x1, %al
callq 0x9060
jmp 0x1845f
movsd -0x10(%rbp), %xmm0
leaq 0x3870f6(%rip), %rdi    # 0x39f540
leaq 0x158392(%rip), %rsi    # 0x1707e3
leaq 0x17f683(%rip), %rdx    # 0x197adb
movb $0x1, %al
callq 0x9060
leaq 0x3870da(%rip), %rax    # 0x39f540
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: tie_plot(int)
int tie_plot(int id)
{
   // return true if plot *id* is a time interval error plot

   if(rcvr_type == TICC_RCVR) {
      if((id == PPS) || (id == OSC) || (id == SEVEN) || (id == EIGHT)) return 1;
   }
   else if(((have_pps_offset == 0) || (have_pps_offset == 55)) && have_lars_pps) {
      if(id == PPS) return 1;
   }
   else if(rcvr_type == PRS_RCVR) {
      if(id == OSC) return 1;
   }
else if(0 && (rcvr_type == X72_RCVR)) {
   if(id == PPS) return 1;
}

   return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x8(%rbp)
cmpq $0x10000, 0x25e33e(%rip) # imm = 0x10000
jne 0x19797
cmpl $0x0, -0x8(%rbp)
je 0x1978c
cmpl $0x1, -0x8(%rbp)
je 0x1978c
cmpl $0xa, -0x8(%rbp)
je 0x1978c
cmpl $0xb, -0x8(%rbp)
jne 0x19795
movl $0x1, -0x4(%rbp)
jmp 0x197ee
jmp 0x197e7
cmpl $0x0, 0x352c7a(%rip)    # 0x36c418
je 0x197a9
cmpl $0x37, 0x352c71(%rip)   # 0x36c418
jne 0x197c3
cmpl $0x0, 0x352480(%rip)    # 0x36bc30
je 0x197c3
cmpl $0x0, -0x8(%rbp)
jne 0x197c1
movl $0x1, -0x4(%rbp)
jmp 0x197ee
jmp 0x197e5
cmpq $0x1000000, 0x25e2e2(%rip) # imm = 0x1000000
jne 0x197e1
cmpl $0x1, -0x8(%rbp)
jne 0x197df
movl $0x1, -0x4(%rbp)
jmp 0x197ee
jmp 0x197e3
jmp 0x197e3
jmp 0x197e5
jmp 0x197e7
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: config_extra_plots()
int config_extra_plots()
{
int i;
int old_extra;

   old_extra = extra_plots;

   extra_plots = 0;  // this flag gets set if any extra plots are enabled
   for(i=FIRST_EXTRA_PLOT; i<NUM_PLOTS+DERIVED_PLOTS; i++) {
      extra_plots |= 1;  // plot[i].show_plot;
   }

   if(old_extra != extra_plots) {
      need_redraw = 1;
      if(rcvr_type == TICC_RCVR) plot_adev_data = 1;
      else if(extra_plots) plot_adev_data = 0;
      return 1;
   }
   return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl 0x3853ea(%rip), %eax    # 0x39ef34
movl %eax, -0xc(%rbp)
movl $0x0, 0x3853dd(%rip)    # 0x39ef34
movl $0x4, -0x8(%rbp)
cmpl $0x14, -0x8(%rbp)
jge 0x19b7e
movl 0x3853ca(%rip), %eax    # 0x39ef34
orl $0x1, %eax
movl %eax, 0x3853c1(%rip)    # 0x39ef34
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x19b5e
movl -0xc(%rbp), %eax
cmpl 0x3853ad(%rip), %eax    # 0x39ef34
je 0x19bc4
movl $0x1, 0x25de91(%rip)    # 0x277a24
cmpq $0x10000, 0x25df12(%rip) # imm = 0x10000
jne 0x19ba9
movb $0x1, 0x260a12(%rip)    # 0x27a5b9
jmp 0x19bbb
cmpl $0x0, 0x385384(%rip)    # 0x39ef34
je 0x19bb9
movb $0x0, 0x260a00(%rip)    # 0x27a5b9
jmp 0x19bbb
movl $0x1, -0x4(%rbp)
jmp 0x19bcb
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
// File: jkingan[P]ladyheather/heather.cpp
// Function: plot_axes()
void plot_axes()
{
   // draw the plot background grid and label info
   if(first_key) return;   // plot area is in use for help/warning message

   erase_plot(ERASE_GRAPH_AREA);          // erase plot area
   if(read_only || just_read || no_send) {
      show_version_header();
   }

   if(no_plots) ;
   else if(rcvr_type == NO_RCVR) ;
   else {
      show_queue_info();      // show the queue stats
      if((text_mode == 0) && ((zoom_screen == 0) || (zoom_screen == 'P'))) {
         show_view_info();    // display the plot view settings
         show_plot_grid();    // display the plot grid
      }
   }
   show_title();           // display the plot title
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0x0, 0x27c42d(%rip)    # 0x29e138
je 0x21d0f
jmp 0x21d89
xorl %edi, %edi
callq 0x11d10
cmpb $0x0, 0x3744dd(%rip)    # 0x3961fa
jne 0x21d31
cmpb $0x0, 0x3744d2(%rip)    # 0x3961f8
jne 0x21d31
cmpb $0x0, 0x3744ca(%rip)    # 0x3961f9
je 0x21d36
callq 0x9c6d0
cmpl $0x0, 0x37d20b(%rip)    # 0x39ef48
je 0x21d41
jmp 0x21d84
cmpq $0x400, 0x255d64(%rip) # imm = 0x400
jne 0x21d50
jmp 0x21d82
callq 0x203c0
cmpl $0x0, 0x255c5c(%rip)    # 0x2779b8
jne 0x21d80
movzbl 0x349c23(%rip), %eax    # 0x36b988
cmpl $0x0, %eax
je 0x21d76
movzbl 0x349c17(%rip), %eax    # 0x36b988
cmpl $0x50, %eax
jne 0x21d80
callq 0x209c0
callq 0x20db0
jmp 0x21d82
jmp 0x21d84
callq 0x21820
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: round_scale(double)
DATA_SIZE round_scale(DATA_SIZE val)
{
double decade;

   // round the scale factor to a 1 2 (2.5) 5  sequence
   for(decade=1.0E-15; decade<=1.0E15; decade*=10.0) {
      if(val <= decade)       return (DATA_SIZE) decade;
      if(val <= (decade*2.0)) return (DATA_SIZE) (decade*2.0);
//    if(val <= (decade*2.5)) if(decade >= 10.0) return (DATA_SIZE) (decade*2.5);
      if(val <= (decade*2.5)) return (DATA_SIZE) (decade*2.5);
      if(val <= (decade*5.0)) return (DATA_SIZE) (decade*5.0);
   }

   return val;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movsd %xmm0, -0x10(%rbp)
movsd 0x14d39f(%rip), %xmm0   # 0x16f140
movsd %xmm0, -0x18(%rbp)
movsd 0x14d39a(%rip), %xmm0   # 0x16f148
ucomisd -0x18(%rbp), %xmm0
jb 0x21e75
movsd -0x10(%rbp), %xmm1
movsd -0x18(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x21dd8
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x21e7f
movsd -0x10(%rbp), %xmm1
movsd 0x14d36b(%rip), %xmm0   # 0x16f150
mulsd -0x18(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x21e04
movsd 0x14d358(%rip), %xmm0   # 0x16f150
mulsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x21e7f
movsd -0x10(%rbp), %xmm1
movsd 0x14d347(%rip), %xmm0   # 0x16f158
mulsd -0x18(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x21e30
movsd 0x14d334(%rip), %xmm0   # 0x16f158
mulsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x21e7f
movsd -0x10(%rbp), %xmm1
movsd 0x14d323(%rip), %xmm0   # 0x16f160
mulsd -0x18(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x21e5c
movsd 0x14d310(%rip), %xmm0   # 0x16f160
mulsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x21e7f
jmp 0x21e5e
movsd 0x14d25a(%rip), %xmm0   # 0x16f0c0
mulsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0x21da6
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: plot_y(double, int, int)
int plot_y(DATA_SIZE val, int last_y, int color)
{
int py;

   // draw a data point on the plot
   py = (int) (val * (DATA_SIZE) VERT_MAJOR);
   if(py >= PLOT_CENTER) {  // point is off the top of the plot area
      off_scale |= 0x01;
      py = PLOT_ROW;
   }
   else if(py <= (-PLOT_CENTER)) {  // point is off the bottom of the plot area
      off_scale |= 0x02;
      py = PLOT_ROW+PLOT_CENTER+PLOT_CENTER;
   }
   else {  // point is in the plot area
      py = (PLOT_ROW+PLOT_CENTER) - py;
   }

   if(plot_dot) dot(PLOT_COL+plot_column,py, color);
   else         line(PLOT_COL+last_plot_col,last_y,  PLOT_COL+plot_column,py, color);

   return py;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd %xmm0, -0x8(%rbp)
movl %edi, -0xc(%rbp)
movl %esi, -0x10(%rbp)
movsd -0x8(%rbp), %xmm0
cvtsi2sdl 0x254efc(%rip), %xmm1 # 0x277a4c
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl 0x254f10(%rip), %eax    # 0x277a74
jl 0x22b81
movzbl 0x257a4a(%rip), %eax    # 0x27a5b7
orl $0x1, %eax
movb %al, 0x257a41(%rip)     # 0x27a5b7
movl 0x254ee0(%rip), %eax    # 0x277a5c
movl %eax, -0x14(%rbp)
jmp 0x22bcb
movl -0x14(%rbp), %eax
xorl %ecx, %ecx
subl 0x254ee8(%rip), %ecx    # 0x277a74
cmpl %ecx, %eax
jg 0x22bb7
movzbl 0x257a20(%rip), %eax    # 0x27a5b7
orl $0x2, %eax
movb %al, 0x257a17(%rip)     # 0x27a5b7
movl 0x254eb6(%rip), %eax    # 0x277a5c
addl 0x254ec8(%rip), %eax    # 0x277a74
addl 0x254ec2(%rip), %eax    # 0x277a74
movl %eax, -0x14(%rbp)
jmp 0x22bc9
movl 0x254e9f(%rip), %eax    # 0x277a5c
addl 0x254eb1(%rip), %eax    # 0x277a74
subl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x22bcb
cmpb $0x0, 0x37cb72(%rip)    # 0x39f744
je 0x22bf0
movl 0x254e86(%rip), %edi    # 0x277a60
addl 0x2579cc(%rip), %edi    # 0x27a5ac
movl -0x14(%rbp), %esi
movl -0x10(%rbp), %eax
movzbl %al, %edx
callq 0x10d70
jmp 0x22c1a
movl 0x254e6a(%rip), %edi    # 0x277a60
addl 0x37cb44(%rip), %edi    # 0x39f740
movl -0xc(%rbp), %esi
movl 0x254e5b(%rip), %edx    # 0x277a60
addl 0x2579a1(%rip), %edx    # 0x27a5ac
movl -0x14(%rbp), %ecx
movl -0x10(%rbp), %eax
movzbl %al, %r8d
callq 0x109c0
movl -0x14(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: config_lla_zoom(int)
void config_lla_zoom(int why)
{
    if(rcvr_type == CS_RCVR) un_zoom = UN_ZOOM;

    change_zoom_config(4);

    if(rcvr_type == CS_RCVR) {
       zoom_screen = 'D';
    }
    else {
       zoom_screen = 'L';
       zoom_fixes = show_fixes;
       show_fixes = 1;
       change_fix_config(show_fixes);
       if(show_fixes && (precision_survey == 0)) {  // set reference position for fix map
          precise_lat = lat;
          precise_lon = lon;
          precise_alt = alt;
          have_precise_lla = (-1);
          if(user_set_ref_lla == 0) {
             ref_lat = lat;
             ref_lon = lon;
             ref_alt = alt;
          }
          cos_factor = cos(ref_lat);
          if(cos_factor == 0.0) cos_factor = 0.001;
       }
       start_3d_fixes(-1, 3);  // !!!!! only if show_fixes == 1?
    }

    config_screen(113);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpq $0x20000, 0x250f3a(%rip) # imm = 0x20000
jne 0x26b82
movl $0x0, 0x344e0e(%rip)    # 0x36b990
movl $0x4, %edi
callq 0x375a0
cmpq $0x20000, 0x250f19(%rip) # imm = 0x20000
jne 0x26ba5
movb $0x44, 0x344de8(%rip)   # 0x36b988
jmp 0x26ca5
movb $0x4c, 0x344ddc(%rip)   # 0x36b988
movzbl 0x373901(%rip), %eax    # 0x39a4b4
movl %eax, 0x344dd3(%rip)    # 0x36b98c
movb $0x1, 0x3738f4(%rip)    # 0x39a4b4
movzbl 0x3738ed(%rip), %edi    # 0x39a4b4
callq 0x52a70
cmpb $0x0, 0x3738e1(%rip)    # 0x39a4b4
je 0x26c96
movzbl 0x346498(%rip), %eax    # 0x36d078
cmpl $0x0, %eax
jne 0x26c96
movsd 0x3455bf(%rip), %xmm0   # 0x36c1b0
movsd %xmm0, 0x3738d7(%rip)   # 0x39a4d0
movsd 0x3455b7(%rip), %xmm0   # 0x36c1b8
movsd %xmm0, 0x3738cf(%rip)   # 0x39a4d8
movsd 0x3455af(%rip), %xmm0   # 0x36c1c0
movsd %xmm0, 0x3738c7(%rip)   # 0x39a4e0
movl $0xffffffff, 0x3738c5(%rip) # imm = 0xFFFFFFFF
cmpl $0x0, 0x3738f6(%rip)    # 0x39a520
jne 0x26c5c
movsd 0x34557c(%rip), %xmm0   # 0x36c1b0
movsd %xmm0, 0x3738b4(%rip)   # 0x39a4f0
movsd 0x345574(%rip), %xmm0   # 0x36c1b8
movsd %xmm0, 0x3738ac(%rip)   # 0x39a4f8
movsd 0x34556c(%rip), %xmm0   # 0x36c1c0
movsd %xmm0, 0x3738a4(%rip)   # 0x39a500
movsd 0x37388c(%rip), %xmm0   # 0x39a4f0
callq 0x96f0
movsd %xmm0, 0x345537(%rip)   # 0x36c1a8
movsd 0x34552f(%rip), %xmm0   # 0x36c1a8
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x26c94
jp 0x26c94
movsd 0x148504(%rip), %xmm0   # 0x16f190
movsd %xmm0, 0x345514(%rip)   # 0x36c1a8
jmp 0x26c96
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl $0x3, %esi
callq 0x159a40
movl $0x71, %edi
callq 0xeaf0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: goto_mark(int)
void goto_mark(int i)
{
long val;

   // center plot window on the marked point
   if((i < 0) || (i >= MAX_MARKER)) return;
   if(mark_q_entry[i] && plot_mag) { // a queue entry is marked
      last_q_place = last_mouse_q;
      val = mark_q_entry[i];
      val -= (((PLOT_WIDTH/2)*view_interval) / (long) plot_mag);  // center point on screen
      if(mark_q_entry[i] < plot_q_out) val += plot_q_size;
      zoom_review(val, REVIEW_QUIET);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jl 0x272a7
cmpl $0xa, -0x4(%rbp)
jl 0x272ac
jmp 0x27354
movslq -0x4(%rbp), %rcx
leaq 0x2531d9(%rip), %rax    # 0x27a490
cmpq $0x0, (%rax,%rcx,8)
je 0x27354
cmpl $0x0, 0x2532e7(%rip)    # 0x27a5b0
je 0x27354
movq 0x253182(%rip), %rax    # 0x27a458
movq %rax, 0x25319b(%rip)    # 0x27a478
movslq -0x4(%rbp), %rcx
leaq 0x2531a8(%rip), %rax    # 0x27a490
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
movl 0x25076e(%rip), %eax    # 0x277a64
movl $0x2, %ecx
cltd
idivl %ecx
cltq
imulq 0x253278(%rip), %rax    # 0x27a580
movslq 0x2532a1(%rip), %rcx    # 0x27a5b0
cqto
idivq %rcx
movq %rax, %rcx
movq -0x10(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x10(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x253163(%rip), %rax    # 0x27a490
movq (%rax,%rcx,8), %rax
cmpq 0x2531d8(%rip), %rax    # 0x27a510
jge 0x27349
movq 0x2531bf(%rip), %rax    # 0x27a500
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x151c0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: kbd_zoom()
void kbd_zoom()
{
u32 val;

   // toggle view interval from 1 sec/pixel to longer view
   if(mouse_plot_valid && plot_mag) {
      if((view_interval == 1L) && (queue_interval > 0)) {
         if(user_view) view_interval = user_view;
////     else if(0 && (plot_q_count < ((24L*60L*60L) / queue_interval))) {  // less than 24 hours of data available
         else if(0) {  // less than 24 hours of data available
            view_all(0);
            mark_q_entry[0] = last_mouse_q;  // marker 0 is mouse click marker
         }
         else {
            val = ((60L*60L)/HORIZ_MAJOR)/queue_interval;  // 1 hr per division
            view_interval = val;
         }
      }
      else {
         day_plot = 0;
         view_interval = 1L;
      }

      mark_q_entry[0] = last_mouse_q;  // marker 0 is mouse click marker

      val = last_mouse_q;
      val -= (((PLOT_WIDTH/2)*view_interval) / (long) plot_mag);  // center point on screen
      if(last_mouse_q < plot_q_out) val += plot_q_size;
      zoom_review(val, REVIEW_BEEP);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
cmpb $0x0, 0x252d89(%rip)    # 0x27a438
je 0x277a5
cmpl $0x0, 0x252ef4(%rip)    # 0x27a5b0
je 0x277a5
cmpq $0x1, 0x252eb6(%rip)    # 0x27a580
jne 0x27719
cmpq $0x0, 0x252ea4(%rip)    # 0x27a578
jle 0x27719
cmpq $0x0, 0x252eba(%rip)    # 0x27a598
je 0x276f0
movq 0x252eb1(%rip), %rax    # 0x27a598
movq %rax, 0x252e92(%rip)    # 0x27a580
jmp 0x27717
movslq 0x25035d(%rip), %rcx    # 0x277a54
movl $0xe10, %eax            # imm = 0xE10
cqto
idivq %rcx
cqto
idivq 0x252e6e(%rip)          # 0x27a578
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq %rax, 0x252e69(%rip)    # 0x27a580
jmp 0x2772e
movl $0x0, 0x250359(%rip)    # 0x277a7c
movq $0x1, 0x252e52(%rip) # 0x27a580
movq 0x252d23(%rip), %rax    # 0x27a458
movq %rax, 0x252d54(%rip)    # 0x27a490
movq 0x252d15(%rip), %rax    # 0x27a458
movl %eax, -0x4(%rbp)
movl 0x250318(%rip), %eax    # 0x277a64
movl $0x2, %ecx
cltd
idivl %ecx
cltq
imulq 0x252e22(%rip), %rax    # 0x27a580
movslq 0x252e4b(%rip), %rcx    # 0x27a5b0
cqto
idivq %rcx
movq %rax, %rcx
movl -0x4(%rbp), %eax
subq %rcx, %rax
movl %eax, -0x4(%rbp)
movq 0x252cdb(%rip), %rax    # 0x27a458
cmpq 0x252d8c(%rip), %rax    # 0x27a510
jge 0x27796
movq 0x252d73(%rip), %rcx    # 0x27a500
movl -0x4(%rbp), %eax
addq %rcx, %rax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
movl %eax, %edi
movl $0x1, %esi
callq 0x151c0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: plot_review(long)
void plot_review(long i)
{
   // start viewing queue data at point *i*
   if(i <= 0) review_home = 1;
   else       review_home = 0;

   if(i >= plot_q_count) {  // we are past the end of the data, back up a minor tick
      while((i >= plot_q_count) && plot_mag) {
         i = plot_q_count - (HORIZ_MINOR*view_interval) / (long) plot_mag;
      }
      if(i < 0) i = 0;
      BEEP(8);
   }
   else if(i < 0) {  // we are at the start of the data in the queue
      i = 0;
      BEEP(9);
   }

   review = i;
   review_mode = 1;
   plot_start = review;

   draw_plot(REFRESH_SCREEN);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jg 0x2891c
movb $0x1, 0x273607(%rip)    # 0x29bf21
jmp 0x28923
movb $0x0, 0x2735fe(%rip)    # 0x29bf21
movq -0x8(%rbp), %rax
cmpq 0x251bea(%rip), %rax    # 0x27a518
jl 0x289ab
jmp 0x28932
movq -0x8(%rbp), %rcx
xorl %eax, %eax
cmpq 0x251bd9(%rip), %rcx    # 0x27a518
movb %al, -0x9(%rbp)
jl 0x28951
cmpl $0x0, 0x251c65(%rip)    # 0x27a5b0
setne %al
movb %al, -0x9(%rbp)
movb -0x9(%rbp), %al
testb $0x1, %al
jne 0x2895a
jmp 0x28990
movq 0x251bb7(%rip), %rax    # 0x27a518
movq %rax, -0x18(%rbp)
movslq 0x24f0ec(%rip), %rax    # 0x277a58
imulq 0x251c0c(%rip), %rax    # 0x27a580
movslq 0x251c35(%rip), %rcx    # 0x27a5b0
cqto
idivq %rcx
movq %rax, %rcx
movq -0x18(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x8(%rbp)
jmp 0x28932
cmpq $0x0, -0x8(%rbp)
jge 0x2899f
movq $0x0, -0x8(%rbp)
movl $0x8, %edi
callq 0x9ec0
jmp 0x289c6
cmpq $0x0, -0x8(%rbp)
jge 0x289c4
movq $0x0, -0x8(%rbp)
movl $0x9, %edi
callq 0x9ec0
jmp 0x289c6
movq -0x8(%rbp), %rax
movq %rax, 0x273557(%rip)    # 0x29bf28
movb $0x1, 0x273548(%rip)    # 0x29bf20
movq 0x273549(%rip), %rax    # 0x29bf28
movq %rax, 0x251b42(%rip)    # 0x27a528
movl $0x1, %edi
callq 0x24e80
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: new_view()
void new_view()
{
   // set up display for the new view parameters
   if((view_interval == 1L) && (queue_interval > 0) && nav_rate) {
      view_interval = ((60L*60L)/HORIZ_MAJOR)/queue_interval;  // 1 hr per division
      view_interval = (int) (((float) view_interval) / nav_rate);
   }
   else {
      day_plot = 0;
      view_interval = 1L;
      config_screen(8);
   }
   if(view_interval <= 0L) view_interval = 1L;
   user_view = 0;

   redraw_screen();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpq $0x1, 0x251604(%rip)    # 0x27a580
jne 0x28fe2
cmpq $0x0, 0x2515f2(%rip)    # 0x27a578
jle 0x28fe2
movsd 0x2515a8(%rip), %xmm0   # 0x27a538
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x28f9d
jp 0x28f9d
jmp 0x28fe2
movslq 0x24eab0(%rip), %rcx    # 0x277a54
movl $0xe10, %eax            # imm = 0xE10
cqto
idivq %rcx
cqto
idivq 0x2515c1(%rip)          # 0x27a578
movq %rax, 0x2515c2(%rip)    # 0x27a580
cvtsi2ssq 0x2515b9(%rip), %xmm0 # 0x27a580
cvtss2sd %xmm0, %xmm0
divsd 0x251565(%rip), %xmm0   # 0x27a538
cvttsd2si %xmm0, %eax
cltq
movq %rax, 0x2515a0(%rip)    # 0x27a580
jmp 0x29001
movl $0x0, 0x24ea90(%rip)    # 0x277a7c
movq $0x1, 0x251589(%rip) # 0x27a580
movl $0x8, %edi
callq 0xeaf0
cmpq $0x0, 0x251577(%rip)    # 0x27a580
jg 0x29016
movq $0x1, 0x25156a(%rip) # 0x27a580
movq $0x0, 0x251577(%rip) # 0x27a598
callq 0x12ae0
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: adjust_view()
void adjust_view()
{
   // configure screen for the view the user specified on the command line
   if(set_view == 1) {
      config_screen(9);
      day_plot = SCREEN_WIDTH / HORIZ_MAJOR;

      if((view_interval == 1L) && (queue_interval > 0)) {
         view_interval = ((60L*60L)/HORIZ_MAJOR)/queue_interval;  // 1 hr per division
      }
      else {
         day_plot = 0;
         view_interval = 1L;
         config_screen(10);
      }
      if(view_interval <= 0L) view_interval = 1L;
      user_view = 0;
//    user_view = day_plot;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movzbl 0x25156c(%rip), %eax    # 0x27a5a7
cmpl $0x1, %eax
jne 0x290d7
movl $0x9, %edi
callq 0xeaf0
movl 0x24e98c(%rip), %eax    # 0x2779e0
cltd
idivl 0x24e9f9(%rip)          # 0x277a54
movl %eax, 0x24ea1b(%rip)    # 0x277a7c
cmpq $0x1, 0x251517(%rip)    # 0x27a580
jne 0x29098
cmpq $0x0, 0x251505(%rip)    # 0x27a578
jle 0x29098
movslq 0x24e9d8(%rip), %rcx    # 0x277a54
movl $0xe10, %eax            # imm = 0xE10
cqto
idivq %rcx
cqto
idivq 0x2514e9(%rip)          # 0x27a578
movq %rax, 0x2514ea(%rip)    # 0x27a580
jmp 0x290b7
movl $0x0, 0x24e9da(%rip)    # 0x277a7c
movq $0x1, 0x2514d3(%rip) # 0x27a580
movl $0xa, %edi
callq 0xeaf0
cmpq $0x0, 0x2514c1(%rip)    # 0x27a580
jg 0x290cc
movq $0x1, 0x2514b4(%rip) # 0x27a580
movq $0x0, 0x2514c1(%rip) # 0x27a598
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: key_wait(char*)
void key_wait(char *s)
{
// debug routine - display message and wait for key
strcpy(plot_title, s);
title_type = OTHER;
show_title();
refresh_page();
BEEP(14);

   while(1) {
      serve_os_queue();

      if(zoom_screen == 'K') get_mouse_info();
      if(KBHIT()) break;
   }
   GETCH();
BEEP(15);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
leaq 0x374919(%rip), %rdi    # 0x39da30
callq 0x9350
movl $0x3, 0x375386(%rip)    # 0x39e4ac
callq 0x21820
callq 0xb0d0
movl $0xe, %edi
callq 0x9ec0
callq 0x290e0
movzbl 0x342842(%rip), %eax    # 0x36b988
cmpl $0x4b, %eax
jne 0x29150
callq 0x28690
callq 0xf3d0
cmpl $0x0, %eax
je 0x2915c
jmp 0x2915e
jmp 0x2913a
callq 0xf3f0
movl $0xf, %edi
callq 0x9ec0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: wait_for_key(int)
void wait_for_key(int serve)
{
     if(SER_AVAIL_RCVR) serve = 0;  // prevent possible lockup
//   if(POLLED_RCVR) serve = 0;  // prevent possible lockup

   if(timer_serve) {
      return; // don't let windows timer access this routine
   }

   first_key = ' ';  // make sure plot area is not disturbed
   while(break_flag == 0) {
      serve_os_queue();

if((zoom_screen == 'K') || showing_cmd_help) get_mouse_info();
      if(KBHIT()) break;

      if(serve && (com[RCVR_PORT].process_com || sim_file || (rcvr_type == NO_RCVR) || (rcvr_type == TIDE_RCVR))) {
         get_pending_gps(0);   //!!!! possible recursion
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movabsq $0x101b465000, %rax     # imm = 0x101B465000
andq 0x24e914(%rip), %rax    # 0x277ab0
cmpq $0x0, %rax
je 0x291a9
movl $0x0, -0x4(%rbp)
movl 0x251249(%rip), %eax    # 0x27a3f8
cmpl $0x0, %eax
je 0x291b6
jmp 0x29230
movl $0x20, 0x274f78(%rip)   # 0x29e138
cmpl $0x0, 0x36d03d(%rip)    # 0x396204
jne 0x29230
callq 0x290e0
movzbl 0x3427b3(%rip), %eax    # 0x36b988
cmpl $0x4b, %eax
je 0x291e3
cmpl $0x0, 0x37661b(%rip)    # 0x39f7fc
je 0x291e8
callq 0x28690
callq 0xf3d0
cmpl $0x0, %eax
je 0x291f4
jmp 0x29230
cmpl $0x0, -0x4(%rbp)
je 0x2922e
cmpl $0x0, 0x35bcb3(%rip)    # 0x384eb4
jne 0x29227
cmpq $0x0, 0x274395(%rip)    # 0x29d5a0
jne 0x29227
cmpq $0x400, 0x24e898(%rip) # imm = 0x400
je 0x29227
cmpq $0x800000, 0x24e88b(%rip) # imm = 0x800000
jne 0x2922e
xorl %edi, %edi
callq 0x29240
jmp 0x291c0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: get_pending_gps(int)
void get_pending_gps(int why)
{
u08 old_disable_kbd;

   // process all the data currently in the com port input buffers
   old_disable_kbd = disable_kbd;
   disable_kbd = 2; // (so that do_kbd() won't do anything when it's called by WM_CHAR during get_pending_gps())
   system_busy = 1; // we are doing other things besides waiting for serial data

   while((break_flag == 0) && (take_a_dump == 0) && (com[RCVR_PORT].process_com || sim_file || ((rcvr_type == NO_RCVR) || (rcvr_type == TIDE_RCVR))) && SERIAL_DATA_AVAILABLE(RCVR_PORT)) {
      serve_os_queue();

      get_rcvr_message();
      process_extra_ports(2);

      if(NO_PEND_LOOP) break;
   }
   check_com_timer(RCVR_PORT);

   disable_kbd = old_disable_kbd;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movb 0x2511ab(%rip), %al     # 0x27a3fc
movb %al, -0x5(%rbp)
movb $0x2, 0x2511a1(%rip)    # 0x27a3fc
movb $0x1, 0x36cfa6(%rip)    # 0x396208
xorl %eax, %eax
cmpl $0x0, 0x36cf99(%rip)    # 0x396204
movb %al, -0x6(%rbp)
jne 0x292c3
xorl %eax, %eax
cmpl $0x0, 0x274eb7(%rip)    # 0x29e130
movb %al, -0x6(%rbp)
jne 0x292c3
cmpl $0x0, 0x35bc2f(%rip)    # 0x384eb4
jne 0x292b0
cmpq $0x0, 0x274311(%rip)    # 0x29d5a0
jne 0x292b0
cmpq $0x400, 0x24e814(%rip) # imm = 0x400
je 0x292b0
xorl %eax, %eax
cmpq $0x800000, 0x24e805(%rip) # imm = 0x800000
movb %al, -0x6(%rbp)
jne 0x292c3
movl $0xa, %edi
callq 0xcad0
cmpl $0x0, %eax
setne %al
movb %al, -0x6(%rbp)
movb -0x6(%rbp), %al
testb $0x1, %al
jne 0x292cc
jmp 0x29317
callq 0x290e0
callq 0x109470
movl $0x2, %edi
callq 0x2b510
cmpq $0x1000, 0x24e7c5(%rip) # imm = 0x1000
jne 0x292f6
cmpl $0x4e, 0x250ed4(%rip)   # 0x27a1c8
je 0x29310
cmpq $0x4000, 0x24e7af(%rip) # imm = 0x4000
je 0x29310
cmpq $0x40000, 0x24e7a2(%rip) # imm = 0x40000
jne 0x29312
jmp 0x29317
jmp 0x29262
movl $0xa, %edi
callq 0x2b610
movb -0x5(%rbp), %al
movb %al, 0x2510d2(%rip)     # 0x27a3fc
addq $0x10, %rsp
popq %rbp
retq
// File: jkingan[P]ladyheather/heather.cpp
// Function: abort_wakeup()
void abort_wakeup()
{
   // see if user says to stop the receiver wakeup loop
   serve_os_queue();

   if(KBHIT()) {
      if(GETCH() == ESC_CHAR) {
         error_exit(6666, "User pressed ESC during abort_wakeup()");
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
callq 0x290e0
callq 0xf3d0
cmpl $0x0, %eax
je 0x29360
callq 0xf3f0
cmpl $0x1b, %eax
jne 0x2935e
movl $0x1a0a, %edi           # imm = 0x1A0A
leaq 0x147889(%rip), %rsi    # 0x170be2
callq 0xc050
jmp 0x29360
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heather.cpp
// Function: close_script(unsigned char)
void close_script(u08 close_all)
{
int i;

   // close script file and un-nest a level if script is nested

   if(script_file == 0) return;

   if(close_all) {
      for(i=0; i<script_nest; i++) fclose(scripts[i].file);
      script_file = 0;
      script_pause = 0;
      script_nest = 0;
   }
   else if(script_nest) {
      fclose(script_file);
      --script_nest;
      strcpy(script_name, scripts[script_nest].name);
      script_file   = scripts[script_nest].file;
      script_line   = scripts[script_nest].line;
      script_col    = scripts[script_nest].col;
      script_err    = scripts[script_nest].err;
      script_fault  = scripts[script_nest].fault;
      script_pause  = scripts[script_nest].pause;
   }
   else {
     fclose(script_file);
     script_file  = 0;
     script_pause = 0;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb %dil, %al
movb %al, -0x1(%rbp)
cmpq $0x0, 0x274ce2(%rip)    # 0x29e098
jne 0x293bd
jmp 0x2956a
cmpb $0x0, -0x1(%rbp)
je 0x29422
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
cmpl 0x274cc1(%rip), %eax    # 0x29e094
jge 0x29401
movslq -0x8(%rbp), %rcx
leaq 0x274990(%rip), %rax    # 0x29dd70
imulq $0xa8, %rcx, %rcx
addq %rcx, %rax
movq 0x88(%rax), %rdi
callq 0x9380
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x293ca
movq $0x0, 0x274c8c(%rip) # 0x29e098
movb $0x0, 0x274c9d(%rip)    # 0x29e0b0
movl $0x0, 0x274c77(%rip)    # 0x29e094
jmp 0x2956a
cmpl $0x0, 0x274c6b(%rip)    # 0x29e094
je 0x2954a
movq 0x274c62(%rip), %rdi    # 0x29e098
callq 0x9380
movl 0x274c53(%rip), %eax    # 0x29e094
addl $-0x1, %eax
movl %eax, 0x274c4a(%rip)    # 0x29e094
movslq 0x274c43(%rip), %rax    # 0x29e094
leaq 0x274918(%rip), %rsi    # 0x29dd70
imulq $0xa8, %rax, %rax
addq %rax, %rsi
leaq 0x274ba7(%rip), %rdi    # 0x29e010
callq 0x9350
movslq 0x274c1f(%rip), %rcx    # 0x29e094
leaq 0x2748f4(%rip), %rax    # 0x29dd70
imulq $0xa8, %rcx, %rcx
addq %rcx, %rax
movq 0x88(%rax), %rax
movq %rax, 0x274c04(%rip)    # 0x29e098
movslq 0x274bf9(%rip), %rcx    # 0x29e094
leaq 0x2748ce(%rip), %rax    # 0x29dd70
imulq $0xa8, %rcx, %rcx
addq %rcx, %rax
movl 0x90(%rax), %eax
movl %eax, 0x274be8(%rip)    # 0x29e0a0
movslq 0x274bd5(%rip), %rcx    # 0x29e094
leaq 0x2748aa(%rip), %rax    # 0x29dd70
imulq $0xa8, %rcx, %rcx
addq %rcx, %rax
movl 0x94(%rax), %eax
movl %eax, 0x274bc8(%rip)    # 0x29e0a4
movslq 0x274bb1(%rip), %rcx    # 0x29e094
leaq 0x274886(%rip), %rax    # 0x29dd70
imulq $0xa8, %rcx, %rcx
addq %rcx, %rax
movl 0x98(%rax), %eax
movl %eax, 0x274ba8(%rip)    # 0x29e0a8
movslq 0x274b8d(%rip), %rcx    # 0x29e094
leaq 0x274862(%rip), %rax    # 0x29dd70
imulq $0xa8, %rcx, %rcx
addq %rcx, %rax
movl 0x9c(%rax), %eax
movl %eax, 0x274b88(%rip)    # 0x29e0ac
movslq 0x274b69(%rip), %rcx    # 0x29e094
leaq 0x27483e(%rip), %rax    # 0x29dd70
imulq $0xa8, %rcx, %rcx
addq %rcx, %rax
movb 0xa0(%rax), %al
movb %al, 0x274b68(%rip)     # 0x29e0b0
jmp 0x29568
movq 0x274b47(%rip), %rdi    # 0x29e098
callq 0x9380
movq $0x0, 0x274b37(%rip) # 0x29e098
movb $0x0, 0x274b48(%rip)    # 0x29e0b0
jmp 0x2956a
addq $0x10, %rsp
popq %rbp
retq
// File: jkingan[P]ladyheather/heather.cpp
// Function: get_script()
int get_script()
{
int i;

   // read a simulated keystroke from a script file
   i = fgetc(script_file);
   if(i < 0) {  // end of file
      close_script(0);
      return 0;
   }
   else if((i == 0x00) || (i == 0x01)) { // two byte cursor char
      i = fgetc(script_file);
      if(i < 0) {
         close_script(0);
         return 0;
      }
      i += 0x0100;
   }
   else if((skip_comment == 0) && (i == '~')) { // switch input to keyboard
      script_pause = 1;
      return 0;
   }

   if(i == 0x0A) i = 0x0D; // CR and LF are the same
   if(i == 0x0D) {         // end of line
      ++script_line;
      script_col = 0;
      skip_comment = 0;
   }
   else ++script_col;

   if(skip_comment) return 0;
   return i;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq 0x274939(%rip), %rdi    # 0x29e098
callq 0x95d0
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x8(%rbp)
jge 0x29780
xorl %edi, %edi
callq 0x293a0
movl $0x0, -0x4(%rbp)
jmp 0x29843
cmpl $0x0, -0x8(%rbp)
je 0x2978c
cmpl $0x1, -0x8(%rbp)
jne 0x297c1
movq 0x274905(%rip), %rdi    # 0x29e098
callq 0x95d0
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x8(%rbp)
jge 0x297b4
xorl %edi, %edi
callq 0x293a0
movl $0x0, -0x4(%rbp)
jmp 0x29843
movl -0x8(%rbp), %eax
addl $0x100, %eax            # imm = 0x100
movl %eax, -0x8(%rbp)
jmp 0x297e5
movzbl 0x2748e9(%rip), %eax    # 0x29e0b1
cmpl $0x0, %eax
jne 0x297e3
cmpl $0x7e, -0x8(%rbp)
jne 0x297e3
movb $0x1, 0x2748d6(%rip)    # 0x29e0b0
movl $0x0, -0x4(%rbp)
jmp 0x29843
jmp 0x297e5
jmp 0x297e7
cmpl $0xa, -0x8(%rbp)
jne 0x297f4
movl $0xd, -0x8(%rbp)
cmpl $0xd, -0x8(%rbp)
jne 0x2981c
movl 0x2748a0(%rip), %eax    # 0x29e0a0
addl $0x1, %eax
movl %eax, 0x274897(%rip)    # 0x29e0a0
movl $0x0, 0x274891(%rip)    # 0x29e0a4
movb $0x0, 0x274897(%rip)    # 0x29e0b1
jmp 0x2982b
movl 0x274882(%rip), %eax    # 0x29e0a4
addl $0x1, %eax
movl %eax, 0x274879(%rip)    # 0x29e0a4
cmpb $0x0, 0x27487f(%rip)    # 0x29e0b1
je 0x2983d
movl $0x0, -0x4(%rbp)
jmp 0x29843
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)