LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_tm4_cmd(char*)
void send_tm4_cmd(char *s)
{
   // Spectrum TM4

   if(s == 0) return;

   if(log_file && (log_stream & LOG_PACKET_START)) {
      fprintf(log_file, "\nSend TM4 cmd: %s\n", s);
   }
if(debug_file) fprintf(debug_file, "\nSend TM4 cmd: %s\n", s);

   sendout(RCVR_PORT, '#', ADD_CHAR);
   if(s[0] == '#')    send_nmea_string(&s[1], 0);
   else               send_nmea_string(&s[0], 0);
   sendout(RCVR_PORT, 0x0D, ADD_CHAR);
   sendout(RCVR_PORT, 0x0A, EOM);

   if(TM4_SLEEP) Sleep(TM4_SLEEP);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x834a8
jmp 0x83570
leaq 0x21a091(%rip), %rax    # 0x29d540
cmpq $0x0, (%rax)
je 0x834e2
leaq 0x21a134(%rip), %rax    # 0x29d5f0
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x834e2
leaq 0x21a073(%rip), %rax    # 0x29d540
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
leaq 0x1002b3(%rip), %rsi    # 0x18378e
movb $0x0, %al
callq 0x9550
leaq 0x21a087(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0x8350b
leaq 0x21a07a(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
leaq 0x10028a(%rip), %rsi    # 0x18378e
movb $0x0, %al
callq 0x9550
movl $0xa, %edi
movl $0x23, %esi
xorl %edx, %edx
callq 0xd160
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x83539
movq -0x8(%rbp), %rdi
addq $0x1, %rdi
xorl %esi, %esi
callq 0x82750
jmp 0x83544
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x82750
movl $0xa, %edi
movl $0xd, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %esi
movl $0x1, %edx
movl %esi, %edi
callq 0xd160
movl $0x32, %edi
callq 0xb8b0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_true_cmd(char*)
void send_true_cmd(char *s)
{
int i, j;

   if(s == 0) return;

   if(s[0] != '$') {
      sendout(RCVR_PORT, '$', ADD_CHAR);
   }

   j = strlen(s);
   for(i=0; i<j; i++) send_byte((u08) s[i]);

   sendout(RCVR_PORT, 0x0D, ADD_CHAR);
   sendout(RCVR_PORT, 0x0A, EOM);

   if(sim_file == 0) Sleep(50);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x83598
jmp 0x83625
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x24, %eax
je 0x835b5
movl $0xa, %edi
movl $0x24, %esi
xorl %edx, %edx
callq 0xd160
movq -0x8(%rbp), %rdi
callq 0x9120
movl %eax, -0x10(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0x835ec
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movzbl (%rax,%rcx), %edi
callq 0x7b210
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x835c8
movl $0xa, %edi
movl $0xd, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %esi
movl $0x1, %edx
movl %esi, %edi
callq 0xd160
leaq 0x219f8b(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
jne 0x83625
movl $0x32, %edi
callq 0xb8b0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_z12_cmd(char*)
void send_z12_cmd(char *s)
{
   // Ashtech Z12

   if(s == 0) return;

   if(log_file && (log_stream & LOG_PACKET_START)) {
      fprintf(log_file, "\nSend Z12 cmd: %s\n", s);
   }
if(debug_file) fprintf(debug_file, "\nSend Z12 cmd: %s\n", s);

   send_nmea_start();
   if(s[0] == '$')    send_nmea_string(&s[1], 0);
   else               send_nmea_string(&s[0], 0);
   if(strchr(s, '*')) send_nmea_end(0);
   else               send_nmea_end(1);

   if(Z12_SLEEP) Sleep(Z12_SLEEP);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x83648
jmp 0x83709
leaq 0x219ef1(%rip), %rax    # 0x29d540
cmpq $0x0, (%rax)
je 0x83682
leaq 0x219f94(%rip), %rax    # 0x29d5f0
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x83682
leaq 0x219ed3(%rip), %rax    # 0x29d540
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
leaq 0x100100(%rip), %rsi    # 0x18377b
movb $0x0, %al
callq 0x9550
leaq 0x219ee7(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0x836ab
leaq 0x219eda(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
leaq 0x1000d7(%rip), %rsi    # 0x18377b
movb $0x0, %al
callq 0x9550
callq 0x83880
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x24, %eax
jne 0x836cd
movq -0x8(%rbp), %rdi
addq $0x1, %rdi
xorl %esi, %esi
callq 0x82750
jmp 0x836d8
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x82750
movq -0x8(%rbp), %rdi
movl $0x2a, %esi
callq 0x9100
cmpq $0x0, %rax
je 0x836f5
xorl %edi, %edi
callq 0x838a0
jmp 0x836ff
movl $0x1, %edi
callq 0x838a0
movl $0x32, %edi
callq 0xb8b0
addq $0x10, %rsp
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_ubx_start(unsigned short, int)
void send_ubx_start(u16 ubx_cmd, int len)
{
   if(log_file && (log_stream & LOG_PACKET_START)) {
      fprintf(log_file, "\nSend UBX start %04X  len:%d+6\n", ubx_cmd, len);
   }
   if(1 && debug_file) {  //plugh
      fprintf(debug_file, "Sent UBX start %04X  len:%d+6\n", ubx_cmd, len);
   }

   // start sending a ublox message
   sendout(RCVR_PORT, 0xB5, ADD_CHAR);  // send message start code
   sendout(RCVR_PORT, 0x62, ADD_CHAR);
   ubx_txa = ubx_txb = 0; // init transmit checksum bytes

   send_byte((ubx_cmd >> 8) & 0xFF);  // send message class
   send_byte(ubx_cmd & 0xFF);         // send message identifier

   send_byte((len % 256) & 0xFF);     // send message length
   send_byte((len/256) & 0xFF);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
leaq 0x219e17(%rip), %rax    # 0x29d540
cmpq $0x0, (%rax)
je 0x8375f
leaq 0x219eba(%rip), %rax    # 0x29d5f0
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x8375f
leaq 0x219df9(%rip), %rax    # 0x29d540
movq (%rax), %rdi
movzwl -0x2(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0xfffd0(%rip), %rsi     # 0x183728
movb $0x0, %al
callq 0x9550
leaq 0x219e0a(%rip), %rax    # 0x29d570
cmpq $0x0, (%rax)
je 0x8378b
leaq 0x219dfd(%rip), %rax    # 0x29d570
movq (%rax), %rdi
movzwl -0x2(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0xfffc4(%rip), %rsi     # 0x183748
movb $0x0, %al
callq 0x9550
movl $0xa, %edi
movl $0xb5, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %edi
movl $0x62, %esi
xorl %edx, %edx
callq 0xd160
movb $0x0, 0x3484a5(%rip)    # 0x3cbc59
movb $0x0, 0x34849d(%rip)    # 0x3cbc58
movzwl -0x2(%rbp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
movzwl -0x2(%rbp), %eax
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
movl -0x8(%rbp), %eax
movl $0x100, %ecx            # imm = 0x100
cltd
idivl %ecx
andl $0xff, %edx
movb %dl, %al
movzbl %al, %edi
callq 0x7b210
movl -0x8(%rbp), %eax
movl $0x100, %ecx            # imm = 0x100
cltd
idivl %ecx
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_ubx_end()
void send_ubx_end()
{
u08 a,b;

   // end the ublox message
   a = ubx_txa;  // transmitted message checksum
   b = ubx_txb;
   sendout(RCVR_PORT, a, ADD_CHAR);  // send checksum
   sendout(RCVR_PORT, b, EOM);

   if(sim_file == 0) Sleep(50);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb 0x34842a(%rip), %al     # 0x3cbc58
movb %al, -0x1(%rbp)
movb 0x348422(%rip), %al     # 0x3cbc59
movb %al, -0x2(%rbp)
movl $0xa, %edi
xorl %edx, %edx
movzbl -0x1(%rbp), %esi
callq 0xd160
movl $0xa, %edi
movl $0x1, %edx
movzbl -0x2(%rbp), %esi
callq 0xd160
leaq 0x219d3c(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
jne 0x83874
movl $0x32, %edi
callq 0xb8b0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_nmea_end(int)
void send_nmea_end(int do_cksum)
{
char cksum[10];

   sprintf(cksum, "%02X", (nmea_tx_cksum & 0xFF));

   if(rcvr_type == ZYFER_RCVR) {
      sendout(RCVR_PORT, '*', ADD_CHAR);
   }
   else if(do_cksum) {
      sendout(RCVR_PORT, '*', ADD_CHAR);
      sendout(RCVR_PORT, cksum[0], ADD_CHAR);
      sendout(RCVR_PORT, cksum[1], ADD_CHAR);
   }
   sendout(RCVR_PORT, 0x0D, ADD_CHAR);
   sendout(RCVR_PORT, 0x0A, EOM);

   if(sim_file == 0) Sleep(50);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
leaq -0xe(%rbp), %rdi
movzbl 0x3483e0(%rip), %edx    # 0x3cbc96
andl $0xff, %edx
leaq 0x10a5c3(%rip), %rsi    # 0x18de86
movb $0x0, %al
callq 0x9060
leaq 0x1f41df(%rip), %rax    # 0x277ab0
cmpq $0x100000, (%rax)       # imm = 0x100000
jne 0x838ed
movl $0xa, %edi
movl $0x2a, %esi
xorl %edx, %edx
callq 0xd160
jmp 0x83926
cmpl $0x0, -0x4(%rbp)
je 0x83924
movl $0xa, %edi
movl $0x2a, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %edi
xorl %edx, %edx
movzbl -0xe(%rbp), %esi
callq 0xd160
movl $0xa, %edi
xorl %edx, %edx
movzbl -0xd(%rbp), %esi
callq 0xd160
jmp 0x83926
movl $0xa, %edi
movl $0xd, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %esi
movl $0x1, %edx
movl %esi, %edi
callq 0xd160
leaq 0x219c51(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
jne 0x8395f
movl $0x32, %edi
callq 0xb8b0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_fan_cmd(char*)
void send_fan_cmd(char *s)
{
int i, j;
unsigned port;

   // send a command to the temperature control device

   if(s == 0) return;
   port = fan_port;

   if((com[port].process_com == 0) || (com[port].com_running <= 0)) {  // fan port not open
      if(enviro_mode() && (enviro_type == HEATHER_ENVIRO)) {  // Heather environmental sensor in use
         if(rcvr_type == THERMO_RCVR) port = RCVR_PORT;
         else                         port = THERMO_PORT;
         if((com[port].process_com == 0) || (com[port].com_running <= 0)) return;  // sensor not running
      }
      else return;
   }

   j = strlen(s);
   for(i=0; i<j; i++) sendout(port,(u08) s[i], ADD_CHAR);
   sendout(port, 0x0D, ADD_CHAR);
   sendout(port, 0x0A, EOM);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x83998
jmp 0x83abb
leaq 0x2e9b0d(%rip), %rax    # 0x36d4ac
movl (%rax), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
leaq 0x2e9b10(%rip), %rax    # 0x36d4c0
imulq $0x2260, %rcx, %rcx     # imm = 0x2260
addq %rcx, %rax
cmpl $0x0, 0x2234(%rax)
je 0x839e2
movl -0x14(%rbp), %eax
movl %eax, %ecx
leaq 0x2e9af1(%rip), %rax    # 0x36d4c0
imulq $0x2260, %rcx, %rcx     # imm = 0x2260
addq %rcx, %rax
cmpl $0x0, 0x2230(%rax)
jg 0x83a5e
callq 0x83ad0
cmpl $0x0, %eax
je 0x83a5a
leaq 0x1f4101(%rip), %rax    # 0x277af4
cmpl $0x2, (%rax)
jne 0x83a5a
leaq 0x1f40b1(%rip), %rax    # 0x277ab0
cmpq $0x80000, (%rax)        # imm = 0x80000
jne 0x83a11
movl $0xa, -0x14(%rbp)
jmp 0x83a18
movl $0xf, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
leaq 0x2e9a9c(%rip), %rax    # 0x36d4c0
imulq $0x2260, %rcx, %rcx     # imm = 0x2260
addq %rcx, %rax
cmpl $0x0, 0x2234(%rax)
je 0x83a56
movl -0x14(%rbp), %eax
movl %eax, %ecx
leaq 0x2e9a7d(%rip), %rax    # 0x36d4c0
imulq $0x2260, %rcx, %rcx     # imm = 0x2260
addq %rcx, %rax
cmpl $0x0, 0x2230(%rax)
jg 0x83a58
jmp 0x83abb
jmp 0x83a5c
jmp 0x83abb
jmp 0x83a5e
movq -0x8(%rbp), %rdi
callq 0x9120
movl %eax, -0x10(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0x83a9a
movl -0x14(%rbp), %edi
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
xorl %edx, %edx
movzbl (%rax,%rcx), %esi
callq 0xd160
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x83a71
movl -0x14(%rbp), %edi
movl $0xd, %esi
xorl %edx, %edx
callq 0xd160
movl -0x14(%rbp), %edi
movl $0xa, %esi
movl $0x1, %edx
callq 0xd160
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: enviro_mode()
int enviro_mode()
{
int i;

   // returns true if external envidonmental sensor in use
   
   i = 0x00;
   if(rcvr_type == THERMO_RCVR) i |= 0x01;
   if(enviro_port_open()) i |= 0x02;
// if(com[THERMO_PORT].port_used > 0) i |= 0x04;  //lfs
   if(sim_file_read && (com[THERMO_PORT].port_used)) i |= 0x80;
   return i;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x0, -0x4(%rbp)
leaq 0x1f3fca(%rip), %rax    # 0x277ab0
cmpq $0x80000, (%rax)        # imm = 0x80000
jne 0x83af8
movl -0x4(%rbp), %eax
orl $0x1, %eax
movl %eax, -0x4(%rbp)
callq 0xe8440
cmpl $0x0, %eax
je 0x83b0b
movl -0x4(%rbp), %eax
orl $0x2, %eax
movl %eax, -0x4(%rbp)
leaq 0x1fecda(%rip), %rax    # 0x2827ec
cmpl $0x0, (%rax)
je 0x83b32
leaq 0x2e99a2(%rip), %rax    # 0x36d4c0
cmpl $0x0, 0x225cc(%rax)
je 0x83b32
movl -0x4(%rbp), %eax
orl $0x80, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_sirf_start(unsigned short, int)
void send_sirf_start(u16 sirf_cmd, int len)
{
   // start sending a Sirf message
   if(log_file && (log_stream & LOG_PACKET_START)) {
      fprintf(log_file, "\nSend sirf start %04X  len:%d\n", sirf_cmd, len);
   }

   sendout(RCVR_PORT, 0xA0, ADD_CHAR); // send message start code
   sendout(RCVR_PORT, 0xA2, ADD_CHAR);

   send_byte((len / 256) & 0xFF);  // send message length
   send_byte((len % 256) & 0xFF); 

   sirf_tx_cksum = 0; // init transmit checksum bytes

   send_byte(sirf_cmd & 0xFF);  // send message id
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
leaq 0x219617(%rip), %rax    # 0x29d540
cmpq $0x0, (%rax)
je 0x83f5f
leaq 0x2196ba(%rip), %rax    # 0x29d5f0
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x83f5f
leaq 0x2195f9(%rip), %rax    # 0x29d540
movq (%rax), %rdi
movzwl -0x2(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0x103bdd(%rip), %rsi    # 0x187b35
movb $0x0, %al
callq 0x9550
movl $0xa, %edi
movl $0xa0, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %edi
movl $0xa2, %esi
xorl %edx, %edx
callq 0xd160
movl -0x8(%rbp), %eax
movl $0x100, %ecx            # imm = 0x100
cltd
idivl %ecx
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
movl -0x8(%rbp), %eax
movl $0x100, %ecx            # imm = 0x100
cltd
idivl %ecx
andl $0xff, %edx
movb %dl, %al
movzbl %al, %edi
callq 0x7b210
movw $0x0, 0x347d17(%rip)    # 0x3cbcd4
movzwl -0x2(%rbp), %eax
andl $0xff, %eax
movzbl %al, %edi
callq 0x7b210
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_sirf_end()
void send_sirf_end()
{
u16 cksum;

   // end the sirf message
   cksum = sirf_tx_cksum;
   cksum &= 0x7FFF;
   sendout(RCVR_PORT, cksum / 256, ADD_CHAR);   // send checksum
   sendout(RCVR_PORT, (cksum % 256) & 0xFF, ADD_CHAR);

   sendout(RCVR_PORT, 0xB0, ADD_CHAR);
   sendout(RCVR_PORT, 0xB3, EOM);

   if(sim_file == 0) Sleep(100); // rate limit send messages gggg
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw 0x347ce5(%rip), %ax     # 0x3cbcd4
movw %ax, -0x2(%rbp)
movzwl -0x2(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movw %ax, -0x2(%rbp)
movzwl -0x2(%rbp), %eax
movl $0x100, %ecx            # imm = 0x100
cltd
idivl %ecx
movl $0xa, %edi
xorl %edx, %edx
movzbl %al, %esi
callq 0xd160
movzwl -0x2(%rbp), %eax
movl $0x100, %ecx            # imm = 0x100
cltd
idivl %ecx
andl $0xff, %edx
movb %dl, %al
movl $0xa, %edi
xorl %edx, %edx
movzbl %al, %esi
callq 0xd160
movl $0xa, %edi
movl $0xb0, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %edi
movl $0xb3, %esi
movl $0x1, %edx
callq 0xd160
leaq 0x219536(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
jne 0x8407a
movl $0x64, %edi
callq 0xb8b0
addq $0x10, %rsp
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_venus_start(int, int)
void send_venus_start(int id, int len)
{
   // send a Venus binary message start header
   if(log_file && (log_stream & LOG_PACKET_START)) {
      fprintf(log_file, "\nSend venus start %02X  len=%d\n", id, len);
   }

   if(id == 0x08) return;  // protect against possible brickage (firmware download)
   venus_start = id;
   venus_len = len;

   sendout(RCVR_PORT, 0xA0, ADD_CHAR);
   sendout(RCVR_PORT, 0xA1, ADD_CHAR);
   send_word(len);
   venus_tx_cksum = 0;
   send_byte(id);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
leaq 0x2194ab(%rip), %rax    # 0x29d540
cmpq $0x0, (%rax)
je 0x840ca
leaq 0x21954e(%rip), %rax    # 0x29d5f0
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x840ca
leaq 0x21948d(%rip), %rax    # 0x29d540
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0x103b2f(%rip), %rsi    # 0x187bf2
movb $0x0, %al
callq 0x9550
cmpl $0x8, -0x4(%rbp)
jne 0x840d2
jmp 0x84123
movl -0x4(%rbp), %eax
movl %eax, 0x347bed(%rip)    # 0x3cbcc8
movl -0x8(%rbp), %eax
movl %eax, 0x347be8(%rip)    # 0x3cbccc
movl $0xa, %edi
movl $0xa0, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %edi
movl $0xa1, %esi
xorl %edx, %edx
callq 0xd160
movl -0x8(%rbp), %eax
movzwl %ax, %edi
callq 0x7b4b0
movb $0x0, 0x347b9b(%rip)    # 0x3cbcb3
movl -0x4(%rbp), %eax
movzbl %al, %edi
callq 0x7b210
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_venus_save(int)
void send_venus_save(int allow_eeprom)
{
   if(VENUS_SAVE && allow_eeprom && (no_eeprom_writes == 0)) {
      send_byte(1);  // update SRAM and EEPROM
BEEP(507);  // gggg
      ++ee_write_count;
   }
   else {
      send_byte(0);           // update SRAM
   }
   send_venus_end();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
leaq 0x2e8172(%rip), %rax    # 0x36c2b4
cmpl $0x0, (%rax)
je 0x84187
cmpl $0x0, -0x4(%rbp)
je 0x84187
leaq 0x1f62c2(%rip), %rax    # 0x27a416
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x84187
movl $0x1, %edi
callq 0x7b210
movl $0x1fb, %edi            # imm = 0x1FB
callq 0x9ec0
leaq 0x1f62a1(%rip), %rax    # 0x27a418
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x1f6295(%rip), %rax    # 0x27a418
movl %ecx, (%rax)
jmp 0x8418e
xorl %edi, %edi
callq 0x7b210
callq 0x867d0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_enviro_cmd(char*, unsigned int)
void send_enviro_cmd(char *s, unsigned port)
{
unsigned i,j;

   // send a command to the environmental sensor
   if(s == 0) return;
   if(port >= NUM_COM_PORTS) return;

   j = strlen(s);
   for(i=0; i<j; i++) {
      sendout(port, (u08) s[i], ADD_CHAR);
   }
   sendout(port, 0, FLUSH_COM);
if(ENVIRO_SLEEP) Sleep(ENVIRO_SLEEP);
if(0 && debug_file) fprintf(debug_file, "send thermo port %d[%d]:%s\n", port,com[port].com_port, s);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x855c8
jmp 0x8561a
cmpl $0x13, -0xc(%rbp)
jb 0x855d0
jmp 0x8561a
movq -0x8(%rbp), %rdi
callq 0x9120
movl %eax, -0x14(%rbp)
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0x8560b
movl -0xc(%rbp), %edi
movq -0x8(%rbp), %rax
movl -0x10(%rbp), %ecx
xorl %edx, %edx
movzbl (%rax,%rcx), %esi
callq 0xd160
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x855e3
movl -0xc(%rbp), %edi
xorl %esi, %esi
movl $0x2, %edx
callq 0xd160
addq $0x20, %rsp
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_fw_ver()
void request_fw_ver()
{
   if(luxor) return;
   if(no_poll) return;

   if(rcvr_type == TSIP_RCVR) {
      if(ACU_GG) ;
      else if(ACU_360) ;
      else if(ACUTIME) ;
      else if(PALISADE) ;
      else if(SV6_FAMILY) return;
      send_tsip_start(0x1C);   //!!! ThunderBolt-E, Resolution only
      send_byte(0x01);
      send_tsip_end();
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x218af3(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x85635
jmp 0x8574a
leaq 0x310bc4(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x85646
jmp 0x8574a
leaq 0x1f2463(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8574a
leaq 0x1f2452(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85681
leaq 0x1f4b49(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85681
leaq 0x1f2461(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x85681
jmp 0x85731
leaq 0x1f2428(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x856b4
leaq 0x1f4b1f(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x856b4
leaq 0x1f2437(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0x856b2
leaq 0x1f242b(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x856b4
jmp 0x8572f
leaq 0x1f23f5(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x856cf
leaq 0x1f4aec(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x856cf
jmp 0x8572d
leaq 0x1f23da(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x856ea
leaq 0x1f4ad1(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
jne 0x856ea
jmp 0x8572b
leaq 0x1f23bf(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85729
leaq 0x1f4ab6(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0x85727
leaq 0x1f4aaa(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0x85727
leaq 0x1f4a9e(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0x85727
leaq 0x1f4a92(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85729
jmp 0x8574a
jmp 0x8572b
jmp 0x8572d
jmp 0x8572f
jmp 0x85731
movl $0x1c, %edi
callq 0x824f0
movl $0x1, %edi
callq 0x7b210
callq 0x82590
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_unk_ver()
void request_unk_ver()
{
   if(luxor) return;
   if(no_poll) return;
   if(rcvr_type != TSIP_RCVR) return;
   if(SV6_FAMILY) return;

   send_tsip_start(0x1C);   //!!! ??? receiver only
   send_byte(0x02);
   send_tsip_end();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x2189c3(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x85762
jmp 0x857d7
leaq 0x310a97(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x85770
jmp 0x857d7
leaq 0x1f2339(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
je 0x8577f
jmp 0x857d7
leaq 0x1f232a(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x857be
leaq 0x1f4a21(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0x857bc
leaq 0x1f4a15(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0x857bc
leaq 0x1f4a09(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0x857bc
leaq 0x1f49fd(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x857be
jmp 0x857d7
movl $0x1c, %edi
callq 0x824f0
movl $0x2, %edi
callq 0x7b210
callq 0x82590
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_hw_ver()
void request_hw_ver()
{
   if(luxor) return;
   if(no_poll) return;

   if(rcvr_type == TSIP_RCVR) {
      if(ACU_GG) ;
      else if(ACU_360) ;
      else if(ACUTIME) ;
      else if(PALISADE) ;
      else if(SV6_FAMILY) return;
      send_tsip_start(0x1C);   //!!! ThunderBolt-E, Resolution only
      send_byte(0x03);
      send_tsip_end();
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x218933(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x857f5
jmp 0x8590a
leaq 0x310a04(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x85806
jmp 0x8590a
leaq 0x1f22a3(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8590a
leaq 0x1f2292(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85841
leaq 0x1f4989(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85841
leaq 0x1f22a1(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x85841
jmp 0x858f1
leaq 0x1f2268(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85874
leaq 0x1f495f(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85874
leaq 0x1f2277(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0x85872
leaq 0x1f226b(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x85874
jmp 0x858ef
leaq 0x1f2235(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8588f
leaq 0x1f492c(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x8588f
jmp 0x858ed
leaq 0x1f221a(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x858aa
leaq 0x1f4911(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
jne 0x858aa
jmp 0x858eb
leaq 0x1f21ff(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x858e9
leaq 0x1f48f6(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0x858e7
leaq 0x1f48ea(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0x858e7
leaq 0x1f48de(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0x858e7
leaq 0x1f48d2(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x858e9
jmp 0x8590a
jmp 0x858eb
jmp 0x858ed
jmp 0x858ef
jmp 0x858f1
movl $0x1c, %edi
callq 0x824f0
movl $0x3, %edi
callq 0x7b210
callq 0x82590
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_c2()
void request_c2()
{
   if(luxor) return;
   if(no_poll) return;
   if(rcvr_type != TSIP_RCVR) return;
   if(SV6_FAMILY) return;

   send_tsip_start(0xC2);   //!!! ??? receiver
   send_tsip_end();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x218803(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x85922
jmp 0x8598d
leaq 0x3108d7(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x85930
jmp 0x8598d
leaq 0x1f2179(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
je 0x8593f
jmp 0x8598d
leaq 0x1f216a(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8597e
leaq 0x1f4861(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0x8597c
leaq 0x1f4855(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0x8597c
leaq 0x1f4849(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0x8597c
leaq 0x1f483d(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x8597e
jmp 0x8598d
movl $0xc2, %edi
callq 0x824f0
callq 0x82590
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_7A_00()
void request_7A_00()
{
   if(luxor) return;
   if(no_poll) return;
   if(rcvr_type != TSIP_RCVR) return;
   if(ACU_GG) return;
   if(ACU_360) return;
   if(ACUTIME) return;
   if(PALISADE) return;
   if(SV6_FAMILY) return;
   // config NMEA output

   send_tsip_start(0x7A);   //!!! ??? receiver
   send_byte(0x00);
   send_tsip_end();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x218783(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x859a5
jmp 0x85ab3
leaq 0x310854(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x859b6
jmp 0x85ab3
leaq 0x1f20f3(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
je 0x859c8
jmp 0x85ab3
leaq 0x1f20e1(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x859f2
leaq 0x1f47d8(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x859f2
leaq 0x1f20f0(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x859f2
jmp 0x85ab3
leaq 0x1f20b7(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85a28
leaq 0x1f47ae(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85a28
leaq 0x1f20c6(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0x85a23
leaq 0x1f20ba(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x85a28
jmp 0x85ab3
leaq 0x1f2081(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85a43
leaq 0x1f4778(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85a43
jmp 0x85ab3
leaq 0x1f2066(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85a5e
leaq 0x1f475d(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
jne 0x85a5e
jmp 0x85ab3
leaq 0x1f204b(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85a9d
leaq 0x1f4742(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0x85a9b
leaq 0x1f4736(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0x85a9b
leaq 0x1f472a(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0x85a9b
leaq 0x1f471e(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85a9d
jmp 0x85ab3
movl $0x7a, %edi
callq 0x824f0
xorl %edi, %edi
callq 0x7b210
callq 0x82590
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_rcvr_health()
void request_rcvr_health()
{
   if(luxor) return;
   if(no_poll) return;
   if(rcvr_type != TSIP_RCVR) return;

   send_tsip_start(0x26);   //!!! ThunderBolt-E only
   send_tsip_end();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x218653(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x85ad2
jmp 0x85afe
leaq 0x310727(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x85ae0
jmp 0x85afe
leaq 0x1f1fc9(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
je 0x85aef
jmp 0x85afe
movl $0x26, %edi
callq 0x824f0
callq 0x82590
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_moto_leap(int)
void request_moto_leap(int rate)
{
   if(no_poll) return;

   send_moto_start("Gj");
   send_moto_end();

   send_moto_start("Bj");
   send_byte(rate);
   send_moto_end();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
leaq 0x31053e(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x85cc9
jmp 0x85cf6
leaq 0x1021f7(%rip), %rdi    # 0x187ec7
callq 0x86190
callq 0x86230
leaq 0x1021e9(%rip), %rdi    # 0x187eca
callq 0x86190
movl -0x4(%rbp), %eax
movzbl %al, %edi
callq 0x7b210
callq 0x86230
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_sv6_config(int)
void request_sv6_config(int force)
{
   if(luxor) return;
   if(no_poll) return;

   if(rcvr_type == TSIP_RCVR) {
      if(SV6_FAMILY && (force == 0)) return;  //ttttt qqqqq  doing this screws up the decice!
      if(ACU_GG) return;
      if(ACU_360) return;

      send_tsip_start(0x2C);       // get SV6 config
      send_byte(0);
      send_single(-1.0);
      send_single(-1.0);
      send_single(-1.0);
      send_single(-1.0);
      send_tsip_end();
      if(sim_file == 0) Sleep(200);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
leaq 0x2183ac(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x85d7c
jmp 0x85ea6
leaq 0x31047d(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x85d8d
jmp 0x85ea6
leaq 0x1f1d1c(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85ea6
leaq 0x1f1d0b(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85de6
leaq 0x1f4402(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0x85ddb
leaq 0x1f43f6(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0x85ddb
leaq 0x1f43ea(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0x85ddb
leaq 0x1f43de(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85de6
cmpl $0x0, -0x4(%rbp)
jne 0x85de6
jmp 0x85ea6
leaq 0x1f1cc3(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85e10
leaq 0x1f43ba(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85e10
leaq 0x1f1cd2(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x85e10
jmp 0x85ea6
leaq 0x1f1c99(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85e43
leaq 0x1f4390(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85e43
leaq 0x1f1ca8(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0x85e41
leaq 0x1f1c9c(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x85e43
jmp 0x85ea6
movl $0x2c, %edi
callq 0x824f0
xorl %edi, %edi
callq 0x7b210
movss 0xebadc(%rip), %xmm0    # 0x171938
callq 0x7b600
movss 0xebacf(%rip), %xmm0    # 0x171938
callq 0x7b600
movss 0xebac2(%rip), %xmm0    # 0x171938
callq 0x7b600
movss 0xebab5(%rip), %xmm0    # 0x171938
callq 0x7b600
callq 0x82590
leaq 0x21770c(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
jne 0x85ea4
movl $0xc8, %edi
callq 0xb8b0
jmp 0x85ea6
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: request_osc_offset()
void request_osc_offset()
{
   if(luxor) return;
   if(no_poll) return;

   if(rcvr_type == TSIP_RCVR) {
      send_tsip_start(0x2D);       // get SV6 osc offset in Hz
      send_tsip_end();
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x218263(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x85ec2
jmp 0x85eec
leaq 0x310337(%rip), %rax    # 0x396200
cmpb $0x0, (%rax)
je 0x85ed0
jmp 0x85eec
leaq 0x1f1bd9(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85eec
movl $0x2d, %edi
callq 0x824f0
callq 0x82590
popq %rbp
retq
nop
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: write_all_nvs()
void write_all_nvs()
{
   if(read_only) return;
   if(luxor) return;
   if(no_eeprom_writes) return;

   if(rcvr_type == TSIP_RCVR) {
      if(ACU_GG) ;
      else if(ACU_360) ;
      else if(ACUTIME) ;
      else if(PALISADE) return;
      else if(SV6_FAMILY) return;

      send_tsip_start(0x8E);   //!!! ThunderBolt-E only
      send_byte(0x26);
      send_tsip_end();
   }

   BEEP(500);   // !!! if you hear lots of beeps,  you may be wearing out the EEPROM
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x3102ff(%rip), %rax    # 0x3961fa
cmpb $0x0, (%rax)
je 0x85f05
jmp 0x86035
leaq 0x218212(%rip), %rax    # 0x29e11e
cmpb $0x0, (%rax)
je 0x85f16
jmp 0x86035
leaq 0x1f44f9(%rip), %rax    # 0x27a416
cmpb $0x0, (%rax)
je 0x85f27
jmp 0x86035
leaq 0x1f1b82(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8602b
leaq 0x1f1b71(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85f62
leaq 0x1f4268(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85f62
leaq 0x1f1b80(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x85f62
jmp 0x86012
leaq 0x1f1b47(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85f95
leaq 0x1f423e(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85f95
leaq 0x1f1b56(%rip), %rax    # 0x277ad8
cmpl $0x33, (%rax)
je 0x85f93
leaq 0x1f1b4a(%rip), %rax    # 0x277ad8
cmpl $0x47, (%rax)
jne 0x85f95
jmp 0x86010
leaq 0x1f1b14(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85fb0
leaq 0x1f420b(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x85fb0
jmp 0x8600e
leaq 0x1f1af9(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x85fcb
leaq 0x1f41f0(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
jne 0x85fcb
jmp 0x86035
leaq 0x1f1ade(%rip), %rax    # 0x277ab0
cmpq $0x1, (%rax)
jne 0x8600a
leaq 0x1f41d5(%rip), %rax    # 0x27a1b4
cmpl $0x36, (%rax)
je 0x86008
leaq 0x1f41c9(%rip), %rax    # 0x27a1b4
cmpl $0x33, (%rax)
je 0x86008
leaq 0x1f41bd(%rip), %rax    # 0x27a1b4
cmpl $0x50, (%rax)
je 0x86008
leaq 0x1f41b1(%rip), %rax    # 0x27a1b4
cmpl $0x41, (%rax)
jne 0x8600a
jmp 0x86035
jmp 0x8600c
jmp 0x8600e
jmp 0x86010
jmp 0x86012
movl $0x8e, %edi
callq 0x824f0
movl $0x26, %edi
callq 0x7b210
callq 0x82590
movl $0x1f4, %edi            # imm = 0x1F4
callq 0x9ec0
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: restart_gpsdo()
void restart_gpsdo()
{
   // re-awaken a GPSDO after a reset
   if(saw_nortel || saw_ntpx || (rcvr_type == MOTO_RCVR) || (rcvr_type == NVS_RCVR)) {
      vidstr(EDIT_ROW+4, EDIT_COL, PROMPT_COLOR, "There is a 20 second reset delay...");
      refresh_page();
      Sleep(20000);
      SetDtrLine(RCVR_PORT, 1);
      if(NO_SCPI_BREAK && (rcvr_type == SCPI_RCVR)) ; 
      else SendBreak(RCVR_PORT);
      Sleep(2000);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x2180cf(%rip), %rax    # 0x29e11a
cmpb $0x0, (%rax)
jne 0x86079
leaq 0x2180c5(%rip), %rax    # 0x29e11c
cmpb $0x0, (%rax)
jne 0x86079
leaq 0x1f1a4d(%rip), %rax    # 0x277ab0
cmpq $0x20, (%rax)
je 0x86079
leaq 0x1f1a40(%rip), %rax    # 0x277ab0
cmpq $0x800, (%rax)          # imm = 0x800
jne 0x860d1
leaq 0x31876c(%rip), %rax    # 0x39e7ec
movl (%rax), %edi
addl $0x4, %edi
leaq 0x318764(%rip), %rax    # 0x39e7f0
movl (%rax), %esi
movl $0xb, %edx
leaq 0xfd7bf(%rip), %rcx     # 0x183859
callq 0x10ee0
callq 0xb0d0
movl $0x4e20, %edi           # imm = 0x4E20
callq 0xb8b0
movl $0xa, %edi
movl $0x1, %esi
callq 0xb660
movl $0xa, %edi
callq 0xb840
movl $0x7d0, %edi            # imm = 0x7D0
callq 0xb8b0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: restart_zodiac_rcvr()
void restart_zodiac_rcvr()
{
   // re-init ZODIAC receiver message format after a restart
   if(force_mode_change) {     // leave the receiver in Motorola mode
      rcvr_type = MOTO_RCVR;
      config_rcvr_type(0);
      need_msg_init = 2000;
      force_mode_change = 0;
   }
   else {
      send_moto_start("Wb");  // set Jupiter-T receiver protocol to Zodiac mode
      send_byte(1);
      send_moto_end();
      Sleep(1000);

      tsip_sync = 0;
      tsip_wptr = 0;
      tsip_rptr = 0;
      init_messages(70, 1);
   }

   Sleep(250);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x1f4115(%rip), %rax    # 0x27a200
cmpl $0x0, (%rax)
je 0x86121
leaq 0x1f19b9(%rip), %rax    # 0x277ab0
movq $0x20, (%rax)
xorl %edi, %edi
callq 0x6a330
leaq 0x1f4104(%rip), %rax    # 0x27a210
movl $0x7d0, (%rax)          # imm = 0x7D0
leaq 0x1f40e7(%rip), %rax    # 0x27a200
movl $0x0, (%rax)
jmp 0x86179
leaq 0xfd755(%rip), %rdi     # 0x18387d
callq 0x86190
movl $0x1, %edi
callq 0x7b210
callq 0x86230
movl $0x3e8, %edi            # imm = 0x3E8
callq 0xb8b0
leaq 0x3112e9(%rip), %rax    # 0x397436
movw $0x0, (%rax)
leaq 0x3112d9(%rip), %rax    # 0x397432
movw $0x0, (%rax)
leaq 0x3112cf(%rip), %rax    # 0x397434
movw $0x0, (%rax)
movl $0x46, %edi
movl $0x1, %esi
callq 0x86290
movl $0xfa, %edi
callq 0xb8b0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_moto_start(char*)
void send_moto_start(char *s)
{
   // send a Motorola binary message start header
   if(s == 0) return;
   if(log_file && (log_stream & LOG_PACKET_START)) {
      fprintf(log_file, "\nSend moto start %s\n", s);
   }

   sendout(RCVR_PORT, '@', ADD_CHAR);
   sendout(RCVR_PORT, '@', ADD_CHAR);
   moto_tx_cksum = 0;
   send_byte(s[0]);
   send_byte(s[1]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x861a5
jmp 0x86221
leaq 0x217394(%rip), %rax    # 0x29d540
cmpq $0x0, (%rax)
je 0x861df
leaq 0x217437(%rip), %rax    # 0x29d5f0
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x861df
leaq 0x217376(%rip), %rax    # 0x29d540
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
leaq 0x101cda(%rip), %rsi    # 0x187eb2
movb $0x0, %al
callq 0x9550
movl $0xa, %edi
movl $0x40, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %edi
movl $0x40, %esi
xorl %edx, %edx
callq 0xd160
movb $0x0, 0x345a9b(%rip)    # 0x3cbca3
movq -0x8(%rbp), %rax
movzbl (%rax), %edi
callq 0x7b210
movq -0x8(%rbp), %rax
movzbl 0x1(%rax), %edi
callq 0x7b210
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_moto_end()
void send_moto_end()
{
   // send Motorola binary message checksum and end-of-packet
   sendout(RCVR_PORT, moto_tx_cksum, ADD_CHAR);
   sendout(RCVR_PORT, 0x0D, ADD_CHAR);
   sendout(RCVR_PORT, 0x0A, EOM);
   if(sim_file == 0) Sleep(50);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl $0xa, %edi
xorl %edx, %edx
movzbl 0x345a61(%rip), %esi    # 0x3cbca3
callq 0xd160
movl $0xa, %edi
movl $0xd, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %esi
movl $0x1, %edx
movl %esi, %edi
callq 0xd160
leaq 0x217330(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
jne 0x86280
movl $0x32, %edi
callq 0xb8b0
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: update_ubx_config(unsigned int, unsigned int, unsigned int)
void update_ubx_config(u32 clear, u32 save, u32 load)
{
#define EE_MSG_SIZE 12

   send_ubx_start(UBX_EEPROM, EE_MSG_SIZE);
   send_dword(clear);   // reset params from permanent config
   send_dword(save);    // save params to EEPROM
   send_dword(load);    // load config from EEPROM

   if(EE_MSG_SIZE == 13) {  // storage device select
      send_byte(0x17);      // all devices
   }
   send_ubx_end();

   if(save) {
      BEEP(501);
      ++ee_write_count;
      Sleep(1000);
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movl $0x609, %edi            # imm = 0x609
movl $0xc, %esi
callq 0x83710
movl -0x4(%rbp), %edi
callq 0x7b520
movl -0x8(%rbp), %edi
callq 0x7b520
movl -0xc(%rbp), %edi
callq 0x7b520
callq 0x83820
cmpl $0x0, -0x8(%rbp)
je 0x8666c
movl $0x1f5, %edi            # imm = 0x1F5
callq 0x9ec0
leaq 0x1f3dc4(%rip), %rax    # 0x27a418
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x1f3db8(%rip), %rax    # 0x27a418
movl %ecx, (%rax)
movl $0x3e8, %edi            # imm = 0x3E8
callq 0xb8b0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: venus_restart(int)
void venus_restart(int mode)
{
s16 val;

   send_venus_start(SET_VENUS_RESTART);
   send_byte(mode);
   send_word(pri_year);
   send_byte(pri_month);
   send_byte(pri_day);
   send_byte(pri_hours);
   send_byte(pri_minutes);
   send_byte(pri_seconds);

   val = (s16) (lat * 180.0 / PI * 100.0);
   send_word(val);

   val = (s16) (lon * 180.0 / PI * 100.0);
   send_word(val);

   val = (s16) alt;
   send_word(val);

   send_venus_end();

   Sleep(5000);
   init_messages(50, 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
movl $0x1, %edi
movl $0xf, %esi
callq 0x84080
movzbl -0x4(%rbp), %edi
callq 0x7b210
leaq 0x2e604a(%rip), %rax    # 0x36c6f4
movzwl (%rax), %edi
callq 0x7b4b0
leaq 0x2e6037(%rip), %rax    # 0x36c6f0
movzbl (%rax), %edi
callq 0x7b210
leaq 0x2e6024(%rip), %rax    # 0x36c6ec
movzbl (%rax), %edi
callq 0x7b210
leaq 0x2e6011(%rip), %rax    # 0x36c6e8
movzbl (%rax), %edi
callq 0x7b210
leaq 0x2e5ffe(%rip), %rax    # 0x36c6e4
movzbl (%rax), %edi
callq 0x7b210
leaq 0x2e5feb(%rip), %rax    # 0x36c6e0
movzbl (%rax), %edi
callq 0x7b210
leaq 0x2e5aac(%rip), %rax    # 0x36c1b0
movsd (%rax), %xmm0
movsd 0xe8968(%rip), %xmm1    # 0x16f078
movsd %xmm1, -0x20(%rbp)
mulsd %xmm1, %xmm0
movsd 0xeaea7(%rip), %xmm1    # 0x1715c8
movsd %xmm1, -0x18(%rbp)
divsd %xmm1, %xmm0
movsd 0xe891e(%rip), %xmm1    # 0x16f050
movsd %xmm1, -0x10(%rbp)
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movw %ax, -0x6(%rbp)
movzwl -0x6(%rbp), %edi
callq 0x7b4b0
movsd -0x20(%rbp), %xmm3
movsd -0x18(%rbp), %xmm2
movsd -0x10(%rbp), %xmm1
leaq 0x2e5a56(%rip), %rax    # 0x36c1b8
movsd (%rax), %xmm0
mulsd %xmm3, %xmm0
divsd %xmm2, %xmm0
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movw %ax, -0x6(%rbp)
movzwl -0x6(%rbp), %edi
callq 0x7b4b0
leaq 0x2e5a36(%rip), %rax    # 0x36c1c0
movsd (%rax), %xmm0
cvttsd2si %xmm0, %eax
movw %ax, -0x6(%rbp)
movzwl -0x6(%rbp), %edi
callq 0x7b4b0
callq 0x867d0
movl $0x1388, %edi           # imm = 0x1388
callq 0xb8b0
movl $0x32, %edi
movl $0x1, %esi
callq 0x86290
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: send_venus_end()
void send_venus_end()
{
   venus_tx_cksum &= 0xFF;
   sendout(RCVR_PORT, venus_tx_cksum, ADD_CHAR);
   sendout(RCVR_PORT, 0x0D, ADD_CHAR);
   sendout(RCVR_PORT, 0x0A, EOM);
   venus_start = venus_len = 0;
   if(sim_file == 0) Sleep(20);   // slightly rate limit sent messages
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movzbl 0x3454d8(%rip), %eax    # 0x3cbcb3
andl $0xff, %eax
movb %al, 0x3454cd(%rip)     # 0x3cbcb3
movl $0xa, %edi
xorl %edx, %edx
movzbl 0x3454bf(%rip), %esi    # 0x3cbcb3
callq 0xd160
movl $0xa, %edi
movl $0xd, %esi
xorl %edx, %edx
callq 0xd160
movl $0xa, %esi
movl $0x1, %edx
movl %esi, %edi
callq 0xd160
movl $0x0, 0x3454a7(%rip)    # 0x3cbccc
movl $0x0, 0x345499(%rip)    # 0x3cbcc8
leaq 0x216d6a(%rip), %rax    # 0x29d5a0
cmpq $0x0, (%rax)
jne 0x86846
movl $0x14, %edi
callq 0xb8b0
popq %rbp
retq
nopl (%rax,%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: enable_moto_binary()
void enable_moto_binary()
{
   // switch motorola receiver to binary mode

   rcvr_type = NMEA_RCVR;
   send_nmea_cmd("PMOTG,GGA,0000");
   send_nmea_cmd("PMOTG,GLL,0000");
   send_nmea_cmd("PMOTG,GSA,0000");
   send_nmea_cmd("PMOTG,GSV,0000");
   send_nmea_cmd("PMOTG,RMC,0000");
   send_nmea_cmd("PMOTG,VTG,0000");
   send_nmea_cmd("PMOTG,ZDA,0000");

   send_nmea_cmd("PMOTG,FOR,0");
   Sleep(500);

   com[RCVR_PORT].baud_rate = 9600;
   com[RCVR_PORT].data_bits = 8;
   com[RCVR_PORT].parity = NO_PAR;
   com[RCVR_PORT].stop_bits = 1;
   init_com(RCVR_PORT, 103);
   Sleep(100);
   drain_port(RCVR_PORT);

   tsip_sync = 0;
   tsip_wptr = 0;
   tsip_rptr = 0;
   auto_detect(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x1f1255(%rip), %rax    # 0x277ab0
movq $0x2, (%rax)
leaq 0xfd017(%rip), %rdi     # 0x183880
callq 0x833e0
leaq 0xfd01a(%rip), %rdi     # 0x18388f
callq 0x833e0
leaq 0xfd01d(%rip), %rdi     # 0x18389e
callq 0x833e0
leaq 0xfd020(%rip), %rdi     # 0x1838ad
callq 0x833e0
leaq 0xfd023(%rip), %rdi     # 0x1838bc
callq 0x833e0
leaq 0xfd026(%rip), %rdi     # 0x1838cb
callq 0x833e0
leaq 0xfd029(%rip), %rdi     # 0x1838da
callq 0x833e0
leaq 0xfd02c(%rip), %rdi     # 0x1838e9
callq 0x833e0
movl $0x1f4, %edi            # imm = 0x1F4
callq 0xb8b0
leaq 0x2e6bed(%rip), %rax    # 0x36d4c0
movl $0x2580, 0x159d0(%rax)  # imm = 0x2580
leaq 0x2e6bdc(%rip), %rax    # 0x36d4c0
movl $0x8, 0x159d4(%rax)
leaq 0x2e6bcb(%rip), %rax    # 0x36d4c0
movl $0x0, 0x159dc(%rax)
leaq 0x2e6bba(%rip), %rax    # 0x36d4c0
movl $0x1, 0x159d8(%rax)
movl $0xa, %edi
movl $0x67, %esi
callq 0xc0e0
movl $0x64, %edi
callq 0xb8b0
movl $0xa, %edi
callq 0x79900
leaq 0x310afc(%rip), %rax    # 0x397436
movw $0x0, (%rax)
leaq 0x310aec(%rip), %rax    # 0x397432
movw $0x0, (%rax)
leaq 0x310ae2(%rip), %rax    # 0x397434
movw $0x0, (%rax)
xorl %edi, %edi
callq 0x86960
popq %rbp
retq
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: xxx_enable_moto_binary()
void xxx_enable_moto_binary()
{
   // put Motorola receiver into BINARY mode

   rcvr_type = NMEA_RCVR;
   send_nmea_cmd("PMOTG,FOR,0");
   Sleep(500);

   com[RCVR_PORT].baud_rate = 9600;
   com[RCVR_PORT].data_bits = 8;
   com[RCVR_PORT].parity = NO_PAR;
   com[RCVR_PORT].stop_bits = 1;
   init_com(RCVR_PORT, 103);
   Sleep(100);

   rcvr_type = MOTO_RCVR;
   auto_detect(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x1eedd5(%rip), %rax    # 0x277ab0
movq $0x2, (%rax)
leaq 0xfac00(%rip), %rdi     # 0x1838e9
callq 0x833e0
movl $0x1f4, %edi            # imm = 0x1F4
callq 0xb8b0
leaq 0x2e47c1(%rip), %rax    # 0x36d4c0
movl $0x2580, 0x159d0(%rax)  # imm = 0x2580
leaq 0x2e47b0(%rip), %rax    # 0x36d4c0
movl $0x8, 0x159d4(%rax)
leaq 0x2e479f(%rip), %rax    # 0x36d4c0
movl $0x0, 0x159dc(%rax)
leaq 0x2e478e(%rip), %rax    # 0x36d4c0
movl $0x1, 0x159d8(%rax)
movl $0xa, %edi
movl $0x67, %esi
callq 0xc0e0
movl $0x64, %edi
callq 0xb8b0
leaq 0x1eed54(%rip), %rax    # 0x277ab0
movq $0x20, (%rax)
xorl %edi, %edi
callq 0x86960
popq %rbp
retq
nopl (%rax)
// File: jkingan[P]ladyheather/heathgps.cpp
// Function: enable_moto_nmea()
void enable_moto_nmea()
{
//send_moto_start("Eq"); // testing ASCII position message
//send_byte(0);
//send_moto_end();
//return;

   // put Motorola receiver into NMEA mode

   send_moto_start("Ci");
   if(furuno_moto == 0) send_byte(1);       // !!!!!! ESIP_RCVR motorola mode  !!!!!!!!!!
   send_moto_end();
   Sleep(500);

   if(furuno_moto) {  // switch to ESIP_RCVR mode
      force_mode_change = 0;
      com[RCVR_PORT].baud_rate = 38400;
      com[RCVR_PORT].data_bits = 8;
      com[RCVR_PORT].parity = NO_PAR;
      com[RCVR_PORT].stop_bits = 1;
      init_com(RCVR_PORT, 101);
      Sleep(100);
      rcvr_type = ESIP_RCVR;
   }
   else {
      com[RCVR_PORT].baud_rate = 4800;
      com[RCVR_PORT].data_bits = 8;
      com[RCVR_PORT].parity = NO_PAR;
      com[RCVR_PORT].stop_bits = 1;
      init_com(RCVR_PORT, 102);
      Sleep(100);

      rcvr_type = NMEA_RCVR;
      send_nmea_cmd("PMOTG,GGA,0001");
      send_nmea_cmd("PMOTG,GLL,0001");
      send_nmea_cmd("PMOTG,GSA,0001");
      send_nmea_cmd("PMOTG,GSV,0001");
      send_nmea_cmd("PMOTG,RMC,0001");
      send_nmea_cmd("PMOTG,VTG,0001");
      send_nmea_cmd("PMOTG,ZDA,0001");
   }

// auto_detect(0);
   config_rcvr_type(0);
   need_msg_init = 2001;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0xfab7a(%rip), %rdi     # 0x1838f5
callq 0x86190
leaq 0x1ef399(%rip), %rax    # 0x278120
cmpl $0x0, (%rax)
jne 0x88d96
movl $0x1, %edi
callq 0x7b210
callq 0x86230
movl $0x1f4, %edi            # imm = 0x1F4
callq 0xb8b0
leaq 0x1ef374(%rip), %rax    # 0x278120
cmpl $0x0, (%rax)
je 0x88e2f
leaq 0x1f1448(%rip), %rax    # 0x27a200
movl $0x0, (%rax)
leaq 0x2e46fb(%rip), %rax    # 0x36d4c0
movl $0x9600, 0x159d0(%rax)  # imm = 0x9600
leaq 0x2e46ea(%rip), %rax    # 0x36d4c0
movl $0x8, 0x159d4(%rax)
leaq 0x2e46d9(%rip), %rax    # 0x36d4c0
movl $0x0, 0x159dc(%rax)
leaq 0x2e46c8(%rip), %rax    # 0x36d4c0
movl $0x1, 0x159d8(%rax)
movl $0xa, %edi
movl $0x65, %esi
callq 0xc0e0
movl $0x64, %edi
callq 0xb8b0
leaq 0x1eec8e(%rip), %rax    # 0x277ab0
movl $0x80000000, %ecx       # imm = 0x80000000
movq %rcx, (%rax)
jmp 0x88eee
leaq 0x2e468a(%rip), %rax    # 0x36d4c0
movl $0x12c0, 0x159d0(%rax)  # imm = 0x12C0
leaq 0x2e4679(%rip), %rax    # 0x36d4c0
movl $0x8, 0x159d4(%rax)
leaq 0x2e4668(%rip), %rax    # 0x36d4c0
movl $0x0, 0x159dc(%rax)
leaq 0x2e4657(%rip), %rax    # 0x36d4c0
movl $0x1, 0x159d8(%rax)
movl $0xa, %edi
movl $0x66, %esi
callq 0xc0e0
movl $0x64, %edi
callq 0xb8b0
leaq 0x1eec1d(%rip), %rax    # 0x277ab0
movq $0x2, (%rax)
leaq 0xfaa57(%rip), %rdi     # 0x1838f8
callq 0x833e0
leaq 0xfaa5a(%rip), %rdi     # 0x183907
callq 0x833e0
leaq 0xfaa5d(%rip), %rdi     # 0x183916
callq 0x833e0
leaq 0xfaa60(%rip), %rdi     # 0x183925
callq 0x833e0
leaq 0xfaa63(%rip), %rdi     # 0x183934
callq 0x833e0
leaq 0xfaa66(%rip), %rdi     # 0x183943
callq 0x833e0
leaq 0xfaa69(%rip), %rdi     # 0x183952
callq 0x833e0
xorl %edi, %edi
callq 0x6a330
leaq 0x1f1314(%rip), %rax    # 0x27a210
movl $0x7d1, (%rax)          # imm = 0x7D1
popq %rbp
retq
nopw %cs:(%rax,%rax)