// File: jkingan[P]ladyheather/heathgps.cpp
// Function: luxor_fault()
u08 luxor_fault()
{
int row, col;
int color;

   if(1 && (unit_status & RESET_BIT)) {
      have_time = 0;
      reset_alarm();
      sound_alarm = 0;
//    fault_seen = 0;
   }

   if((unit_status & FAULT_BITS) == 0) {
      fault_seen = 0;
      if(unit_status & RESET_BIT) ;
      else if(unit_status & CAL_MODE_BIT) ;
      else if(unit_status & ZEROING_BIT) ;
      else if(prot_menu || show_prots) ;
      else {
         return 0;
      }
   }
   else if((unit_status & FAULT_BITS) && (fault_seen == 0)) {
      if(unit_status & RESET_BIT) ;
      else if(unit_status & ZEROING_BIT) ;
      else {
         fault_seen = 1;
         if((unit_status & FAULT_BITS) == COM_ERR_BIT) ;
         else if((unit_status & FAULT_BITS) == WDT_BIT) ;
         else if((unit_status & FAULT_BITS) == (WDT_BIT | COM_ERR_BIT)) ;
         else if(have_time) {
            sound_alarm |= ALARM_LUXOR;
            enable_alarm();
         }
      }
   }

   erase_watch();
   row = (aclock_y - ACLOCK_SIZE/2 + (TEXT_HEIGHT-1)) / TEXT_HEIGHT;
   col = (aclock_x - ACLOCK_SIZE/2 + (TEXT_WIDTH-1)) / TEXT_WIDTH;
   if(aclock_y < PLOT_ROW) {
      col -= 5;
      if(row) --row;
   }

   if(prot_menu || show_prots) {
      if(unit_status & FAULT_BITS) color = RED;
      else                         color = WHITE;
      vidstr(row++, col, color, "Protections:");

      if(unit_status & BATT_LVC_BIT) color = RED;
      else                           color = WHITE;
      sprintf(out, "Batt LVC: %8.3f V", batt_lvc);
      vidstr(row++, col, color, out);

      if(unit_status & BATT_HVC_BIT) color = RED;
      else                           color = WHITE;
      sprintf(out, "Batt HVC: %8.3f V", batt_hvc);
      vidstr(row++, col, color, out);

      if(unit_status & BATT_OVC_BIT) color = RED;
      else                           color = WHITE;
      sprintf(out, "Batt OVC: %8.3f A", batt_ovc);
      vidstr(row++, col, color, out);

      if(unit_status & BATT_WATTS_BIT) color = RED;
      else                             color = WHITE;
      sprintf(out, "Batt OVW: %8.3f W", batt_watts);
      vidstr(row++, col, color, out);

      if(unit_status & LOAD_LVC_BIT) color = RED;
      else                           color = WHITE;
      sprintf(out, "LED LVC:  %8.3f V", load_lvc);
      vidstr(row++, col, color, out);

      if(unit_status & LOAD_HVC_BIT) color = RED;
      else                           color = WHITE;
      sprintf(out, "LED HVC:  %8.3f V", load_hvc);
      vidstr(row++, col, color, out);

      if(unit_status & LOAD_OVC_BIT) color = RED;
      else                           color = WHITE;
      sprintf(out, "LED OVC:  %8.3f A", load_ovc);
      vidstr(row++, col, color, out);

      if(unit_status & LOAD_WATTS_BIT) color = RED;
      else                             color = WHITE;
      sprintf(out, "LED OVW:  %8.3f W", load_watts);
      vidstr(row++, col, color, out);

      if(unit_status & AUXV_LVC_BIT) color = RED;
      else                           color = WHITE;
      sprintf(out, "AUXV LVC: %8.3f V", auxv_lvc);
      vidstr(row++, col, color, out);

      if(unit_status & AUXV_HVC_BIT) color = RED;
      else                           color = WHITE;
      sprintf(out, "AUXV HVC: %8.3f V", auxv_hvc);
      vidstr(row++, col, color, out);


      if(unit_status & TEMP1_OVT_BIT) color = RED;
      else                            color = WHITE;
      sprintf(out, "TEMP1:    %8.3f%c%c", tc1_ovt, DEGREES, DEG_SCALE);
      vidstr(row++, col, color, out);

      if(unit_status & TEMP2_OVT_BIT) color = RED;
      else                            color = WHITE;
      sprintf(out, "TEMP2:    %8.3f%c%c", tc2_ovt, DEGREES, DEG_SCALE);
      vidstr(row++, col, color, out);

      if(unit_status & WDT_BIT) color = RED;
      else                      color = WHITE;
      sprintf(out, "Timeout:  %8.3f S", msg_timeout);
      vidstr(row++, col, color, out);
   }
   else {
      vidstr(row++, col, RED, "Abnormal status:");
      if(unit_status & RESET_BIT)      vidstr(row++, col, RED, "Unit reset"); 
      if(unit_status & CAL_MODE_BIT)   vidstr(row++, col, RED, "Cal mode"); 
      if(unit_status & CAL_CRC_ERR)    vidstr(row++, col, RED, "Cal memory bad"); 
      if(unit_status & CFG_CRC_ERR)    vidstr(row++, col, RED, "Config memory bad"); 
      if(unit_status & CONFIG_ERR)     vidstr(row++, col, RED, "Config changed"); 
      if(unit_status & ZEROING_BIT) {
         vidstr(row++, col, RED, "Zeroing sensors"); 
      }
      else {
         if(unit_status & BATT_OVC_BIT)   vidstr(row++, col, RED, "Battery over current");
         if(unit_status & BATT_WATTS_BIT) vidstr(row++, col, RED, "Battery over watts");
         if(unit_status & LOAD_OVC_BIT)   vidstr(row++, col, RED, "LED over current");
         if(unit_status & LOAD_WATTS_BIT) vidstr(row++, col, RED, "LED over watts");
      }
      if(unit_status & BATT_LVC_BIT)   vidstr(row++, col, RED, "Battery low voltage");
      if(unit_status & BATT_HVC_BIT)   vidstr(row++, col, RED, "Battery high voltage");
      if(unit_status & LOAD_LVC_BIT)   vidstr(row++, col, RED, "LED low voltage");
      if(unit_status & LOAD_HVC_BIT)   vidstr(row++, col, RED, "LED high voltage");
      if(unit_status & AUXV_LVC_BIT)   vidstr(row++, col, RED, "AUXV low voltage");
      if(unit_status & AUXV_HVC_BIT)   vidstr(row++, col, RED, "AUXV high voltage");
      if(unit_status & TEMP1_OVT_BIT)  vidstr(row++, col, RED, "Temp1 over-temp");
      if(unit_status & TEMP2_OVT_BIT)  vidstr(row++, col, RED, "Temp2 over-temp");
      if(unit_status & TEMP1_BAD_BIT)  vidstr(row++, col, RED, "Temp1 sensor fault");
      if(unit_status & TEMP2_BAD_BIT)  vidstr(row++, col, RED, "Temp2 sensor fault");
      if(unit_status & LUX1_OVFL_BIT)  vidstr(row++, col, RED, "Lux overflow");
      if(unit_status & LUX2_OVFL_BIT)  vidstr(row++, col, RED, "Lumens overflow");
      if(unit_status & COM_ERR_BIT)    vidstr(row++, col, RED, "Serial data error");
      if(unit_status & WDT_BIT)        vidstr(row++, col, RED, "Message timeout");
      if(unit_status & RUN_TIMEOUT)    vidstr(row++, col, RED, "Timer shutdown");
   }

   return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
leaq 0x2c41e1(%rip), %rax    # 0x36c000
movl (%rax), %eax
movabsq $0x80000000, %rcx       # imm = 0x80000000
andq %rcx, %rax
cmpq $0x0, %rax
je 0xa7e4d
leaq 0x1f6281(%rip), %rax    # 0x29e0bc
movb $0x0, (%rax)
callq 0x1360d0
leaq 0x2c52de(%rip), %rax    # 0x36d128
movb $0x0, (%rax)
leaq 0x2c41ac(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x1ff0ccfe, %rax       # imm = 0x1FF0CCFE
cmpq $0x0, %rax
jne 0xa7eea
leaq 0x1d24cd(%rip), %rax    # 0x27a33a
movb $0x0, (%rax)
leaq 0x2c4189(%rip), %rax    # 0x36c000
movl (%rax), %eax
movabsq $0x80000000, %rcx       # imm = 0x80000000
andq %rcx, %rax
cmpq $0x0, %rax
je 0xa7e8e
jmp 0xa7ee5
leaq 0x2c416b(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x40000000, %rax       # imm = 0x40000000
cmpq $0x0, %rax
je 0xa7ea5
jmp 0xa7ee3
leaq 0x2c4154(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x20000000, %rax       # imm = 0x20000000
cmpq $0x0, %rax
je 0xa7ebc
jmp 0xa7ee1
leaq 0x1d2475(%rip), %rax    # 0x27a338
cmpb $0x0, (%rax)
jne 0xa7ed4
leaq 0x1d246a(%rip), %rax    # 0x27a339
cmpb $0x0, (%rax)
je 0xa7ed6
jmp 0xa7edf
movb $0x0, -0x1(%rbp)
jmp 0xa8b64
jmp 0xa7ee1
jmp 0xa7ee3
jmp 0xa7ee5
jmp 0xa7fdd
leaq 0x2c410f(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x1ff0ccfe, %rax       # imm = 0x1FF0CCFE
cmpq $0x0, %rax
je 0xa7fdb
leaq 0x1d2430(%rip), %rax    # 0x27a33a
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0xa7fdb
leaq 0x2c40e3(%rip), %rax    # 0x36c000
movl (%rax), %eax
movabsq $0x80000000, %rcx       # imm = 0x80000000
andq %rcx, %rax
cmpq $0x0, %rax
je 0xa7f37
jmp 0xa7fd9
leaq 0x2c40c2(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x20000000, %rax       # imm = 0x20000000
cmpq $0x0, %rax
je 0xa7f51
jmp 0xa7fd7
leaq 0x1d23e2(%rip), %rax    # 0x27a33a
movb $0x1, (%rax)
leaq 0x2c409e(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x1ff0ccfe, %rax       # imm = 0x1FF0CCFE
cmpq $0x1000000, %rax        # imm = 0x1000000
jne 0xa7f74
jmp 0xa7fd5
leaq 0x2c4085(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x1ff0ccfe, %rax       # imm = 0x1FF0CCFE
cmpq $0x10000000, %rax       # imm = 0x10000000
jne 0xa7f8d
jmp 0xa7fd3
leaq 0x2c406c(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x1ff0ccfe, %rax       # imm = 0x1FF0CCFE
cmpq $0x11000000, %rax       # imm = 0x11000000
jne 0xa7fa6
jmp 0xa7fd1
leaq 0x1f610f(%rip), %rax    # 0x29e0bc
cmpb $0x0, (%rax)
je 0xa7fcf
leaq 0x2c516f(%rip), %rax    # 0x36d128
movzbl (%rax), %eax
orl $0x10, %eax
movb %al, %cl
leaq 0x2c5160(%rip), %rax    # 0x36d128
movb %cl, (%rax)
callq 0x136120
jmp 0xa7fd1
jmp 0xa7fd3
jmp 0xa7fd5
jmp 0xa7fd7
jmp 0xa7fd9
jmp 0xa7fdb
jmp 0xa7fdd
callq 0x11880
leaq 0x2f256f(%rip), %rax    # 0x39a558
movl (%rax), %eax
movl %eax, -0x18(%rbp)
leaq 0x2f255b(%rip), %rax    # 0x39a550
movl (%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x18(%rbp), %eax
subl %ecx, %eax
leaq 0x1cf9e7(%rip), %rcx    # 0x2779f4
movl (%rcx), %ecx
subl $0x1, %ecx
addl %ecx, %eax
leaq 0x1cf9d9(%rip), %rcx    # 0x2779f4
cltd
idivl (%rcx)
movl %eax, -0x8(%rbp)
leaq 0x2f252c(%rip), %rax    # 0x39a554
movl (%rax), %eax
movl %eax, -0x14(%rbp)
leaq 0x2f251c(%rip), %rax    # 0x39a550
movl (%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x14(%rbp), %eax
subl %ecx, %eax
leaq 0x1cf9a4(%rip), %rcx    # 0x2779f0
movl (%rcx), %ecx
subl $0x1, %ecx
addl %ecx, %eax
leaq 0x1cf996(%rip), %rcx    # 0x2779f0
cltd
idivl (%rcx)
movl %eax, -0xc(%rbp)
leaq 0x2f24f1(%rip), %rax    # 0x39a558
movl (%rax), %eax
leaq 0x1cf9ec(%rip), %rcx    # 0x277a5c
cmpl (%rcx), %eax
jge 0xa808e
movl -0xc(%rbp), %eax
subl $0x5, %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0x8(%rbp)
je 0xa808c
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0xa808e
leaq 0x1d22a3(%rip), %rax    # 0x27a338
cmpb $0x0, (%rax)
jne 0xa80aa
leaq 0x1d2298(%rip), %rax    # 0x27a339
cmpb $0x0, (%rax)
je 0xa8629
leaq 0x2c3f4f(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x1ff0ccfe, %rax       # imm = 0x1FF0CCFE
cmpq $0x0, %rax
je 0xa80c8
movl $0xc, -0x10(%rbp)
jmp 0xa80cf
movl $0xf, -0x10(%rbp)
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0xdd4d5(%rip), %rcx     # 0x1855bc
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3f0a(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x4, %rax
cmpq $0x0, %rax
je 0xa810b
movl $0xc, -0x10(%rbp)
jmp 0xa8112
movl $0xf, -0x10(%rbp)
leaq 0x1d21e7(%rip), %rax    # 0x27a300
movsd (%rax), %xmm0
leaq 0x2f32dc(%rip), %rdi    # 0x39b400
leaq 0xdd49e(%rip), %rsi     # 0x1855c9
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f32b6(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3ea7(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x8, %rax
cmpq $0x0, %rax
je 0xa816e
movl $0xc, -0x10(%rbp)
jmp 0xa8175
movl $0xf, -0x10(%rbp)
leaq 0x1d217c(%rip), %rax    # 0x27a2f8
movsd (%rax), %xmm0
leaq 0x2f3279(%rip), %rdi    # 0x39b400
leaq 0xdd44d(%rip), %rsi     # 0x1855db
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f3253(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3e44(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x2, %rax
cmpq $0x0, %rax
je 0xa81d1
movl $0xc, -0x10(%rbp)
jmp 0xa81d8
movl $0xf, -0x10(%rbp)
leaq 0x1d2111(%rip), %rax    # 0x27a2f0
movsd (%rax), %xmm0
leaq 0x2f3216(%rip), %rdi    # 0x39b400
leaq 0xdd3fc(%rip), %rsi     # 0x1855ed
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f31f0(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3de1(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x100000, %rax         # imm = 0x100000
cmpq $0x0, %rax
je 0xa8236
movl $0xc, -0x10(%rbp)
jmp 0xa823d
movl $0xf, -0x10(%rbp)
leaq 0x1d20c4(%rip), %rax    # 0x27a308
movsd (%rax), %xmm0
leaq 0x2f31b1(%rip), %rdi    # 0x39b400
leaq 0xdd3a9(%rip), %rsi     # 0x1855ff
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f318b(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3d7c(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x40, %rax
cmpq $0x0, %rax
je 0xa8299
movl $0xc, -0x10(%rbp)
jmp 0xa82a0
movl $0xf, -0x10(%rbp)
leaq 0x1d2039(%rip), %rax    # 0x27a2e0
movsd (%rax), %xmm0
leaq 0x2f314e(%rip), %rdi    # 0x39b400
leaq 0xdd358(%rip), %rsi     # 0x185611
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f3128(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3d19(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x80, %rax
cmpq $0x0, %rax
je 0xa82fe
movl $0xc, -0x10(%rbp)
jmp 0xa8305
movl $0xf, -0x10(%rbp)
leaq 0x1d1fcc(%rip), %rax    # 0x27a2d8
movsd (%rax), %xmm0
leaq 0x2f30e9(%rip), %rdi    # 0x39b400
leaq 0xdd305(%rip), %rsi     # 0x185623
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f30c3(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3cb4(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x20, %rax
cmpq $0x0, %rax
je 0xa8361
movl $0xc, -0x10(%rbp)
jmp 0xa8368
movl $0xf, -0x10(%rbp)
leaq 0x1d1f61(%rip), %rax    # 0x27a2d0
movsd (%rax), %xmm0
leaq 0x2f3086(%rip), %rdi    # 0x39b400
leaq 0xdd2b4(%rip), %rsi     # 0x185635
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f3060(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3c51(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x200000, %rax         # imm = 0x200000
cmpq $0x0, %rax
je 0xa83c6
movl $0xc, -0x10(%rbp)
jmp 0xa83cd
movl $0xf, -0x10(%rbp)
leaq 0x1d1f14(%rip), %rax    # 0x27a2e8
movsd (%rax), %xmm0
leaq 0x2f3021(%rip), %rdi    # 0x39b400
leaq 0xdd261(%rip), %rsi     # 0x185647
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f2ffb(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3bec(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x400000, %rax         # imm = 0x400000
cmpq $0x0, %rax
je 0xa842b
movl $0xc, -0x10(%rbp)
jmp 0xa8432
movl $0xf, -0x10(%rbp)
leaq 0x1d1edf(%rip), %rax    # 0x27a318
movsd (%rax), %xmm0
leaq 0x2f2fbc(%rip), %rdi    # 0x39b400
leaq 0xdd20e(%rip), %rsi     # 0x185659
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f2f96(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3b87(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x800000, %rax         # imm = 0x800000
cmpq $0x0, %rax
je 0xa8490
movl $0xc, -0x10(%rbp)
jmp 0xa8497
movl $0xf, -0x10(%rbp)
leaq 0x1d1e72(%rip), %rax    # 0x27a310
movsd (%rax), %xmm0
leaq 0x2f2f57(%rip), %rdi    # 0x39b400
leaq 0xdd1bb(%rip), %rsi     # 0x18566b
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f2f31(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3b22(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x400, %rax            # imm = 0x400
cmpq $0x0, %rax
je 0xa84f5
movl $0xc, -0x10(%rbp)
jmp 0xa84fc
movl $0xf, -0x10(%rbp)
leaq 0x1d1e1d(%rip), %rax    # 0x27a320
movsd (%rax), %xmm0
leaq 0x2c3c77(%rip), %rax    # 0x36c185
movsbl (%rax), %ecx
leaq 0x2f2ee8(%rip), %rdi    # 0x39b400
leaq 0xdd15e(%rip), %rsi     # 0x18567d
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f2ebd(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3aae(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x4000, %rax           # imm = 0x4000
cmpq $0x0, %rax
je 0xa8569
movl $0xc, -0x10(%rbp)
jmp 0xa8570
movl $0xf, -0x10(%rbp)
leaq 0x1d1db1(%rip), %rax    # 0x27a328
movsd (%rax), %xmm0
leaq 0x2c3c03(%rip), %rax    # 0x36c185
movsbl (%rax), %ecx
leaq 0x2f2e74(%rip), %rdi    # 0x39b400
leaq 0xdd0fe(%rip), %rsi     # 0x185691
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f2e49(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
leaq 0x2c3a3a(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x10000000, %rax       # imm = 0x10000000
cmpq $0x0, %rax
je 0xa85dd
movl $0xc, -0x10(%rbp)
jmp 0xa85e4
movl $0xf, -0x10(%rbp)
leaq 0x1d1d45(%rip), %rax    # 0x27a330
movsd (%rax), %xmm0
leaq 0x2f2e0a(%rip), %rdi    # 0x39b400
leaq 0xdd0a8(%rip), %rsi     # 0x1856a5
movb $0x1, %al
callq 0x9060
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %eax
leaq 0x2f2de4(%rip), %rcx    # 0x39b400
movzbl %al, %edx
callq 0x10ee0
jmp 0xa8b60
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdd074(%rip), %rcx     # 0x1856b7
callq 0x10ee0
leaq 0x2c39b1(%rip), %rax    # 0x36c000
movl (%rax), %eax
movabsq $0x80000000, %rcx       # imm = 0x80000000
andq %rcx, %rax
cmpq $0x0, %rax
je 0xa8683
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdd04a(%rip), %rcx     # 0x1856c8
callq 0x10ee0
leaq 0x2c3976(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x40000000, %rax       # imm = 0x40000000
cmpq $0x0, %rax
je 0xa86b7
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdd021(%rip), %rcx     # 0x1856d3
callq 0x10ee0
leaq 0x2c3942(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x2000000, %rax        # imm = 0x2000000
cmpq $0x0, %rax
je 0xa86eb
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcff6(%rip), %rcx     # 0x1856dc
callq 0x10ee0
leaq 0x2c390e(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x10, %rax
cmpq $0x0, %rax
je 0xa871d
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcfd3(%rip), %rcx     # 0x1856eb
callq 0x10ee0
leaq 0x2c38dc(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x4000000, %rax        # imm = 0x4000000
cmpq $0x0, %rax
je 0xa8751
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcfb1(%rip), %rcx     # 0x1856fd
callq 0x10ee0
leaq 0x2c38a8(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x20000000, %rax       # imm = 0x20000000
cmpq $0x0, %rax
je 0xa878a
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcf8c(%rip), %rcx     # 0x18570c
callq 0x10ee0
jmp 0xa8858
leaq 0x2c386f(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x2, %rax
cmpq $0x0, %rax
je 0xa87bc
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcf65(%rip), %rcx     # 0x18571c
callq 0x10ee0
leaq 0x2c383d(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x100000, %rax         # imm = 0x100000
cmpq $0x0, %rax
je 0xa87f0
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcf46(%rip), %rcx     # 0x185731
callq 0x10ee0
leaq 0x2c3809(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x20, %rax
cmpq $0x0, %rax
je 0xa8822
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcf27(%rip), %rcx     # 0x185744
callq 0x10ee0
leaq 0x2c37d7(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x200000, %rax         # imm = 0x200000
cmpq $0x0, %rax
je 0xa8856
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcf04(%rip), %rcx     # 0x185755
callq 0x10ee0
jmp 0xa8858
leaq 0x2c37a1(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x4, %rax
cmpq $0x0, %rax
je 0xa888a
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcedf(%rip), %rcx     # 0x185764
callq 0x10ee0
leaq 0x2c376f(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x8, %rax
cmpq $0x0, %rax
je 0xa88bc
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcec1(%rip), %rcx     # 0x185778
callq 0x10ee0
leaq 0x2c373d(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x40, %rax
cmpq $0x0, %rax
je 0xa88ee
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcea4(%rip), %rcx     # 0x18578d
callq 0x10ee0
leaq 0x2c370b(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x80, %rax
cmpq $0x0, %rax
je 0xa8922
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdce80(%rip), %rcx     # 0x18579d
callq 0x10ee0
leaq 0x2c36d7(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x400000, %rax         # imm = 0x400000
cmpq $0x0, %rax
je 0xa8956
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdce5d(%rip), %rcx     # 0x1857ae
callq 0x10ee0
leaq 0x2c36a3(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x800000, %rax         # imm = 0x800000
cmpq $0x0, %rax
je 0xa898a
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdce3a(%rip), %rcx     # 0x1857bf
callq 0x10ee0
leaq 0x2c366f(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x400, %rax            # imm = 0x400
cmpq $0x0, %rax
je 0xa89be
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdce18(%rip), %rcx     # 0x1857d1
callq 0x10ee0
leaq 0x2c363b(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x4000, %rax           # imm = 0x4000
cmpq $0x0, %rax
je 0xa89f2
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcdf4(%rip), %rcx     # 0x1857e1
callq 0x10ee0
leaq 0x2c3607(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x800, %rax            # imm = 0x800
cmpq $0x0, %rax
je 0xa8a26
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcdd0(%rip), %rcx     # 0x1857f1
callq 0x10ee0
leaq 0x2c35d3(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x8000, %rax           # imm = 0x8000
cmpq $0x0, %rax
je 0xa8a5a
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcdaf(%rip), %rcx     # 0x185804
callq 0x10ee0
leaq 0x2c359f(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x20000, %rax          # imm = 0x20000
cmpq $0x0, %rax
je 0xa8a8e
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcd8e(%rip), %rcx     # 0x185817
callq 0x10ee0
leaq 0x2c356b(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0xa8ac2
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcd67(%rip), %rcx     # 0x185824
callq 0x10ee0
leaq 0x2c3537(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
je 0xa8af6
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcd43(%rip), %rcx     # 0x185834
callq 0x10ee0
leaq 0x2c3503(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x10000000, %rax       # imm = 0x10000000
cmpq $0x0, %rax
je 0xa8b2a
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdcd21(%rip), %rcx     # 0x185846
callq 0x10ee0
leaq 0x2c34cf(%rip), %rax    # 0x36c000
movl (%rax), %eax
andq $0x8000000, %rax        # imm = 0x8000000
cmpq $0x0, %rax
je 0xa8b5e
movl -0x8(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0xc(%rbp), %esi
movl $0xc, %edx
leaq 0xdccfd(%rip), %rcx     # 0x185856
callq 0x10ee0
jmp 0xa8b60
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)