// File: /workspace/github_cpp_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
leaq 0x292b3f(%rip), %r15    # 0x30ce20
cmpl $0x0, (%r15)
jns 0x7a300
leaq 0x1c4bee(%rip), %rax    # 0x23eedc
xorl %ebx, %ebx
movb %bl, (%rax)
callq 0xe2532
leaq 0x293c4a(%rip), %rax    # 0x30df48
movb %bl, (%rax)
movl (%r15), %eax
testl $0x1ff0ccfe, %eax       # imm = 0x1FF0CCFE
je 0x7a35a
btl $0x1d, %eax
jb 0x7a383
testl %eax, %eax
js 0x7a383
leaq 0x1a0e3f(%rip), %rcx    # 0x21b15a
cmpb $0x0, (%rcx)
jne 0x7a383
movb $0x1, (%rcx)
andl $0x1ff0ccfe, %eax       # imm = 0x1FF0CCFE
cmpl $0x1000000, %eax        # imm = 0x1000000
je 0x7a383
cmpl $0x10000000, %eax       # imm = 0x10000000
je 0x7a383
cmpl $0x11000000, %eax       # imm = 0x11000000
je 0x7a383
leaq 0x1c4b98(%rip), %rax    # 0x23eedc
cmpb $0x0, (%rax)
je 0x7a383
leaq 0x293bf8(%rip), %rax    # 0x30df48
orb $0x10, (%rax)
callq 0xe257a
jmp 0x7a383
leaq 0x1a0df9(%rip), %rcx    # 0x21b15a
movb $0x0, (%rcx)
cmpl $0x1fffffff, %eax       # imm = 0x1FFFFFFF
ja 0x7a383
leaq 0x1a0de6(%rip), %rax    # 0x21b158
leaq 0x1a0de0(%rip), %rcx    # 0x21b159
movb (%rcx), %cl
orb (%rax), %cl
je 0x7ab94
callq 0xede3
leaq 0x2c0fe9(%rip), %rax    # 0x33b378
movl (%rax), %esi
leaq 0x2c0fd8(%rip), %rax    # 0x33b370
movl (%rax), %eax
movl %eax, %edi
shrl $0x1f, %edi
addl %eax, %edi
sarl %edi
leaq 0x19e46a(%rip), %rax    # 0x218814
movl (%rax), %ecx
movl %esi, %eax
subl %edi, %eax
addl %ecx, %eax
decl %eax
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x2c0fb4(%rip), %rax    # 0x33b374
movl (%rax), %eax
leaq 0x19e447(%rip), %rdx    # 0x218810
movl (%rdx), %r8d
subl %edi, %eax
addl %r8d, %eax
decl %eax
cltd
idivl %r8d
leaq 0x19e49e(%rip), %rdx    # 0x21887c
xorl %edi, %edi
movl %ecx, %r14d
subl $0x1, %r14d
cmovbl %edi, %r14d
cmpl (%rdx), %esi
cmovgel %ecx, %r14d
leal -0x5(%rax), %ebx
cmovgel %eax, %ebx
leaq 0x1a0d5a(%rip), %rax    # 0x21b158
leaq 0x1a0d54(%rip), %rcx    # 0x21b159
movb (%rcx), %cl
orb (%rax), %cl
je 0x7a7e5
xorl %eax, %eax
testl $0x1ff0ccfe, (%r15)     # imm = 0x1FF0CCFE
sete %al
leal 0x1(%r14), %ecx
movl %ecx, -0x2c(%rbp)
leal (%rax,%rax,2), %edx
addl $0xc, %edx
leaq 0xa7e1d(%rip), %rcx     # 0x12224c
movl %r14d, %edi
movl %ebx, %esi
callq 0xe7d0
xorl %r13d, %r13d
testb $0x4, (%r15)
sete %r13b
leaq 0x1a0cd5(%rip), %rax    # 0x21b120
movsd (%rax), %xmm0
leaq 0x2c1dca(%rip), %r12    # 0x33c220
leaq 0xa7dfc(%rip), %rsi     # 0x122259
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0x2(%r14), %eax
movl %eax, -0x30(%rbp)
leal 0xc(%r13,%r13,2), %edx
movl -0x2c(%rbp), %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
movq %r15, %rax
xorl %r15d, %r15d
testb $0x8, (%rax)
sete %r15b
leaq 0x1a0c84(%rip), %rax    # 0x21b118
movsd (%rax), %xmm0
leaq 0xa7dcc(%rip), %rsi     # 0x12226b
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0x3(%r14), %r13d
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl -0x30(%rbp), %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x292955(%rip), %rax    # 0x30ce20
testb $0x2, (%rax)
sete %r15b
leaq 0x1a0c37(%rip), %rax    # 0x21b110
movsd (%rax), %xmm0
leaq 0xa7d99(%rip), %rsi     # 0x12227d
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0x4(%r14), %eax
movl %eax, -0x2c(%rbp)
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl %r13d, %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x29290d(%rip), %rax    # 0x30ce20
btl $0x14, (%rax)
setae %r15b
leaq 0x1a0c06(%rip), %rax    # 0x21b128
movsd (%rax), %xmm0
leaq 0xa7d62(%rip), %rsi     # 0x12228f
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0x5(%r14), %r13d
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl -0x2c(%rbp), %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x2928c7(%rip), %rax    # 0x30ce20
testb $0x40, (%rax)
sete %r15b
leaq 0x1a0b99(%rip), %rax    # 0x21b100
movsd (%rax), %xmm0
leaq 0xa7d2f(%rip), %rsi     # 0x1222a1
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0x6(%r14), %eax
movl %eax, -0x2c(%rbp)
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl %r13d, %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x29287f(%rip), %rax    # 0x30ce20
cmpb $0x0, (%rax)
setns %r15b
leaq 0x1a0b49(%rip), %rax    # 0x21b0f8
movsd (%rax), %xmm0
leaq 0xa7cf9(%rip), %rsi     # 0x1222b3
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0x7(%r14), %r13d
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl -0x2c(%rbp), %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x29283a(%rip), %rax    # 0x30ce20
testb $0x20, (%rax)
sete %r15b
leaq 0x1a0afc(%rip), %rax    # 0x21b0f0
movsd (%rax), %xmm0
leaq 0xa7cc6(%rip), %rsi     # 0x1222c5
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0x8(%r14), %eax
movl %eax, -0x2c(%rbp)
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl %r13d, %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x2927f2(%rip), %rax    # 0x30ce20
btl $0x15, (%rax)
setae %r15b
leaq 0x1a0acb(%rip), %rax    # 0x21b108
movsd (%rax), %xmm0
leaq 0xa7c8f(%rip), %rsi     # 0x1222d7
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0x9(%r14), %r13d
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl -0x2c(%rbp), %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x2927ac(%rip), %rax    # 0x30ce20
btl $0x16, (%rax)
setae %r15b
leaq 0x1a0ab5(%rip), %rax    # 0x21b138
movsd (%rax), %xmm0
leaq 0xa7c5b(%rip), %rsi     # 0x1222e9
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0xa(%r14), %eax
movl %eax, -0x30(%rbp)
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl %r13d, %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x292763(%rip), %rax    # 0x30ce20
btl $0x17, (%rax)
setae %r15b
leaq 0x1a0a64(%rip), %rax    # 0x21b130
movsd (%rax), %xmm0
leaq 0xa7c24(%rip), %rsi     # 0x1222fb
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal 0xb(%r14), %eax
movl %eax, -0x2c(%rbp)
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl -0x30(%rbp), %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r13d, %r13d
leaq 0x29271a(%rip), %r15    # 0x30ce20
btl $0xa, (%r15)
setae %r13b
leaq 0x1a0a2a(%rip), %rax    # 0x21b140
movsd (%rax), %xmm0
leaq 0x292884(%rip), %rax    # 0x30cfa5
movsbl (%rax), %ecx
leaq 0xa7be2(%rip), %rsi     # 0x12230d
movq %r12, %rdi
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
leal 0xc(%r14), %eax
movl %eax, -0x30(%rbp)
leal 0xc(%r13,%r13,2), %edx
movl -0x2c(%rbp), %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r13d, %r13d
btl $0xe, (%r15)
setae %r13b
leaq 0x1a09e2(%rip), %rax    # 0x21b148
movsd (%rax), %xmm0
leaq 0x292834(%rip), %rax    # 0x30cfa5
movsbl (%rax), %ecx
leaq 0xa7ba6(%rip), %rsi     # 0x122321
movq %r12, %rdi
movl $0x1, %edx
movb $0x1, %al
callq 0x9060
addl $0xd, %r14d
leal 0xc(%r13,%r13,2), %edx
movl -0x30(%rbp), %edi
movl %ebx, %esi
movq %r12, %rcx
callq 0xe7d0
xorl %r15d, %r15d
leaq 0x292676(%rip), %rax    # 0x30ce20
btl $0x1c, (%rax)
setae %r15b
leaq 0x1a0997(%rip), %rax    # 0x21b150
movsd (%rax), %xmm0
leaq 0xa7b71(%rip), %rsi     # 0x122335
movq %r12, %rdi
movb $0x1, %al
callq 0x9060
leal (%r15,%r15,2), %edx
addl $0xc, %edx
movl %r14d, %edi
movb $0x1, %r14b
movl %ebx, %esi
movq %r12, %rcx
jmp 0x7ab7d
leal 0x1(%r14), %r12d
leaq 0xa7b57(%rip), %rcx     # 0x122347
movl %r14d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
cmpl $0x0, (%r15)
jns 0x7a822
addl $0x2, %r14d
leaq 0xa7b48(%rip), %rcx     # 0x122358
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x40, 0x3(%r15)
je 0x7a847
leal 0x1(%r12), %r14d
leaq 0xa7b2e(%rip), %rcx     # 0x122363
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x2, 0x3(%r15)
je 0x7a86c
leal 0x1(%r12), %r14d
leaq 0xa7b12(%rip), %rcx     # 0x12236c
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x10, (%r15)
je 0x7a890
leal 0x1(%r12), %r14d
leaq 0xa7afd(%rip), %rcx     # 0x12237b
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x4, 0x3(%r15)
je 0x7a8b5
leal 0x1(%r12), %r14d
leaq 0xa7aea(%rip), %rcx     # 0x12238d
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
movl (%r15), %eax
btl $0x1d, %eax
jb 0x7a942
testb $0x2, %al
je 0x7a8e4
leal 0x1(%r12), %r14d
leaq 0xa7ada(%rip), %rcx     # 0x1223ac
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x10, 0x2(%r15)
je 0x7a909
leal 0x1(%r12), %r14d
leaq 0xa7aca(%rip), %rcx     # 0x1223c1
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x20, (%r15)
je 0x7a92d
leal 0x1(%r12), %r14d
leaq 0xa7ab9(%rip), %rcx     # 0x1223d4
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x20, 0x2(%r15)
je 0x7a960
leal 0x1(%r12), %r14d
leaq 0xa7aa5(%rip), %rcx     # 0x1223e5
jmp 0x7a94e
leal 0x1(%r12), %r14d
leaq 0xa7a4e(%rip), %rcx     # 0x12239c
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x4, (%r15)
je 0x7a984
leal 0x1(%r12), %r14d
leaq 0xa7a82(%rip), %rcx     # 0x1223f4
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x8, (%r15)
je 0x7a9a8
leal 0x1(%r12), %r14d
leaq 0xa7a72(%rip), %rcx     # 0x122408
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x40, (%r15)
je 0x7a9cc
leal 0x1(%r12), %r14d
leaq 0xa7a63(%rip), %rcx     # 0x12241d
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $-0x80, (%r15)
je 0x7a9f0
leal 0x1(%r12), %r14d
leaq 0xa7a4f(%rip), %rcx     # 0x12242d
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x40, 0x2(%r15)
je 0x7aa15
leal 0x1(%r12), %r14d
leaq 0xa7a3b(%rip), %rcx     # 0x12243e
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $-0x80, 0x2(%r15)
je 0x7aa3a
leal 0x1(%r12), %r14d
leaq 0xa7a27(%rip), %rcx     # 0x12244f
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x4, 0x1(%r15)
je 0x7aa5f
leal 0x1(%r12), %r14d
leaq 0xa7a14(%rip), %rcx     # 0x122461
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x40, 0x1(%r15)
je 0x7aa84
leal 0x1(%r12), %r14d
leaq 0xa79ff(%rip), %rcx     # 0x122471
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x8, 0x1(%r15)
je 0x7aaa9
leal 0x1(%r12), %r14d
leaq 0xa79ea(%rip), %rcx     # 0x122481
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $-0x80, 0x1(%r15)
je 0x7aace
leal 0x1(%r12), %r14d
leaq 0xa79d8(%rip), %rcx     # 0x122494
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x2, 0x2(%r15)
je 0x7aaf3
leal 0x1(%r12), %r14d
leaq 0xa79c6(%rip), %rcx     # 0x1224a7
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x8, 0x2(%r15)
je 0x7ab18
leal 0x1(%r12), %r14d
leaq 0xa79ae(%rip), %rcx     # 0x1224b4
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x1, 0x3(%r15)
je 0x7ab3d
leal 0x1(%r12), %r14d
leaq 0xa7999(%rip), %rcx     # 0x1224c4
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
testb $0x10, 0x3(%r15)
je 0x7ab62
leal 0x1(%r12), %r14d
leaq 0xa7986(%rip), %rcx     # 0x1224d6
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %r12d
movb $0x1, %r14b
testb $0x8, 0x3(%r15)
je 0x7ab82
leaq 0xa7973(%rip), %rcx     # 0x1224e6
movl %r12d, %edi
movl %ebx, %esi
movl $0xc, %edx
callq 0xe7d0
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r14d, %r14d
jmp 0x7ab82