// File: /workspace/github_cpp_makefile_star2_O3/jkingan[P]ladyheather/heathgps.cpp
// Function: show_time_info()
void show_time_info()
{
int color;
u08 alarm_state;
long sec;
int row;
int zoomed;
unsigned week;
int flag;

   zoomed = zoom_screen;
   if(1 && (!SMALL_SCREEN) && ((zoom_screen == 'S') || (zoom_screen == 'L') || (zoom_screen == 'M'))) zoomed = 0;
   if(zoom_screen == 'I') zoomed = 0;

   if((text_mode && first_key) || zoomed || luxor) { // screen in use for help/edit info
      time_set_char = ' ';
      return;
   }

   if(alarm_time || alarm_date || egg_timer) alarm_state = ALARM_CHAR;
   else if(dump_time || dump_date || dump_timer || log_time || log_date || log_timer) {
      if(single_dump || single_log) alarm_state = '!';         //!!!!! need separate flags for screen and log dumps
      else                          alarm_state = DUMP_CHAR;
   }
   else if(cuckoo) {
      if(singing_clock) alarm_state = SONG_CHAR;
      else if(ships_clock) alarm_state = '#'; // SONG_CHAR;
      else alarm_state = CHIME_CHAR;
   }
   else alarm_state = ' ';

   if(time_set_char != ' ') {
      sprintf(out, "Time synced %c  ", alarm_state);
      vidstr(TIME_ROW+0, TIME_COL, GREEN, out);
   }
   else if(time_flags & TFLAGS_INVALID) {
      sprintf(out, "Time invalid %c ", alarm_state);
      vidstr(TIME_ROW+0, TIME_COL, RED, out);
      time_color = RED;
   }
   else if(time_flags & TFLAGS_RTC)     {
      sprintf(out, "RTC time %c     ", alarm_state);
      vidstr(TIME_ROW+0, TIME_COL, YELLOW, out);
      time_color = RED;
   }
   else if((time_flags & TFLAGS_NO_UTC_OFS) || !have_utc_ofs) {
      sprintf(out, "NO UTC offset %c", alarm_state);
      if(time_flags & TFLAGS_UTC) vidstr(TIME_ROW+0, TIME_COL, RED, out);
      else                        vidstr(TIME_ROW+0, TIME_COL, YELLOW, out);
      time_color = YELLOW;
   }
   else if((time_flags & TFLAGS_GNSS_MASK) && (rcvr_type == ESIP_RCVR)) {
      if((time_flags & TFLAGS_GNSS_MASK) == TFLAGS_GLONASS)      sprintf(out, "UTC(SU) TIME %c ", alarm_state);
      else if((time_flags & TFLAGS_GNSS_MASK) == TFLAGS_BEIDOU)  sprintf(out, "BEIDOU TIME %c  ", alarm_state);
      else if((time_flags & TFLAGS_GNSS_MASK) == TFLAGS_GALILEO) sprintf(out, "GALILEO TIME %c ", alarm_state);
      else                                                       sprintf(out, "UNKNOWN TIME %c ", alarm_state);
      time_color = YELLOW;
      vidstr(TIME_ROW+0, TIME_COL, time_color, out);
   }
   else if((time_flags & TFLAGS_GNSS_MASK) && (saw_icm || ACU_GG || ACU_360 || (res_t == RES_T_360))) {
      if((time_flags & TFLAGS_GNSS_MASK) == 0x20)      sprintf(out, "GLONASS TIME %c ", alarm_state);
      else if((time_flags & TFLAGS_GNSS_MASK) == 0x30) sprintf(out, "GLONASS TIME %c ", alarm_state); 
      else if((time_flags & TFLAGS_GNSS_MASK) == TFLAGS_GALILEO) sprintf(out, "GALILEO TIME %c ", alarm_state);
      else                                                       sprintf(out, "UNK GNSS TIME%c ", alarm_state);
      time_color = YELLOW;
      vidstr(TIME_ROW+0, TIME_COL, time_color, out);
   }
   else if((time_flags & TFLAGS_USER_TIME) && (STARLOC == 0)) {
      sprintf(out, "USER set time %c", alarm_state);
      vidstr(TIME_ROW+0, TIME_COL, YELLOW, out);
      time_color = YELLOW;
   }
   else if(time_flags & TFLAGS_UTC) {
      if(0 && (rcvr_type == ESIP_RCVR) && (esip_time_source == 3)) {
         sprintf(out, "UTC(SU) OK %c   ", alarm_state);
         if(have_timing_mode) vidstr(TIME_ROW+0, TIME_COL, YELLOW, out);
         else                 vidstr(TIME_ROW+0, TIME_COL, GREY,   out);
      }
      else {
         sprintf(out, "UTC time OK %c  ", alarm_state);
         if(have_timing_mode) vidstr(TIME_ROW+0, TIME_COL, GREEN,  out);
         else                 vidstr(TIME_ROW+0, TIME_COL, GREY,   out);
      }

      if(dst_ofs)            time_color = DST_TIME_COLOR;
      else if(time_zone_set) time_color = DST_TIME_COLOR;  // !!! std_time_color is rather dim for the big clock
      else                   time_color = WHITE;
   }
   else {
      sprintf(out, "GPS time OK %c  ", alarm_state);
      if(have_timing_mode) vidstr(TIME_ROW+0, TIME_COL, YELLOW, out);
      else                 vidstr(TIME_ROW+0, TIME_COL, GREY,   out);
      if(dst_ofs)            time_color = DST_TIME_COLOR;
      else if(time_zone_set) time_color = DST_TIME_COLOR;  // !!! std_time_color is rather dim for the big clock
      else                   time_color = WHITE;
   }

   if(time_color != last_time_color) {  // redraw big clock if time status has changed
      last_time_color = time_color;
   }

   if(leap_time) {  // log possible leap second
      write_log_leapsecond();
   }

   if((last_utc_offset != (-9999)) && (utc_offset != last_utc_offset)) {
      write_log_utc(utc_offset);
   }
   last_utc_offset = utc_offset;


   color = WHITE;
   if(sound_alarm && (ticker & 0x01)) {  // flash screen clocks RED
      color = RED;
   }

   if(seconds_time || fraction_time) {
      sec  = (long) pri_hours * 60L*60L;
      sec += (long) pri_minutes * 60L;
      sec += (long) pri_seconds;
      if(fraction_time) {
         sec *= 1000L;
         sec /= 864L;
         sprintf(out, "%s: .%05ld", tz_info(), sec);
      }
      else {
         sprintf(out, "%s:  %05ld", tz_info(), sec);
      }
      if(dst_ofs)            vidstr(TIME_ROW+2,TIME_COL, DST_TIME_COLOR, out);
      else if(time_zone_set) vidstr(TIME_ROW+2,TIME_COL, STD_TIME_COLOR, out);
      else                   vidstr(TIME_ROW+2,TIME_COL, WHITE, out);

      strcpy(out, fmt_date(0));
      vidstr(TIME_ROW+1,TIME_COL, color, out);
   }
   else {
      sprintf(out, "%02d:%02d:%02d %s", pri_hours,pri_minutes,pri_seconds, tz_info());
      if(dst_ofs)            vidstr(TIME_ROW+1,TIME_COL, DST_TIME_COLOR, out);
      else if(time_zone_set) vidstr(TIME_ROW+1,TIME_COL, STD_TIME_COLOR, out);
      else                   vidstr(TIME_ROW+1,TIME_COL, WHITE, out);

      strcpy(out, fmt_date(0));
      if(rolled && (color == WHITE)) {
         vidstr(TIME_ROW+2,TIME_COL, YELLOW, out);
      }
      else {
         vidstr(TIME_ROW+2,TIME_COL, color, out);
      }
   }
   

   row = TIME_ROW+3;
// if(have_week == 999) color = YELLOW;  // using faked GPS week and tow numbers
   if(have_week) {
      week = (unsigned) gps_week;
      flag = 0;
      if(0 && rolls && (week < 1024)) {  // adjust displayed week for rollovers
         week += 1024 * (unsigned) rolls;
         flag = 1;
      }
      sprintf(out, "Week: %5u  ", week);

      if((color == WHITE) && faked_tow) flag = 1;
      if     (flag)      vidstr(row,TIME_COL, YELLOW, out);
      else if(rolled)    vidstr(row,TIME_COL, color, out);
      else if(rollover)  vidstr(row,TIME_COL, color, out);
      else               vidstr(row,TIME_COL, color, out);
      ++row;
   }

   if(have_tow) {
      sprintf(out, "TOW:%7lu  ", (unsigned long) tow);
      if((color == WHITE) && faked_tow) vidstr(row,TIME_COL, YELLOW, out);
      else                              vidstr(row,TIME_COL, color, out);
      ++row;
   }

   if(have_utc_ofs) {
      sprintf(out, "UTC ofs:%3d  ", utc_offset);
      if(color == RED) ;
      else if(user_set_utc_ofs) color = YELLOW;   // using user value
      else if(have_utc_ofs < 0) color = RED;      // using estimated value
      vidstr(row,TIME_COL, color, out);           // using receiver value
      ++row;
   }

   time_set_char = ' ';
   return;
}

