// File: /workspace/github_cpp_makefile_star2_O2/jkingan[P]ladyheather/heathgps.cpp
// Function: primary_timing(int)
void primary_timing(int get_tsip)
{
int i;

   // process the receiver primary timing message.  For TSIP receivers, gets
   // the timing message.

   if(get_tsip) log_packet_id("Packet 0x8F.AB (Primary timing)");

   skip_starloc_time = 0;
   last_pri_tow = pt_tow;
   ++got_timing_msg;    // prevents keyboard lockup with high nav rate receivers
   ++roll_timing_msg;   // used to reset queues during startup rollover detection

   if(timeout_extended) {  // com timeout has been increased due to special commands
      --timeout_extended;
      if(timeout_extended <= 0) { // it's safe to restore the com timeout to its normal value
         com[RCVR_PORT].com_timeout = com[RCVR_PORT].user_timeout;
      }
   }

   if(get_tsip) {
      have_pri_time = 1;
      pri_tow = this_pri_tow = pt_tow = tsip_dword();
      gps_week = tsip_word();
      faked_tow = 0;

      i = (int) (s16) tsip_word();
      if(!user_set_utc_ofs && (i >= 0) && (i < 64)) {    // filter bogus values
         utc_offset = i;
         if(utc_offset != 0) utc_offset_flag = utc_offset;
         if(tsip_type == STARLOC_TYPE) {
            if(utc_offset_flag && (utc_offset == 0)) {
               utc_offset = utc_offset_flag;  // sometimes sends random 0 utc_offset value
            }
            tsip_byte();  // STARLOC_TYPE always sends bogus 0 time_flags value
         }
         else time_flags = tsip_byte();
      }
      else if(STARLOC) tsip_byte(); // STARLOC_TYPE always sends bogus 0 time_flags value 
      else time_flags = tsip_byte();
//sprintf(debug_text4, "time flag byte: %02X", time_flags);

      pri_seconds = pt_sec = tsip_byte();
      pri_minutes = pt_min = tsip_byte();
      pri_hours = pt_hh = tsip_byte();
      pri_day = tsip_byte();
      pri_month = tsip_byte();
      pri_year = tsip_word();
      pri_frac = 0.0;

      if(STARLOC) {
         if(show_debug_info && debug_file) fprintf(debug_file, "starloc time: %04d/%02d/%02d %02d:%02d:%02d\n", pri_year,pri_month,pri_day, pri_hours,pri_minutes,pri_seconds);
         if((pri_year < 1980) || (pri_year > 2100)) {  // totally bogus time/date
            goto pt_err;
         }
         fix_starloc_time();  // try to fixup time stamp skips
      }

      check_tsip_end(1);

      if(have_week == 0) need_redraw = 2007;
      have_week = 1;

      if(have_tow == 0) need_redraw = 2008;
      have_tow = 1;

      check_utc_ofs(2);
   }

   pri_month = fix_month(pri_month);

   if(have_utc_ofs) time_flags &= (~TFLAGS_NO_UTC_OFS);
   else             time_flags |= TFLAGS_NO_UTC_OFS;

   last_time_msec = this_time_msec;  // used to measure timing message jitter
   this_time_msec = GetMsecs();

   if(tsip_type == STARLOC_TYPE) {
      if(time_flags & TFLAGS_UTC) {  // stupid DATUM receiver can output UTC time
         gps_to_utc();               // but always says it is GPS time.  We always run
      }                              // those turds in GPS mode and convert to UTC
   }

   check_for_leapsecond();  // see if the time represents a leapsecond

   if(force_day) {
      pri_day = force_day;
      pri_month = force_month;
      pri_year = force_year;
   }

   fix_rollover();

   if(log_db) request_sig_levels();

   if(rcvr_type != TSIP_RCVR) ;  // ggggg
   else if(user_pps_len) {  // send string of user specified bytes each time a timing message is received
      for(i=0; i<user_pps_len; i++) {
         sendout(RCVR_PORT, user_pps_cmd[i], ADD_CHAR);
      } 
      sendout(RCVR_PORT, 0, FLUSH_COM);
   }

   if     (rcvr_type == SCPI_RCVR) ;
   else if(rcvr_type == STAR_RCVR) ;
   else if(rcvr_type == UCCM_RCVR) ;
   else if(tsip_error) {
      goto pt_exit; 
   }

   if(just_read) goto pt_exit; 

   if(1) {   // filter bogus time values
      pt_err:
      i = 0;

//    if(pri_tow >= (60L*60L*24L*7L))   { write_log_error("tow", pri_tow);            ++i; }
      if(pri_seconds > 61)              { write_log_error("seconds>61", pri_seconds); ++i; } 
      if(pri_seconds < 0)               { write_log_error("seconds<0", pri_seconds);  ++i; } 

      if(pri_minutes > 60)              { write_log_error("minutes>60", pri_minutes); ++i; } 
      if(pri_minutes < 0)               { write_log_error("minutes<0", pri_minutes);  ++i; } 

      if(pri_hours > 24)                { write_log_error("hours>24", pri_hours);     ++i; } // accomodate weird leap seconds
      if(pri_hours < 0)                 { write_log_error("hours<0", pri_hours);      ++i; } // accomodate weird leap seconds

      if(pri_day > 31)                  { write_log_error("day>31", pri_day);         ++i; } 
      if(pri_day <= 0)                  { write_log_error("day<=0", pri_day);         ++i; } 

      if(pri_month > 12)                { write_log_error("month>12", pri_month);     ++i; } 
      if(pri_month <= 0)                { write_log_error("month<=0", pri_month);     ++i; } 

      if(pri_year < 1980)               { write_log_error("year<1980", pri_year);     ++i; } 
      if(pri_year > 2100)               { write_log_error("year>2100", pri_year);     ++i; } 


      if(i) {
         if(STARLOC) bad_starloc_time = i;  // inhibt duplicated time stamp errs when bogus time seen
         goto pt_exit;
      }
   }

   // the time message seems to have valid time
   seconds = pri_seconds;     // save GPS/UTC time and date in global variables
   minutes = pri_minutes;
   hours = pri_hours;
   day = pri_day;
   month = pri_month;
   year = pri_year;
   raw_frac = pri_frac;

   tow = pri_tow;  
   this_tow = tow;
   survey_tow = tow;


   jd_utc = jd_gps = jdate(year,month,day) + jtime(hours,minutes,seconds,raw_frac);
   if(elapsed_time_set == 0) {
      jd_elapsed = jd_utc;
      elapsed_time_set = 1;
   }

   if(jd_utc == last_jd_utc) ++stuck_clock;
   else stuck_clock = 0;
   last_jd_utc = jd_utc;

   if(last_kbd_jd == 0.0) last_kbd_jd = jd_utc;

   calc_msg_ofs();

   if(no_poll) show_version_header();

   primary_misc();

   if(stuck_clock > 5) ;  // clock has stopped, avoid continuous screen dumps
   else if(leap_time && leap_dump) {  // do screen dump if leap-second seen
      refresh_page();
      leap_dumped = 1;
      if(!have_leap_info) have_leap_info = 99; // show the "Leap: captured" status
      dump_screen(0, 0, "leap_sec");
   }

   pt_exit:
   // every time we see the 8F.AB (or a time code) message, 
   // ... we request a different minor status message from the receiver
   request_misc_msg();  
   if(PALISADE) {  // these don't output secondary timing message (or primary timing for that matter)
      secondary_timing(0);
   }
   else if((ACU_GG || ACU_360 || ACUTIME) && (have_sec_timing == 0)) {
      secondary_timing(0);
   }
   return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edi, %ebx
testl %edi, %edi
je 0x6c12a
leaq 0xa002b(%rip), %rdi     # 0x10c150
callq 0x520bf
andl $0x0, 0x2e9ca3(%rip)    # 0x355dd4
movl 0x2e9cb5(%rip), %eax    # 0x355dec
leaq 0x28b2fe(%rip), %rcx    # 0x2f743c
incl (%rcx)
leaq 0x28b2f9(%rip), %rcx    # 0x2f7440
incl (%rcx)
movl %eax, 0x2e9c8d(%rip)    # 0x355ddc
leaq 0x2b4eb2(%rip), %rax    # 0x321008
movl (%rax), %ecx
testl %ecx, %ecx
je 0x6c17d
leal -0x1(%rcx), %edx
movl %edx, (%rax)
cmpl $0x1, %ecx
jg 0x6c17d
leaq 0x28c173(%rip), %rax    # 0x2f82e0
movsd 0x17a00(%rax), %xmm0
movsd %xmm0, 0x179f8(%rax)
testl %ebx, %ebx
je 0x6c3b0
leaq 0x1bcd4c(%rip), %rax    # 0x228ed8
movl $0x1, (%rax)
callq 0x51cf3
movl %eax, 0x2e9c4f(%rip)    # 0x355dec
movl %eax, 0x2e9c35(%rip)    # 0x355dd8
leaq 0x28b59a(%rip), %rcx    # 0x2f7744
movl %eax, (%rcx)
callq 0x51c63
leaq 0x28b580(%rip), %rcx    # 0x2f7738
movw %ax, (%rcx)
leaq 0x28b586(%rip), %rax    # 0x2f7748
andl $0x0, (%rax)
callq 0x51c63
cmpw $0x3f, %ax
ja 0x6c225
leaq 0x28b55d(%rip), %rcx    # 0x2f7734
cmpl $0x0, (%rcx)
jne 0x6c225
movswl %ax, %edx
leaq 0x28b542(%rip), %rcx    # 0x2f7728
movl %edx, (%rcx)
testw %ax, %ax
je 0x6c1f6
leaq 0x28b53c(%rip), %rsi    # 0x2f7730
movl %edx, (%rsi)
leaq 0x198dd7(%rip), %rdx    # 0x204fd4
cmpl $0x53, (%rdx)
jne 0x6c24a
testw %ax, %ax
setne %dl
leaq 0x28b521(%rip), %rax    # 0x2f7730
movl (%rax), %eax
testl %eax, %eax
sete %sil
orb %dl, %sil
jne 0x6c21e
movl %eax, (%rcx)
callq 0x51c47
jmp 0x6c25b
leaq 0x1966a4(%rip), %rax    # 0x2028d0
movq (%rax), %r14
leaq 0x198d9e(%rip), %rax    # 0x204fd4
movl (%rax), %ebx
callq 0x51c47
cmpq $0x1, %r14
jne 0x6c24f
cmpl $0x53, %ebx
je 0x6c25b
jmp 0x6c24f
callq 0x51c47
movzbl %al, %eax
leaq 0x28b24b(%rip), %rcx    # 0x2f74a4
movl %eax, (%rcx)
callq 0x51c47
movzbl %al, %eax
movl %eax, 0x2e9b7f(%rip)    # 0x355de8
leaq 0x28b290(%rip), %rcx    # 0x2f7500
movl %eax, (%rcx)
callq 0x51c47
movzbl %al, %eax
movl %eax, 0x2e9b64(%rip)    # 0x355de4
leaq 0x28b27d(%rip), %r14    # 0x2f7504
movl %eax, (%r14)
callq 0x51c47
movzbl %al, %eax
movl %eax, 0x2e9b48(%rip)    # 0x355de0
leaq 0x28b269(%rip), %r15    # 0x2f7508
movl %eax, (%r15)
callq 0x51c47
movzbl %al, %eax
leaq 0x28b25b(%rip), %r13    # 0x2f750c
movl %eax, (%r13)
callq 0x51c47
movzbl %al, %eax
leaq 0x28b24c(%rip), %rbx    # 0x2f7510
movl %eax, (%rbx)
callq 0x51c63
movzwl %ax, %edx
leaq 0x28b23f(%rip), %r12    # 0x2f7514
leaq 0x28b23c(%rip), %rax    # 0x2f7518
andq $0x0, (%rax)
movl %edx, (%r12)
leaq 0x1965e5(%rip), %rax    # 0x2028d0
cmpq $0x1, (%rax)
jne 0x6c363
leaq 0x198cdc(%rip), %rax    # 0x204fd4
cmpl $0x53, (%rax)
jne 0x6c363
leaq 0x1965c0(%rip), %rax    # 0x2028c4
cmpb $0x0, (%rax)
setne %al
leaq 0x1bc07f(%rip), %rcx    # 0x228390
movq (%rcx), %rdi
testq %rdi, %rdi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x6c34f
movl (%rbx), %ecx
movl (%r13), %r8d
movl (%r15), %r9d
movl (%r14), %r10d
leaq 0x28b1cc(%rip), %rax    # 0x2f7500
movl (%rax), %r11d
leaq 0x9fe32(%rip), %rsi     # 0x10c170
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x9560
popq %rcx
popq %rdx
movl (%r12), %edx
addl $0xfffff7cb, %edx       # imm = 0xFFFFF7CB
cmpl $-0x79, %edx
jb 0x6c511
callq 0x6beae
xorl %edi, %edi
callq 0x52194
leaq 0x28afbb(%rip), %rax    # 0x2f732c
cmpl $0x0, (%rax)
jne 0x6c383
leaq 0x1964c7(%rip), %rcx    # 0x202844
movl $0x7d7, (%rcx)          # imm = 0x7D7
movl $0x1, (%rax)
leaq 0x28af98(%rip), %rax    # 0x2f7328
cmpl $0x0, (%rax)
jne 0x6c3a2
leaq 0x1964a8(%rip), %rcx    # 0x202844
movl $0x7d8, (%rcx)          # imm = 0x7D8
movl $0x1, (%rax)
pushq $0x2
popq %rdi
callq 0x51a91
leaq 0x28b159(%rip), %rbx    # 0x2f7510
movl (%rbx), %eax
xorl %ecx, %ecx
cmpl $0xd, %eax
cmovbl %eax, %ecx
movl %ecx, (%rbx)
leaq 0x28af52(%rip), %rax    # 0x2f731c
xorl %ecx, %ecx
cmpl $0x0, (%rax)
sete %cl
leaq 0x28b0cb(%rip), %r14    # 0x2f74a4
movl (%r14), %eax
andl $-0x9, %eax
leal (%rax,%rcx,8), %eax
movl %eax, (%r14)
leaq 0x28b324(%rip), %r15    # 0x2f7710
movsd (%r15), %xmm0
leaq 0x28b320(%rip), %rax    # 0x2f7718
movsd %xmm0, (%rax)
callq 0xad3f
movsd %xmm0, (%r15)
leaq 0x198bc7(%rip), %rax    # 0x204fd4
cmpl $0x53, (%rax)
jne 0x6c41d
testb $0x1, (%r14)
je 0x6c41d
callq 0x55500
callq 0x6bb48
leaq 0x28b347(%rip), %rax    # 0x2f7770
movl (%rax), %eax
testl %eax, %eax
je 0x6c455
leaq 0x28b0d6(%rip), %rcx    # 0x2f750c
movl %eax, (%rcx)
leaq 0x28b335(%rip), %rax    # 0x2f7774
movl (%rax), %eax
movl %eax, (%rbx)
leaq 0x28b32e(%rip), %rax    # 0x2f7778
movl (%rax), %eax
leaq 0x28b0c1(%rip), %rcx    # 0x2f7514
movl %eax, (%rcx)
callq 0x6bcd1
leaq 0x1bbfb4(%rip), %rax    # 0x228415
cmpb $0x0, (%rax)
je 0x6c46b
callq 0x5dffd
leaq 0x19645e(%rip), %r14    # 0x2028d0
movq (%r14), %rcx
cmpq $0x1, %rcx
sete %dl
leaq 0x2b4dc1(%rip), %r15    # 0x321244
movl (%r15), %eax
testl %eax, %eax
setne %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x6c4d0
xorl %r12d, %r12d
leaq 0x2b4ca1(%rip), %r13    # 0x321140
pushq $0xa
popq %rbx
cltq
cmpq %rax, %r12
jge 0x6c4c0
movzbl (%r13,%r12), %esi
movl %ebx, %edi
xorl %edx, %edx
callq 0xba3b
incq %r12
movl (%r15), %eax
jmp 0x6c4a2
pushq $0xa
popq %rdi
pushq $0x2
popq %rdx
xorl %esi, %esi
callq 0xba3b
movq (%r14), %rcx
cmpq $0x10, %rcx
setne %al
cmpq $0x1000, %rcx           # imm = 0x1000
setne %dl
andb %al, %dl
cmpq $0x8, %rcx
setne %al
andb %dl, %al
leaq 0x1bca7d(%rip), %rcx    # 0x228f70
cmpl $0x0, (%rcx)
setne %cl
testb %cl, %al
jne 0x6c67a
leaq 0x2b4b10(%rip), %rax    # 0x321018
cmpb $0x0, (%rax)
jne 0x6c67a
leaq 0x28afe8(%rip), %r14    # 0x2f7500
movl (%r14), %esi
xorl %ebx, %ebx
cmpl $0x3e, %esi
jl 0x6c534
leaq 0x9fc74(%rip), %rdi     # 0x10c19d
callq 0xc2072
movl (%r14), %esi
pushq $0x1
popq %rbx
testl %esi, %esi
jns 0x6c546
leaq 0x9fc69(%rip), %rdi     # 0x10c1a8
callq 0xc2072
incl %ebx
leaq 0x28afb7(%rip), %r15    # 0x2f7504
movl (%r15), %esi
cmpl $0x3d, %esi
jl 0x6c566
leaq 0x9fc56(%rip), %rdi     # 0x10c1b2
callq 0xc2072
incl %ebx
movl (%r15), %esi
testl %esi, %esi
jns 0x6c578
leaq 0x9fc4c(%rip), %rdi     # 0x10c1bd
callq 0xc2072
incl %ebx
leaq 0x28af89(%rip), %r13    # 0x2f7508
movl (%r13), %esi
cmpl $0x19, %esi
jl 0x6c59a
leaq 0x9fc38(%rip), %rdi     # 0x10c1c7
callq 0xc2072
incl %ebx
movl (%r13), %esi
testl %esi, %esi
jns 0x6c5ac
leaq 0x9fc2b(%rip), %rdi     # 0x10c1d0
callq 0xc2072
incl %ebx
leaq 0x28af59(%rip), %r12    # 0x2f750c
movl (%r12), %esi
cmpl $0x20, %esi
jl 0x6c5ce
leaq 0x9fc15(%rip), %rdi     # 0x10c1d8
callq 0xc2072
incl %ebx
movl (%r12), %esi
movq %r14, %r12
testl %esi, %esi
jg 0x6c5e3
leaq 0x9fc03(%rip), %rdi     # 0x10c1df
callq 0xc2072
incl %ebx
leaq 0x28af26(%rip), %r14    # 0x2f7510
movl (%r14), %esi
cmpl $0xd, %esi
jl 0x6c603
leaq 0x9fbed(%rip), %rdi     # 0x10c1e6
callq 0xc2072
incl %ebx
movl (%r14), %esi
testl %esi, %esi
jg 0x6c615
leaq 0x9fbe1(%rip), %rdi     # 0x10c1ef
callq 0xc2072
incl %ebx
leaq 0x28aef8(%rip), %r15    # 0x2f7514
movl (%r15), %esi
cmpl $0x7bb, %esi            # imm = 0x7BB
jg 0x6c638
leaq 0x9fbca(%rip), %rdi     # 0x10c1f8
callq 0xc2072
incl %ebx
movl (%r15), %esi
cmpl $0x835, %esi            # imm = 0x835
jl 0x6c650
leaq 0x9fbbb(%rip), %rdi     # 0x10c202
callq 0xc2072
incl %ebx
jmp 0x6c658
testl %ebx, %ebx
je 0x6c703
leaq 0x196271(%rip), %rax    # 0x2028d0
cmpq $0x1, (%rax)
jne 0x6c67a
leaq 0x198968(%rip), %rax    # 0x204fd4
cmpl $0x53, (%rax)
jne 0x6c67a
leaq 0x1a0f78(%rip), %rax    # 0x20d5f0
movl %ebx, (%rax)
callq 0x6c8a7
leaq 0x19624a(%rip), %rax    # 0x2028d0
movq (%rax), %rax
cmpq $0x1, %rax
sete %dl
leaq 0x19893d(%rip), %rcx    # 0x204fd4
movl (%rcx), %ecx
cmpl $0x50, %ecx
sete %sil
testb %sil, %dl
jne 0x6c6ee
cmpq $0x1, %rax
sete %al
cmpl $0x41, %ecx
sete %cl
andb %al, %cl
leaq 0x19623d(%rip), %rax    # 0x2028f8
movl (%rax), %eax
cmpl $0x47, %eax
sete %dl
testb %dl, %cl
jne 0x6c6d3
testb %cl, %cl
je 0x6c6df
cmpl $0x33, %eax
je 0x6c6d3
cmpl $0x47, %eax
leaq 0x28abc6(%rip), %rax    # 0x2f72a0
cmpl $0x0, (%rax)
je 0x6c6ee
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %edi, %edi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x6caa5
movl (%r12), %eax
leaq 0x28adba(%rip), %rbx    # 0x2f74c8
movl %eax, (%rbx)
leaq 0x28aded(%rip), %rax    # 0x2f7504
movl (%rax), %eax
leaq 0x28adac(%rip), %r15    # 0x2f74cc
movl %eax, (%r15)
movl (%r13), %eax
leaq 0x28ada2(%rip), %r12    # 0x2f74d0
movl %eax, (%r12)
leaq 0x28add3(%rip), %rax    # 0x2f750c
movl (%rax), %edx
leaq 0x28ad92(%rip), %rax    # 0x2f74d4
movl %edx, (%rax)
movl (%r14), %eax
leaq 0x28ad8a(%rip), %rcx    # 0x2f74d8
movl %eax, (%rcx)
leaq 0x28ad85(%rip), %rcx    # 0x2f74dc
movl %esi, (%rcx)
leaq 0x28adb8(%rip), %rcx    # 0x2f7518
movsd (%rcx), %xmm0
leaq 0x28ad75(%rip), %r14    # 0x2f74e0
movsd %xmm0, (%r14)
leaq 0x28afcd(%rip), %rcx    # 0x2f7744
movl (%rcx), %ecx
leaq 0x28afbc(%rip), %rdi    # 0x2f773c
movl %ecx, (%rdi)
leaq 0x28afb7(%rip), %rdi    # 0x2f7740
movl %ecx, (%rdi)
leaq 0x28afbe(%rip), %rdi    # 0x2f7750
movq %rcx, (%rdi)
movl %esi, %edi
movl %eax, %esi
callq 0xc2f07
movsd %xmm0, -0x30(%rbp)
movl (%r12), %edi
movl (%r15), %esi
movl (%rbx), %edx
movsd (%r14), %xmm0
callq 0xc2faf
addsd -0x30(%rbp), %xmm0
leaq 0x28ad76(%rip), %rax    # 0x2f7538
movsd %xmm0, (%rax)
leaq 0x28ad63(%rip), %rax    # 0x2f7530
movsd %xmm0, (%rax)
leaq 0x198c1c(%rip), %rax    # 0x2053f4
cmpl $0x0, (%rax)
jne 0x6c7ee
leaq 0x198c14(%rip), %rcx    # 0x2053f8
movsd %xmm0, (%rcx)
movl $0x1, (%rax)
leaq 0x28ad93(%rip), %rax    # 0x2f7588
leaq 0x28ad88(%rip), %rbx    # 0x2f7584
movl (%rbx), %ecx
incl %ecx
xorl %edx, %edx
ucomisd (%rax), %xmm0
cmovnel %edx, %ecx
cmovpl %edx, %ecx
movl %ecx, (%rbx)
movsd %xmm0, (%rax)
leaq 0x28ad77(%rip), %rax    # 0x2f7590
movsd (%rax), %xmm1
xorpd %xmm2, %xmm2
ucomisd %xmm2, %xmm1
jne 0x6c82d
jp 0x6c82d
movsd %xmm0, (%rax)
callq 0x56fac
leaq 0x2b47e7(%rip), %rax    # 0x321020
cmpb $0x0, (%rax)
je 0x6c843
callq 0x68b5b
callq 0x535a1
cmpl $0x5, (%rbx)
jg 0x6c67a
leaq 0x28abf8(%rip), %rax    # 0x2f7450
cmpb $0x0, (%rax)
je 0x6c67a
leaq 0x28abe9(%rip), %rax    # 0x2f7451
cmpb $0x0, (%rax)
je 0x6c67a
callq 0xaa05
leaq 0x28abd5(%rip), %rax    # 0x2f7452
movb $0x1, (%rax)
leaq 0x28aa11(%rip), %rax    # 0x2f7298
cmpl $0x0, (%rax)
jne 0x6c892
movl $0x63, (%rax)
leaq 0x9f973(%rip), %rdx     # 0x10c20c
xorl %edi, %edi
xorl %esi, %esi
callq 0xf1b3
jmp 0x6c67a