// File: /workspace/github_cpp_makefile_star2_O1/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 0x2b0798(%rip), %rax    # 0x30c7a8
movb (%rax), %al
leaq 0x1bc7e7(%rip), %rdx    # 0x218800
leaq 0x1c7524(%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 0x5c06f
leaq 0x1bc7ba(%rip), %rcx    # 0x218804
cmpl $0x258, (%rcx)          # imm = 0x258
movl %eax, %ecx
jl 0x5c06f
movzbl %al, %edx
addl $-0x4c, %edx
movl %eax, %ecx
cmpl $0x7, %edx
ja 0x5c06f
movl $0x83, %ecx
btl %edx, %ecx
movl %eax, %ecx
jae 0x5c06f
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 0x1bc74f(%rip), %rdx    # 0x2187d8
cmpl $0x0, (%rdx)
setne %dl
leaq 0x1e2ec2(%rip), %rsi    # 0x23ef58
cmpl $0x0, (%rsi)
setne %sil
testb %cl, %cl
setne %cl
testb %sil, %dl
jne 0x5c647
andb %cl, %al
jne 0x5c647
leaq 0x1e2e84(%rip), %rax    # 0x23ef3e
cmpb $0x0, (%rax)
jne 0x5c647
leaq 0x2b1e52(%rip), %rax    # 0x30df1c
cmpl $0x0, (%rax)
movl $0xf, %edx
jne 0x5c19f
leaq 0x2b1e4d(%rip), %rax    # 0x30df2c
cmpl $0x0, (%rax)
jne 0x5c19f
leaq 0x2b1e19(%rip), %rax    # 0x30df08
cmpq $0x0, (%rax)
jne 0x5c19f
leaq 0x2b1e50(%rip), %rax    # 0x30df50
cmpl $0x0, (%rax)
jne 0x5c179
leaq 0x2b1e54(%rip), %rax    # 0x30df60
cmpl $0x0, (%rax)
jne 0x5c179
leaq 0x2b1e68(%rip), %rax    # 0x30df80
cmpq $0x0, (%rax)
jne 0x5c179
leaq 0x2b1e7f(%rip), %rax    # 0x30dfa4
cmpl $0x0, (%rax)
jne 0x5c179
leaq 0x2b1e83(%rip), %rax    # 0x30dfb4
cmpl $0x0, (%rax)
jne 0x5c179
leaq 0x2b1e9b(%rip), %rax    # 0x30dfd8
cmpq $0x0, (%rax)
jne 0x5c179
leaq 0x2b1d92(%rip), %rax    # 0x30dedc
cmpb $0x0, (%rax)
je 0x5c19a
leaq 0x2b1d87(%rip), %rax    # 0x30dedd
movl $0xe, %edx
cmpb $0x0, (%rax)
jne 0x5c19f
leaq 0x2b1d7a(%rip), %rax    # 0x30dee1
cmpb $0x0, (%rax)
movl $0xd, %eax
movl $0x23, %edx
cmovel %eax, %edx
jmp 0x5c19f
leaq 0x2b1e19(%rip), %rax    # 0x30df99
leaq 0x2b1e6a(%rip), %rcx    # 0x30dff1
movb (%rcx), %cl
orb (%rax), %cl
movl $0x21, %eax
movl $0x13, %edx
cmovnel %eax, %edx
jmp 0x5c19f
movl $0x20, %edx
leaq 0x2b1d0a(%rip), %rax    # 0x30deb0
cmpb $0x20, (%rax)
jne 0x5c222
leaq 0x2b12f2(%rip), %r14    # 0x30d4a4
movl (%r14), %eax
testb $0x4, %al
jne 0x5c24d
btl $0x8, %eax
jb 0x5c270
testb $0x8, %al
jne 0x5c660
leaq 0x2b1146(%rip), %rcx    # 0x30d31c
cmpl $0x0, (%rcx)
je 0x5c660
movl %eax, %esi
andl $0x30, %esi
setne %dil
leaq 0x1bc6e1(%rip), %rcx    # 0x2188d0
movq (%rcx), %rcx
movl $0x80000000, %r8d       # imm = 0x80000000
cmpq %r8, %rcx
sete %r8b
andb %dil, %r8b
cmpb $0x1, %r8b
jne 0x5c6a6
shrl $0x4, %esi
leaq 0xc3cf6(%rip), %rax     # 0x11ff0c
movslq (%rax,%rsi,4), %rsi
addq %rax, %rsi
jmp 0x5c6fc
leaq 0x2dfff7(%rip), %rbx    # 0x33c220
leaq 0xcc1f0(%rip), %rsi     # 0x128420
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %edi, %edi
xorl %esi, %esi
movl $0xa, %edx
movq %rbx, %rcx
callq 0xe7d0
jmp 0x5c2a6
leaq 0x2dffcc(%rip), %rbx    # 0x33c220
leaq 0xcc1d6(%rip), %rsi     # 0x128431
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %edi, %edi
xorl %esi, %esi
movl $0xc, %edx
jmp 0x5c291
leaq 0x2dffa9(%rip), %rbx    # 0x33c220
leaq 0xcc1c4(%rip), %rsi     # 0x128442
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %edi, %edi
xorl %esi, %esi
movl $0xe, %edx
movq %rbx, %rcx
callq 0xe7d0
leaq 0x1c7334(%rip), %rax    # 0x2235d4
movl $0xc, (%rax)
leaq 0x1c7327(%rip), %rax    # 0x2235d4
movl (%rax), %eax
leaq 0x1c7322(%rip), %rcx    # 0x2235d8
cmpl (%rcx), %eax
je 0x5c2bc
movl %eax, (%rcx)
leaq 0x2b118d(%rip), %rax    # 0x30d450
cmpb $0x0, (%rax)
je 0x5c2cd
callq 0xd332f
leaq 0x2b1458(%rip), %rbx    # 0x30d72c
movl (%rbx), %eax
cmpl $0xffffd8f1, %eax       # imm = 0xFFFFD8F1
je 0x5c2ef
leaq 0x2b1444(%rip), %rcx    # 0x30d728
movl (%rcx), %edi
cmpl %eax, %edi
je 0x5c2ef
callq 0xd3297
leaq 0x2b1432(%rip), %r12    # 0x30d728
movl (%r12), %eax
movl %eax, (%rbx)
leaq 0x2b1c45(%rip), %rax    # 0x30df48
movb $0xf, %r15b
movb $0x1, %cl
movl %ecx, -0x2c(%rbp)
cmpb $0x0, (%rax)
je 0x5c31c
leaq 0x2b1bc9(%rip), %rax    # 0x30dee0
testb $0x1, (%rax)
jne 0x5c321
xorl %r13d, %r13d
jmp 0x5c32e
movb $0xc, %r15b
movb $0x1, %r13b
movl $0x0, -0x2c(%rbp)
leaq 0x2b1448(%rip), %rcx    # 0x30d77d
leaq 0x2b1440(%rip), %rax    # 0x30d77c
movb (%rax), %al
leaq 0x2b11c3(%rip), %rdx    # 0x30d508
movslq (%rdx), %r14
movb (%rcx), %cl
orb %al, %cl
je 0x5c3b5
imulq $0xe10, %r14, %rcx      # imm = 0xE10
leaq 0x2b11a8(%rip), %rdx    # 0x30d504
movslq (%rdx), %rdx
imulq $0x3c, %rdx, %rdx
addq %rcx, %rdx
leaq 0x2b1193(%rip), %rcx    # 0x30d500
movslq (%rcx), %rbx
addq %rdx, %rbx
testb %al, %al
je 0x5c4a1
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 0xefeb1
leaq 0x2dfe77(%rip), %rdi    # 0x33c220
leaq 0xcc14d(%rip), %rsi     # 0x1284fd
jmp 0x5c4b4
movl %r13d, -0x30(%rbp)
movl %r15d, %r13d
leaq 0x2b1141(%rip), %rax    # 0x30d504
movl (%rax), %r15d
leaq 0x2b1133(%rip), %rax    # 0x30d500
movl (%rax), %r12d
callq 0xefeb1
leaq 0x2dfe44(%rip), %rbx    # 0x33c220
leaq 0xae6d7(%rip), %rsi     # 0x10aaba
movq %rbx, %rdi
movl %r14d, %edx
movl %r15d, %ecx
movl %r12d, %r8d
movq %rax, %r9
xorl %eax, %eax
callq 0x9060
leaq 0x2b14a0(%rip), %rax    # 0x30d8a0
leaq 0x2b148d(%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 0xe7d0
xorl %edi, %edi
callq 0xef1b0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x9340
leaq 0x2b0fc6(%rip), %rax    # 0x30d410
cmpl $0x0, (%rax)
sete %al
movl -0x2c(%rbp), %ecx
xorb $0x1, %cl
orb %al, %cl
jne 0x5c477
leaq 0x2dfdbf(%rip), %rcx    # 0x33c220
movl $0x2, %edi
xorl %esi, %esi
movl $0xe, %edx
callq 0xe7d0
movl %r13d, %r15d
jmp 0x5c491
movl %r13d, %r15d
movzbl %r13b, %edx
leaq 0x2dfd9b(%rip), %rcx    # 0x33c220
movl $0x2, %edi
xorl %esi, %esi
callq 0xe7d0
leaq 0x2b1290(%rip), %r12    # 0x30d728
movl -0x30(%rbp), %r13d
jmp 0x5c525
callq 0xefeb1
leaq 0x2dfd73(%rip), %rdi    # 0x33c220
leaq 0xcc054(%rip), %rsi     # 0x128508
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x9060
leaq 0x2b13d8(%rip), %rax    # 0x30d8a0
leaq 0x2b13c5(%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 0x2dfd2f(%rip), %rbx    # 0x33c220
movl $0x2, %edi
xorl %esi, %esi
movq %rbx, %rcx
callq 0xe7d0
xorl %edi, %edi
callq 0xef1b0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x9340
movzbl %r15b, %edx
movl $0x1, %edi
xorl %esi, %esi
movq %rbx, %rcx
callq 0xe7d0
leaq 0x2b0e00(%rip), %rax    # 0x30d32c
cmpl $0x0, (%rax)
je 0x5c589
leaq 0x2b1200(%rip), %rax    # 0x30d738
movzwl (%rax), %edx
leaq 0x2dfcde(%rip), %rbx    # 0x33c220
leaq 0xcbfca(%rip), %rsi     # 0x128513
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2b11ee(%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 0xe7d0
movl $0x4, %ebx
jmp 0x5c58e
movl $0x3, %ebx
leaq 0x2b0d93(%rip), %rax    # 0x30d328
cmpl $0x0, (%rax)
je 0x5c5e9
leaq 0x2b119b(%rip), %rax    # 0x30d73c
movl (%rax), %edx
leaq 0x2dfc76(%rip), %r14    # 0x33c220
leaq 0xcbf6e(%rip), %rsi     # 0x12851f
movq %r14, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2b1186(%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 0xe7d0
incl %ebx
leaq 0x2b0d2c(%rip), %r14    # 0x30d31c
cmpl $0x0, (%r14)
je 0x5c647
movl (%r12), %edx
leaq 0x2dfc1f(%rip), %rdi    # 0x33c220
leaq 0xcbf22(%rip), %rsi     # 0x12852a
xorl %eax, %eax
callq 0x9060
movb $0xc, %al
testb %r13b, %r13b
jne 0x5c634
leaq 0x2b1117(%rip), %rcx    # 0x30d734
movb $0xe, %al
cmpl $0x0, (%rcx)
jne 0x5c634
cmpl $0x0, (%r14)
movzbl %r15b, %ecx
movl $0xc, %eax
cmovnsl %ecx, %eax
movzbl %al, %edx
leaq 0x2dfbe2(%rip), %rcx    # 0x33c220
movl %ebx, %edi
xorl %esi, %esi
callq 0xe7d0
leaq 0x2b1862(%rip), %rax    # 0x30deb0
movb $0x20, (%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2dfbb9(%rip), %rbx    # 0x33c220
leaq 0xcbde5(%rip), %rsi     # 0x128453
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 0xe7d0
leaq 0x1c6f39(%rip), %rax    # 0x2235d4
movl $0xe, (%rax)
jmp 0x5c2a6
testl %esi, %esi
je 0x5c74f
leaq 0x1e2878(%rip), %rsi    # 0x23ef2d
cmpb $0x0, (%rsi)
jne 0x5c6e8
cmpq $0x1, %rcx
sete %sil
leaq 0x1be90b(%rip), %rdi    # 0x21afd4
cmpl $0x41, (%rdi)
sete %dil
andb %sil, %dil
leaq 0x1bc21e(%rip), %rsi    # 0x2188f8
movl (%rsi), %esi
cmpl $0x47, %esi
sete %r8b
testb %r8b, %dil
je 0x5c728
testb $0x20, %al
leaq 0xcbdc8(%rip), %rax     # 0x1284b9
leaq 0xcbdb0(%rip), %rsi     # 0x1284a8
cmoveq %rax, %rsi
leaq 0x2dfb1d(%rip), %rbx    # 0x33c220
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x1c6ec0(%rip), %rax    # 0x2235d4
movl $0xe, (%rax)
xorl %edi, %edi
xorl %esi, %esi
movl $0xe, %edx
jmp 0x5c243
leaq 0x1bc1d5(%rip), %r8     # 0x218904
movb (%r8), %r8b
testb %dil, %dil
je 0x5c749
cmpb $0x4, %r8b
je 0x5c6e8
cmpl $0x33, %esi
je 0x5c6e8
cmpl $0x47, %esi
je 0x5c6e8
jmp 0x5c74f
cmpb $0x4, %r8b
je 0x5c6e8
testb $0x10, %al
je 0x5c76d
cmpq $0x1, %rcx
jne 0x5c7ff
leaq 0x1be870(%rip), %rcx    # 0x21afd4
cmpl $0x53, (%rcx)
jne 0x5c7ff
leaq 0x2dfaac(%rip), %rbx    # 0x33c220
testb $0x1, %al
jne 0x5c7a2
leaq 0xcbd6d(%rip), %rsi     # 0x1284ec
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2b0c3c(%rip), %rax    # 0x30d3cc
cmpl $0x0, (%rax)
movl $0x8, %eax
movl $0xe, %edx
cmovel %eax, %edx
jmp 0x5c7c9
leaq 0xcbd32(%rip), %rsi     # 0x1284db
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
leaq 0x2b0c12(%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 0xe7d0
leaq 0x2b10c4(%rip), %rax    # 0x30d8a0
cmpl $0x0, (%rax)
jne 0x5c7ed
leaq 0x2b10ac(%rip), %rax    # 0x30d894
cmpb $0x0, (%rax)
je 0x5c825
leaq 0x1c6de0(%rip), %rax    # 0x2235d4
movl $0xb, (%rax)
jmp 0x5c2a6
leaq 0x2dfa1a(%rip), %rbx    # 0x33c220
leaq 0xcbcbd(%rip), %rsi     # 0x1284ca
movq %rbx, %rdi
xorl %eax, %eax
callq 0x9060
xorl %edi, %edi
xorl %esi, %esi
movl $0xe, %edx
jmp 0x5c68c
leaq 0x1c6da8(%rip), %rax    # 0x2235d4
movl $0xf, (%rax)
jmp 0x5c2a6