// Assembly:
leaq 0x2b08b1(%rip), %rax    # 0x30c7a8
movb (%rax), %al
leaq 0x1bc900(%rip), %rdx    # 0x218800
leaq 0x1c763d(%rip), %rcx    # 0x223544
imull $0x31a, (%rcx), %ecx    # imm = 0x31A
movslq %ecx, %rcx
imulq $0x51eb851f, %rcx, %rsi # imm = 0x51EB851F
movq %rsi, %rcx
shrq $0x3f, %rcx
sarq $0x25, %rsi
addl %ecx, %esi
movl %eax, %ecx
cmpl %esi, (%rdx)
jl 0x5bf56
leaq 0x1bc8d3(%rip), %rcx    # 0x218804
cmpl $0x258, (%rcx)          # imm = 0x258
movl %eax, %ecx
jl 0x5bf56
movzbl %al, %edx
addl $-0x4c, %edx
movl %eax, %ecx
cmpl $0x7, %edx
ja 0x5bf56
movl $0x83, %ecx
btl %edx, %ecx
movl %eax, %ecx
jae 0x5bf56
xorl %ecx, %ecx
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpb $0x49, %al
setne %al
leaq 0x1bc868(%rip), %rdx    # 0x2187d8
cmpl $0x0, (%rdx)
setne %dl
leaq 0x1e2fdb(%rip), %rsi    # 0x23ef58
cmpl $0x0, (%rsi)
setne %sil
testb %cl, %cl
setne %cl
testb %sil, %dl
jne 0x5c52d
andb %cl, %al
jne 0x5c52d
leaq 0x1e2f9d(%rip), %rax    # 0x23ef3e
cmpb $0x0, (%rax)
jne 0x5c52d
leaq 0x2b1f6b(%rip), %rax    # 0x30df1c
cmpl $0x0, (%rax)
movl $0xf, %edx
jne 0x5c086
leaq 0x2b1f66(%rip), %rax    # 0x30df2c
cmpl $0x0, (%rax)
jne 0x5c086
leaq 0x2b1f32(%rip), %rax    # 0x30df08
cmpq $0x0, (%rax)
jne 0x5c086
leaq 0x2b1f69(%rip), %rax    # 0x30df50
cmpl $0x0, (%rax)
jne 0x5c060
leaq 0x2b1f6d(%rip), %rax    # 0x30df60
cmpl $0x0, (%rax)
jne 0x5c060
leaq 0x2b1f81(%rip), %rax    # 0x30df80
cmpq $0x0, (%rax)
jne 0x5c060
leaq 0x2b1f98(%rip), %rax    # 0x30dfa4
cmpl $0x0, (%rax)
jne 0x5c060
leaq 0x2b1f9c(%rip), %rax    # 0x30dfb4
cmpl $0x0, (%rax)
jne 0x5c060
leaq 0x2b1fb4(%rip), %rax    # 0x30dfd8
cmpq $0x0, (%rax)
jne 0x5c060
leaq 0x2b1eab(%rip), %rax    # 0x30dedc
cmpb $0x0, (%rax)
je 0x5c081
leaq 0x2b1ea0(%rip), %rax    # 0x30dedd
movl $0xe, %edx
cmpb $0x0, (%rax)
jne 0x5c086
leaq 0x2b1e93(%rip), %rax    # 0x30dee1
cmpb $0x0, (%rax)
movl $0xd, %eax
movl $0x23, %edx
cmovel %eax, %edx
jmp 0x5c086
leaq 0x2b1f32(%rip), %rax    # 0x30df99
leaq 0x2b1f83(%rip), %rcx    # 0x30dff1
movb (%rcx), %cl
orb (%rax), %cl
movl $0x21, %eax
movl $0x13, %edx
cmovnel %eax, %edx
jmp 0x5c086
movl $0x20, %edx
leaq 0x2b1e23(%rip), %rax    # 0x30deb0
cmpb $0x20, (%rax)
jne 0x5c109
leaq 0x2b140b(%rip), %r14    # 0x30d4a4
movl (%r14), %eax
testb $0x4, %al
jne 0x5c134
btl $0x8, %eax
jb 0x5c157
testb $0x8, %al
jne 0x5c546
leaq 0x2b125f(%rip), %rcx    # 0x30d31c
cmpl $0x0, (%rcx)
je 0x5c546
movl %eax, %esi
andl $0x30, %esi
setne %dil
leaq 0x1bc7fa(%rip), %rcx    # 0x2188d0
movq (%rcx), %rcx
movl $0x80000000, %r8d       # imm = 0x80000000
cmpq %r8, %rcx
sete %r8b
andb %dil, %r8b
cmpb $0x1, %r8b
jne 0x5c58c
shrl $0x4, %esi
leaq 0xc3ee7(%rip), %rax     # 0x11ffe4
movslq (%rax,%rsi,4), %rsi
addq %rax, %rsi
jmp 0x5c5e2
leaq 0x2e0110(%rip), %rbx    # 0x33c220
leaq 0xcc3d4(%rip), %rsi     # 0x1284eb
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %edi, %edi
xorl %esi, %esi
movl $0xa, %edx
movq %rbx, %rcx
callq 0xe787
jmp 0x5c18d
leaq 0x2e00e5(%rip), %rbx    # 0x33c220
leaq 0xcc3ba(%rip), %rsi     # 0x1284fc
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %edi, %edi
xorl %esi, %esi
movl $0xc, %edx
jmp 0x5c178
leaq 0x2e00c2(%rip), %rbx    # 0x33c220
leaq 0xcc3a8(%rip), %rsi     # 0x12850d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %edi, %edi
xorl %esi, %esi
movl $0xe, %edx
movq %rbx, %rcx
callq 0xe787
leaq 0x1c744d(%rip), %rax    # 0x2235d4
movl $0xc, (%rax)
leaq 0x1c7440(%rip), %rax    # 0x2235d4
movl (%rax), %eax
leaq 0x1c743b(%rip), %rcx    # 0x2235d8
cmpl (%rcx), %eax
je 0x5c1a3
movl %eax, (%rcx)
leaq 0x2b12a6(%rip), %rax    # 0x30d450
cmpb $0x0, (%rax)
je 0x5c1b4
callq 0xd3a64
leaq 0x2b1571(%rip), %rbx    # 0x30d72c
movl (%rbx), %eax
leaq 0x2b1564(%rip), %r12    # 0x30d728
movl (%r12), %edi
cmpl $0xffffd8f1, %eax       # imm = 0xFFFFD8F1
jne 0x5c1d3
movl %edi, %eax
jmp 0x5c1e0
cmpl %eax, %edi
je 0x5c1e0
callq 0xd39cc
movl (%r12), %eax
movl %eax, (%rbx)
leaq 0x2b1d5f(%rip), %rax    # 0x30df48
movb $0xf, %r15b
movb $0x1, %cl
movl %ecx, -0x2c(%rbp)
cmpb $0x0, (%rax)
je 0x5c202
leaq 0x2b1ce3(%rip), %rax    # 0x30dee0
testb $0x1, (%rax)
jne 0x5c207
xorl %r13d, %r13d
jmp 0x5c214
movb $0xc, %r15b
movb $0x1, %r13b
movl $0x0, -0x2c(%rbp)
leaq 0x2b1562(%rip), %rcx    # 0x30d77d
leaq 0x2b155a(%rip), %rax    # 0x30d77c
movb (%rax), %al
leaq 0x2b12dd(%rip), %rdx    # 0x30d508
movslq (%rdx), %r14
movb (%rcx), %cl
orb %al, %cl
je 0x5c29b
imulq $0xe10, %r14, %rcx      # imm = 0xE10
leaq 0x2b12c2(%rip), %rdx    # 0x30d504
movslq (%rdx), %rdx
imulq $0x3c, %rdx, %rdx
addq %rcx, %rdx
leaq 0x2b12ad(%rip), %rcx    # 0x30d500
movslq (%rcx), %rbx
addq %rdx, %rbx
testb %al, %al
je 0x5c387
imulq $0x3e8, %rbx, %rax      # imm = 0x3E8
movabsq $0x4bda12f684bda13, %rcx # imm = 0x4BDA12F684BDA13
imulq %rcx
movq %rdx, %rbx
shrq $0x3f, %rbx
sarq $0x4, %rdx
addq %rdx, %rbx
callq 0xf057c
leaq 0x2dff91(%rip), %rdi    # 0x33c220
leaq 0xcc332(%rip), %rsi     # 0x1285c8
jmp 0x5c39a
movl %r13d, -0x30(%rbp)
movl %r15d, %r13d
leaq 0x2b125b(%rip), %rax    # 0x30d504
movl (%rax), %r15d
leaq 0x2b124d(%rip), %rax    # 0x30d500
movl (%rax), %r12d
callq 0xf057c
leaq 0x2dff5e(%rip), %rbx    # 0x33c220
leaq 0xae801(%rip), %rsi     # 0x10aaca
movq %rbx, %rdi
movl %r14d, %edx
movl %r15d, %ecx
movl %r12d, %r8d
movq %rax, %r9
xorl %eax, %eax
callq 0x9060
leaq 0x2b15ba(%rip), %rax    # 0x30d8a0
leaq 0x2b15a7(%rip), %rcx    # 0x30d894
cmpb $0x0, (%rcx)
movl $0xf, %ecx
movl $0x9, %esi
cmovel %ecx, %esi
cmpl $0x0, (%rax)
movl $0xb, %edx
cmovel %esi, %edx
movl $0x1, %edi
xorl %esi, %esi
movq %rbx, %rcx
callq 0xe787
xorl %edi, %edi
callq 0xef8e6
movq %rbx, %rdi
movq %rax, %rsi
callq 0x9340
leaq 0x2b10e0(%rip), %rax    # 0x30d410
cmpl $0x0, (%rax)
sete %al
movl -0x2c(%rbp), %ecx
xorb $0x1, %cl
orb %al, %cl
jne 0x5c35d
leaq 0x2dfed9(%rip), %rcx    # 0x33c220
movl $0x2, %edi
xorl %esi, %esi
movl $0xe, %edx
callq 0xe787
movl %r13d, %r15d
jmp 0x5c377
movl %r13d, %r15d
movzbl %r13b, %edx
leaq 0x2dfeb5(%rip), %rcx    # 0x33c220
movl $0x2, %edi
xorl %esi, %esi
callq 0xe787
leaq 0x2b13aa(%rip), %r12    # 0x30d728
movl -0x30(%rbp), %r13d
jmp 0x5c40b
callq 0xf057c
leaq 0x2dfe8d(%rip), %rdi    # 0x33c220
leaq 0xcc239(%rip), %rsi     # 0x1285d3
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x9060
leaq 0x2b14f2(%rip), %rax    # 0x30d8a0
leaq 0x2b14df(%rip), %rcx    # 0x30d894
cmpb $0x0, (%rcx)
movl $0xf, %ecx
movl $0x9, %esi
cmovel %ecx, %esi
cmpl $0x0, (%rax)
movl $0xb, %edx
cmovel %esi, %edx
leaq 0x2dfe49(%rip), %rbx    # 0x33c220
movl $0x2, %edi
xorl %esi, %esi
movq %rbx, %rcx
callq 0xe787
xorl %edi, %edi
callq 0xef8e6
movq %rbx, %rdi
movq %rax, %rsi
callq 0x9340
movzbl %r15b, %edx
movl $0x1, %edi
xorl %esi, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x2b0f1a(%rip), %rax    # 0x30d32c
cmpl $0x0, (%rax)
je 0x5c46f
leaq 0x2b131a(%rip), %rax    # 0x30d738
movzwl (%rax), %edx
leaq 0x2dfdf8(%rip), %rbx    # 0x33c220
leaq 0xcc1af(%rip), %rsi     # 0x1285de
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2b1308(%rip), %rax    # 0x30d748
cmpl $0x0, (%rax)
movzbl %r15b, %eax
movl $0xe, %ecx
cmovel %eax, %ecx
cmpb $0x0, -0x2c(%rbp)
cmovel %eax, %ecx
movzbl %cl, %edx
movl $0x3, %edi
xorl %esi, %esi
movq %rbx, %rcx
callq 0xe787
movl $0x4, %ebx
jmp 0x5c474
movl $0x3, %ebx
leaq 0x2b0ead(%rip), %rax    # 0x30d328
cmpl $0x0, (%rax)
je 0x5c4cf
leaq 0x2b12b5(%rip), %rax    # 0x30d73c
movl (%rax), %edx
leaq 0x2dfd90(%rip), %r14    # 0x33c220
leaq 0xcc153(%rip), %rsi     # 0x1285ea
movq %r14, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2b12a0(%rip), %rax    # 0x30d748
cmpl $0x0, (%rax)
movzbl %r15b, %eax
movl $0xe, %ecx
cmovel %eax, %ecx
cmpb $0x0, -0x2c(%rbp)
cmovel %eax, %ecx
movzbl %cl, %edx
movl %ebx, %edi
xorl %esi, %esi
movq %r14, %rcx
callq 0xe787
incl %ebx
leaq 0x2b0e46(%rip), %r14    # 0x30d31c
cmpl $0x0, (%r14)
je 0x5c52d
movl (%r12), %edx
leaq 0x2dfd39(%rip), %rdi    # 0x33c220
leaq 0xcc107(%rip), %rsi     # 0x1285f5
xorl %eax, %eax
callq 0x9060
movb $0xc, %al
testb %r13b, %r13b
jne 0x5c51a
leaq 0x2b1231(%rip), %rcx    # 0x30d734
movb $0xe, %al
cmpl $0x0, (%rcx)
jne 0x5c51a
cmpl $0x0, (%r14)
movzbl %r15b, %ecx
movl $0xc, %eax
cmovnsl %ecx, %eax
movzbl %al, %edx
leaq 0x2dfcfc(%rip), %rcx    # 0x33c220
movl %ebx, %edi
xorl %esi, %esi
callq 0xe787
leaq 0x2b197c(%rip), %rax    # 0x30deb0
movb $0x20, (%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2dfcd3(%rip), %rbx    # 0x33c220
leaq 0xcbfca(%rip), %rsi     # 0x12851e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %eax, %eax
testb $0x1, (%r14)
sete %al
leal 0xc(,%rax,2), %edx
xorl %edi, %edi
xorl %esi, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x1c7053(%rip), %rax    # 0x2235d4
movl $0xe, (%rax)
jmp 0x5c18d
testl %esi, %esi
je 0x5c635
leaq 0x1e2992(%rip), %rsi    # 0x23ef2d
cmpb $0x0, (%rsi)
jne 0x5c5ce
cmpq $0x1, %rcx
sete %sil
leaq 0x1bea25(%rip), %rdi    # 0x21afd4
cmpl $0x41, (%rdi)
sete %dil
andb %sil, %dil
leaq 0x1bc338(%rip), %rsi    # 0x2188f8
movl (%rsi), %esi
cmpl $0x47, %esi
sete %r8b
testb %r8b, %dil
je 0x5c60e
testb $0x20, %al
leaq 0xcbfad(%rip), %rax     # 0x128584
leaq 0xcbf95(%rip), %rsi     # 0x128573
cmoveq %rax, %rsi
leaq 0x2dfc37(%rip), %rbx    # 0x33c220
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x1c6fda(%rip), %rax    # 0x2235d4
movl $0xe, (%rax)
xorl %edi, %edi
xorl %esi, %esi
movl $0xe, %edx
jmp 0x5c12a
leaq 0x1bc2ef(%rip), %r8     # 0x218904
movb (%r8), %r8b
testb %dil, %dil
je 0x5c62f
cmpb $0x4, %r8b
je 0x5c5ce
cmpl $0x33, %esi
je 0x5c5ce
cmpl $0x47, %esi
je 0x5c5ce
jmp 0x5c635
cmpb $0x4, %r8b
je 0x5c5ce
testb $0x10, %al
je 0x5c653
cmpq $0x1, %rcx
jne 0x5c6e5
leaq 0x1be98a(%rip), %rcx    # 0x21afd4
cmpl $0x53, (%rcx)
jne 0x5c6e5
leaq 0x2dfbc6(%rip), %rbx    # 0x33c220
testb $0x1, %al
jne 0x5c688
leaq 0xcbf52(%rip), %rsi     # 0x1285b7
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2b0d56(%rip), %rax    # 0x30d3cc
cmpl $0x0, (%rax)
movl $0x8, %eax
movl $0xe, %edx
cmovel %eax, %edx
jmp 0x5c6af
leaq 0xcbf17(%rip), %rsi     # 0x1285a6
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2b0d2c(%rip), %rax    # 0x30d3cc
xorl %ecx, %ecx
cmpl $0x0, (%rax)
setne %cl
leal 0x8(,%rcx,2), %edx
xorl %edi, %edi
xorl %esi, %esi
movq %rbx, %rcx
callq 0xe787
leaq 0x2b11de(%rip), %rax    # 0x30d8a0
cmpl $0x0, (%rax)
jne 0x5c6d3
leaq 0x2b11c6(%rip), %rax    # 0x30d894
cmpb $0x0, (%rax)
je 0x5c70b
leaq 0x1c6efa(%rip), %rax    # 0x2235d4
movl $0xb, (%rax)
jmp 0x5c18d
leaq 0x2dfb34(%rip), %rbx    # 0x33c220
leaq 0xcbea2(%rip), %rsi     # 0x128595
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %edi, %edi
xorl %esi, %esi
movl $0xe, %edx
jmp 0x5c572
leaq 0x1c6ec2(%rip), %rax    # 0x2235d4
movl $0xf, (%rax)
jmp 0x5c18d