
/* WARNING: Unknown calling convention */

int cpio_o(void)

{
  long lVar1;
  __ino_t _Var2;
  int iVar3;
  long *__ptr;
  size_t sVar4;
  char *__ptr_00;
  long lVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  int iVar8;
  undefined8 *puVar9;
  stat *psVar10;
  char *__filename;
  uint uVar11;
  long lVar12;
  long in_FS_OFFSET;
  byte bVar13;
  stat st;
  
  bVar13 = 0;
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  lVar12 = 0;
  puVar7 = (undefined8 *)0x0;
  do {
    while( true ) {
      while( true ) {
        if (((byte)option_mask32 & 4) == 0) {
          __ptr = (long *)xmalloc_fgetline(stdin);
        }
        else {
          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);
        }
        __filename = (char *)__ptr;
        if (__ptr != (long *)0x0) break;
        while( true ) {
          if (puVar7 == (undefined8 *)0x0) {
            psVar10 = &st;
            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {
              psVar10->st_dev = 0;
              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);
            }
            __filename = "TRAILER!!!";
          }
          else {
            st.st_dev = puVar7[2];
            st.st_ino = puVar7[3];
            st.st_nlink = puVar7[4];
            st._24_8_ = puVar7[5];
            st._32_8_ = puVar7[6];
            st.st_rdev = puVar7[7];
            st.st_size = puVar7[8];
            st.st_blksize = puVar7[9];
            st.st_blocks = puVar7[10];
            st.st_atim.tv_sec = puVar7[0xb];
            st.st_atim.tv_nsec = puVar7[0xc];
            st.st_mtim.tv_sec = puVar7[0xd];
            st.st_mtim.tv_nsec = puVar7[0xe];
            st.st_ctim.tv_sec = puVar7[0xf];
            st.st_ctim.tv_nsec = puVar7[0x10];
            st.__glibc_reserved[0] = puVar7[0x11];
            st.__glibc_reserved[1] = puVar7[0x12];
            st.__glibc_reserved[2] = puVar7[0x13];
            __filename = (char *)((long *)puVar7[1] + 1);
            lVar5 = *(long *)puVar7[1];
            puVar7[1] = lVar5;
            if (lVar5 == 0) {
              puVar7 = (undefined8 *)*puVar7;
            }
            else {
              st.st_size = 0;
            }
          }
LAB_00166923:
          sVar4 = strlen(__filename);
          iVar3 = __printf_chk(1,
                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",
                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,
                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,
                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |
                               (uint)(st.st_dev >> 8) & 0xfff,
                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,
                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |
                               (uint)(st.st_rdev >> 8) & 0xfff,
                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,
                               (int)sVar4 + 1,__filename,0);
          uVar11 = -(int)(iVar3 + lVar12) & 3;
          iVar8 = uVar11 - 1;
          if (-1 < iVar8) {
            do {
              bb_putchar(0);
              iVar8 = iVar8 + -1;
            } while (iVar8 != -1);
          }
          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;
          if (st.st_size != 0) {
            if ((st.st_mode & 0xf000) == 0xa000) {
              __ptr_00 = xmalloc_readlink_or_warn(__filename);
              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;
              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);
              lVar5 = (long)iVar3;
              free(__ptr_00);
            }
            else {
              iVar3 = xopen(__filename,0);
              fflush_all();
              bb_copyfd_exact_size(iVar3,1,st.st_size);
              lVar5 = st.st_size;
              close(iVar3);
            }
            uVar11 = -(int)(lVar12 + lVar5) & 3;
            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;
            iVar3 = uVar11 - 1;
            if (-1 < iVar3) {
              do {
                bb_putchar(0);
                iVar3 = iVar3 + -1;
              } while (iVar3 != -1);
            }
          }
          if (__ptr != (long *)0x0) break;
          if (__filename == "TRAILER!!!") {
            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
              __stack_chk_fail();
            }
            return 0;
          }
        }
        free(__ptr);
      }
      while ((char)*(long *)__filename == '.') {
        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;
        do {
          __filename = (char *)((long)__filename + 1);
        } while (*__filename == '/');
      }
      if ((char)*(long *)__filename != '\0') break;
      free(__ptr);
    }
LAB_00166af4:
    if (((byte)option_mask32 & 0x80) == 0) {
      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);
    }
    else {
      iVar3 = __xstat64(1,__filename,(stat64 *)&st);
    }
    if (iVar3 != 0) {
LAB_00166b16:
                    /* WARNING: Subroutine does not return */
      bb_simple_perror_msg_and_die(__filename);
    }
    if (bb_common_bufsiz1 != 0xffffffff) {
      st.st_uid = bb_common_bufsiz1;
    }
    if (DAT_001c65fc != 0xffffffff) {
      st.st_gid = DAT_001c65fc;
    }
    if ((st.st_mode & 0xd000) != 0x8000) {
      st.st_size = 0;
    }
    if ((st.st_mode & 0xf000) == 0x4000) goto LAB_00166923;
    if (st.st_nlink < 2) goto LAB_00166923;
    if (puVar7 == (undefined8 *)0x0) {
LAB_00166bca:
      puVar6 = (undefined8 *)xzalloc(0xa0);
      puVar6[2] = st.st_dev;
      puVar6[3] = st.st_ino;
      puVar6[4] = st.st_nlink;
      puVar6[5] = st._24_8_;
      puVar6[6] = st._32_8_;
      puVar6[7] = st.st_rdev;
      puVar6[8] = st.st_size;
      puVar6[9] = st.st_blksize;
      puVar6[10] = st.st_blocks;
      puVar6[0xb] = st.st_atim.tv_sec;
      puVar6[0xc] = st.st_atim.tv_nsec;
      puVar6[0xd] = st.st_mtim.tv_sec;
      puVar6[0xe] = st.st_mtim.tv_nsec;
      puVar6[0xf] = st.st_ctim.tv_sec;
      puVar6[0x10] = st.st_ctim.tv_nsec;
      puVar6[0x11] = st.__glibc_reserved[0];
      puVar6[0x12] = st.__glibc_reserved[1];
      puVar6[0x13] = st.__glibc_reserved[2];
      *puVar6 = puVar7;
      puVar9 = puVar6;
    }
    else {
      _Var2 = puVar7[3];
      puVar9 = puVar7;
      while (puVar6 = puVar7, st.st_ino != _Var2) {
        puVar9 = (undefined8 *)*puVar9;
        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;
        _Var2 = puVar9[3];
      }
    }
    sVar4 = strlen(__filename);
    puVar7 = (undefined8 *)xmalloc(sVar4 + 0x10);
    strcpy((char *)(puVar7 + 1),__filename);
    *puVar7 = puVar9[1];
    puVar9[1] = puVar7;
    free(__ptr);
    puVar7 = puVar6;
  } while( true );
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_0016683b(void)

{
  int iVar1;
  long *__ptr;
  size_t sVar2;
  void *__ptr_00;
  long lVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  int iVar6;
  undefined8 *puVar7;
  stat64 *psVar8;
  char *__s;
  uint uVar9;
  long lVar10;
  long in_FS_OFFSET;
  byte bVar11;
  stat64 local_d8;
  long local_40;
  
  bVar11 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  lVar10 = 0;
  puVar5 = (undefined8 *)0x0;
LAB_0016686f:
  if (((byte)DAT_001c6a08 & 4) == 0) {
    __ptr = (long *)FUN_0019b90d(stdin);
  }
  else {
    __ptr = (long *)FUN_0019b81d(stdin,0);
  }
  __s = (char *)__ptr;
  if (__ptr != (long *)0x0) goto LAB_00166ae3;
  do {
    if (puVar5 == (undefined8 *)0x0) {
      psVar8 = &local_d8;
      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {
        psVar8->st_dev = 0;
        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);
      }
      __s = "TRAILER!!!";
    }
    else {
      local_d8.st_dev = puVar5[2];
      local_d8.st_ino = puVar5[3];
      local_d8.st_nlink = puVar5[4];
      local_d8._24_8_ = puVar5[5];
      local_d8._32_8_ = puVar5[6];
      local_d8.st_rdev = puVar5[7];
      local_d8.st_size = puVar5[8];
      local_d8.st_blksize = puVar5[9];
      local_d8.st_blocks = puVar5[10];
      local_d8.st_atim.tv_sec = puVar5[0xb];
      local_d8.st_atim.tv_nsec = puVar5[0xc];
      local_d8.st_mtim.tv_sec = puVar5[0xd];
      local_d8.st_mtim.tv_nsec = puVar5[0xe];
      local_d8.st_ctim.tv_sec = puVar5[0xf];
      local_d8.st_ctim.tv_nsec = puVar5[0x10];
      local_d8.__unused[0] = puVar5[0x11];
      local_d8.__unused[1] = puVar5[0x12];
      local_d8.__unused[2] = puVar5[0x13];
      __s = (char *)((long *)puVar5[1] + 1);
      lVar3 = *(long *)puVar5[1];
      puVar5[1] = lVar3;
      if (lVar3 == 0) {
        puVar5 = (undefined8 *)*puVar5;
      }
      else {
        local_d8.st_size = 0;
      }
    }
    while( true ) {
      sVar2 = strlen(__s);
      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",
                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid
                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,
                           local_d8.st_size,
                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |
                           (uint)(local_d8.st_dev >> 8) & 0xfff,
                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,
                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |
                           (uint)(local_d8.st_rdev >> 8) & 0xfff,
                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,
                           (int)sVar2 + 1,__s,0);
      uVar9 = -(int)(iVar1 + lVar10) & 3;
      iVar6 = uVar9 - 1;
      if (-1 < iVar6) {
        do {
          FUN_0010e956(0);
          iVar6 = iVar6 + -1;
        } while (iVar6 != -1);
      }
      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;
      if (local_d8.st_size == 0) goto LAB_00166a8a;
      if ((local_d8.st_mode & 0xf000) != 0xa000) {
        iVar1 = FUN_0010e707(__s,0);
        FUN_0010e943();
        FUN_0010f4b7(iVar1,1,local_d8.st_size);
        lVar3 = local_d8.st_size;
        close(iVar1);
        goto LAB_00166a65;
      }
      __ptr_00 = (void *)FUN_0010f198(__s);
      if (__ptr_00 != (void *)0x0) break;
      do {
        FUN_0010d969(__s);
        __s = (char *)__ptr;
LAB_00166ae3:
        while ((char)*(long *)__s == '.') {
          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;
          do {
            __s = (char *)((long)__s + 1);
          } while (*__s == '/');
        }
        if ((char)*(long *)__s == '\0') {
          free(__ptr);
          goto LAB_0016686f;
        }
LAB_00166af4:
        if (((byte)DAT_001c6a08 & 0x80) == 0) {
          iVar1 = __lxstat64(1,__s,&local_d8);
        }
        else {
          iVar1 = __xstat64(1,__s,&local_d8);
        }
      } while (iVar1 != 0);
      if (DAT_001c65f8 != -1) {
        local_d8.st_uid = DAT_001c65f8;
      }
      if (_DAT_001c65fc != -1) {
        local_d8.st_gid = _DAT_001c65fc;
      }
      if ((local_d8.st_mode & 0xd000) != 0x8000) {
        local_d8.st_size = 0;
      }
      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {
        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;
        puVar4 = puVar5;
        puVar7 = puVar5;
        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;
        goto LAB_00166bb9;
      }
    }
    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);
    lVar3 = (long)iVar1;
    free(__ptr_00);
LAB_00166a65:
    uVar9 = -(int)(lVar10 + lVar3) & 3;
    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;
    iVar1 = uVar9 - 1;
    if (-1 < iVar1) {
      do {
        FUN_0010e956(0);
        iVar1 = iVar1 + -1;
      } while (iVar1 != -1);
    }
LAB_00166a8a:
    if (__ptr != (long *)0x0) break;
    if (__s == "TRAILER!!!") {
      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
        return 0;
      }
                    /* WARNING: Subroutine does not return */
      __stack_chk_fail();
    }
  } while( true );
  free(__ptr);
  goto LAB_0016686f;
  while (puVar7[3] != local_d8.st_ino) {
LAB_00166bb9:
    puVar7 = (undefined8 *)*puVar7;
    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;
  }
LAB_00166c43:
  sVar2 = strlen(__s);
  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);
  strcpy((char *)(puVar5 + 1),__s);
  *puVar5 = puVar7[1];
  puVar7[1] = puVar5;
  free(__ptr);
  puVar5 = puVar4;
  goto LAB_0016686f;
LAB_00166bca:
  puVar4 = (undefined8 *)FUN_0010e602(0xa0);
  puVar4[2] = local_d8.st_dev;
  puVar4[3] = local_d8.st_ino;
  puVar4[4] = local_d8.st_nlink;
  puVar4[5] = local_d8._24_8_;
  puVar4[6] = local_d8._32_8_;
  puVar4[7] = local_d8.st_rdev;
  puVar4[8] = local_d8.st_size;
  puVar4[9] = local_d8.st_blksize;
  puVar4[10] = local_d8.st_blocks;
  puVar4[0xb] = local_d8.st_atim.tv_sec;
  puVar4[0xc] = local_d8.st_atim.tv_nsec;
  puVar4[0xd] = local_d8.st_mtim.tv_sec;
  puVar4[0xe] = local_d8.st_mtim.tv_nsec;
  puVar4[0xf] = local_d8.st_ctim.tv_sec;
  puVar4[0x10] = local_d8.st_ctim.tv_nsec;
  puVar4[0x11] = local_d8.__unused[0];
  puVar4[0x12] = local_d8.__unused[1];
  puVar4[0x13] = local_d8.__unused[2];
  *puVar4 = puVar5;
  puVar7 = puVar4;
  goto LAB_00166c43;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0xb8
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0xa8],RAX
XOR EAX,EAX
MOV R13D,0x0
MOV EBX,0x0
LEA R15,[RSP + 0x10]
TEST byte ptr [0x001c6a08],0x4
JZ 0x00166ac4
MOV ESI,0x0
MOV RDI,qword ptr [0x001c62b0]
CALL 0x0019b81d
MOV R14,RAX
TEST R14,R14
JNZ 0x00166b1e
TEST RBX,RBX
JZ 0x00166c90
MOVDQU XMM1,xmmword ptr [RBX + 0x10]
MOVAPS xmmword ptr [RSP + 0x10],XMM1
MOVDQU XMM2,xmmword ptr [RBX + 0x20]
MOVAPS xmmword ptr [RSP + 0x20],XMM2
MOVDQU XMM3,xmmword ptr [RBX + 0x30]
MOVAPS xmmword ptr [RSP + 0x30],XMM3
MOVDQU XMM4,xmmword ptr [RBX + 0x40]
MOVAPS xmmword ptr [RSP + 0x40],XMM4
MOVDQU XMM5,xmmword ptr [RBX + 0x50]
MOVAPS xmmword ptr [RSP + 0x50],XMM5
MOVDQU XMM6,xmmword ptr [RBX + 0x60]
MOVAPS xmmword ptr [RSP + 0x60],XMM6
MOVDQU XMM7,xmmword ptr [RBX + 0x70]
MOVAPS xmmword ptr [RSP + 0x70],XMM7
MOVDQU XMM0,xmmword ptr [RBX + 0x80]
MOVAPS xmmword ptr [RSP + 0x80],XMM0
MOVDQU XMM1,xmmword ptr [RBX + 0x90]
MOVAPS xmmword ptr [RSP + 0x90],XMM1
MOV RAX,qword ptr [RBX + 0x8]
LEA R12,[RAX + 0x8]
MOV RAX,qword ptr [RAX]
MOV qword ptr [RBX + 0x8],RAX
TEST RAX,RAX
JNZ 0x00166c82
MOV RBX,qword ptr [RBX]
MOV RDI,R12
CALL 0x0010b4c0
MOV RCX,qword ptr [RSP + 0x38]
MOVZX R10D,CL
MOV R8,RCX
SHR R8,0x8
AND R8D,0xfff
MOV RDX,qword ptr [RSP + 0x10]
MOVZX EDI,DL
MOV RSI,RDX
SHR RSI,0x8
AND ESI,0xfff
PUSH 0x0
PUSH R12
LEA R9D,[RAX + 0x1]
PUSH R9
MOV RAX,RCX
SHR RAX,0xc
MOV AL,0x0
OR EAX,R10D
PUSH RAX
SHR RCX,0x20
AND ECX,0xfffff000
OR ECX,R8D
PUSH RCX
MOV RAX,RDX
SHR RAX,0xc
MOV AL,0x0
OR EAX,EDI
PUSH RAX
SHR RDX,0x20
AND EDX,0xfffff000
OR EDX,ESI
PUSH RDX
MOV RAX,qword ptr [RSP + 0x78]
PUSH RAX
MOV RAX,qword ptr [RSP + 0xa8]
PUSH RAX
MOV RAX,qword ptr [RSP + 0x68]
PUSH RAX
MOV R9D,dword ptr [RSP + 0x80]
MOV R8D,dword ptr [RSP + 0x7c]
MOV ECX,dword ptr [RSP + 0x78]
MOV EDX,dword ptr [RSP + 0x68]
LEA RSI,[0x1ac948]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
CDQE
ADD RAX,R13
MOV qword ptr [RSP + 0x58],RAX
MOV R13D,EAX
NEG R13D
AND R13D,0x3
ADD RSP,0x50
MOV EBP,R13D
SUB EBP,0x1
JS 0x00166a07
MOV EDI,0x0
CALL 0x0010e956
SUB EBP,0x1
CMP EBP,-0x1
JNZ 0x001669f5
MOVSXD R13,R13D
ADD R13,qword ptr [RSP + 0x8]
CMP qword ptr [RSP + 0x40],0x0
JZ 0x00166a8a
MOV EAX,dword ptr [RSP + 0x28]
AND EAX,0xf000
CMP EAX,0xa000
JNZ 0x00166cac
MOV RDI,R12
CALL 0x0010f198
MOV RBP,RAX
TEST RAX,RAX
JZ 0x00166b16
MOV RDX,RAX
LEA RSI,[0x1c02d5]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010bf80
CDQE
ADD R13,RAX
MOV RDI,RBP
CALL 0x0010c5a0
MOV EBP,R13D
NEG EBP
AND EBP,0x3
MOVSXD RAX,EBP
ADD R13,RAX
SUB EBP,0x1
JS 0x00166a8a
MOV EDI,0x0
CALL 0x0010e956
SUB EBP,0x1
CMP EBP,-0x1
JNZ 0x00166a78
TEST R14,R14
JNZ 0x00166ce2
LEA RAX,[0x1be2f5]
CMP R12,RAX
JNZ 0x00166899
MOV EAX,0x0
MOV RCX,qword ptr [RSP + 0xa8]
XOR RCX,qword ptr FS:[0x28]
JZ 0x00166cef
CALL 0x0010b500
MOV RDI,qword ptr [0x001c62b0]
CALL 0x0019b90d
MOV R14,RAX
JMP 0x00166890
ADD R12,0x1
CMP byte ptr [R12],0x2f
JZ 0x00166ad8
MOVZX EAX,byte ptr [R12]
CMP AL,0x2e
JNZ 0x00166b23
CMP byte ptr [R12 + 0x1],0x2f
JZ 0x00166ad8
TEST byte ptr [0x001c6a08],0x80
JZ 0x00166b34
MOV RDX,R15
MOV RSI,R12
MOV EDI,0x1
CALL 0x0010b410
TEST EAX,EAX
SETNZ AL
TEST AL,AL
JZ 0x00166b4b
MOV RDI,R12
CALL 0x0010d969
MOV R12,R14
JMP 0x00166ae3
TEST AL,AL
JNZ 0x00166af4
MOV RDI,R14
CALL 0x0010c5a0
JMP 0x0016686f
MOV RDX,R15
MOV RSI,R12
MOV EDI,0x1
CALL 0x0010c2b0
TEST EAX,EAX
SETNZ AL
JMP 0x00166b12
MOV EAX,dword ptr [0x001c65f8]
CMP EAX,-0x1
JZ 0x00166b5a
MOV dword ptr [RSP + 0x2c],EAX
MOV EAX,dword ptr [0x001c65fc]
CMP EAX,-0x1
JZ 0x00166b69
MOV dword ptr [RSP + 0x30],EAX
MOV EAX,dword ptr [RSP + 0x28]
MOV EDX,EAX
AND EDX,0xd000
CMP EDX,0x8000
JZ 0x00166b86
MOV qword ptr [RSP + 0x40],0x0
AND EAX,0xf000
CMP EAX,0x4000
JZ 0x00166923
CMP qword ptr [RSP + 0x20],0x1
JBE 0x00166923
TEST RBX,RBX
JZ 0x00166bca
MOV RAX,qword ptr [RSP + 0x18]
MOV RBP,RBX
CMP RAX,qword ptr [RBX + 0x18]
JZ 0x00166c43
MOV RBP,qword ptr [RBP]
TEST RBP,RBP
JZ 0x00166bca
CMP qword ptr [RBP + 0x18],RAX
JZ 0x00166c43
JMP 0x00166bb9
MOV EDI,0xa0
CALL 0x0010e602
MOV RBP,RAX
MOVDQA XMM0,xmmword ptr [RSP + 0x10]
MOVUPS xmmword ptr [RAX + 0x10],XMM0
MOVDQA XMM1,xmmword ptr [RSP + 0x20]
MOVUPS xmmword ptr [RAX + 0x20],XMM1
MOVDQA XMM2,xmmword ptr [RSP + 0x30]
MOVUPS xmmword ptr [RAX + 0x30],XMM2
MOVDQA XMM3,xmmword ptr [RSP + 0x40]
MOVUPS xmmword ptr [RAX + 0x40],XMM3
MOVDQA XMM4,xmmword ptr [RSP + 0x50]
MOVUPS xmmword ptr [RAX + 0x50],XMM4
MOVDQA XMM5,xmmword ptr [RSP + 0x60]
MOVUPS xmmword ptr [RAX + 0x60],XMM5
MOVDQA XMM6,xmmword ptr [RSP + 0x70]
MOVUPS xmmword ptr [RAX + 0x70],XMM6
MOVDQA XMM7,xmmword ptr [RSP + 0x80]
MOVUPS xmmword ptr [RAX + 0x80],XMM7
MOVDQA XMM0,xmmword ptr [RSP + 0x90]
MOVUPS xmmword ptr [RAX + 0x90],XMM0
MOV qword ptr [RAX],RBX
MOV RBX,RAX
MOV RDI,R12
CALL 0x0010b4c0
LEA RDI,[RAX + 0x10]
CALL 0x0010e5ce
MOV qword ptr [RSP + 0x8],RAX
LEA RDI,[RAX + 0x8]
MOV RSI,R12
CALL 0x0010b210
MOV RAX,qword ptr [RBP + 0x8]
MOV RSI,qword ptr [RSP + 0x8]
MOV qword ptr [RSI],RAX
MOV qword ptr [RBP + 0x8],RSI
MOV RDI,R14
CALL 0x0010c5a0
JMP 0x0016686f
MOV qword ptr [RSP + 0x40],0x0
JMP 0x00166923
MOV ECX,0x12
MOV EAX,0x0
MOV RDI,R15
STOSQ.REP RDI
LEA R12,[0x1be2f5]
JMP 0x00166923
MOV ESI,0x0
MOV RDI,R12
CALL 0x0010e707
MOV EBP,EAX
CALL 0x0010e943
MOV RDX,qword ptr [RSP + 0x40]
MOV ESI,0x1
MOV EDI,EBP
CALL 0x0010f4b7
ADD R13,qword ptr [RSP + 0x40]
MOV EDI,EBP
CALL 0x0010b7d0
JMP 0x00166a65
MOV RDI,R14
CALL 0x0010c5a0
JMP 0x0016686f
ADD RSP,0xb8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nundefined8 FUN_0016683b(void)\n\n{\n  int iVar1;\n  long *__ptr;\n  size_t sVar2;\n  void *__ptr_00;\n  long lVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  stat64 *psVar8;\n  char *__s;\n  uint uVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  byte bVar11;\n  stat64 local_d8;\n  long local_40;\n  \n  bVar11 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar10 = 0;\n  puVar5 = (undefined8 *)0x0;\nLAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }\n  __s = (char *)__ptr;\n  if (__ptr != (long *)0x0) goto LAB_00166ae3;\n  do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n  } while( true );\n  free(__ptr);\n  goto LAB_0016686f;\n  while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }\nLAB_00166c43:\n  sVar2 = strlen(__s);\n  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);\n  strcpy((char *)(puVar5 + 1),__s);\n  *puVar5 = puVar7[1];\n  puVar7[1] = puVar5;\n  free(__ptr);\n  puVar5 = puVar4;\n  goto LAB_0016686f;\nLAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);\n  puVar4[2] = local_d8.st_dev;\n  puVar4[3] = local_d8.st_ino;\n  puVar4[4] = local_d8.st_nlink;\n  puVar4[5] = local_d8._24_8_;\n  puVar4[6] = local_d8._32_8_;\n  puVar4[7] = local_d8.st_rdev;\n  puVar4[8] = local_d8.st_size;\n  puVar4[9] = local_d8.st_blksize;\n  puVar4[10] = local_d8.st_blocks;\n  puVar4[0xb] = local_d8.st_atim.tv_sec;\n  puVar4[0xc] = local_d8.st_atim.tv_nsec;\n  puVar4[0xd] = local_d8.st_mtim.tv_sec;\n  puVar4[0xe] = local_d8.st_mtim.tv_nsec;\n  puVar4[0xf] = local_d8.st_ctim.tv_sec;\n  puVar4[0x10] = local_d8.st_ctim.tv_nsec;\n  puVar4[0x11] = local_d8.__unused[0];\n  puVar4[0x12] = local_d8.__unused[1];\n  puVar4[0x13] = local_d8.__unused[2];\n  *puVar4 = puVar5;\n  puVar7 = puVar4;\n  goto LAB_00166c43;\n}\n\n" comment (function_definition "undefined8 FUN_0016683b(void)\n\n{\n  int iVar1;\n  long *__ptr;\n  size_t sVar2;\n  void *__ptr_00;\n  long lVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  stat64 *psVar8;\n  char *__s;\n  uint uVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  byte bVar11;\n  stat64 local_d8;\n  long local_40;\n  \n  bVar11 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar10 = 0;\n  puVar5 = (undefined8 *)0x0;\nLAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }\n  __s = (char *)__ptr;\n  if (__ptr != (long *)0x0) goto LAB_00166ae3;\n  do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n  } while( true );\n  free(__ptr);\n  goto LAB_0016686f;\n  while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }\nLAB_00166c43:\n  sVar2 = strlen(__s);\n  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);\n  strcpy((char *)(puVar5 + 1),__s);\n  *puVar5 = puVar7[1];\n  puVar7[1] = puVar5;\n  free(__ptr);\n  puVar5 = puVar4;\n  goto LAB_0016686f;\nLAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);\n  puVar4[2] = local_d8.st_dev;\n  puVar4[3] = local_d8.st_ino;\n  puVar4[4] = local_d8.st_nlink;\n  puVar4[5] = local_d8._24_8_;\n  puVar4[6] = local_d8._32_8_;\n  puVar4[7] = local_d8.st_rdev;\n  puVar4[8] = local_d8.st_size;\n  puVar4[9] = local_d8.st_blksize;\n  puVar4[10] = local_d8.st_blocks;\n  puVar4[0xb] = local_d8.st_atim.tv_sec;\n  puVar4[0xc] = local_d8.st_atim.tv_nsec;\n  puVar4[0xd] = local_d8.st_mtim.tv_sec;\n  puVar4[0xe] = local_d8.st_mtim.tv_nsec;\n  puVar4[0xf] = local_d8.st_ctim.tv_sec;\n  puVar4[0x10] = local_d8.st_ctim.tv_nsec;\n  puVar4[0x11] = local_d8.__unused[0];\n  puVar4[0x12] = local_d8.__unused[1];\n  puVar4[0x13] = local_d8.__unused[2];\n  *puVar4 = puVar5;\n  puVar7 = puVar4;\n  goto LAB_00166c43;\n}" type_identifier (function_declarator "FUN_0016683b(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  long *__ptr;\n  size_t sVar2;\n  void *__ptr_00;\n  long lVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  stat64 *psVar8;\n  char *__s;\n  uint uVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  byte bVar11;\n  stat64 local_d8;\n  long local_40;\n  \n  bVar11 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar10 = 0;\n  puVar5 = (undefined8 *)0x0;\nLAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }\n  __s = (char *)__ptr;\n  if (__ptr != (long *)0x0) goto LAB_00166ae3;\n  do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n  } while( true );\n  free(__ptr);\n  goto LAB_0016686f;\n  while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }\nLAB_00166c43:\n  sVar2 = strlen(__s);\n  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);\n  strcpy((char *)(puVar5 + 1),__s);\n  *puVar5 = puVar7[1];\n  puVar7[1] = puVar5;\n  free(__ptr);\n  puVar5 = puVar4;\n  goto LAB_0016686f;\nLAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);\n  puVar4[2] = local_d8.st_dev;\n  puVar4[3] = local_d8.st_ino;\n  puVar4[4] = local_d8.st_nlink;\n  puVar4[5] = local_d8._24_8_;\n  puVar4[6] = local_d8._32_8_;\n  puVar4[7] = local_d8.st_rdev;\n  puVar4[8] = local_d8.st_size;\n  puVar4[9] = local_d8.st_blksize;\n  puVar4[10] = local_d8.st_blocks;\n  puVar4[0xb] = local_d8.st_atim.tv_sec;\n  puVar4[0xc] = local_d8.st_atim.tv_nsec;\n  puVar4[0xd] = local_d8.st_mtim.tv_sec;\n  puVar4[0xe] = local_d8.st_mtim.tv_nsec;\n  puVar4[0xf] = local_d8.st_ctim.tv_sec;\n  puVar4[0x10] = local_d8.st_ctim.tv_nsec;\n  puVar4[0x11] = local_d8.__unused[0];\n  puVar4[0x12] = local_d8.__unused[1];\n  puVar4[0x13] = local_d8.__unused[2];\n  *puVar4 = puVar5;\n  puVar7 = puVar4;\n  goto LAB_00166c43;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long *__ptr;" (sized_type_specifier "long" long) (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "stat64 *psVar8;" type_identifier (pointer_declarator "*psVar8" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "stat64 local_d8;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined8 *)0x0;" (assignment_expression "puVar5 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" statement_identifier : (if_statement "if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" if (parenthesized_expression "(((byte)DAT_001c6a08 & 4) == 0)" ( (binary_expression "((byte)DAT_001c6a08 & 4) == 0" (parenthesized_expression "((byte)DAT_001c6a08 & 4)" ( (binary_expression "(byte)DAT_001c6a08 & 4" (cast_expression "(byte)DAT_001c6a08" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }" { (expression_statement "__ptr = (long *)FUN_0019b90d(stdin);" (assignment_expression "__ptr = (long *)FUN_0019b90d(stdin)" identifier = (cast_expression "(long *)FUN_0019b90d(stdin)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019b90d(stdin)" identifier (argument_list "(stdin)" ( identifier ))))) ;) }) (else_clause "else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" else (compound_statement "{\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" { (expression_statement "__ptr = (long *)FUN_0019b81d(stdin,0);" (assignment_expression "__ptr = (long *)FUN_0019b81d(stdin,0)" identifier = (cast_expression "(long *)FUN_0019b81d(stdin,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019b81d(stdin,0)" identifier (argument_list "(stdin,0)" ( identifier , number_literal ))))) ;) })))) (expression_statement "__s = (char *)__ptr;" (assignment_expression "__s = (char *)__ptr" identifier = (cast_expression "(char *)__ptr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (__ptr != (long *)0x0) goto LAB_00166ae3;" if (parenthesized_expression "(__ptr != (long *)0x0)" ( (binary_expression "__ptr != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00166ae3;" goto statement_identifier ;)) (do_statement "do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n  } while( true );" do (compound_statement "{\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }\n  }" { (if_statement "if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }" { (expression_statement "psVar8 = &local_d8;" (assignment_expression "psVar8 = &local_d8" identifier = (pointer_expression "&local_d8" & identifier)) ;) (for_statement "for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }" for ( (assignment_expression "lVar3 = 0x12" identifier = number_literal) ; (binary_expression "lVar3 != 0" identifier != number_literal) ; (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ) (compound_statement "{\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }" { (expression_statement "psVar8->st_dev = 0;" (assignment_expression "psVar8->st_dev = 0" (field_expression "psVar8->st_dev" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);" (assignment_expression "psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" identifier = (cast_expression "(stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" ( (binary_expression "(long)psVar8 + (ulong)bVar11 * -0x10 + 8" (binary_expression "(long)psVar8 + (ulong)bVar11 * -0x10" (cast_expression "(long)psVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar11 * -0x10" (cast_expression "(ulong)bVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "__s = "TRAILER!!!";" (assignment_expression "__s = "TRAILER!!!"" identifier = (string_literal ""TRAILER!!!"" " string_content ")) ;) }) (else_clause "else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" else (compound_statement "{\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" { (expression_statement "local_d8.st_dev = puVar5[2];" (assignment_expression "local_d8.st_dev = puVar5[2]" (field_expression "local_d8.st_dev" identifier . field_identifier) = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_ino = puVar5[3];" (assignment_expression "local_d8.st_ino = puVar5[3]" (field_expression "local_d8.st_ino" identifier . field_identifier) = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_nlink = puVar5[4];" (assignment_expression "local_d8.st_nlink = puVar5[4]" (field_expression "local_d8.st_nlink" identifier . field_identifier) = (subscript_expression "puVar5[4]" identifier [ number_literal ])) ;) (expression_statement "local_d8._24_8_ = puVar5[5];" (assignment_expression "local_d8._24_8_ = puVar5[5]" (field_expression "local_d8._24_8_" identifier . field_identifier) = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "local_d8._32_8_ = puVar5[6];" (assignment_expression "local_d8._32_8_ = puVar5[6]" (field_expression "local_d8._32_8_" identifier . field_identifier) = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_rdev = puVar5[7];" (assignment_expression "local_d8.st_rdev = puVar5[7]" (field_expression "local_d8.st_rdev" identifier . field_identifier) = (subscript_expression "puVar5[7]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_size = puVar5[8];" (assignment_expression "local_d8.st_size = puVar5[8]" (field_expression "local_d8.st_size" identifier . field_identifier) = (subscript_expression "puVar5[8]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_blksize = puVar5[9];" (assignment_expression "local_d8.st_blksize = puVar5[9]" (field_expression "local_d8.st_blksize" identifier . field_identifier) = (subscript_expression "puVar5[9]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_blocks = puVar5[10];" (assignment_expression "local_d8.st_blocks = puVar5[10]" (field_expression "local_d8.st_blocks" identifier . field_identifier) = (subscript_expression "puVar5[10]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_atim.tv_sec = puVar5[0xb];" (assignment_expression "local_d8.st_atim.tv_sec = puVar5[0xb]" (field_expression "local_d8.st_atim.tv_sec" (field_expression "local_d8.st_atim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_atim.tv_nsec = puVar5[0xc];" (assignment_expression "local_d8.st_atim.tv_nsec = puVar5[0xc]" (field_expression "local_d8.st_atim.tv_nsec" (field_expression "local_d8.st_atim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_mtim.tv_sec = puVar5[0xd];" (assignment_expression "local_d8.st_mtim.tv_sec = puVar5[0xd]" (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_mtim.tv_nsec = puVar5[0xe];" (assignment_expression "local_d8.st_mtim.tv_nsec = puVar5[0xe]" (field_expression "local_d8.st_mtim.tv_nsec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xe]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_ctim.tv_sec = puVar5[0xf];" (assignment_expression "local_d8.st_ctim.tv_sec = puVar5[0xf]" (field_expression "local_d8.st_ctim.tv_sec" (field_expression "local_d8.st_ctim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xf]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_ctim.tv_nsec = puVar5[0x10];" (assignment_expression "local_d8.st_ctim.tv_nsec = puVar5[0x10]" (field_expression "local_d8.st_ctim.tv_nsec" (field_expression "local_d8.st_ctim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0x10]" identifier [ number_literal ])) ;) (expression_statement "local_d8.__unused[0] = puVar5[0x11];" (assignment_expression "local_d8.__unused[0] = puVar5[0x11]" (subscript_expression "local_d8.__unused[0]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar5[0x11]" identifier [ number_literal ])) ;) (expression_statement "local_d8.__unused[1] = puVar5[0x12];" (assignment_expression "local_d8.__unused[1] = puVar5[0x12]" (subscript_expression "local_d8.__unused[1]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar5[0x12]" identifier [ number_literal ])) ;) (expression_statement "local_d8.__unused[2] = puVar5[0x13];" (assignment_expression "local_d8.__unused[2] = puVar5[0x13]" (subscript_expression "local_d8.__unused[2]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar5[0x13]" identifier [ number_literal ])) ;) (expression_statement "__s = (char *)((long *)puVar5[1] + 1);" (assignment_expression "__s = (char *)((long *)puVar5[1] + 1)" identifier = (cast_expression "(char *)((long *)puVar5[1] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)puVar5[1] + 1)" ( (binary_expression "(long *)puVar5[1] + 1" (cast_expression "(long *)puVar5[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ])) + number_literal) )))) ;) (expression_statement "lVar3 = *(long *)puVar5[1];" (assignment_expression "lVar3 = *(long *)puVar5[1]" identifier = (pointer_expression "*(long *)puVar5[1]" * (cast_expression "(long *)puVar5[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ])))) ;) (expression_statement "puVar5[1] = lVar3;" (assignment_expression "puVar5[1] = lVar3" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar5 = (undefined8 *)*puVar5;\n      }" { (expression_statement "puVar5 = (undefined8 *)*puVar5;" (assignment_expression "puVar5 = (undefined8 *)*puVar5" identifier = (cast_expression "(undefined8 *)*puVar5" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) }) (else_clause "else {\n        local_d8.st_size = 0;\n      }" else (compound_statement "{\n        local_d8.st_size = 0;\n      }" { (expression_statement "local_d8.st_size = 0;" (assignment_expression "local_d8.st_size = 0" (field_expression "local_d8.st_size" identifier . field_identifier) = number_literal) ;) }))) }))) (while_statement "while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }" { (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);" (assignment_expression "iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" identifier = (call_expression "__printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" identifier (argument_list "(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" ( number_literal , (string_literal ""070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c"" " string_content ") , (binary_expression "local_d8.st_ino & 0xffffffff" (field_expression "local_d8.st_ino" identifier . field_identifier) & number_literal) , (binary_expression "local_d8._24_8_ & 0xffffffff" (field_expression "local_d8._24_8_" identifier . field_identifier) & number_literal) , (field_expression "local_d8.st_uid" identifier . field_identifier) , (binary_expression "local_d8._32_8_ & 0xffffffff" (field_expression "local_d8._32_8_" identifier . field_identifier) & number_literal) , (field_expression "local_d8.st_nlink" identifier . field_identifier) , (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier) , (field_expression "local_d8.st_size" identifier . field_identifier) , (binary_expression "(uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff" (binary_expression "(uint)(local_d8.st_dev >> 0x20) & 0xfffff000" (call_expression "(uint)(local_d8.st_dev >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8.st_dev >> 0x20)" ( (binary_expression "local_d8.st_dev >> 0x20" (field_expression "local_d8.st_dev" identifier . field_identifier) >> number_literal) ))) & number_literal) | (binary_expression "(uint)(local_d8.st_dev >> 8) & 0xfff" (call_expression "(uint)(local_d8.st_dev >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8.st_dev >> 8)" ( (binary_expression "local_d8.st_dev >> 8" (field_expression "local_d8.st_dev" identifier . field_identifier) >> number_literal) ))) & number_literal)) , (binary_expression "(uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff" (call_expression "(uint)((local_d8.st_dev >> 0x14) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((local_d8.st_dev >> 0x14) << 8)" ( (binary_expression "(local_d8.st_dev >> 0x14) << 8" (parenthesized_expression "(local_d8.st_dev >> 0x14)" ( (binary_expression "local_d8.st_dev >> 0x14" (field_expression "local_d8.st_dev" identifier . field_identifier) >> number_literal) )) << number_literal) ))) | (binary_expression "(uint)local_d8.st_dev & 0xff" (cast_expression "(uint)local_d8.st_dev" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_d8.st_dev" identifier . field_identifier)) & number_literal)) , (binary_expression "(uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff" (binary_expression "(uint)(local_d8.st_rdev >> 0x20) & 0xfffff000" (call_expression "(uint)(local_d8.st_rdev >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8.st_rdev >> 0x20)" ( (binary_expression "local_d8.st_rdev >> 0x20" (field_expression "local_d8.st_rdev" identifier . field_identifier) >> number_literal) ))) & number_literal) | (binary_expression "(uint)(local_d8.st_rdev >> 8) & 0xfff" (call_expression "(uint)(local_d8.st_rdev >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8.st_rdev >> 8)" ( (binary_expression "local_d8.st_rdev >> 8" (field_expression "local_d8.st_rdev" identifier . field_identifier) >> number_literal) ))) & number_literal)) , (binary_expression "(uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff" (call_expression "(uint)((local_d8.st_rdev >> 0x14) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((local_d8.st_rdev >> 0x14) << 8)" ( (binary_expression "(local_d8.st_rdev >> 0x14) << 8" (parenthesized_expression "(local_d8.st_rdev >> 0x14)" ( (binary_expression "local_d8.st_rdev >> 0x14" (field_expression "local_d8.st_rdev" identifier . field_identifier) >> number_literal) )) << number_literal) ))) | (binary_expression "(uint)local_d8.st_rdev & 0xff" (cast_expression "(uint)local_d8.st_rdev" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_d8.st_rdev" identifier . field_identifier)) & number_literal)) , (binary_expression "(int)sVar2 + 1" (cast_expression "(int)sVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier , number_literal )))) ;) (expression_statement "uVar9 = -(int)(iVar1 + lVar10) & 3;" (assignment_expression "uVar9 = -(int)(iVar1 + lVar10) & 3" identifier = (binary_expression "-(int)(iVar1 + lVar10) & 3" (unary_expression "-(int)(iVar1 + lVar10)" - (cast_expression "(int)(iVar1 + lVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar1 + lVar10)" ( (binary_expression "iVar1 + lVar10" identifier + identifier) )))) & number_literal)) ;) (expression_statement "iVar6 = uVar9 - 1;" (assignment_expression "iVar6 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (if_statement "if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (compound_statement "{\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }" { (do_statement "do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);" do (compound_statement "{\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        }" { (expression_statement "FUN_0010e956(0);" (call_expression "FUN_0010e956(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) ;) })) (expression_statement "lVar10 = (long)(int)uVar9 + iVar1 + lVar10;" (assignment_expression "lVar10 = (long)(int)uVar9 + iVar1 + lVar10" identifier = (binary_expression "(long)(int)uVar9 + iVar1 + lVar10" (binary_expression "(long)(int)uVar9 + iVar1" (cast_expression "(long)(int)uVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) + identifier) + identifier)) ;) (if_statement "if (local_d8.st_size == 0) goto LAB_00166a8a;" if (parenthesized_expression "(local_d8.st_size == 0)" ( (binary_expression "local_d8.st_size == 0" (field_expression "local_d8.st_size" identifier . field_identifier) == number_literal) )) (goto_statement "goto LAB_00166a8a;" goto statement_identifier ;)) (if_statement "if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }" if (parenthesized_expression "((local_d8.st_mode & 0xf000) != 0xa000)" ( (binary_expression "(local_d8.st_mode & 0xf000) != 0xa000" (parenthesized_expression "(local_d8.st_mode & 0xf000)" ( (binary_expression "local_d8.st_mode & 0xf000" (field_expression "local_d8.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }" { (expression_statement "iVar1 = FUN_0010e707(__s,0);" (assignment_expression "iVar1 = FUN_0010e707(__s,0)" identifier = (call_expression "FUN_0010e707(__s,0)" identifier (argument_list "(__s,0)" ( identifier , number_literal )))) ;) (expression_statement "FUN_0010e943();" (call_expression "FUN_0010e943()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0010f4b7(iVar1,1,local_d8.st_size);" (call_expression "FUN_0010f4b7(iVar1,1,local_d8.st_size)" identifier (argument_list "(iVar1,1,local_d8.st_size)" ( identifier , number_literal , (field_expression "local_d8.st_size" identifier . field_identifier) ))) ;) (expression_statement "lVar3 = local_d8.st_size;" (assignment_expression "lVar3 = local_d8.st_size" identifier = (field_expression "local_d8.st_size" identifier . field_identifier)) ;) (expression_statement "close(iVar1);" (call_expression "close(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) (goto_statement "goto LAB_00166a65;" goto statement_identifier ;) })) (expression_statement "__ptr_00 = (void *)FUN_0010f198(__s);" (assignment_expression "__ptr_00 = (void *)FUN_0010f198(__s)" identifier = (cast_expression "(void *)FUN_0010f198(__s)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010f198(__s)" identifier (argument_list "(__s)" ( identifier ))))) ;) (if_statement "if (__ptr_00 != (void *)0x0) break;" if (parenthesized_expression "(__ptr_00 != (void *)0x0)" ( (binary_expression "__ptr_00 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (do_statement "do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);" do (compound_statement "{\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      }" { (expression_statement "FUN_0010d969(__s);" (call_expression "FUN_0010d969(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "__s = (char *)__ptr;" (assignment_expression "__s = (char *)__ptr" identifier = (cast_expression "(char *)__ptr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" statement_identifier : (while_statement "while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" while (parenthesized_expression "((char)*(long *)__s == '.')" ( (binary_expression "(char)*(long *)__s == '.'" (cast_expression "(char)*(long *)__s" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(long *)__s" * (cast_expression "(long *)__s" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" { (if_statement "if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;" if (parenthesized_expression "(*(char *)((long)__s + 1) != '/')" ( (binary_expression "*(char *)((long)__s + 1) != '/'" (pointer_expression "*(char *)((long)__s + 1)" * (cast_expression "(char *)((long)__s + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + 1)" ( (binary_expression "(long)__s + 1" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'/'" ' character ')) )) (goto_statement "goto LAB_00166af4;" goto statement_identifier ;)) (do_statement "do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');" do (compound_statement "{\n            __s = (char *)((long)__s + 1);\n          }" { (expression_statement "__s = (char *)((long)__s + 1);" (assignment_expression "__s = (char *)((long)__s + 1)" identifier = (cast_expression "(char *)((long)__s + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + 1)" ( (binary_expression "(long)__s + 1" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(*__s == '/')" ( (binary_expression "*__s == '/'" (pointer_expression "*__s" * identifier) == (char_literal "'/'" ' character ')) )) ;) }))) (if_statement "if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }" if (parenthesized_expression "((char)*(long *)__s == '\0')" ( (binary_expression "(char)*(long *)__s == '\0'" (cast_expression "(char)*(long *)__s" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(long *)__s" * (cast_expression "(long *)__s" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          free(__ptr);\n          goto LAB_0016686f;\n        }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto LAB_0016686f;" goto statement_identifier ;) })) (labeled_statement "LAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" statement_identifier : (if_statement "if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" if (parenthesized_expression "(((byte)DAT_001c6a08 & 0x80) == 0)" ( (binary_expression "((byte)DAT_001c6a08 & 0x80) == 0" (parenthesized_expression "((byte)DAT_001c6a08 & 0x80)" ( (binary_expression "(byte)DAT_001c6a08 & 0x80" (cast_expression "(byte)DAT_001c6a08" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }" { (expression_statement "iVar1 = __lxstat64(1,__s,&local_d8);" (assignment_expression "iVar1 = __lxstat64(1,__s,&local_d8)" identifier = (call_expression "__lxstat64(1,__s,&local_d8)" identifier (argument_list "(1,__s,&local_d8)" ( number_literal , identifier , (pointer_expression "&local_d8" & identifier) )))) ;) }) (else_clause "else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" else (compound_statement "{\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" { (expression_statement "iVar1 = __xstat64(1,__s,&local_d8);" (assignment_expression "iVar1 = __xstat64(1,__s,&local_d8)" identifier = (call_expression "__xstat64(1,__s,&local_d8)" identifier (argument_list "(1,__s,&local_d8)" ( number_literal , identifier , (pointer_expression "&local_d8" & identifier) )))) ;) })))) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (if_statement "if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }" if (parenthesized_expression "(DAT_001c65f8 != -1)" ( (binary_expression "DAT_001c65f8 != -1" identifier != number_literal) )) (compound_statement "{\n        local_d8.st_uid = DAT_001c65f8;\n      }" { (expression_statement "local_d8.st_uid = DAT_001c65f8;" (assignment_expression "local_d8.st_uid = DAT_001c65f8" (field_expression "local_d8.st_uid" identifier . field_identifier) = identifier) ;) })) (if_statement "if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }" if (parenthesized_expression "(_DAT_001c65fc != -1)" ( (binary_expression "_DAT_001c65fc != -1" identifier != number_literal) )) (compound_statement "{\n        local_d8.st_gid = _DAT_001c65fc;\n      }" { (expression_statement "local_d8.st_gid = _DAT_001c65fc;" (assignment_expression "local_d8.st_gid = _DAT_001c65fc" (field_expression "local_d8.st_gid" identifier . field_identifier) = identifier) ;) })) (if_statement "if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }" if (parenthesized_expression "((local_d8.st_mode & 0xd000) != 0x8000)" ( (binary_expression "(local_d8.st_mode & 0xd000) != 0x8000" (parenthesized_expression "(local_d8.st_mode & 0xd000)" ( (binary_expression "local_d8.st_mode & 0xd000" (field_expression "local_d8.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_d8.st_size = 0;\n      }" { (expression_statement "local_d8.st_size = 0;" (assignment_expression "local_d8.st_size = 0" (field_expression "local_d8.st_size" identifier . field_identifier) = number_literal) ;) })) (if_statement "if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }" if (parenthesized_expression "(((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink))" ( (binary_expression "((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)" (parenthesized_expression "((local_d8.st_mode & 0xf000) != 0x4000)" ( (binary_expression "(local_d8.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(local_d8.st_mode & 0xf000)" ( (binary_expression "local_d8.st_mode & 0xf000" (field_expression "local_d8.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(1 < local_d8.st_nlink)" ( (binary_expression "1 < local_d8.st_nlink" number_literal < (field_expression "local_d8.st_nlink" identifier . field_identifier)) ))) )) (compound_statement "{\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }" { (if_statement "if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00166bca;" goto statement_identifier ;)) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" identifier = identifier) ;) (if_statement "if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;" if (parenthesized_expression "(local_d8.st_ino == puVar5[3])" ( (binary_expression "local_d8.st_ino == puVar5[3]" (field_expression "local_d8.st_ino" identifier . field_identifier) == (subscript_expression "puVar5[3]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00166c43;" goto statement_identifier ;)) (goto_statement "goto LAB_00166bb9;" goto statement_identifier ;) })) })) (expression_statement "iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);" (assignment_expression "iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00)" identifier = (call_expression "__printf_chk(1,&DAT_001c02d5,__ptr_00)" identifier (argument_list "(1,&DAT_001c02d5,__ptr_00)" ( number_literal , (pointer_expression "&DAT_001c02d5" & identifier) , identifier )))) ;) (expression_statement "lVar3 = (long)iVar1;" (assignment_expression "lVar3 = (long)iVar1" identifier = (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (labeled_statement "LAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;" statement_identifier : (expression_statement "uVar9 = -(int)(lVar10 + lVar3) & 3;" (assignment_expression "uVar9 = -(int)(lVar10 + lVar3) & 3" identifier = (binary_expression "-(int)(lVar10 + lVar3) & 3" (unary_expression "-(int)(lVar10 + lVar3)" - (cast_expression "(int)(lVar10 + lVar3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar10 + lVar3)" ( (binary_expression "lVar10 + lVar3" identifier + identifier) )))) & number_literal)) ;)) (expression_statement "lVar10 = lVar10 + lVar3 + (long)(int)uVar9;" (assignment_expression "lVar10 = lVar10 + lVar3 + (long)(int)uVar9" identifier = (binary_expression "lVar10 + lVar3 + (long)(int)uVar9" (binary_expression "lVar10 + lVar3" identifier + identifier) + (cast_expression "(long)(int)uVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar1 = uVar9 - 1;" (assignment_expression "iVar1 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (if_statement "if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }" { (do_statement "do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);" do (compound_statement "{\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      }" { (expression_statement "FUN_0010e956(0);" (call_expression "FUN_0010e956(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00166a8a:\n    if (__ptr != (long *)0x0) break;" statement_identifier : (if_statement "if (__ptr != (long *)0x0) break;" if (parenthesized_expression "(__ptr != (long *)0x0)" ( (binary_expression "__ptr != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;))) (if_statement "if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }" if (parenthesized_expression "(__s == "TRAILER!!!")" ( (binary_expression "__s == "TRAILER!!!"" identifier == (string_literal ""TRAILER!!!"" " string_content ")) )) (compound_statement "{\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail();\n    }" { (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto LAB_0016686f;" goto statement_identifier ;) (while_statement "while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }" while (parenthesized_expression "(puVar7[3] != local_d8.st_ino)" ( (binary_expression "puVar7[3] != local_d8.st_ino" (subscript_expression "puVar7[3]" identifier [ number_literal ]) != (field_expression "local_d8.st_ino" identifier . field_identifier)) )) (compound_statement "{\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }" { (labeled_statement "LAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;" statement_identifier : (expression_statement "puVar7 = (undefined8 *)*puVar7;" (assignment_expression "puVar7 = (undefined8 *)*puVar7" identifier = (cast_expression "(undefined8 *)*puVar7" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;)) (if_statement "if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;" if (parenthesized_expression "(puVar7 == (undefined8 *)0x0)" ( (binary_expression "puVar7 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00166bca;" goto statement_identifier ;)) })) (labeled_statement "LAB_00166c43:\n  sVar2 = strlen(__s);" statement_identifier : (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;)) (expression_statement "puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);" (assignment_expression "puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10)" identifier = (cast_expression "(undefined8 *)FUN_0010e5ce(sVar2 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010e5ce(sVar2 + 0x10)" identifier (argument_list "(sVar2 + 0x10)" ( (binary_expression "sVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "strcpy((char *)(puVar5 + 1),__s);" (call_expression "strcpy((char *)(puVar5 + 1),__s)" identifier (argument_list "((char *)(puVar5 + 1),__s)" ( (cast_expression "(char *)(puVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) ))) , identifier ))) ;) (expression_statement "*puVar5 = puVar7[1];" (assignment_expression "*puVar5 = puVar7[1]" (pointer_expression "*puVar5" * identifier) = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "puVar7[1] = puVar5;" (assignment_expression "puVar7[1] = puVar5" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" identifier = identifier) ;) (goto_statement "goto LAB_0016686f;" goto statement_identifier ;) (labeled_statement "LAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);" statement_identifier : (expression_statement "puVar4 = (undefined8 *)FUN_0010e602(0xa0);" (assignment_expression "puVar4 = (undefined8 *)FUN_0010e602(0xa0)" identifier = (cast_expression "(undefined8 *)FUN_0010e602(0xa0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010e602(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;)) (expression_statement "puVar4[2] = local_d8.st_dev;" (assignment_expression "puVar4[2] = local_d8.st_dev" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (field_expression "local_d8.st_dev" identifier . field_identifier)) ;) (expression_statement "puVar4[3] = local_d8.st_ino;" (assignment_expression "puVar4[3] = local_d8.st_ino" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (field_expression "local_d8.st_ino" identifier . field_identifier)) ;) (expression_statement "puVar4[4] = local_d8.st_nlink;" (assignment_expression "puVar4[4] = local_d8.st_nlink" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (field_expression "local_d8.st_nlink" identifier . field_identifier)) ;) (expression_statement "puVar4[5] = local_d8._24_8_;" (assignment_expression "puVar4[5] = local_d8._24_8_" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = (field_expression "local_d8._24_8_" identifier . field_identifier)) ;) (expression_statement "puVar4[6] = local_d8._32_8_;" (assignment_expression "puVar4[6] = local_d8._32_8_" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = (field_expression "local_d8._32_8_" identifier . field_identifier)) ;) (expression_statement "puVar4[7] = local_d8.st_rdev;" (assignment_expression "puVar4[7] = local_d8.st_rdev" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = (field_expression "local_d8.st_rdev" identifier . field_identifier)) ;) (expression_statement "puVar4[8] = local_d8.st_size;" (assignment_expression "puVar4[8] = local_d8.st_size" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = (field_expression "local_d8.st_size" identifier . field_identifier)) ;) (expression_statement "puVar4[9] = local_d8.st_blksize;" (assignment_expression "puVar4[9] = local_d8.st_blksize" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (field_expression "local_d8.st_blksize" identifier . field_identifier)) ;) (expression_statement "puVar4[10] = local_d8.st_blocks;" (assignment_expression "puVar4[10] = local_d8.st_blocks" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = (field_expression "local_d8.st_blocks" identifier . field_identifier)) ;) (expression_statement "puVar4[0xb] = local_d8.st_atim.tv_sec;" (assignment_expression "puVar4[0xb] = local_d8.st_atim.tv_sec" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = (field_expression "local_d8.st_atim.tv_sec" (field_expression "local_d8.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0xc] = local_d8.st_atim.tv_nsec;" (assignment_expression "puVar4[0xc] = local_d8.st_atim.tv_nsec" (subscript_expression "puVar4[0xc]" identifier [ number_literal ]) = (field_expression "local_d8.st_atim.tv_nsec" (field_expression "local_d8.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0xd] = local_d8.st_mtim.tv_sec;" (assignment_expression "puVar4[0xd] = local_d8.st_mtim.tv_sec" (subscript_expression "puVar4[0xd]" identifier [ number_literal ]) = (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0xe] = local_d8.st_mtim.tv_nsec;" (assignment_expression "puVar4[0xe] = local_d8.st_mtim.tv_nsec" (subscript_expression "puVar4[0xe]" identifier [ number_literal ]) = (field_expression "local_d8.st_mtim.tv_nsec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0xf] = local_d8.st_ctim.tv_sec;" (assignment_expression "puVar4[0xf] = local_d8.st_ctim.tv_sec" (subscript_expression "puVar4[0xf]" identifier [ number_literal ]) = (field_expression "local_d8.st_ctim.tv_sec" (field_expression "local_d8.st_ctim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0x10] = local_d8.st_ctim.tv_nsec;" (assignment_expression "puVar4[0x10] = local_d8.st_ctim.tv_nsec" (subscript_expression "puVar4[0x10]" identifier [ number_literal ]) = (field_expression "local_d8.st_ctim.tv_nsec" (field_expression "local_d8.st_ctim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0x11] = local_d8.__unused[0];" (assignment_expression "puVar4[0x11] = local_d8.__unused[0]" (subscript_expression "puVar4[0x11]" identifier [ number_literal ]) = (subscript_expression "local_d8.__unused[0]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "puVar4[0x12] = local_d8.__unused[1];" (assignment_expression "puVar4[0x12] = local_d8.__unused[1]" (subscript_expression "puVar4[0x12]" identifier [ number_literal ]) = (subscript_expression "local_d8.__unused[1]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "puVar4[0x13] = local_d8.__unused[2];" (assignment_expression "puVar4[0x13] = local_d8.__unused[2]" (subscript_expression "puVar4[0x13]" identifier [ number_literal ]) = (subscript_expression "local_d8.__unused[2]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar4;" (assignment_expression "puVar7 = puVar4" identifier = identifier) ;) (goto_statement "goto LAB_00166c43;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nint cpio_o(void)\n\n{\n  long lVar1;\n  __ino_t _Var2;\n  int iVar3;\n  long *__ptr;\n  size_t sVar4;\n  char *__ptr_00;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  stat *psVar10;\n  char *__filename;\n  uint uVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  byte bVar13;\n  stat st;\n  \n  bVar13 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar12 = 0;\n  puVar7 = (undefined8 *)0x0;\n  do {\n    while( true ) {\n      while( true ) {\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }\n      while ((char)*(long *)__filename == '.') {\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }\n      if ((char)*(long *)__filename != '\0') break;\n      free(__ptr);\n    }\nLAB_00166af4:\n    if (((byte)option_mask32 & 0x80) == 0) {\n      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);\n    }\n    else {\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }\n    if (iVar3 != 0) {\nLAB_00166b16:\n                    /* WARNING: Subroutine does not return */\n      bb_simple_perror_msg_and_die(__filename);\n    }\n    if (bb_common_bufsiz1 != 0xffffffff) {\n      st.st_uid = bb_common_bufsiz1;\n    }\n    if (DAT_001c65fc != 0xffffffff) {\n      st.st_gid = DAT_001c65fc;\n    }\n    if ((st.st_mode & 0xd000) != 0x8000) {\n      st.st_size = 0;\n    }\n    if ((st.st_mode & 0xf000) == 0x4000) goto LAB_00166923;\n    if (st.st_nlink < 2) goto LAB_00166923;\n    if (puVar7 == (undefined8 *)0x0) {\nLAB_00166bca:\n      puVar6 = (undefined8 *)xzalloc(0xa0);\n      puVar6[2] = st.st_dev;\n      puVar6[3] = st.st_ino;\n      puVar6[4] = st.st_nlink;\n      puVar6[5] = st._24_8_;\n      puVar6[6] = st._32_8_;\n      puVar6[7] = st.st_rdev;\n      puVar6[8] = st.st_size;\n      puVar6[9] = st.st_blksize;\n      puVar6[10] = st.st_blocks;\n      puVar6[0xb] = st.st_atim.tv_sec;\n      puVar6[0xc] = st.st_atim.tv_nsec;\n      puVar6[0xd] = st.st_mtim.tv_sec;\n      puVar6[0xe] = st.st_mtim.tv_nsec;\n      puVar6[0xf] = st.st_ctim.tv_sec;\n      puVar6[0x10] = st.st_ctim.tv_nsec;\n      puVar6[0x11] = st.__glibc_reserved[0];\n      puVar6[0x12] = st.__glibc_reserved[1];\n      puVar6[0x13] = st.__glibc_reserved[2];\n      *puVar6 = puVar7;\n      puVar9 = puVar6;\n    }\n    else {\n      _Var2 = puVar7[3];\n      puVar9 = puVar7;\n      while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }\n    }\n    sVar4 = strlen(__filename);\n    puVar7 = (undefined8 *)xmalloc(sVar4 + 0x10);\n    strcpy((char *)(puVar7 + 1),__filename);\n    *puVar7 = puVar9[1];\n    puVar9[1] = puVar7;\n    free(__ptr);\n    puVar7 = puVar6;\n  } while( true );\n}\n\n" comment (function_definition "int cpio_o(void)\n\n{\n  long lVar1;\n  __ino_t _Var2;\n  int iVar3;\n  long *__ptr;\n  size_t sVar4;\n  char *__ptr_00;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  stat *psVar10;\n  char *__filename;\n  uint uVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  byte bVar13;\n  stat st;\n  \n  bVar13 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar12 = 0;\n  puVar7 = (undefined8 *)0x0;\n  do {\n    while( true ) {\n      while( true ) {\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }\n      while ((char)*(long *)__filename == '.') {\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }\n      if ((char)*(long *)__filename != '\0') break;\n      free(__ptr);\n    }\nLAB_00166af4:\n    if (((byte)option_mask32 & 0x80) == 0) {\n      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);\n    }\n    else {\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }\n    if (iVar3 != 0) {\nLAB_00166b16:\n                    /* WARNING: Subroutine does not return */\n      bb_simple_perror_msg_and_die(__filename);\n    }\n    if (bb_common_bufsiz1 != 0xffffffff) {\n      st.st_uid = bb_common_bufsiz1;\n    }\n    if (DAT_001c65fc != 0xffffffff) {\n      st.st_gid = DAT_001c65fc;\n    }\n    if ((st.st_mode & 0xd000) != 0x8000) {\n      st.st_size = 0;\n    }\n    if ((st.st_mode & 0xf000) == 0x4000) goto LAB_00166923;\n    if (st.st_nlink < 2) goto LAB_00166923;\n    if (puVar7 == (undefined8 *)0x0) {\nLAB_00166bca:\n      puVar6 = (undefined8 *)xzalloc(0xa0);\n      puVar6[2] = st.st_dev;\n      puVar6[3] = st.st_ino;\n      puVar6[4] = st.st_nlink;\n      puVar6[5] = st._24_8_;\n      puVar6[6] = st._32_8_;\n      puVar6[7] = st.st_rdev;\n      puVar6[8] = st.st_size;\n      puVar6[9] = st.st_blksize;\n      puVar6[10] = st.st_blocks;\n      puVar6[0xb] = st.st_atim.tv_sec;\n      puVar6[0xc] = st.st_atim.tv_nsec;\n      puVar6[0xd] = st.st_mtim.tv_sec;\n      puVar6[0xe] = st.st_mtim.tv_nsec;\n      puVar6[0xf] = st.st_ctim.tv_sec;\n      puVar6[0x10] = st.st_ctim.tv_nsec;\n      puVar6[0x11] = st.__glibc_reserved[0];\n      puVar6[0x12] = st.__glibc_reserved[1];\n      puVar6[0x13] = st.__glibc_reserved[2];\n      *puVar6 = puVar7;\n      puVar9 = puVar6;\n    }\n    else {\n      _Var2 = puVar7[3];\n      puVar9 = puVar7;\n      while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }\n    }\n    sVar4 = strlen(__filename);\n    puVar7 = (undefined8 *)xmalloc(sVar4 + 0x10);\n    strcpy((char *)(puVar7 + 1),__filename);\n    *puVar7 = puVar9[1];\n    puVar9[1] = puVar7;\n    free(__ptr);\n    puVar7 = puVar6;\n  } while( true );\n}" primitive_type (function_declarator "cpio_o(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  __ino_t _Var2;\n  int iVar3;\n  long *__ptr;\n  size_t sVar4;\n  char *__ptr_00;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *puVar9;\n  stat *psVar10;\n  char *__filename;\n  uint uVar11;\n  long lVar12;\n  long in_FS_OFFSET;\n  byte bVar13;\n  stat st;\n  \n  bVar13 = 0;\n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar12 = 0;\n  puVar7 = (undefined8 *)0x0;\n  do {\n    while( true ) {\n      while( true ) {\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }\n      while ((char)*(long *)__filename == '.') {\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }\n      if ((char)*(long *)__filename != '\0') break;\n      free(__ptr);\n    }\nLAB_00166af4:\n    if (((byte)option_mask32 & 0x80) == 0) {\n      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);\n    }\n    else {\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }\n    if (iVar3 != 0) {\nLAB_00166b16:\n                    /* WARNING: Subroutine does not return */\n      bb_simple_perror_msg_and_die(__filename);\n    }\n    if (bb_common_bufsiz1 != 0xffffffff) {\n      st.st_uid = bb_common_bufsiz1;\n    }\n    if (DAT_001c65fc != 0xffffffff) {\n      st.st_gid = DAT_001c65fc;\n    }\n    if ((st.st_mode & 0xd000) != 0x8000) {\n      st.st_size = 0;\n    }\n    if ((st.st_mode & 0xf000) == 0x4000) goto LAB_00166923;\n    if (st.st_nlink < 2) goto LAB_00166923;\n    if (puVar7 == (undefined8 *)0x0) {\nLAB_00166bca:\n      puVar6 = (undefined8 *)xzalloc(0xa0);\n      puVar6[2] = st.st_dev;\n      puVar6[3] = st.st_ino;\n      puVar6[4] = st.st_nlink;\n      puVar6[5] = st._24_8_;\n      puVar6[6] = st._32_8_;\n      puVar6[7] = st.st_rdev;\n      puVar6[8] = st.st_size;\n      puVar6[9] = st.st_blksize;\n      puVar6[10] = st.st_blocks;\n      puVar6[0xb] = st.st_atim.tv_sec;\n      puVar6[0xc] = st.st_atim.tv_nsec;\n      puVar6[0xd] = st.st_mtim.tv_sec;\n      puVar6[0xe] = st.st_mtim.tv_nsec;\n      puVar6[0xf] = st.st_ctim.tv_sec;\n      puVar6[0x10] = st.st_ctim.tv_nsec;\n      puVar6[0x11] = st.__glibc_reserved[0];\n      puVar6[0x12] = st.__glibc_reserved[1];\n      puVar6[0x13] = st.__glibc_reserved[2];\n      *puVar6 = puVar7;\n      puVar9 = puVar6;\n    }\n    else {\n      _Var2 = puVar7[3];\n      puVar9 = puVar7;\n      while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }\n    }\n    sVar4 = strlen(__filename);\n    puVar7 = (undefined8 *)xmalloc(sVar4 + 0x10);\n    strcpy((char *)(puVar7 + 1),__filename);\n    *puVar7 = puVar9[1];\n    puVar9[1] = puVar7;\n    free(__ptr);\n    puVar7 = puVar6;\n  } while( true );\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "__ino_t _Var2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long *__ptr;" (sized_type_specifier "long" long) (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "stat *psVar10;" type_identifier (pointer_declarator "*psVar10" * identifier) ;) (declaration "char *__filename;" primitive_type (pointer_declarator "*__filename" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "stat st;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar12 = 0;" (assignment_expression "lVar12 = 0" identifier = number_literal) ;) (expression_statement "puVar7 = (undefined8 *)0x0;" (assignment_expression "puVar7 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    while( true ) {\n      while( true ) {\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }\n      while ((char)*(long *)__filename == '.') {\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }\n      if ((char)*(long *)__filename != '\0') break;\n      free(__ptr);\n    }\nLAB_00166af4:\n    if (((byte)option_mask32 & 0x80) == 0) {\n      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);\n    }\n    else {\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }\n    if (iVar3 != 0) {\nLAB_00166b16:\n                    /* WARNING: Subroutine does not return */\n      bb_simple_perror_msg_and_die(__filename);\n    }\n    if (bb_common_bufsiz1 != 0xffffffff) {\n      st.st_uid = bb_common_bufsiz1;\n    }\n    if (DAT_001c65fc != 0xffffffff) {\n      st.st_gid = DAT_001c65fc;\n    }\n    if ((st.st_mode & 0xd000) != 0x8000) {\n      st.st_size = 0;\n    }\n    if ((st.st_mode & 0xf000) == 0x4000) goto LAB_00166923;\n    if (st.st_nlink < 2) goto LAB_00166923;\n    if (puVar7 == (undefined8 *)0x0) {\nLAB_00166bca:\n      puVar6 = (undefined8 *)xzalloc(0xa0);\n      puVar6[2] = st.st_dev;\n      puVar6[3] = st.st_ino;\n      puVar6[4] = st.st_nlink;\n      puVar6[5] = st._24_8_;\n      puVar6[6] = st._32_8_;\n      puVar6[7] = st.st_rdev;\n      puVar6[8] = st.st_size;\n      puVar6[9] = st.st_blksize;\n      puVar6[10] = st.st_blocks;\n      puVar6[0xb] = st.st_atim.tv_sec;\n      puVar6[0xc] = st.st_atim.tv_nsec;\n      puVar6[0xd] = st.st_mtim.tv_sec;\n      puVar6[0xe] = st.st_mtim.tv_nsec;\n      puVar6[0xf] = st.st_ctim.tv_sec;\n      puVar6[0x10] = st.st_ctim.tv_nsec;\n      puVar6[0x11] = st.__glibc_reserved[0];\n      puVar6[0x12] = st.__glibc_reserved[1];\n      puVar6[0x13] = st.__glibc_reserved[2];\n      *puVar6 = puVar7;\n      puVar9 = puVar6;\n    }\n    else {\n      _Var2 = puVar7[3];\n      puVar9 = puVar7;\n      while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }\n    }\n    sVar4 = strlen(__filename);\n    puVar7 = (undefined8 *)xmalloc(sVar4 + 0x10);\n    strcpy((char *)(puVar7 + 1),__filename);\n    *puVar7 = puVar9[1];\n    puVar9[1] = puVar7;\n    free(__ptr);\n    puVar7 = puVar6;\n  } while( true );" do (compound_statement "{\n    while( true ) {\n      while( true ) {\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }\n      while ((char)*(long *)__filename == '.') {\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }\n      if ((char)*(long *)__filename != '\0') break;\n      free(__ptr);\n    }\nLAB_00166af4:\n    if (((byte)option_mask32 & 0x80) == 0) {\n      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);\n    }\n    else {\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }\n    if (iVar3 != 0) {\nLAB_00166b16:\n                    /* WARNING: Subroutine does not return */\n      bb_simple_perror_msg_and_die(__filename);\n    }\n    if (bb_common_bufsiz1 != 0xffffffff) {\n      st.st_uid = bb_common_bufsiz1;\n    }\n    if (DAT_001c65fc != 0xffffffff) {\n      st.st_gid = DAT_001c65fc;\n    }\n    if ((st.st_mode & 0xd000) != 0x8000) {\n      st.st_size = 0;\n    }\n    if ((st.st_mode & 0xf000) == 0x4000) goto LAB_00166923;\n    if (st.st_nlink < 2) goto LAB_00166923;\n    if (puVar7 == (undefined8 *)0x0) {\nLAB_00166bca:\n      puVar6 = (undefined8 *)xzalloc(0xa0);\n      puVar6[2] = st.st_dev;\n      puVar6[3] = st.st_ino;\n      puVar6[4] = st.st_nlink;\n      puVar6[5] = st._24_8_;\n      puVar6[6] = st._32_8_;\n      puVar6[7] = st.st_rdev;\n      puVar6[8] = st.st_size;\n      puVar6[9] = st.st_blksize;\n      puVar6[10] = st.st_blocks;\n      puVar6[0xb] = st.st_atim.tv_sec;\n      puVar6[0xc] = st.st_atim.tv_nsec;\n      puVar6[0xd] = st.st_mtim.tv_sec;\n      puVar6[0xe] = st.st_mtim.tv_nsec;\n      puVar6[0xf] = st.st_ctim.tv_sec;\n      puVar6[0x10] = st.st_ctim.tv_nsec;\n      puVar6[0x11] = st.__glibc_reserved[0];\n      puVar6[0x12] = st.__glibc_reserved[1];\n      puVar6[0x13] = st.__glibc_reserved[2];\n      *puVar6 = puVar7;\n      puVar9 = puVar6;\n    }\n    else {\n      _Var2 = puVar7[3];\n      puVar9 = puVar7;\n      while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }\n    }\n    sVar4 = strlen(__filename);\n    puVar7 = (undefined8 *)xmalloc(sVar4 + 0x10);\n    strcpy((char *)(puVar7 + 1),__filename);\n    *puVar7 = puVar9[1];\n    puVar9[1] = puVar7;\n    free(__ptr);\n    puVar7 = puVar6;\n  }" { (while_statement "while( true ) {\n      while( true ) {\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }\n      while ((char)*(long *)__filename == '.') {\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }\n      if ((char)*(long *)__filename != '\0') break;\n      free(__ptr);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }\n      while ((char)*(long *)__filename == '.') {\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }\n      if ((char)*(long *)__filename != '\0') break;\n      free(__ptr);\n    }" { (while_statement "while( true ) {\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }\n        __filename = (char *)__ptr;\n        if (__ptr != (long *)0x0) break;\n        while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }\n        free(__ptr);\n      }" { (if_statement "if (((byte)option_mask32 & 4) == 0) {\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }\n        else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }" if (parenthesized_expression "(((byte)option_mask32 & 4) == 0)" ( (binary_expression "((byte)option_mask32 & 4) == 0" (parenthesized_expression "((byte)option_mask32 & 4)" ( (binary_expression "(byte)option_mask32 & 4" (cast_expression "(byte)option_mask32" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          __ptr = (long *)xmalloc_fgetline(stdin);\n        }" { (expression_statement "__ptr = (long *)xmalloc_fgetline(stdin);" (assignment_expression "__ptr = (long *)xmalloc_fgetline(stdin)" identifier = (cast_expression "(long *)xmalloc_fgetline(stdin)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc_fgetline(stdin)" identifier (argument_list "(stdin)" ( identifier ))))) ;) }) (else_clause "else {\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }" else (compound_statement "{\n          __ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);\n        }" { (expression_statement "__ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0);" (assignment_expression "__ptr = (long *)bb_get_chunk_from_file(stdin,(size_t *)0x0)" identifier = (cast_expression "(long *)bb_get_chunk_from_file(stdin,(size_t *)0x0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "bb_get_chunk_from_file(stdin,(size_t *)0x0)" identifier (argument_list "(stdin,(size_t *)0x0)" ( identifier , (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) }))) (expression_statement "__filename = (char *)__ptr;" (assignment_expression "__filename = (char *)__ptr" identifier = (cast_expression "(char *)__ptr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (__ptr != (long *)0x0) break;" if (parenthesized_expression "(__ptr != (long *)0x0)" ( (binary_expression "__ptr != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }\nLAB_00166923:\n          sVar4 = strlen(__filename);\n          iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);\n          uVar11 = -(int)(iVar3 + lVar12) & 3;\n          iVar8 = uVar11 - 1;\n          if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }\n          lVar12 = (long)(int)uVar11 + iVar3 + lVar12;\n          if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }\n          if (__ptr != (long *)0x0) break;\n          if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }\n        }" { (if_statement "if (puVar7 == (undefined8 *)0x0) {\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }\n          else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }" if (parenthesized_expression "(puVar7 == (undefined8 *)0x0)" ( (binary_expression "puVar7 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            psVar10 = &st;\n            for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }\n            __filename = "TRAILER!!!";\n          }" { (expression_statement "psVar10 = &st;" (assignment_expression "psVar10 = &st" identifier = (pointer_expression "&st" & identifier)) ;) (for_statement "for (lVar5 = 0x12; lVar5 != 0; lVar5 = lVar5 + -1) {\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }" for ( (assignment_expression "lVar5 = 0x12" identifier = number_literal) ; (binary_expression "lVar5 != 0" identifier != number_literal) ; (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n              psVar10->st_dev = 0;\n              psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);\n            }" { (expression_statement "psVar10->st_dev = 0;" (assignment_expression "psVar10->st_dev = 0" (field_expression "psVar10->st_dev" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8);" (assignment_expression "psVar10 = (stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8)" identifier = (cast_expression "(stat *)((long)psVar10 + (ulong)bVar13 * -0x10 + 8)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar10 + (ulong)bVar13 * -0x10 + 8)" ( (binary_expression "(long)psVar10 + (ulong)bVar13 * -0x10 + 8" (binary_expression "(long)psVar10 + (ulong)bVar13 * -0x10" (cast_expression "(long)psVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar13 * -0x10" (cast_expression "(ulong)bVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "__filename = "TRAILER!!!";" (assignment_expression "__filename = "TRAILER!!!"" identifier = (string_literal ""TRAILER!!!"" " string_content ")) ;) }) (else_clause "else {\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }" else (compound_statement "{\n            st.st_dev = puVar7[2];\n            st.st_ino = puVar7[3];\n            st.st_nlink = puVar7[4];\n            st._24_8_ = puVar7[5];\n            st._32_8_ = puVar7[6];\n            st.st_rdev = puVar7[7];\n            st.st_size = puVar7[8];\n            st.st_blksize = puVar7[9];\n            st.st_blocks = puVar7[10];\n            st.st_atim.tv_sec = puVar7[0xb];\n            st.st_atim.tv_nsec = puVar7[0xc];\n            st.st_mtim.tv_sec = puVar7[0xd];\n            st.st_mtim.tv_nsec = puVar7[0xe];\n            st.st_ctim.tv_sec = puVar7[0xf];\n            st.st_ctim.tv_nsec = puVar7[0x10];\n            st.__glibc_reserved[0] = puVar7[0x11];\n            st.__glibc_reserved[1] = puVar7[0x12];\n            st.__glibc_reserved[2] = puVar7[0x13];\n            __filename = (char *)((long *)puVar7[1] + 1);\n            lVar5 = *(long *)puVar7[1];\n            puVar7[1] = lVar5;\n            if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }\n          }" { (expression_statement "st.st_dev = puVar7[2];" (assignment_expression "st.st_dev = puVar7[2]" (field_expression "st.st_dev" identifier . field_identifier) = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "st.st_ino = puVar7[3];" (assignment_expression "st.st_ino = puVar7[3]" (field_expression "st.st_ino" identifier . field_identifier) = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "st.st_nlink = puVar7[4];" (assignment_expression "st.st_nlink = puVar7[4]" (field_expression "st.st_nlink" identifier . field_identifier) = (subscript_expression "puVar7[4]" identifier [ number_literal ])) ;) (expression_statement "st._24_8_ = puVar7[5];" (assignment_expression "st._24_8_ = puVar7[5]" (field_expression "st._24_8_" identifier . field_identifier) = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (expression_statement "st._32_8_ = puVar7[6];" (assignment_expression "st._32_8_ = puVar7[6]" (field_expression "st._32_8_" identifier . field_identifier) = (subscript_expression "puVar7[6]" identifier [ number_literal ])) ;) (expression_statement "st.st_rdev = puVar7[7];" (assignment_expression "st.st_rdev = puVar7[7]" (field_expression "st.st_rdev" identifier . field_identifier) = (subscript_expression "puVar7[7]" identifier [ number_literal ])) ;) (expression_statement "st.st_size = puVar7[8];" (assignment_expression "st.st_size = puVar7[8]" (field_expression "st.st_size" identifier . field_identifier) = (subscript_expression "puVar7[8]" identifier [ number_literal ])) ;) (expression_statement "st.st_blksize = puVar7[9];" (assignment_expression "st.st_blksize = puVar7[9]" (field_expression "st.st_blksize" identifier . field_identifier) = (subscript_expression "puVar7[9]" identifier [ number_literal ])) ;) (expression_statement "st.st_blocks = puVar7[10];" (assignment_expression "st.st_blocks = puVar7[10]" (field_expression "st.st_blocks" identifier . field_identifier) = (subscript_expression "puVar7[10]" identifier [ number_literal ])) ;) (expression_statement "st.st_atim.tv_sec = puVar7[0xb];" (assignment_expression "st.st_atim.tv_sec = puVar7[0xb]" (field_expression "st.st_atim.tv_sec" (field_expression "st.st_atim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar7[0xb]" identifier [ number_literal ])) ;) (expression_statement "st.st_atim.tv_nsec = puVar7[0xc];" (assignment_expression "st.st_atim.tv_nsec = puVar7[0xc]" (field_expression "st.st_atim.tv_nsec" (field_expression "st.st_atim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar7[0xc]" identifier [ number_literal ])) ;) (expression_statement "st.st_mtim.tv_sec = puVar7[0xd];" (assignment_expression "st.st_mtim.tv_sec = puVar7[0xd]" (field_expression "st.st_mtim.tv_sec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar7[0xd]" identifier [ number_literal ])) ;) (expression_statement "st.st_mtim.tv_nsec = puVar7[0xe];" (assignment_expression "st.st_mtim.tv_nsec = puVar7[0xe]" (field_expression "st.st_mtim.tv_nsec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar7[0xe]" identifier [ number_literal ])) ;) (expression_statement "st.st_ctim.tv_sec = puVar7[0xf];" (assignment_expression "st.st_ctim.tv_sec = puVar7[0xf]" (field_expression "st.st_ctim.tv_sec" (field_expression "st.st_ctim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar7[0xf]" identifier [ number_literal ])) ;) (expression_statement "st.st_ctim.tv_nsec = puVar7[0x10];" (assignment_expression "st.st_ctim.tv_nsec = puVar7[0x10]" (field_expression "st.st_ctim.tv_nsec" (field_expression "st.st_ctim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar7[0x10]" identifier [ number_literal ])) ;) (expression_statement "st.__glibc_reserved[0] = puVar7[0x11];" (assignment_expression "st.__glibc_reserved[0] = puVar7[0x11]" (subscript_expression "st.__glibc_reserved[0]" (field_expression "st.__glibc_reserved" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar7[0x11]" identifier [ number_literal ])) ;) (expression_statement "st.__glibc_reserved[1] = puVar7[0x12];" (assignment_expression "st.__glibc_reserved[1] = puVar7[0x12]" (subscript_expression "st.__glibc_reserved[1]" (field_expression "st.__glibc_reserved" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar7[0x12]" identifier [ number_literal ])) ;) (expression_statement "st.__glibc_reserved[2] = puVar7[0x13];" (assignment_expression "st.__glibc_reserved[2] = puVar7[0x13]" (subscript_expression "st.__glibc_reserved[2]" (field_expression "st.__glibc_reserved" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar7[0x13]" identifier [ number_literal ])) ;) (expression_statement "__filename = (char *)((long *)puVar7[1] + 1);" (assignment_expression "__filename = (char *)((long *)puVar7[1] + 1)" identifier = (cast_expression "(char *)((long *)puVar7[1] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)puVar7[1] + 1)" ( (binary_expression "(long *)puVar7[1] + 1" (cast_expression "(long *)puVar7[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])) + number_literal) )))) ;) (expression_statement "lVar5 = *(long *)puVar7[1];" (assignment_expression "lVar5 = *(long *)puVar7[1]" identifier = (pointer_expression "*(long *)puVar7[1]" * (cast_expression "(long *)puVar7[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])))) ;) (expression_statement "puVar7[1] = lVar5;" (assignment_expression "puVar7[1] = lVar5" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (lVar5 == 0) {\n              puVar7 = (undefined8 *)*puVar7;\n            }\n            else {\n              st.st_size = 0;\n            }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar7 = (undefined8 *)*puVar7;\n            }" { (expression_statement "puVar7 = (undefined8 *)*puVar7;" (assignment_expression "puVar7 = (undefined8 *)*puVar7" identifier = (cast_expression "(undefined8 *)*puVar7" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) }) (else_clause "else {\n              st.st_size = 0;\n            }" else (compound_statement "{\n              st.st_size = 0;\n            }" { (expression_statement "st.st_size = 0;" (assignment_expression "st.st_size = 0" (field_expression "st.st_size" identifier . field_identifier) = number_literal) ;) }))) }))) (labeled_statement "LAB_00166923:\n          sVar4 = strlen(__filename);" statement_identifier : (expression_statement "sVar4 = strlen(__filename);" (assignment_expression "sVar4 = strlen(__filename)" identifier = (call_expression "strlen(__filename)" identifier (argument_list "(__filename)" ( identifier )))) ;)) (expression_statement "iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0);" (assignment_expression "iVar3 = __printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0)" identifier = (call_expression "__printf_chk(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0)" identifier (argument_list "(1,\n                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,\n                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,\n                               (uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff,\n                               (uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff,\n                               (uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff,\n                               (uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff,\n                               (int)sVar4 + 1,__filename,0)" ( number_literal , (string_literal ""070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c"" " string_content ") , (binary_expression "st.st_ino & 0xffffffff" (field_expression "st.st_ino" identifier . field_identifier) & number_literal) , (binary_expression "st._24_8_ & 0xffffffff" (field_expression "st._24_8_" identifier . field_identifier) & number_literal) , (field_expression "st.st_uid" identifier . field_identifier) , (binary_expression "st._32_8_ & 0xffffffff" (field_expression "st._32_8_" identifier . field_identifier) & number_literal) , (field_expression "st.st_nlink" identifier . field_identifier) , (field_expression "st.st_mtim.tv_sec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier) , (field_expression "st.st_size" identifier . field_identifier) , (binary_expression "(uint)(st.st_dev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_dev >> 8) & 0xfff" (binary_expression "(uint)(st.st_dev >> 0x20) & 0xfffff000" (call_expression "(uint)(st.st_dev >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(st.st_dev >> 0x20)" ( (binary_expression "st.st_dev >> 0x20" (field_expression "st.st_dev" identifier . field_identifier) >> number_literal) ))) & number_literal) | (binary_expression "(uint)(st.st_dev >> 8) & 0xfff" (call_expression "(uint)(st.st_dev >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(st.st_dev >> 8)" ( (binary_expression "st.st_dev >> 8" (field_expression "st.st_dev" identifier . field_identifier) >> number_literal) ))) & number_literal)) , (binary_expression "(uint)((st.st_dev >> 0x14) << 8) | (uint)st.st_dev & 0xff" (call_expression "(uint)((st.st_dev >> 0x14) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((st.st_dev >> 0x14) << 8)" ( (binary_expression "(st.st_dev >> 0x14) << 8" (parenthesized_expression "(st.st_dev >> 0x14)" ( (binary_expression "st.st_dev >> 0x14" (field_expression "st.st_dev" identifier . field_identifier) >> number_literal) )) << number_literal) ))) | (binary_expression "(uint)st.st_dev & 0xff" (cast_expression "(uint)st.st_dev" ( (type_descriptor "uint" type_identifier) ) (field_expression "st.st_dev" identifier . field_identifier)) & number_literal)) , (binary_expression "(uint)(st.st_rdev >> 0x20) & 0xfffff000 |\n                               (uint)(st.st_rdev >> 8) & 0xfff" (binary_expression "(uint)(st.st_rdev >> 0x20) & 0xfffff000" (call_expression "(uint)(st.st_rdev >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(st.st_rdev >> 0x20)" ( (binary_expression "st.st_rdev >> 0x20" (field_expression "st.st_rdev" identifier . field_identifier) >> number_literal) ))) & number_literal) | (binary_expression "(uint)(st.st_rdev >> 8) & 0xfff" (call_expression "(uint)(st.st_rdev >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(st.st_rdev >> 8)" ( (binary_expression "st.st_rdev >> 8" (field_expression "st.st_rdev" identifier . field_identifier) >> number_literal) ))) & number_literal)) , (binary_expression "(uint)((st.st_rdev >> 0x14) << 8) | (uint)st.st_rdev & 0xff" (call_expression "(uint)((st.st_rdev >> 0x14) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((st.st_rdev >> 0x14) << 8)" ( (binary_expression "(st.st_rdev >> 0x14) << 8" (parenthesized_expression "(st.st_rdev >> 0x14)" ( (binary_expression "st.st_rdev >> 0x14" (field_expression "st.st_rdev" identifier . field_identifier) >> number_literal) )) << number_literal) ))) | (binary_expression "(uint)st.st_rdev & 0xff" (cast_expression "(uint)st.st_rdev" ( (type_descriptor "uint" type_identifier) ) (field_expression "st.st_rdev" identifier . field_identifier)) & number_literal)) , (binary_expression "(int)sVar4 + 1" (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier , number_literal )))) ;) (expression_statement "uVar11 = -(int)(iVar3 + lVar12) & 3;" (assignment_expression "uVar11 = -(int)(iVar3 + lVar12) & 3" identifier = (binary_expression "-(int)(iVar3 + lVar12) & 3" (unary_expression "-(int)(iVar3 + lVar12)" - (cast_expression "(int)(iVar3 + lVar12)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar3 + lVar12)" ( (binary_expression "iVar3 + lVar12" identifier + identifier) )))) & number_literal)) ;) (expression_statement "iVar8 = uVar11 - 1;" (assignment_expression "iVar8 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (if_statement "if (-1 < iVar8) {\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }" if (parenthesized_expression "(-1 < iVar8)" ( (binary_expression "-1 < iVar8" number_literal < identifier) )) (compound_statement "{\n            do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);\n          }" { (do_statement "do {\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            } while (iVar8 != -1);" do (compound_statement "{\n              bb_putchar(0);\n              iVar8 = iVar8 + -1;\n            }" { (expression_statement "bb_putchar(0);" (call_expression "bb_putchar(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) ;) })) (expression_statement "lVar12 = (long)(int)uVar11 + iVar3 + lVar12;" (assignment_expression "lVar12 = (long)(int)uVar11 + iVar3 + lVar12" identifier = (binary_expression "(long)(int)uVar11 + iVar3 + lVar12" (binary_expression "(long)(int)uVar11 + iVar3" (cast_expression "(long)(int)uVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) + identifier) + identifier)) ;) (if_statement "if (st.st_size != 0) {\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }" if (parenthesized_expression "(st.st_size != 0)" ( (binary_expression "st.st_size != 0" (field_expression "st.st_size" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }\n            uVar11 = -(int)(lVar12 + lVar5) & 3;\n            lVar12 = lVar12 + lVar5 + (long)(int)uVar11;\n            iVar3 = uVar11 - 1;\n            if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }\n          }" { (if_statement "if ((st.st_mode & 0xf000) == 0xa000) {\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }\n            else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }" if (parenthesized_expression "((st.st_mode & 0xf000) == 0xa000)" ( (binary_expression "(st.st_mode & 0xf000) == 0xa000" (parenthesized_expression "(st.st_mode & 0xf000)" ( (binary_expression "st.st_mode & 0xf000" (field_expression "st.st_mode" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              __ptr_00 = xmalloc_readlink_or_warn(__filename);\n              if (__ptr_00 == (char *)0x0) goto LAB_00166b16;\n              iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n              lVar5 = (long)iVar3;\n              free(__ptr_00);\n            }" { (expression_statement "__ptr_00 = xmalloc_readlink_or_warn(__filename);" (assignment_expression "__ptr_00 = xmalloc_readlink_or_warn(__filename)" identifier = (call_expression "xmalloc_readlink_or_warn(__filename)" identifier (argument_list "(__filename)" ( identifier )))) ;) (if_statement "if (__ptr_00 == (char *)0x0) goto LAB_00166b16;" if (parenthesized_expression "(__ptr_00 == (char *)0x0)" ( (binary_expression "__ptr_00 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00166b16;" goto statement_identifier ;)) (expression_statement "iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00);" (assignment_expression "iVar3 = __printf_chk(1,&DAT_001c02d5,__ptr_00)" identifier = (call_expression "__printf_chk(1,&DAT_001c02d5,__ptr_00)" identifier (argument_list "(1,&DAT_001c02d5,__ptr_00)" ( number_literal , (pointer_expression "&DAT_001c02d5" & identifier) , identifier )))) ;) (expression_statement "lVar5 = (long)iVar3;" (assignment_expression "lVar5 = (long)iVar3" identifier = (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) }) (else_clause "else {\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }" else (compound_statement "{\n              iVar3 = xopen(__filename,0);\n              fflush_all();\n              bb_copyfd_exact_size(iVar3,1,st.st_size);\n              lVar5 = st.st_size;\n              close(iVar3);\n            }" { (expression_statement "iVar3 = xopen(__filename,0);" (assignment_expression "iVar3 = xopen(__filename,0)" identifier = (call_expression "xopen(__filename,0)" identifier (argument_list "(__filename,0)" ( identifier , number_literal )))) ;) (expression_statement "fflush_all();" (call_expression "fflush_all()" identifier (argument_list "()" ( ))) ;) (expression_statement "bb_copyfd_exact_size(iVar3,1,st.st_size);" (call_expression "bb_copyfd_exact_size(iVar3,1,st.st_size)" identifier (argument_list "(iVar3,1,st.st_size)" ( identifier , number_literal , (field_expression "st.st_size" identifier . field_identifier) ))) ;) (expression_statement "lVar5 = st.st_size;" (assignment_expression "lVar5 = st.st_size" identifier = (field_expression "st.st_size" identifier . field_identifier)) ;) (expression_statement "close(iVar3);" (call_expression "close(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) }))) (expression_statement "uVar11 = -(int)(lVar12 + lVar5) & 3;" (assignment_expression "uVar11 = -(int)(lVar12 + lVar5) & 3" identifier = (binary_expression "-(int)(lVar12 + lVar5) & 3" (unary_expression "-(int)(lVar12 + lVar5)" - (cast_expression "(int)(lVar12 + lVar5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar12 + lVar5)" ( (binary_expression "lVar12 + lVar5" identifier + identifier) )))) & number_literal)) ;) (expression_statement "lVar12 = lVar12 + lVar5 + (long)(int)uVar11;" (assignment_expression "lVar12 = lVar12 + lVar5 + (long)(int)uVar11" identifier = (binary_expression "lVar12 + lVar5 + (long)(int)uVar11" (binary_expression "lVar12 + lVar5" identifier + identifier) + (cast_expression "(long)(int)uVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar3 = uVar11 - 1;" (assignment_expression "iVar3 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (if_statement "if (-1 < iVar3) {\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n              do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);\n            }" { (do_statement "do {\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              } while (iVar3 != -1);" do (compound_statement "{\n                bb_putchar(0);\n                iVar3 = iVar3 + -1;\n              }" { (expression_statement "bb_putchar(0);" (call_expression "bb_putchar(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) ;) })) })) (if_statement "if (__ptr != (long *)0x0) break;" if (parenthesized_expression "(__ptr != (long *)0x0)" ( (binary_expression "__ptr != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (__filename == "TRAILER!!!") {\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }" if (parenthesized_expression "(__filename == "TRAILER!!!")" ( (binary_expression "__filename == "TRAILER!!!"" identifier == (string_literal ""TRAILER!!!"" " string_content ")) )) (compound_statement "{\n            if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }\n            return 0;\n          }" { (if_statement "if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }" if (parenthesized_expression "(lVar1 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              __stack_chk_fail();\n            }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (while_statement "while ((char)*(long *)__filename == '.') {\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }" while (parenthesized_expression "((char)*(long *)__filename == '.')" ( (binary_expression "(char)*(long *)__filename == '.'" (cast_expression "(char)*(long *)__filename" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(long *)__filename" * (cast_expression "(long *)__filename" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n        if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;\n        do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');\n      }" { (if_statement "if (*(char *)((long)__filename + 1) != '/') goto LAB_00166af4;" if (parenthesized_expression "(*(char *)((long)__filename + 1) != '/')" ( (binary_expression "*(char *)((long)__filename + 1) != '/'" (pointer_expression "*(char *)((long)__filename + 1)" * (cast_expression "(char *)((long)__filename + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__filename + 1)" ( (binary_expression "(long)__filename + 1" (cast_expression "(long)__filename" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'/'" ' character ')) )) (goto_statement "goto LAB_00166af4;" goto statement_identifier ;)) (do_statement "do {\n          __filename = (char *)((long)__filename + 1);\n        } while (*__filename == '/');" do (compound_statement "{\n          __filename = (char *)((long)__filename + 1);\n        }" { (expression_statement "__filename = (char *)((long)__filename + 1);" (assignment_expression "__filename = (char *)((long)__filename + 1)" identifier = (cast_expression "(char *)((long)__filename + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__filename + 1)" ( (binary_expression "(long)__filename + 1" (cast_expression "(long)__filename" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(*__filename == '/')" ( (binary_expression "*__filename == '/'" (pointer_expression "*__filename" * identifier) == (char_literal "'/'" ' character ')) )) ;) })) (if_statement "if ((char)*(long *)__filename != '\0') break;" if (parenthesized_expression "((char)*(long *)__filename != '\0')" ( (binary_expression "(char)*(long *)__filename != '\0'" (cast_expression "(char)*(long *)__filename" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(long *)__filename" * (cast_expression "(long *)__filename" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (labeled_statement "LAB_00166af4:\n    if (((byte)option_mask32 & 0x80) == 0) {\n      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);\n    }\n    else {\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }" statement_identifier : (if_statement "if (((byte)option_mask32 & 0x80) == 0) {\n      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);\n    }\n    else {\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }" if (parenthesized_expression "(((byte)option_mask32 & 0x80) == 0)" ( (binary_expression "((byte)option_mask32 & 0x80) == 0" (parenthesized_expression "((byte)option_mask32 & 0x80)" ( (binary_expression "(byte)option_mask32 & 0x80" (cast_expression "(byte)option_mask32" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar3 = __lxstat64(1,__filename,(stat64 *)&st);\n    }" { (expression_statement "iVar3 = __lxstat64(1,__filename,(stat64 *)&st);" (assignment_expression "iVar3 = __lxstat64(1,__filename,(stat64 *)&st)" identifier = (call_expression "__lxstat64(1,__filename,(stat64 *)&st)" identifier (argument_list "(1,__filename,(stat64 *)&st)" ( number_literal , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) }) (else_clause "else {\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }" else (compound_statement "{\n      iVar3 = __xstat64(1,__filename,(stat64 *)&st);\n    }" { (expression_statement "iVar3 = __xstat64(1,__filename,(stat64 *)&st);" (assignment_expression "iVar3 = __xstat64(1,__filename,(stat64 *)&st)" identifier = (call_expression "__xstat64(1,__filename,(stat64 *)&st)" identifier (argument_list "(1,__filename,(stat64 *)&st)" ( number_literal , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) })))) (if_statement "if (iVar3 != 0) {\nLAB_00166b16:\n                    /* WARNING: Subroutine does not return */\n      bb_simple_perror_msg_and_die(__filename);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00166b16:\n                    /* WARNING: Subroutine does not return */\n      bb_simple_perror_msg_and_die(__filename);\n    }" { (labeled_statement "LAB_00166b16:\n                    /* WARNING: Subroutine does not return */\n      bb_simple_perror_msg_and_die(__filename);" statement_identifier : comment (expression_statement "bb_simple_perror_msg_and_die(__filename);" (call_expression "bb_simple_perror_msg_and_die(__filename)" identifier (argument_list "(__filename)" ( identifier ))) ;)) })) (if_statement "if (bb_common_bufsiz1 != 0xffffffff) {\n      st.st_uid = bb_common_bufsiz1;\n    }" if (parenthesized_expression "(bb_common_bufsiz1 != 0xffffffff)" ( (binary_expression "bb_common_bufsiz1 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      st.st_uid = bb_common_bufsiz1;\n    }" { (expression_statement "st.st_uid = bb_common_bufsiz1;" (assignment_expression "st.st_uid = bb_common_bufsiz1" (field_expression "st.st_uid" identifier . field_identifier) = identifier) ;) })) (if_statement "if (DAT_001c65fc != 0xffffffff) {\n      st.st_gid = DAT_001c65fc;\n    }" if (parenthesized_expression "(DAT_001c65fc != 0xffffffff)" ( (binary_expression "DAT_001c65fc != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      st.st_gid = DAT_001c65fc;\n    }" { (expression_statement "st.st_gid = DAT_001c65fc;" (assignment_expression "st.st_gid = DAT_001c65fc" (field_expression "st.st_gid" identifier . field_identifier) = identifier) ;) })) (if_statement "if ((st.st_mode & 0xd000) != 0x8000) {\n      st.st_size = 0;\n    }" if (parenthesized_expression "((st.st_mode & 0xd000) != 0x8000)" ( (binary_expression "(st.st_mode & 0xd000) != 0x8000" (parenthesized_expression "(st.st_mode & 0xd000)" ( (binary_expression "st.st_mode & 0xd000" (field_expression "st.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      st.st_size = 0;\n    }" { (expression_statement "st.st_size = 0;" (assignment_expression "st.st_size = 0" (field_expression "st.st_size" identifier . field_identifier) = number_literal) ;) })) (if_statement "if ((st.st_mode & 0xf000) == 0x4000) goto LAB_00166923;" if (parenthesized_expression "((st.st_mode & 0xf000) == 0x4000)" ( (binary_expression "(st.st_mode & 0xf000) == 0x4000" (parenthesized_expression "(st.st_mode & 0xf000)" ( (binary_expression "st.st_mode & 0xf000" (field_expression "st.st_mode" identifier . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00166923;" goto statement_identifier ;)) (if_statement "if (st.st_nlink < 2) goto LAB_00166923;" if (parenthesized_expression "(st.st_nlink < 2)" ( (binary_expression "st.st_nlink < 2" (field_expression "st.st_nlink" identifier . field_identifier) < number_literal) )) (goto_statement "goto LAB_00166923;" goto statement_identifier ;)) (if_statement "if (puVar7 == (undefined8 *)0x0) {\nLAB_00166bca:\n      puVar6 = (undefined8 *)xzalloc(0xa0);\n      puVar6[2] = st.st_dev;\n      puVar6[3] = st.st_ino;\n      puVar6[4] = st.st_nlink;\n      puVar6[5] = st._24_8_;\n      puVar6[6] = st._32_8_;\n      puVar6[7] = st.st_rdev;\n      puVar6[8] = st.st_size;\n      puVar6[9] = st.st_blksize;\n      puVar6[10] = st.st_blocks;\n      puVar6[0xb] = st.st_atim.tv_sec;\n      puVar6[0xc] = st.st_atim.tv_nsec;\n      puVar6[0xd] = st.st_mtim.tv_sec;\n      puVar6[0xe] = st.st_mtim.tv_nsec;\n      puVar6[0xf] = st.st_ctim.tv_sec;\n      puVar6[0x10] = st.st_ctim.tv_nsec;\n      puVar6[0x11] = st.__glibc_reserved[0];\n      puVar6[0x12] = st.__glibc_reserved[1];\n      puVar6[0x13] = st.__glibc_reserved[2];\n      *puVar6 = puVar7;\n      puVar9 = puVar6;\n    }\n    else {\n      _Var2 = puVar7[3];\n      puVar9 = puVar7;\n      while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }\n    }" if (parenthesized_expression "(puVar7 == (undefined8 *)0x0)" ( (binary_expression "puVar7 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00166bca:\n      puVar6 = (undefined8 *)xzalloc(0xa0);\n      puVar6[2] = st.st_dev;\n      puVar6[3] = st.st_ino;\n      puVar6[4] = st.st_nlink;\n      puVar6[5] = st._24_8_;\n      puVar6[6] = st._32_8_;\n      puVar6[7] = st.st_rdev;\n      puVar6[8] = st.st_size;\n      puVar6[9] = st.st_blksize;\n      puVar6[10] = st.st_blocks;\n      puVar6[0xb] = st.st_atim.tv_sec;\n      puVar6[0xc] = st.st_atim.tv_nsec;\n      puVar6[0xd] = st.st_mtim.tv_sec;\n      puVar6[0xe] = st.st_mtim.tv_nsec;\n      puVar6[0xf] = st.st_ctim.tv_sec;\n      puVar6[0x10] = st.st_ctim.tv_nsec;\n      puVar6[0x11] = st.__glibc_reserved[0];\n      puVar6[0x12] = st.__glibc_reserved[1];\n      puVar6[0x13] = st.__glibc_reserved[2];\n      *puVar6 = puVar7;\n      puVar9 = puVar6;\n    }" { (labeled_statement "LAB_00166bca:\n      puVar6 = (undefined8 *)xzalloc(0xa0);" statement_identifier : (expression_statement "puVar6 = (undefined8 *)xzalloc(0xa0);" (assignment_expression "puVar6 = (undefined8 *)xzalloc(0xa0)" identifier = (cast_expression "(undefined8 *)xzalloc(0xa0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xzalloc(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;)) (expression_statement "puVar6[2] = st.st_dev;" (assignment_expression "puVar6[2] = st.st_dev" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (field_expression "st.st_dev" identifier . field_identifier)) ;) (expression_statement "puVar6[3] = st.st_ino;" (assignment_expression "puVar6[3] = st.st_ino" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (field_expression "st.st_ino" identifier . field_identifier)) ;) (expression_statement "puVar6[4] = st.st_nlink;" (assignment_expression "puVar6[4] = st.st_nlink" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (field_expression "st.st_nlink" identifier . field_identifier)) ;) (expression_statement "puVar6[5] = st._24_8_;" (assignment_expression "puVar6[5] = st._24_8_" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = (field_expression "st._24_8_" identifier . field_identifier)) ;) (expression_statement "puVar6[6] = st._32_8_;" (assignment_expression "puVar6[6] = st._32_8_" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = (field_expression "st._32_8_" identifier . field_identifier)) ;) (expression_statement "puVar6[7] = st.st_rdev;" (assignment_expression "puVar6[7] = st.st_rdev" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = (field_expression "st.st_rdev" identifier . field_identifier)) ;) (expression_statement "puVar6[8] = st.st_size;" (assignment_expression "puVar6[8] = st.st_size" (subscript_expression "puVar6[8]" identifier [ number_literal ]) = (field_expression "st.st_size" identifier . field_identifier)) ;) (expression_statement "puVar6[9] = st.st_blksize;" (assignment_expression "puVar6[9] = st.st_blksize" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = (field_expression "st.st_blksize" identifier . field_identifier)) ;) (expression_statement "puVar6[10] = st.st_blocks;" (assignment_expression "puVar6[10] = st.st_blocks" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = (field_expression "st.st_blocks" identifier . field_identifier)) ;) (expression_statement "puVar6[0xb] = st.st_atim.tv_sec;" (assignment_expression "puVar6[0xb] = st.st_atim.tv_sec" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = (field_expression "st.st_atim.tv_sec" (field_expression "st.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar6[0xc] = st.st_atim.tv_nsec;" (assignment_expression "puVar6[0xc] = st.st_atim.tv_nsec" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = (field_expression "st.st_atim.tv_nsec" (field_expression "st.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar6[0xd] = st.st_mtim.tv_sec;" (assignment_expression "puVar6[0xd] = st.st_mtim.tv_sec" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = (field_expression "st.st_mtim.tv_sec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar6[0xe] = st.st_mtim.tv_nsec;" (assignment_expression "puVar6[0xe] = st.st_mtim.tv_nsec" (subscript_expression "puVar6[0xe]" identifier [ number_literal ]) = (field_expression "st.st_mtim.tv_nsec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar6[0xf] = st.st_ctim.tv_sec;" (assignment_expression "puVar6[0xf] = st.st_ctim.tv_sec" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) = (field_expression "st.st_ctim.tv_sec" (field_expression "st.st_ctim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar6[0x10] = st.st_ctim.tv_nsec;" (assignment_expression "puVar6[0x10] = st.st_ctim.tv_nsec" (subscript_expression "puVar6[0x10]" identifier [ number_literal ]) = (field_expression "st.st_ctim.tv_nsec" (field_expression "st.st_ctim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar6[0x11] = st.__glibc_reserved[0];" (assignment_expression "puVar6[0x11] = st.__glibc_reserved[0]" (subscript_expression "puVar6[0x11]" identifier [ number_literal ]) = (subscript_expression "st.__glibc_reserved[0]" (field_expression "st.__glibc_reserved" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "puVar6[0x12] = st.__glibc_reserved[1];" (assignment_expression "puVar6[0x12] = st.__glibc_reserved[1]" (subscript_expression "puVar6[0x12]" identifier [ number_literal ]) = (subscript_expression "st.__glibc_reserved[1]" (field_expression "st.__glibc_reserved" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "puVar6[0x13] = st.__glibc_reserved[2];" (assignment_expression "puVar6[0x13] = st.__glibc_reserved[2]" (subscript_expression "puVar6[0x13]" identifier [ number_literal ]) = (subscript_expression "st.__glibc_reserved[2]" (field_expression "st.__glibc_reserved" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "*puVar6 = puVar7;" (assignment_expression "*puVar6 = puVar7" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar6;" (assignment_expression "puVar9 = puVar6" identifier = identifier) ;) }) (else_clause "else {\n      _Var2 = puVar7[3];\n      puVar9 = puVar7;\n      while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }\n    }" else (compound_statement "{\n      _Var2 = puVar7[3];\n      puVar9 = puVar7;\n      while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }\n    }" { (expression_statement "_Var2 = puVar7[3];" (assignment_expression "_Var2 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar9 = puVar7;" (assignment_expression "puVar9 = puVar7" identifier = identifier) ;) (while_statement "while (puVar6 = puVar7, st.st_ino != _Var2) {\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }" while (parenthesized_expression "(puVar6 = puVar7, st.st_ino != _Var2)" ( (comma_expression "puVar6 = puVar7, st.st_ino != _Var2" (assignment_expression "puVar6 = puVar7" identifier = identifier) , (binary_expression "st.st_ino != _Var2" (field_expression "st.st_ino" identifier . field_identifier) != identifier)) )) (compound_statement "{\n        puVar9 = (undefined8 *)*puVar9;\n        if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;\n        _Var2 = puVar9[3];\n      }" { (expression_statement "puVar9 = (undefined8 *)*puVar9;" (assignment_expression "puVar9 = (undefined8 *)*puVar9" identifier = (cast_expression "(undefined8 *)*puVar9" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (if_statement "if (puVar9 == (undefined8 *)0x0) goto LAB_00166bca;" if (parenthesized_expression "(puVar9 == (undefined8 *)0x0)" ( (binary_expression "puVar9 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00166bca;" goto statement_identifier ;)) (expression_statement "_Var2 = puVar9[3];" (assignment_expression "_Var2 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) })) }))) (expression_statement "sVar4 = strlen(__filename);" (assignment_expression "sVar4 = strlen(__filename)" identifier = (call_expression "strlen(__filename)" identifier (argument_list "(__filename)" ( identifier )))) ;) (expression_statement "puVar7 = (undefined8 *)xmalloc(sVar4 + 0x10);" (assignment_expression "puVar7 = (undefined8 *)xmalloc(sVar4 + 0x10)" identifier = (cast_expression "(undefined8 *)xmalloc(sVar4 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar4 + 0x10)" identifier (argument_list "(sVar4 + 0x10)" ( (binary_expression "sVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "strcpy((char *)(puVar7 + 1),__filename);" (call_expression "strcpy((char *)(puVar7 + 1),__filename)" identifier (argument_list "((char *)(puVar7 + 1),__filename)" ( (cast_expression "(char *)(puVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) ))) , identifier ))) ;) (expression_statement "*puVar7 = puVar9[1];" (assignment_expression "*puVar7 = puVar9[1]" (pointer_expression "*puVar7" * identifier) = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[1] = puVar7;" (assignment_expression "puVar9[1] = puVar7" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "puVar7 = puVar6;" (assignment_expression "puVar7 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined8 FUN_0016683b(void)\n\n{\n  int iVar1;\n  long *__ptr;\n  size_t sVar2;\n  void *__ptr_00;\n  long lVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  stat64 *psVar8;\n  char *__s;\n  uint uVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  byte bVar11;\n  stat64 local_d8;\n  long local_40;\n  \n  bVar11 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar10 = 0;\n  puVar5 = (undefined8 *)0x0;\nLAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }\n  __s = (char *)__ptr;\n  if (__ptr != (long *)0x0) goto LAB_00166ae3;\n  do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  } while( true );\n  free(__ptr);\n  goto LAB_0016686f;\n  while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }\nLAB_00166c43:\n  sVar2 = strlen(__s);\n  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);\n  strcpy((char *)(puVar5 + 1),__s);\n  *puVar5 = puVar7[1];\n  puVar7[1] = puVar5;\n  free(__ptr);\n  puVar5 = puVar4;\n  goto LAB_0016686f;\nLAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);\n  puVar4[2] = local_d8.st_dev;\n  puVar4[3] = local_d8.st_ino;\n  puVar4[4] = local_d8.st_nlink;\n  puVar4[5] = local_d8._24_8_;\n  puVar4[6] = local_d8._32_8_;\n  puVar4[7] = local_d8.st_rdev;\n  puVar4[8] = local_d8.st_size;\n  puVar4[9] = local_d8.st_blksize;\n  puVar4[10] = local_d8.st_blocks;\n  puVar4[0xb] = local_d8.st_atim.tv_sec;\n  puVar4[0xc] = local_d8.st_atim.tv_nsec;\n  puVar4[0xd] = local_d8.st_mtim.tv_sec;\n  puVar4[0xe] = local_d8.st_mtim.tv_nsec;\n  puVar4[0xf] = local_d8.st_ctim.tv_sec;\n  puVar4[0x10] = local_d8.st_ctim.tv_nsec;\n  puVar4[0x11] = local_d8.__unused[0];\n  puVar4[0x12] = local_d8.__unused[1];\n  puVar4[0x13] = local_d8.__unused[2];\n  *puVar4 = puVar5;\n  puVar7 = puVar4;\n  goto LAB_00166c43;\n}\n\n" (function_definition "undefined8 FUN_0016683b(void)\n\n{\n  int iVar1;\n  long *__ptr;\n  size_t sVar2;\n  void *__ptr_00;\n  long lVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  stat64 *psVar8;\n  char *__s;\n  uint uVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  byte bVar11;\n  stat64 local_d8;\n  long local_40;\n  \n  bVar11 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar10 = 0;\n  puVar5 = (undefined8 *)0x0;\nLAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }\n  __s = (char *)__ptr;\n  if (__ptr != (long *)0x0) goto LAB_00166ae3;\n  do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  } while( true );\n  free(__ptr);\n  goto LAB_0016686f;\n  while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }\nLAB_00166c43:\n  sVar2 = strlen(__s);\n  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);\n  strcpy((char *)(puVar5 + 1),__s);\n  *puVar5 = puVar7[1];\n  puVar7[1] = puVar5;\n  free(__ptr);\n  puVar5 = puVar4;\n  goto LAB_0016686f;\nLAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);\n  puVar4[2] = local_d8.st_dev;\n  puVar4[3] = local_d8.st_ino;\n  puVar4[4] = local_d8.st_nlink;\n  puVar4[5] = local_d8._24_8_;\n  puVar4[6] = local_d8._32_8_;\n  puVar4[7] = local_d8.st_rdev;\n  puVar4[8] = local_d8.st_size;\n  puVar4[9] = local_d8.st_blksize;\n  puVar4[10] = local_d8.st_blocks;\n  puVar4[0xb] = local_d8.st_atim.tv_sec;\n  puVar4[0xc] = local_d8.st_atim.tv_nsec;\n  puVar4[0xd] = local_d8.st_mtim.tv_sec;\n  puVar4[0xe] = local_d8.st_mtim.tv_nsec;\n  puVar4[0xf] = local_d8.st_ctim.tv_sec;\n  puVar4[0x10] = local_d8.st_ctim.tv_nsec;\n  puVar4[0x11] = local_d8.__unused[0];\n  puVar4[0x12] = local_d8.__unused[1];\n  puVar4[0x13] = local_d8.__unused[2];\n  *puVar4 = puVar5;\n  puVar7 = puVar4;\n  goto LAB_00166c43;\n}" type_identifier (function_declarator "FUN_0016683b(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  long *__ptr;\n  size_t sVar2;\n  void *__ptr_00;\n  long lVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  stat64 *psVar8;\n  char *__s;\n  uint uVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  byte bVar11;\n  stat64 local_d8;\n  long local_40;\n  \n  bVar11 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar10 = 0;\n  puVar5 = (undefined8 *)0x0;\nLAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }\n  __s = (char *)__ptr;\n  if (__ptr != (long *)0x0) goto LAB_00166ae3;\n  do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  } while( true );\n  free(__ptr);\n  goto LAB_0016686f;\n  while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }\nLAB_00166c43:\n  sVar2 = strlen(__s);\n  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);\n  strcpy((char *)(puVar5 + 1),__s);\n  *puVar5 = puVar7[1];\n  puVar7[1] = puVar5;\n  free(__ptr);\n  puVar5 = puVar4;\n  goto LAB_0016686f;\nLAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);\n  puVar4[2] = local_d8.st_dev;\n  puVar4[3] = local_d8.st_ino;\n  puVar4[4] = local_d8.st_nlink;\n  puVar4[5] = local_d8._24_8_;\n  puVar4[6] = local_d8._32_8_;\n  puVar4[7] = local_d8.st_rdev;\n  puVar4[8] = local_d8.st_size;\n  puVar4[9] = local_d8.st_blksize;\n  puVar4[10] = local_d8.st_blocks;\n  puVar4[0xb] = local_d8.st_atim.tv_sec;\n  puVar4[0xc] = local_d8.st_atim.tv_nsec;\n  puVar4[0xd] = local_d8.st_mtim.tv_sec;\n  puVar4[0xe] = local_d8.st_mtim.tv_nsec;\n  puVar4[0xf] = local_d8.st_ctim.tv_sec;\n  puVar4[0x10] = local_d8.st_ctim.tv_nsec;\n  puVar4[0x11] = local_d8.__unused[0];\n  puVar4[0x12] = local_d8.__unused[1];\n  puVar4[0x13] = local_d8.__unused[2];\n  *puVar4 = puVar5;\n  puVar7 = puVar4;\n  goto LAB_00166c43;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long *__ptr;" (sized_type_specifier "long" long) (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "stat64 *psVar8;" type_identifier (pointer_declarator "*psVar8" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "stat64 local_d8;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined8 *)0x0;" (assignment_expression "puVar5 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" statement_identifier : (if_statement "if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" if (parenthesized_expression "(((byte)DAT_001c6a08 & 4) == 0)" ( (binary_expression "((byte)DAT_001c6a08 & 4) == 0" (parenthesized_expression "((byte)DAT_001c6a08 & 4)" ( (binary_expression "(byte)DAT_001c6a08 & 4" (cast_expression "(byte)DAT_001c6a08" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }" { (expression_statement "__ptr = (long *)FUN_0019b90d(stdin);" (assignment_expression "__ptr = (long *)FUN_0019b90d(stdin)" identifier = (cast_expression "(long *)FUN_0019b90d(stdin)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019b90d(stdin)" identifier (argument_list "(stdin)" ( identifier ))))) ;) }) (else_clause "else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" else (compound_statement "{\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" { (expression_statement "__ptr = (long *)FUN_0019b81d(stdin,0);" (assignment_expression "__ptr = (long *)FUN_0019b81d(stdin,0)" identifier = (cast_expression "(long *)FUN_0019b81d(stdin,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019b81d(stdin,0)" identifier (argument_list "(stdin,0)" ( identifier , number_literal ))))) ;) })))) (expression_statement "__s = (char *)__ptr;" (assignment_expression "__s = (char *)__ptr" identifier = (cast_expression "(char *)__ptr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (__ptr != (long *)0x0) goto LAB_00166ae3;" if (parenthesized_expression "(__ptr != (long *)0x0)" ( (binary_expression "__ptr != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00166ae3;" goto statement_identifier ;)) (do_statement "do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  } while( true );" do (compound_statement "{\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  }" { (if_statement "if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }" { (expression_statement "psVar8 = &local_d8;" (assignment_expression "psVar8 = &local_d8" identifier = (pointer_expression "&local_d8" & identifier)) ;) (for_statement "for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }" for ( (assignment_expression "lVar3 = 0x12" identifier = number_literal) ; (binary_expression "lVar3 != 0" identifier != number_literal) ; (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ) (compound_statement "{\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }" { (expression_statement "psVar8->st_dev = 0;" (assignment_expression "psVar8->st_dev = 0" (field_expression "psVar8->st_dev" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);" (assignment_expression "psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" identifier = (cast_expression "(stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" ( (binary_expression "(long)psVar8 + (ulong)bVar11 * -0x10 + 8" (binary_expression "(long)psVar8 + (ulong)bVar11 * -0x10" (cast_expression "(long)psVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar11 * -0x10" (cast_expression "(ulong)bVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "__s = "TRAILER!!!";" (assignment_expression "__s = "TRAILER!!!"" identifier = (string_literal ""TRAILER!!!"" " string_content ")) ;) }) (else_clause "else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" else (compound_statement "{\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" { (expression_statement "local_d8.st_dev = puVar5[2];" (assignment_expression "local_d8.st_dev = puVar5[2]" (field_expression "local_d8.st_dev" identifier . field_identifier) = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_ino = puVar5[3];" (assignment_expression "local_d8.st_ino = puVar5[3]" (field_expression "local_d8.st_ino" identifier . field_identifier) = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_nlink = puVar5[4];" (assignment_expression "local_d8.st_nlink = puVar5[4]" (field_expression "local_d8.st_nlink" identifier . field_identifier) = (subscript_expression "puVar5[4]" identifier [ number_literal ])) ;) (expression_statement "local_d8._24_8_ = puVar5[5];" (assignment_expression "local_d8._24_8_ = puVar5[5]" (field_expression "local_d8._24_8_" identifier . field_identifier) = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "local_d8._32_8_ = puVar5[6];" (assignment_expression "local_d8._32_8_ = puVar5[6]" (field_expression "local_d8._32_8_" identifier . field_identifier) = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_rdev = puVar5[7];" (assignment_expression "local_d8.st_rdev = puVar5[7]" (field_expression "local_d8.st_rdev" identifier . field_identifier) = (subscript_expression "puVar5[7]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_size = puVar5[8];" (assignment_expression "local_d8.st_size = puVar5[8]" (field_expression "local_d8.st_size" identifier . field_identifier) = (subscript_expression "puVar5[8]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_blksize = puVar5[9];" (assignment_expression "local_d8.st_blksize = puVar5[9]" (field_expression "local_d8.st_blksize" identifier . field_identifier) = (subscript_expression "puVar5[9]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_blocks = puVar5[10];" (assignment_expression "local_d8.st_blocks = puVar5[10]" (field_expression "local_d8.st_blocks" identifier . field_identifier) = (subscript_expression "puVar5[10]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_atim.tv_sec = puVar5[0xb];" (assignment_expression "local_d8.st_atim.tv_sec = puVar5[0xb]" (field_expression "local_d8.st_atim.tv_sec" (field_expression "local_d8.st_atim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_atim.tv_nsec = puVar5[0xc];" (assignment_expression "local_d8.st_atim.tv_nsec = puVar5[0xc]" (field_expression "local_d8.st_atim.tv_nsec" (field_expression "local_d8.st_atim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_mtim.tv_sec = puVar5[0xd];" (assignment_expression "local_d8.st_mtim.tv_sec = puVar5[0xd]" (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_mtim.tv_nsec = puVar5[0xe];" (assignment_expression "local_d8.st_mtim.tv_nsec = puVar5[0xe]" (field_expression "local_d8.st_mtim.tv_nsec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xe]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_ctim.tv_sec = puVar5[0xf];" (assignment_expression "local_d8.st_ctim.tv_sec = puVar5[0xf]" (field_expression "local_d8.st_ctim.tv_sec" (field_expression "local_d8.st_ctim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0xf]" identifier [ number_literal ])) ;) (expression_statement "local_d8.st_ctim.tv_nsec = puVar5[0x10];" (assignment_expression "local_d8.st_ctim.tv_nsec = puVar5[0x10]" (field_expression "local_d8.st_ctim.tv_nsec" (field_expression "local_d8.st_ctim" identifier . field_identifier) . field_identifier) = (subscript_expression "puVar5[0x10]" identifier [ number_literal ])) ;) (expression_statement "local_d8.__unused[0] = puVar5[0x11];" (assignment_expression "local_d8.__unused[0] = puVar5[0x11]" (subscript_expression "local_d8.__unused[0]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar5[0x11]" identifier [ number_literal ])) ;) (expression_statement "local_d8.__unused[1] = puVar5[0x12];" (assignment_expression "local_d8.__unused[1] = puVar5[0x12]" (subscript_expression "local_d8.__unused[1]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar5[0x12]" identifier [ number_literal ])) ;) (expression_statement "local_d8.__unused[2] = puVar5[0x13];" (assignment_expression "local_d8.__unused[2] = puVar5[0x13]" (subscript_expression "local_d8.__unused[2]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ]) = (subscript_expression "puVar5[0x13]" identifier [ number_literal ])) ;) (expression_statement "__s = (char *)((long *)puVar5[1] + 1);" (assignment_expression "__s = (char *)((long *)puVar5[1] + 1)" identifier = (cast_expression "(char *)((long *)puVar5[1] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)puVar5[1] + 1)" ( (binary_expression "(long *)puVar5[1] + 1" (cast_expression "(long *)puVar5[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ])) + number_literal) )))) ;) (expression_statement "lVar3 = *(long *)puVar5[1];" (assignment_expression "lVar3 = *(long *)puVar5[1]" identifier = (pointer_expression "*(long *)puVar5[1]" * (cast_expression "(long *)puVar5[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ])))) ;) (expression_statement "puVar5[1] = lVar3;" (assignment_expression "puVar5[1] = lVar3" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar5 = (undefined8 *)*puVar5;\n      }" { (expression_statement "puVar5 = (undefined8 *)*puVar5;" (assignment_expression "puVar5 = (undefined8 *)*puVar5" identifier = (cast_expression "(undefined8 *)*puVar5" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) }) (else_clause "else {\n        local_d8.st_size = 0;\n      }" else (compound_statement "{\n        local_d8.st_size = 0;\n      }" { (expression_statement "local_d8.st_size = 0;" (assignment_expression "local_d8.st_size = 0" (field_expression "local_d8.st_size" identifier . field_identifier) = number_literal) ;) }))) }))) (while_statement "while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }" { (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);" (assignment_expression "iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" identifier = (call_expression "__printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" identifier (argument_list "(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" ( number_literal , (string_literal ""070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c"" " string_content ") , (binary_expression "local_d8.st_ino & 0xffffffff" (field_expression "local_d8.st_ino" identifier . field_identifier) & number_literal) , (binary_expression "local_d8._24_8_ & 0xffffffff" (field_expression "local_d8._24_8_" identifier . field_identifier) & number_literal) , (field_expression "local_d8.st_uid" identifier . field_identifier) , (binary_expression "local_d8._32_8_ & 0xffffffff" (field_expression "local_d8._32_8_" identifier . field_identifier) & number_literal) , (field_expression "local_d8.st_nlink" identifier . field_identifier) , (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier) , (field_expression "local_d8.st_size" identifier . field_identifier) , (binary_expression "(uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff" (binary_expression "(uint)(local_d8.st_dev >> 0x20) & 0xfffff000" (call_expression "(uint)(local_d8.st_dev >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8.st_dev >> 0x20)" ( (binary_expression "local_d8.st_dev >> 0x20" (field_expression "local_d8.st_dev" identifier . field_identifier) >> number_literal) ))) & number_literal) | (binary_expression "(uint)(local_d8.st_dev >> 8) & 0xfff" (call_expression "(uint)(local_d8.st_dev >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8.st_dev >> 8)" ( (binary_expression "local_d8.st_dev >> 8" (field_expression "local_d8.st_dev" identifier . field_identifier) >> number_literal) ))) & number_literal)) , (binary_expression "(uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff" (call_expression "(uint)((local_d8.st_dev >> 0x14) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((local_d8.st_dev >> 0x14) << 8)" ( (binary_expression "(local_d8.st_dev >> 0x14) << 8" (parenthesized_expression "(local_d8.st_dev >> 0x14)" ( (binary_expression "local_d8.st_dev >> 0x14" (field_expression "local_d8.st_dev" identifier . field_identifier) >> number_literal) )) << number_literal) ))) | (binary_expression "(uint)local_d8.st_dev & 0xff" (cast_expression "(uint)local_d8.st_dev" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_d8.st_dev" identifier . field_identifier)) & number_literal)) , (binary_expression "(uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff" (binary_expression "(uint)(local_d8.st_rdev >> 0x20) & 0xfffff000" (call_expression "(uint)(local_d8.st_rdev >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8.st_rdev >> 0x20)" ( (binary_expression "local_d8.st_rdev >> 0x20" (field_expression "local_d8.st_rdev" identifier . field_identifier) >> number_literal) ))) & number_literal) | (binary_expression "(uint)(local_d8.st_rdev >> 8) & 0xfff" (call_expression "(uint)(local_d8.st_rdev >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8.st_rdev >> 8)" ( (binary_expression "local_d8.st_rdev >> 8" (field_expression "local_d8.st_rdev" identifier . field_identifier) >> number_literal) ))) & number_literal)) , (binary_expression "(uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff" (call_expression "(uint)((local_d8.st_rdev >> 0x14) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((local_d8.st_rdev >> 0x14) << 8)" ( (binary_expression "(local_d8.st_rdev >> 0x14) << 8" (parenthesized_expression "(local_d8.st_rdev >> 0x14)" ( (binary_expression "local_d8.st_rdev >> 0x14" (field_expression "local_d8.st_rdev" identifier . field_identifier) >> number_literal) )) << number_literal) ))) | (binary_expression "(uint)local_d8.st_rdev & 0xff" (cast_expression "(uint)local_d8.st_rdev" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_d8.st_rdev" identifier . field_identifier)) & number_literal)) , (binary_expression "(int)sVar2 + 1" (cast_expression "(int)sVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier , number_literal )))) ;) (expression_statement "uVar9 = -(int)(iVar1 + lVar10) & 3;" (assignment_expression "uVar9 = -(int)(iVar1 + lVar10) & 3" identifier = (binary_expression "-(int)(iVar1 + lVar10) & 3" (unary_expression "-(int)(iVar1 + lVar10)" - (cast_expression "(int)(iVar1 + lVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar1 + lVar10)" ( (binary_expression "iVar1 + lVar10" identifier + identifier) )))) & number_literal)) ;) (expression_statement "iVar6 = uVar9 - 1;" (assignment_expression "iVar6 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (if_statement "if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (compound_statement "{\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }" { (do_statement "do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);" do (compound_statement "{\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        }" { (expression_statement "FUN_0010e956(0);" (call_expression "FUN_0010e956(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) ;) })) (expression_statement "lVar10 = (long)(int)uVar9 + iVar1 + lVar10;" (assignment_expression "lVar10 = (long)(int)uVar9 + iVar1 + lVar10" identifier = (binary_expression "(long)(int)uVar9 + iVar1 + lVar10" (binary_expression "(long)(int)uVar9 + iVar1" (cast_expression "(long)(int)uVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) + identifier) + identifier)) ;) (if_statement "if (local_d8.st_size == 0) goto LAB_00166a8a;" if (parenthesized_expression "(local_d8.st_size == 0)" ( (binary_expression "local_d8.st_size == 0" (field_expression "local_d8.st_size" identifier . field_identifier) == number_literal) )) (goto_statement "goto LAB_00166a8a;" goto statement_identifier ;)) (if_statement "if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }" if (parenthesized_expression "((local_d8.st_mode & 0xf000) != 0xa000)" ( (binary_expression "(local_d8.st_mode & 0xf000) != 0xa000" (parenthesized_expression "(local_d8.st_mode & 0xf000)" ( (binary_expression "local_d8.st_mode & 0xf000" (field_expression "local_d8.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }" { (expression_statement "iVar1 = FUN_0010e707(__s,0);" (assignment_expression "iVar1 = FUN_0010e707(__s,0)" identifier = (call_expression "FUN_0010e707(__s,0)" identifier (argument_list "(__s,0)" ( identifier , number_literal )))) ;) (expression_statement "FUN_0010e943();" (call_expression "FUN_0010e943()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0010f4b7(iVar1,1,local_d8.st_size);" (call_expression "FUN_0010f4b7(iVar1,1,local_d8.st_size)" identifier (argument_list "(iVar1,1,local_d8.st_size)" ( identifier , number_literal , (field_expression "local_d8.st_size" identifier . field_identifier) ))) ;) (expression_statement "lVar3 = local_d8.st_size;" (assignment_expression "lVar3 = local_d8.st_size" identifier = (field_expression "local_d8.st_size" identifier . field_identifier)) ;) (expression_statement "close(iVar1);" (call_expression "close(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) (goto_statement "goto LAB_00166a65;" goto statement_identifier ;) })) (expression_statement "__ptr_00 = (void *)FUN_0010f198(__s);" (assignment_expression "__ptr_00 = (void *)FUN_0010f198(__s)" identifier = (cast_expression "(void *)FUN_0010f198(__s)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010f198(__s)" identifier (argument_list "(__s)" ( identifier ))))) ;) (if_statement "if (__ptr_00 != (void *)0x0) break;" if (parenthesized_expression "(__ptr_00 != (void *)0x0)" ( (binary_expression "__ptr_00 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (do_statement "do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);" do (compound_statement "{\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      }" { (expression_statement "FUN_0010d969(__s);" (call_expression "FUN_0010d969(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "__s = (char *)__ptr;" (assignment_expression "__s = (char *)__ptr" identifier = (cast_expression "(char *)__ptr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" statement_identifier : (while_statement "while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" while (parenthesized_expression "((char)*(long *)__s == '.')" ( (binary_expression "(char)*(long *)__s == '.'" (cast_expression "(char)*(long *)__s" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(long *)__s" * (cast_expression "(long *)__s" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" { (if_statement "if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;" if (parenthesized_expression "(*(char *)((long)__s + 1) != '/')" ( (binary_expression "*(char *)((long)__s + 1) != '/'" (pointer_expression "*(char *)((long)__s + 1)" * (cast_expression "(char *)((long)__s + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + 1)" ( (binary_expression "(long)__s + 1" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'/'" ' character ')) )) (goto_statement "goto LAB_00166af4;" goto statement_identifier ;)) (do_statement "do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');" do (compound_statement "{\n            __s = (char *)((long)__s + 1);\n          }" { (expression_statement "__s = (char *)((long)__s + 1);" (assignment_expression "__s = (char *)((long)__s + 1)" identifier = (cast_expression "(char *)((long)__s + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + 1)" ( (binary_expression "(long)__s + 1" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(*__s == '/')" ( (binary_expression "*__s == '/'" (pointer_expression "*__s" * identifier) == (char_literal "'/'" ' character ')) )) ;) }))) (if_statement "if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }" if (parenthesized_expression "((char)*(long *)__s == '\0')" ( (binary_expression "(char)*(long *)__s == '\0'" (cast_expression "(char)*(long *)__s" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(long *)__s" * (cast_expression "(long *)__s" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          free(__ptr);\n          goto LAB_0016686f;\n        }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto LAB_0016686f;" goto statement_identifier ;) })) (labeled_statement "LAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" statement_identifier : (if_statement "if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" if (parenthesized_expression "(((byte)DAT_001c6a08 & 0x80) == 0)" ( (binary_expression "((byte)DAT_001c6a08 & 0x80) == 0" (parenthesized_expression "((byte)DAT_001c6a08 & 0x80)" ( (binary_expression "(byte)DAT_001c6a08 & 0x80" (cast_expression "(byte)DAT_001c6a08" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }" { (expression_statement "iVar1 = __lxstat64(1,__s,&local_d8);" (assignment_expression "iVar1 = __lxstat64(1,__s,&local_d8)" identifier = (call_expression "__lxstat64(1,__s,&local_d8)" identifier (argument_list "(1,__s,&local_d8)" ( number_literal , identifier , (pointer_expression "&local_d8" & identifier) )))) ;) }) (else_clause "else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" else (compound_statement "{\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" { (expression_statement "iVar1 = __xstat64(1,__s,&local_d8);" (assignment_expression "iVar1 = __xstat64(1,__s,&local_d8)" identifier = (call_expression "__xstat64(1,__s,&local_d8)" identifier (argument_list "(1,__s,&local_d8)" ( number_literal , identifier , (pointer_expression "&local_d8" & identifier) )))) ;) })))) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (if_statement "if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }" if (parenthesized_expression "(DAT_001c65f8 != -1)" ( (binary_expression "DAT_001c65f8 != -1" identifier != number_literal) )) (compound_statement "{\n        local_d8.st_uid = DAT_001c65f8;\n      }" { (expression_statement "local_d8.st_uid = DAT_001c65f8;" (assignment_expression "local_d8.st_uid = DAT_001c65f8" (field_expression "local_d8.st_uid" identifier . field_identifier) = identifier) ;) })) (if_statement "if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }" if (parenthesized_expression "(_DAT_001c65fc != -1)" ( (binary_expression "_DAT_001c65fc != -1" identifier != number_literal) )) (compound_statement "{\n        local_d8.st_gid = _DAT_001c65fc;\n      }" { (expression_statement "local_d8.st_gid = _DAT_001c65fc;" (assignment_expression "local_d8.st_gid = _DAT_001c65fc" (field_expression "local_d8.st_gid" identifier . field_identifier) = identifier) ;) })) (if_statement "if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }" if (parenthesized_expression "((local_d8.st_mode & 0xd000) != 0x8000)" ( (binary_expression "(local_d8.st_mode & 0xd000) != 0x8000" (parenthesized_expression "(local_d8.st_mode & 0xd000)" ( (binary_expression "local_d8.st_mode & 0xd000" (field_expression "local_d8.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_d8.st_size = 0;\n      }" { (expression_statement "local_d8.st_size = 0;" (assignment_expression "local_d8.st_size = 0" (field_expression "local_d8.st_size" identifier . field_identifier) = number_literal) ;) })) (if_statement "if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }" if (parenthesized_expression "(((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink))" ( (binary_expression "((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)" (parenthesized_expression "((local_d8.st_mode & 0xf000) != 0x4000)" ( (binary_expression "(local_d8.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(local_d8.st_mode & 0xf000)" ( (binary_expression "local_d8.st_mode & 0xf000" (field_expression "local_d8.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(1 < local_d8.st_nlink)" ( (binary_expression "1 < local_d8.st_nlink" number_literal < (field_expression "local_d8.st_nlink" identifier . field_identifier)) ))) )) (compound_statement "{\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }" { (if_statement "if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00166bca;" goto statement_identifier ;)) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" identifier = identifier) ;) (if_statement "if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;" if (parenthesized_expression "(local_d8.st_ino == puVar5[3])" ( (binary_expression "local_d8.st_ino == puVar5[3]" (field_expression "local_d8.st_ino" identifier . field_identifier) == (subscript_expression "puVar5[3]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00166c43;" goto statement_identifier ;)) (goto_statement "goto LAB_00166bb9;" goto statement_identifier ;) })) })) (expression_statement "iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);" (assignment_expression "iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00)" identifier = (call_expression "__printf_chk(1,&DAT_001c02d5,__ptr_00)" identifier (argument_list "(1,&DAT_001c02d5,__ptr_00)" ( number_literal , (pointer_expression "&DAT_001c02d5" & identifier) , identifier )))) ;) (expression_statement "lVar3 = (long)iVar1;" (assignment_expression "lVar3 = (long)iVar1" identifier = (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (labeled_statement "LAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;" statement_identifier : (expression_statement "uVar9 = -(int)(lVar10 + lVar3) & 3;" (assignment_expression "uVar9 = -(int)(lVar10 + lVar3) & 3" identifier = (binary_expression "-(int)(lVar10 + lVar3) & 3" (unary_expression "-(int)(lVar10 + lVar3)" - (cast_expression "(int)(lVar10 + lVar3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar10 + lVar3)" ( (binary_expression "lVar10 + lVar3" identifier + identifier) )))) & number_literal)) ;)) (expression_statement "lVar10 = lVar10 + lVar3 + (long)(int)uVar9;" (assignment_expression "lVar10 = lVar10 + lVar3 + (long)(int)uVar9" identifier = (binary_expression "lVar10 + lVar3 + (long)(int)uVar9" (binary_expression "lVar10 + lVar3" identifier + identifier) + (cast_expression "(long)(int)uVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar1 = uVar9 - 1;" (assignment_expression "iVar1 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (if_statement "if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }" { (do_statement "do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);" do (compound_statement "{\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      }" { (expression_statement "FUN_0010e956(0);" (call_expression "FUN_0010e956(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00166a8a:\n    if (__ptr != (long *)0x0) break;" statement_identifier : (if_statement "if (__ptr != (long *)0x0) break;" if (parenthesized_expression "(__ptr != (long *)0x0)" ( (binary_expression "__ptr != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;))) (if_statement "if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }" if (parenthesized_expression "(__s == "TRAILER!!!")" ( (binary_expression "__s == "TRAILER!!!"" identifier == (string_literal ""TRAILER!!!"" " string_content ")) )) (compound_statement "{\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }" { (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto LAB_0016686f;" goto statement_identifier ;) (while_statement "while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }" while (parenthesized_expression "(puVar7[3] != local_d8.st_ino)" ( (binary_expression "puVar7[3] != local_d8.st_ino" (subscript_expression "puVar7[3]" identifier [ number_literal ]) != (field_expression "local_d8.st_ino" identifier . field_identifier)) )) (compound_statement "{\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }" { (labeled_statement "LAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;" statement_identifier : (expression_statement "puVar7 = (undefined8 *)*puVar7;" (assignment_expression "puVar7 = (undefined8 *)*puVar7" identifier = (cast_expression "(undefined8 *)*puVar7" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;)) (if_statement "if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;" if (parenthesized_expression "(puVar7 == (undefined8 *)0x0)" ( (binary_expression "puVar7 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00166bca;" goto statement_identifier ;)) })) (labeled_statement "LAB_00166c43:\n  sVar2 = strlen(__s);" statement_identifier : (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;)) (expression_statement "puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);" (assignment_expression "puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10)" identifier = (cast_expression "(undefined8 *)FUN_0010e5ce(sVar2 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010e5ce(sVar2 + 0x10)" identifier (argument_list "(sVar2 + 0x10)" ( (binary_expression "sVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "strcpy((char *)(puVar5 + 1),__s);" (call_expression "strcpy((char *)(puVar5 + 1),__s)" identifier (argument_list "((char *)(puVar5 + 1),__s)" ( (cast_expression "(char *)(puVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) ))) , identifier ))) ;) (expression_statement "*puVar5 = puVar7[1];" (assignment_expression "*puVar5 = puVar7[1]" (pointer_expression "*puVar5" * identifier) = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "puVar7[1] = puVar5;" (assignment_expression "puVar7[1] = puVar5" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" identifier = identifier) ;) (goto_statement "goto LAB_0016686f;" goto statement_identifier ;) (labeled_statement "LAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);" statement_identifier : (expression_statement "puVar4 = (undefined8 *)FUN_0010e602(0xa0);" (assignment_expression "puVar4 = (undefined8 *)FUN_0010e602(0xa0)" identifier = (cast_expression "(undefined8 *)FUN_0010e602(0xa0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010e602(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;)) (expression_statement "puVar4[2] = local_d8.st_dev;" (assignment_expression "puVar4[2] = local_d8.st_dev" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (field_expression "local_d8.st_dev" identifier . field_identifier)) ;) (expression_statement "puVar4[3] = local_d8.st_ino;" (assignment_expression "puVar4[3] = local_d8.st_ino" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (field_expression "local_d8.st_ino" identifier . field_identifier)) ;) (expression_statement "puVar4[4] = local_d8.st_nlink;" (assignment_expression "puVar4[4] = local_d8.st_nlink" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (field_expression "local_d8.st_nlink" identifier . field_identifier)) ;) (expression_statement "puVar4[5] = local_d8._24_8_;" (assignment_expression "puVar4[5] = local_d8._24_8_" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = (field_expression "local_d8._24_8_" identifier . field_identifier)) ;) (expression_statement "puVar4[6] = local_d8._32_8_;" (assignment_expression "puVar4[6] = local_d8._32_8_" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = (field_expression "local_d8._32_8_" identifier . field_identifier)) ;) (expression_statement "puVar4[7] = local_d8.st_rdev;" (assignment_expression "puVar4[7] = local_d8.st_rdev" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = (field_expression "local_d8.st_rdev" identifier . field_identifier)) ;) (expression_statement "puVar4[8] = local_d8.st_size;" (assignment_expression "puVar4[8] = local_d8.st_size" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = (field_expression "local_d8.st_size" identifier . field_identifier)) ;) (expression_statement "puVar4[9] = local_d8.st_blksize;" (assignment_expression "puVar4[9] = local_d8.st_blksize" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (field_expression "local_d8.st_blksize" identifier . field_identifier)) ;) (expression_statement "puVar4[10] = local_d8.st_blocks;" (assignment_expression "puVar4[10] = local_d8.st_blocks" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = (field_expression "local_d8.st_blocks" identifier . field_identifier)) ;) (expression_statement "puVar4[0xb] = local_d8.st_atim.tv_sec;" (assignment_expression "puVar4[0xb] = local_d8.st_atim.tv_sec" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = (field_expression "local_d8.st_atim.tv_sec" (field_expression "local_d8.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0xc] = local_d8.st_atim.tv_nsec;" (assignment_expression "puVar4[0xc] = local_d8.st_atim.tv_nsec" (subscript_expression "puVar4[0xc]" identifier [ number_literal ]) = (field_expression "local_d8.st_atim.tv_nsec" (field_expression "local_d8.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0xd] = local_d8.st_mtim.tv_sec;" (assignment_expression "puVar4[0xd] = local_d8.st_mtim.tv_sec" (subscript_expression "puVar4[0xd]" identifier [ number_literal ]) = (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0xe] = local_d8.st_mtim.tv_nsec;" (assignment_expression "puVar4[0xe] = local_d8.st_mtim.tv_nsec" (subscript_expression "puVar4[0xe]" identifier [ number_literal ]) = (field_expression "local_d8.st_mtim.tv_nsec" (field_expression "local_d8.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0xf] = local_d8.st_ctim.tv_sec;" (assignment_expression "puVar4[0xf] = local_d8.st_ctim.tv_sec" (subscript_expression "puVar4[0xf]" identifier [ number_literal ]) = (field_expression "local_d8.st_ctim.tv_sec" (field_expression "local_d8.st_ctim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0x10] = local_d8.st_ctim.tv_nsec;" (assignment_expression "puVar4[0x10] = local_d8.st_ctim.tv_nsec" (subscript_expression "puVar4[0x10]" identifier [ number_literal ]) = (field_expression "local_d8.st_ctim.tv_nsec" (field_expression "local_d8.st_ctim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar4[0x11] = local_d8.__unused[0];" (assignment_expression "puVar4[0x11] = local_d8.__unused[0]" (subscript_expression "puVar4[0x11]" identifier [ number_literal ]) = (subscript_expression "local_d8.__unused[0]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "puVar4[0x12] = local_d8.__unused[1];" (assignment_expression "puVar4[0x12] = local_d8.__unused[1]" (subscript_expression "puVar4[0x12]" identifier [ number_literal ]) = (subscript_expression "local_d8.__unused[1]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "puVar4[0x13] = local_d8.__unused[2];" (assignment_expression "puVar4[0x13] = local_d8.__unused[2]" (subscript_expression "puVar4[0x13]" identifier [ number_literal ]) = (subscript_expression "local_d8.__unused[2]" (field_expression "local_d8.__unused" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar4;" (assignment_expression "puVar7 = puVar4" identifier = identifier) ;) (goto_statement "goto LAB_00166c43;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) }))) }))) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (binary_expression (field_expression IDENT . field_identifier) & LIT) , (binary_expression (field_expression IDENT . field_identifier) & LIT) , (field_expression IDENT . field_identifier) , (binary_expression (field_expression IDENT . field_identifier) & LIT) , (field_expression IDENT . field_identifier) , (field_expression (field_expression IDENT . field_identifier) . field_identifier) , (field_expression IDENT . field_identifier) , (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (field_expression IDENT . field_identifier) >> LIT) ))) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (field_expression IDENT . field_identifier) >> LIT) ))) & LIT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) >> LIT) )) << LIT) ))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) & LIT)) , (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (field_expression IDENT . field_identifier) >> LIT) ))) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (field_expression IDENT . field_identifier) >> LIT) ))) & LIT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) >> LIT) )) << LIT) ))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) & LIT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) + IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (field_expression IDENT . field_identifier) ))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT))) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) })))) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression LIT < (field_expression IDENT . field_identifier)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) & LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (string_literal " string_content ")) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) while (parenthesized_expression ( BOOL )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (field_expression IDENT . field_identifier)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined8 FUN_0016683b(void)\n\n{\n  int iVar1;\n  long *__ptr;\n  size_t sVar2;\n  void *__ptr_00;\n  long lVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  stat64 *psVar8;\n  char *__s;\n  uint uVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  byte bVar11;\n  stat64 local_d8;\n  long local_40;\n  \n  bVar11 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar10 = 0;\n  puVar5 = (undefined8 *)0x0;\nLAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }\n  __s = (char *)__ptr;\n  if (__ptr != (long *)0x0) goto LAB_00166ae3;\n  do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  } while( true );\n  free(__ptr);\n  goto LAB_0016686f;\n  while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }\nLAB_00166c43:\n  sVar2 = strlen(__s);\n  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);\n  strcpy((char *)(puVar5 + 1),__s);\n  *puVar5 = puVar7[1];\n  puVar7[1] = puVar5;\n  free(__ptr);\n  puVar5 = puVar4;\n  goto LAB_0016686f;\nLAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);\n  puVar4[2] = local_d8.st_dev;\n  puVar4[3] = local_d8.st_ino;\n  puVar4[4] = local_d8.st_nlink;\n  puVar4[5] = local_d8._24_8_;\n  puVar4[6] = local_d8._32_8_;\n  puVar4[7] = local_d8.st_rdev;\n  puVar4[8] = local_d8.st_size;\n  puVar4[9] = local_d8.st_blksize;\n  puVar4[10] = local_d8.st_blocks;\n  puVar4[0xb] = local_d8.st_atim.tv_sec;\n  puVar4[0xc] = local_d8.st_atim.tv_nsec;\n  puVar4[0xd] = local_d8.st_mtim.tv_sec;\n  puVar4[0xe] = local_d8.st_mtim.tv_nsec;\n  puVar4[0xf] = local_d8.st_ctim.tv_sec;\n  puVar4[0x10] = local_d8.st_ctim.tv_nsec;\n  puVar4[0x11] = local_d8.__unused[0];\n  puVar4[0x12] = local_d8.__unused[1];\n  puVar4[0x13] = local_d8.__unused[2];\n  *puVar4 = puVar5;\n  puVar7 = puVar4;\n  goto LAB_00166c43;\n}" (type_identifier "undefined8") (function_declarator "FUN_0016683b(void)" (identifier "FUN_0016683b") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  long *__ptr;\n  size_t sVar2;\n  void *__ptr_00;\n  long lVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  stat64 *psVar8;\n  char *__s;\n  uint uVar9;\n  long lVar10;\n  long in_FS_OFFSET;\n  byte bVar11;\n  stat64 local_d8;\n  long local_40;\n  \n  bVar11 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  lVar10 = 0;\n  puVar5 = (undefined8 *)0x0;\nLAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }\n  __s = (char *)__ptr;\n  if (__ptr != (long *)0x0) goto LAB_00166ae3;\n  do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  } while( true );\n  free(__ptr);\n  goto LAB_0016686f;\n  while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }\nLAB_00166c43:\n  sVar2 = strlen(__s);\n  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);\n  strcpy((char *)(puVar5 + 1),__s);\n  *puVar5 = puVar7[1];\n  puVar7[1] = puVar5;\n  free(__ptr);\n  puVar5 = puVar4;\n  goto LAB_0016686f;\nLAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);\n  puVar4[2] = local_d8.st_dev;\n  puVar4[3] = local_d8.st_ino;\n  puVar4[4] = local_d8.st_nlink;\n  puVar4[5] = local_d8._24_8_;\n  puVar4[6] = local_d8._32_8_;\n  puVar4[7] = local_d8.st_rdev;\n  puVar4[8] = local_d8.st_size;\n  puVar4[9] = local_d8.st_blksize;\n  puVar4[10] = local_d8.st_blocks;\n  puVar4[0xb] = local_d8.st_atim.tv_sec;\n  puVar4[0xc] = local_d8.st_atim.tv_nsec;\n  puVar4[0xd] = local_d8.st_mtim.tv_sec;\n  puVar4[0xe] = local_d8.st_mtim.tv_nsec;\n  puVar4[0xf] = local_d8.st_ctim.tv_sec;\n  puVar4[0x10] = local_d8.st_ctim.tv_nsec;\n  puVar4[0x11] = local_d8.__unused[0];\n  puVar4[0x12] = local_d8.__unused[1];\n  puVar4[0x13] = local_d8.__unused[2];\n  *puVar4 = puVar5;\n  puVar7 = puVar4;\n  goto LAB_00166c43;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long *__ptr;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "void *__ptr_00;" (primitive_type "void") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "stat64 *psVar8;" (type_identifier "stat64") (pointer_declarator "*psVar8" (* "*") (identifier "psVar8")) (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "stat64 local_d8;" (type_identifier "stat64") (identifier "local_d8") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined8 *)0x0;" (assignment_expression "puVar5 = (undefined8 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0016686f:\n  if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" (statement_identifier "LAB_0016686f") (: ":") (if_statement "if (((byte)DAT_001c6a08 & 4) == 0) {\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }\n  else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" (if "if") (parenthesized_expression "(((byte)DAT_001c6a08 & 4) == 0)" (( "(") (binary_expression "((byte)DAT_001c6a08 & 4) == 0" (parenthesized_expression "((byte)DAT_001c6a08 & 4)" (( "(") (binary_expression "(byte)DAT_001c6a08 & 4" (cast_expression "(byte)DAT_001c6a08" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_001c6a08")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    __ptr = (long *)FUN_0019b90d(stdin);\n  }" ({ "{") (expression_statement "__ptr = (long *)FUN_0019b90d(stdin);" (assignment_expression "__ptr = (long *)FUN_0019b90d(stdin)" (identifier "__ptr") (= "=") (cast_expression "(long *)FUN_0019b90d(stdin)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0019b90d(stdin)" (identifier "FUN_0019b90d") (argument_list "(stdin)" (( "(") (identifier "stdin") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" (else "else") (compound_statement "{\n    __ptr = (long *)FUN_0019b81d(stdin,0);\n  }" ({ "{") (expression_statement "__ptr = (long *)FUN_0019b81d(stdin,0);" (assignment_expression "__ptr = (long *)FUN_0019b81d(stdin,0)" (identifier "__ptr") (= "=") (cast_expression "(long *)FUN_0019b81d(stdin,0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0019b81d(stdin,0)" (identifier "FUN_0019b81d") (argument_list "(stdin,0)" (( "(") (identifier "stdin") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}"))))) (expression_statement "__s = (char *)__ptr;" (assignment_expression "__s = (char *)__ptr" (identifier "__s") (= "=") (cast_expression "(char *)__ptr" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__ptr"))) (; ";")) (if_statement "if (__ptr != (long *)0x0) goto LAB_00166ae3;" (if "if") (parenthesized_expression "(__ptr != (long *)0x0)" (( "(") (binary_expression "__ptr != (long *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00166ae3;" (goto "goto") (statement_identifier "LAB_00166ae3") (; ";"))) (do_statement "do {\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }\n    while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }\n    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);\n    lVar3 = (long)iVar1;\n    free(__ptr_00);\nLAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;\n    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;\n    iVar1 = uVar9 - 1;\n    if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }\nLAB_00166a8a:\n    if (__ptr != (long *)0x0) break;\n    if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }\n  }" ({ "{") (if_statement "if (puVar5 == (undefined8 *)0x0) {\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }\n    else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" (if "if") (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined8 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      psVar8 = &local_d8;\n      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }\n      __s = "TRAILER!!!";\n    }" ({ "{") (expression_statement "psVar8 = &local_d8;" (assignment_expression "psVar8 = &local_d8" (identifier "psVar8") (= "=") (pointer_expression "&local_d8" (& "&") (identifier "local_d8"))) (; ";")) (for_statement "for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }" (for "for") (( "(") (assignment_expression "lVar3 = 0x12" (identifier "lVar3") (= "=") (number_literal "0x12")) (; ";") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar3 = lVar3 + -1" (identifier "lVar3") (= "=") (binary_expression "lVar3 + -1" (identifier "lVar3") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        psVar8->st_dev = 0;\n        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);\n      }" ({ "{") (expression_statement "psVar8->st_dev = 0;" (assignment_expression "psVar8->st_dev = 0" (field_expression "psVar8->st_dev" (identifier "psVar8") (-> "->") (field_identifier "st_dev")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);" (assignment_expression "psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" (identifier "psVar8") (= "=") (cast_expression "(stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)psVar8 + (ulong)bVar11 * -0x10 + 8)" (( "(") (binary_expression "(long)psVar8 + (ulong)bVar11 * -0x10 + 8" (binary_expression "(long)psVar8 + (ulong)bVar11 * -0x10" (cast_expression "(long)psVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar8")) (+ "+") (binary_expression "(ulong)bVar11 * -0x10" (cast_expression "(ulong)bVar11" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar11")) (* "*") (number_literal "-0x10"))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}"))) (expression_statement "__s = "TRAILER!!!";" (assignment_expression "__s = "TRAILER!!!"" (identifier "__s") (= "=") (string_literal ""TRAILER!!!"" (" """) (string_content "TRAILER!!!") (" """))) (; ";")) (} "}")) (else_clause "else {\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" (else "else") (compound_statement "{\n      local_d8.st_dev = puVar5[2];\n      local_d8.st_ino = puVar5[3];\n      local_d8.st_nlink = puVar5[4];\n      local_d8._24_8_ = puVar5[5];\n      local_d8._32_8_ = puVar5[6];\n      local_d8.st_rdev = puVar5[7];\n      local_d8.st_size = puVar5[8];\n      local_d8.st_blksize = puVar5[9];\n      local_d8.st_blocks = puVar5[10];\n      local_d8.st_atim.tv_sec = puVar5[0xb];\n      local_d8.st_atim.tv_nsec = puVar5[0xc];\n      local_d8.st_mtim.tv_sec = puVar5[0xd];\n      local_d8.st_mtim.tv_nsec = puVar5[0xe];\n      local_d8.st_ctim.tv_sec = puVar5[0xf];\n      local_d8.st_ctim.tv_nsec = puVar5[0x10];\n      local_d8.__unused[0] = puVar5[0x11];\n      local_d8.__unused[1] = puVar5[0x12];\n      local_d8.__unused[2] = puVar5[0x13];\n      __s = (char *)((long *)puVar5[1] + 1);\n      lVar3 = *(long *)puVar5[1];\n      puVar5[1] = lVar3;\n      if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }\n    }" ({ "{") (expression_statement "local_d8.st_dev = puVar5[2];" (assignment_expression "local_d8.st_dev = puVar5[2]" (field_expression "local_d8.st_dev" (identifier "local_d8") (. ".") (field_identifier "st_dev")) (= "=") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_d8.st_ino = puVar5[3];" (assignment_expression "local_d8.st_ino = puVar5[3]" (field_expression "local_d8.st_ino" (identifier "local_d8") (. ".") (field_identifier "st_ino")) (= "=") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_d8.st_nlink = puVar5[4];" (assignment_expression "local_d8.st_nlink = puVar5[4]" (field_expression "local_d8.st_nlink" (identifier "local_d8") (. ".") (field_identifier "st_nlink")) (= "=") (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_d8._24_8_ = puVar5[5];" (assignment_expression "local_d8._24_8_ = puVar5[5]" (field_expression "local_d8._24_8_" (identifier "local_d8") (. ".") (field_identifier "_24_8_")) (= "=") (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_d8._32_8_ = puVar5[6];" (assignment_expression "local_d8._32_8_ = puVar5[6]" (field_expression "local_d8._32_8_" (identifier "local_d8") (. ".") (field_identifier "_32_8_")) (= "=") (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_d8.st_rdev = puVar5[7];" (assignment_expression "local_d8.st_rdev = puVar5[7]" (field_expression "local_d8.st_rdev" (identifier "local_d8") (. ".") (field_identifier "st_rdev")) (= "=") (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_d8.st_size = puVar5[8];" (assignment_expression "local_d8.st_size = puVar5[8]" (field_expression "local_d8.st_size" (identifier "local_d8") (. ".") (field_identifier "st_size")) (= "=") (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_d8.st_blksize = puVar5[9];" (assignment_expression "local_d8.st_blksize = puVar5[9]" (field_expression "local_d8.st_blksize" (identifier "local_d8") (. ".") (field_identifier "st_blksize")) (= "=") (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "local_d8.st_blocks = puVar5[10];" (assignment_expression "local_d8.st_blocks = puVar5[10]" (field_expression "local_d8.st_blocks" (identifier "local_d8") (. ".") (field_identifier "st_blocks")) (= "=") (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "local_d8.st_atim.tv_sec = puVar5[0xb];" (assignment_expression "local_d8.st_atim.tv_sec = puVar5[0xb]" (field_expression "local_d8.st_atim.tv_sec" (field_expression "local_d8.st_atim" (identifier "local_d8") (. ".") (field_identifier "st_atim")) (. ".") (field_identifier "tv_sec")) (= "=") (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "local_d8.st_atim.tv_nsec = puVar5[0xc];" (assignment_expression "local_d8.st_atim.tv_nsec = puVar5[0xc]" (field_expression "local_d8.st_atim.tv_nsec" (field_expression "local_d8.st_atim" (identifier "local_d8") (. ".") (field_identifier "st_atim")) (. ".") (field_identifier "tv_nsec")) (= "=") (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_d8.st_mtim.tv_sec = puVar5[0xd];" (assignment_expression "local_d8.st_mtim.tv_sec = puVar5[0xd]" (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" (identifier "local_d8") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec")) (= "=") (subscript_expression "puVar5[0xd]" (identifier "puVar5") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "local_d8.st_mtim.tv_nsec = puVar5[0xe];" (assignment_expression "local_d8.st_mtim.tv_nsec = puVar5[0xe]" (field_expression "local_d8.st_mtim.tv_nsec" (field_expression "local_d8.st_mtim" (identifier "local_d8") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (= "=") (subscript_expression "puVar5[0xe]" (identifier "puVar5") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "local_d8.st_ctim.tv_sec = puVar5[0xf];" (assignment_expression "local_d8.st_ctim.tv_sec = puVar5[0xf]" (field_expression "local_d8.st_ctim.tv_sec" (field_expression "local_d8.st_ctim" (identifier "local_d8") (. ".") (field_identifier "st_ctim")) (. ".") (field_identifier "tv_sec")) (= "=") (subscript_expression "puVar5[0xf]" (identifier "puVar5") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "local_d8.st_ctim.tv_nsec = puVar5[0x10];" (assignment_expression "local_d8.st_ctim.tv_nsec = puVar5[0x10]" (field_expression "local_d8.st_ctim.tv_nsec" (field_expression "local_d8.st_ctim" (identifier "local_d8") (. ".") (field_identifier "st_ctim")) (. ".") (field_identifier "tv_nsec")) (= "=") (subscript_expression "puVar5[0x10]" (identifier "puVar5") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "local_d8.__unused[0] = puVar5[0x11];" (assignment_expression "local_d8.__unused[0] = puVar5[0x11]" (subscript_expression "local_d8.__unused[0]" (field_expression "local_d8.__unused" (identifier "local_d8") (. ".") (field_identifier "__unused")) ([ "[") (number_literal "0") (] "]")) (= "=") (subscript_expression "puVar5[0x11]" (identifier "puVar5") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "local_d8.__unused[1] = puVar5[0x12];" (assignment_expression "local_d8.__unused[1] = puVar5[0x12]" (subscript_expression "local_d8.__unused[1]" (field_expression "local_d8.__unused" (identifier "local_d8") (. ".") (field_identifier "__unused")) ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar5[0x12]" (identifier "puVar5") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "local_d8.__unused[2] = puVar5[0x13];" (assignment_expression "local_d8.__unused[2] = puVar5[0x13]" (subscript_expression "local_d8.__unused[2]" (field_expression "local_d8.__unused" (identifier "local_d8") (. ".") (field_identifier "__unused")) ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar5[0x13]" (identifier "puVar5") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "__s = (char *)((long *)puVar5[1] + 1);" (assignment_expression "__s = (char *)((long *)puVar5[1] + 1)" (identifier "__s") (= "=") (cast_expression "(char *)((long *)puVar5[1] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long *)puVar5[1] + 1)" (( "(") (binary_expression "(long *)puVar5[1] + 1" (cast_expression "(long *)puVar5[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar3 = *(long *)puVar5[1];" (assignment_expression "lVar3 = *(long *)puVar5[1]" (identifier "lVar3") (= "=") (pointer_expression "*(long *)puVar5[1]" (* "*") (cast_expression "(long *)puVar5[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "puVar5[1] = lVar3;" (assignment_expression "puVar5[1] = lVar3" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "lVar3")) (; ";")) (if_statement "if (lVar3 == 0) {\n        puVar5 = (undefined8 *)*puVar5;\n      }\n      else {\n        local_d8.st_size = 0;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar5 = (undefined8 *)*puVar5;\n      }" ({ "{") (expression_statement "puVar5 = (undefined8 *)*puVar5;" (assignment_expression "puVar5 = (undefined8 *)*puVar5" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)*puVar5" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (} "}")) (else_clause "else {\n        local_d8.st_size = 0;\n      }" (else "else") (compound_statement "{\n        local_d8.st_size = 0;\n      }" ({ "{") (expression_statement "local_d8.st_size = 0;" (assignment_expression "local_d8.st_size = 0" (field_expression "local_d8.st_size" (identifier "local_d8") (. ".") (field_identifier "st_size")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (while_statement "while( true ) {\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      sVar2 = strlen(__s);\n      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);\n      uVar9 = -(int)(iVar1 + lVar10) & 3;\n      iVar6 = uVar9 - 1;\n      if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }\n      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;\n      if (local_d8.st_size == 0) goto LAB_00166a8a;\n      if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }\n      __ptr_00 = (void *)FUN_0010f198(__s);\n      if (__ptr_00 != (void *)0x0) break;\n      do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);\n      if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }\n      if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }\n      if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }\n      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }\n    }" ({ "{") (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" (identifier "sVar2") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0);" (assignment_expression "iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" (identifier "iVar1") (= "=") (call_expression "__printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" (identifier "__printf_chk") (argument_list "(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",\n                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid\n                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,\n                           local_d8.st_size,\n                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff,\n                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,\n                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff,\n                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,\n                           (int)sVar2 + 1,__s,0)" (( "(") (number_literal "1") (, ",") (string_literal ""070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c"" (" """) (string_content "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c") (" """)) (, ",") (binary_expression "local_d8.st_ino & 0xffffffff" (field_expression "local_d8.st_ino" (identifier "local_d8") (. ".") (field_identifier "st_ino")) (& "&") (number_literal "0xffffffff")) (, ",") (binary_expression "local_d8._24_8_ & 0xffffffff" (field_expression "local_d8._24_8_" (identifier "local_d8") (. ".") (field_identifier "_24_8_")) (& "&") (number_literal "0xffffffff")) (, ",") (field_expression "local_d8.st_uid" (identifier "local_d8") (. ".") (field_identifier "st_uid")) (, ",") (binary_expression "local_d8._32_8_ & 0xffffffff" (field_expression "local_d8._32_8_" (identifier "local_d8") (. ".") (field_identifier "_32_8_")) (& "&") (number_literal "0xffffffff")) (, ",") (field_expression "local_d8.st_nlink" (identifier "local_d8") (. ".") (field_identifier "st_nlink")) (, ",") (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" (identifier "local_d8") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec")) (, ",") (field_expression "local_d8.st_size" (identifier "local_d8") (. ".") (field_identifier "st_size")) (, ",") (binary_expression "(uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_dev >> 8) & 0xfff" (binary_expression "(uint)(local_d8.st_dev >> 0x20) & 0xfffff000" (call_expression "(uint)(local_d8.st_dev >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_d8.st_dev >> 0x20)" (( "(") (binary_expression "local_d8.st_dev >> 0x20" (field_expression "local_d8.st_dev" (identifier "local_d8") (. ".") (field_identifier "st_dev")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0xfffff000")) (| "|") (binary_expression "(uint)(local_d8.st_dev >> 8) & 0xfff" (call_expression "(uint)(local_d8.st_dev >> 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_d8.st_dev >> 8)" (( "(") (binary_expression "local_d8.st_dev >> 8" (field_expression "local_d8.st_dev" (identifier "local_d8") (. ".") (field_identifier "st_dev")) (>> ">>") (number_literal "8")) () ")"))) (& "&") (number_literal "0xfff"))) (, ",") (binary_expression "(uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff" (call_expression "(uint)((local_d8.st_dev >> 0x14) << 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((local_d8.st_dev >> 0x14) << 8)" (( "(") (binary_expression "(local_d8.st_dev >> 0x14) << 8" (parenthesized_expression "(local_d8.st_dev >> 0x14)" (( "(") (binary_expression "local_d8.st_dev >> 0x14" (field_expression "local_d8.st_dev" (identifier "local_d8") (. ".") (field_identifier "st_dev")) (>> ">>") (number_literal "0x14")) () ")")) (<< "<<") (number_literal "8")) () ")"))) (| "|") (binary_expression "(uint)local_d8.st_dev & 0xff" (cast_expression "(uint)local_d8.st_dev" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_d8.st_dev" (identifier "local_d8") (. ".") (field_identifier "st_dev"))) (& "&") (number_literal "0xff"))) (, ",") (binary_expression "(uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |\n                           (uint)(local_d8.st_rdev >> 8) & 0xfff" (binary_expression "(uint)(local_d8.st_rdev >> 0x20) & 0xfffff000" (call_expression "(uint)(local_d8.st_rdev >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_d8.st_rdev >> 0x20)" (( "(") (binary_expression "local_d8.st_rdev >> 0x20" (field_expression "local_d8.st_rdev" (identifier "local_d8") (. ".") (field_identifier "st_rdev")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0xfffff000")) (| "|") (binary_expression "(uint)(local_d8.st_rdev >> 8) & 0xfff" (call_expression "(uint)(local_d8.st_rdev >> 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_d8.st_rdev >> 8)" (( "(") (binary_expression "local_d8.st_rdev >> 8" (field_expression "local_d8.st_rdev" (identifier "local_d8") (. ".") (field_identifier "st_rdev")) (>> ">>") (number_literal "8")) () ")"))) (& "&") (number_literal "0xfff"))) (, ",") (binary_expression "(uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff" (call_expression "(uint)((local_d8.st_rdev >> 0x14) << 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((local_d8.st_rdev >> 0x14) << 8)" (( "(") (binary_expression "(local_d8.st_rdev >> 0x14) << 8" (parenthesized_expression "(local_d8.st_rdev >> 0x14)" (( "(") (binary_expression "local_d8.st_rdev >> 0x14" (field_expression "local_d8.st_rdev" (identifier "local_d8") (. ".") (field_identifier "st_rdev")) (>> ">>") (number_literal "0x14")) () ")")) (<< "<<") (number_literal "8")) () ")"))) (| "|") (binary_expression "(uint)local_d8.st_rdev & 0xff" (cast_expression "(uint)local_d8.st_rdev" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_d8.st_rdev" (identifier "local_d8") (. ".") (field_identifier "st_rdev"))) (& "&") (number_literal "0xff"))) (, ",") (binary_expression "(int)sVar2 + 1" (cast_expression "(int)sVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar2")) (+ "+") (number_literal "1")) (, ",") (identifier "__s") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar9 = -(int)(iVar1 + lVar10) & 3;" (assignment_expression "uVar9 = -(int)(iVar1 + lVar10) & 3" (identifier "uVar9") (= "=") (binary_expression "-(int)(iVar1 + lVar10) & 3" (unary_expression "-(int)(iVar1 + lVar10)" (- "-") (cast_expression "(int)(iVar1 + lVar10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar1 + lVar10)" (( "(") (binary_expression "iVar1 + lVar10" (identifier "iVar1") (+ "+") (identifier "lVar10")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar6 = uVar9 - 1;" (assignment_expression "iVar6 = uVar9 - 1" (identifier "iVar6") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (-1 < iVar6) {\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }" (if "if") (parenthesized_expression "(-1 < iVar6)" (( "(") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n        do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);\n      }" ({ "{") (do_statement "do {\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        } while (iVar6 != -1);" (do "do") (compound_statement "{\n          FUN_0010e956(0);\n          iVar6 = iVar6 + -1;\n        }" ({ "{") (expression_statement "FUN_0010e956(0);" (call_expression "FUN_0010e956(0)" (identifier "FUN_0010e956") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != -1)" (( "(") (binary_expression "iVar6 != -1" (identifier "iVar6") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (expression_statement "lVar10 = (long)(int)uVar9 + iVar1 + lVar10;" (assignment_expression "lVar10 = (long)(int)uVar9 + iVar1 + lVar10" (identifier "lVar10") (= "=") (binary_expression "(long)(int)uVar9 + iVar1 + lVar10" (binary_expression "(long)(int)uVar9 + iVar1" (cast_expression "(long)(int)uVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) (+ "+") (identifier "iVar1")) (+ "+") (identifier "lVar10"))) (; ";")) (if_statement "if (local_d8.st_size == 0) goto LAB_00166a8a;" (if "if") (parenthesized_expression "(local_d8.st_size == 0)" (( "(") (binary_expression "local_d8.st_size == 0" (field_expression "local_d8.st_size" (identifier "local_d8") (. ".") (field_identifier "st_size")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00166a8a;" (goto "goto") (statement_identifier "LAB_00166a8a") (; ";"))) (if_statement "if ((local_d8.st_mode & 0xf000) != 0xa000) {\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }" (if "if") (parenthesized_expression "((local_d8.st_mode & 0xf000) != 0xa000)" (( "(") (binary_expression "(local_d8.st_mode & 0xf000) != 0xa000" (parenthesized_expression "(local_d8.st_mode & 0xf000)" (( "(") (binary_expression "local_d8.st_mode & 0xf000" (field_expression "local_d8.st_mode" (identifier "local_d8") (. ".") (field_identifier "st_mode")) (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0xa000")) () ")")) (compound_statement "{\n        iVar1 = FUN_0010e707(__s,0);\n        FUN_0010e943();\n        FUN_0010f4b7(iVar1,1,local_d8.st_size);\n        lVar3 = local_d8.st_size;\n        close(iVar1);\n        goto LAB_00166a65;\n      }" ({ "{") (expression_statement "iVar1 = FUN_0010e707(__s,0);" (assignment_expression "iVar1 = FUN_0010e707(__s,0)" (identifier "iVar1") (= "=") (call_expression "FUN_0010e707(__s,0)" (identifier "FUN_0010e707") (argument_list "(__s,0)" (( "(") (identifier "__s") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0010e943();" (call_expression "FUN_0010e943()" (identifier "FUN_0010e943") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0010f4b7(iVar1,1,local_d8.st_size);" (call_expression "FUN_0010f4b7(iVar1,1,local_d8.st_size)" (identifier "FUN_0010f4b7") (argument_list "(iVar1,1,local_d8.st_size)" (( "(") (identifier "iVar1") (, ",") (number_literal "1") (, ",") (field_expression "local_d8.st_size" (identifier "local_d8") (. ".") (field_identifier "st_size")) () ")"))) (; ";")) (expression_statement "lVar3 = local_d8.st_size;" (assignment_expression "lVar3 = local_d8.st_size" (identifier "lVar3") (= "=") (field_expression "local_d8.st_size" (identifier "local_d8") (. ".") (field_identifier "st_size"))) (; ";")) (expression_statement "close(iVar1);" (call_expression "close(iVar1)" (identifier "close") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (goto_statement "goto LAB_00166a65;" (goto "goto") (statement_identifier "LAB_00166a65") (; ";")) (} "}"))) (expression_statement "__ptr_00 = (void *)FUN_0010f198(__s);" (assignment_expression "__ptr_00 = (void *)FUN_0010f198(__s)" (identifier "__ptr_00") (= "=") (cast_expression "(void *)FUN_0010f198(__s)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010f198(__s)" (identifier "FUN_0010f198") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))))) (; ";")) (if_statement "if (__ptr_00 != (void *)0x0) break;" (if "if") (parenthesized_expression "(__ptr_00 != (void *)0x0)" (( "(") (binary_expression "__ptr_00 != (void *)0x0" (identifier "__ptr_00") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (do_statement "do {\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      } while (iVar1 != 0);" (do "do") (compound_statement "{\n        FUN_0010d969(__s);\n        __s = (char *)__ptr;\nLAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }\n        if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }\nLAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }\n      }" ({ "{") (expression_statement "FUN_0010d969(__s);" (call_expression "FUN_0010d969(__s)" (identifier "FUN_0010d969") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "__s = (char *)__ptr;" (assignment_expression "__s = (char *)__ptr" (identifier "__s") (= "=") (cast_expression "(char *)__ptr" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__ptr"))) (; ";")) (labeled_statement "LAB_00166ae3:\n        while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" (statement_identifier "LAB_00166ae3") (: ":") (while_statement "while ((char)*(long *)__s == '.') {\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" (while "while") (parenthesized_expression "((char)*(long *)__s == '.')" (( "(") (binary_expression "(char)*(long *)__s == '.'" (cast_expression "(char)*(long *)__s" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(long *)__s" (* "*") (cast_expression "(long *)__s" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")))) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;\n          do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');\n        }" ({ "{") (if_statement "if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;" (if "if") (parenthesized_expression "(*(char *)((long)__s + 1) != '/')" (( "(") (binary_expression "*(char *)((long)__s + 1) != '/'" (pointer_expression "*(char *)((long)__s + 1)" (* "*") (cast_expression "(char *)((long)__s + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + 1)" (( "(") (binary_expression "(long)__s + 1" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (goto_statement "goto LAB_00166af4;" (goto "goto") (statement_identifier "LAB_00166af4") (; ";"))) (do_statement "do {\n            __s = (char *)((long)__s + 1);\n          } while (*__s == '/');" (do "do") (compound_statement "{\n            __s = (char *)((long)__s + 1);\n          }" ({ "{") (expression_statement "__s = (char *)((long)__s + 1);" (assignment_expression "__s = (char *)((long)__s + 1)" (identifier "__s") (= "=") (cast_expression "(char *)((long)__s + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + 1)" (( "(") (binary_expression "(long)__s + 1" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*__s == '/')" (( "(") (binary_expression "*__s == '/'" (pointer_expression "*__s" (* "*") (identifier "__s")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (; ";")) (} "}")))) (if_statement "if ((char)*(long *)__s == '\0') {\n          free(__ptr);\n          goto LAB_0016686f;\n        }" (if "if") (parenthesized_expression "((char)*(long *)__s == '\0')" (( "(") (binary_expression "(char)*(long *)__s == '\0'" (cast_expression "(char)*(long *)__s" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(long *)__s" (* "*") (cast_expression "(long *)__s" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          free(__ptr);\n          goto LAB_0016686f;\n        }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (goto_statement "goto LAB_0016686f;" (goto "goto") (statement_identifier "LAB_0016686f") (; ";")) (} "}"))) (labeled_statement "LAB_00166af4:\n        if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" (statement_identifier "LAB_00166af4") (: ":") (if_statement "if (((byte)DAT_001c6a08 & 0x80) == 0) {\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }\n        else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" (if "if") (parenthesized_expression "(((byte)DAT_001c6a08 & 0x80) == 0)" (( "(") (binary_expression "((byte)DAT_001c6a08 & 0x80) == 0" (parenthesized_expression "((byte)DAT_001c6a08 & 0x80)" (( "(") (binary_expression "(byte)DAT_001c6a08 & 0x80" (cast_expression "(byte)DAT_001c6a08" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_001c6a08")) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar1 = __lxstat64(1,__s,&local_d8);\n        }" ({ "{") (expression_statement "iVar1 = __lxstat64(1,__s,&local_d8);" (assignment_expression "iVar1 = __lxstat64(1,__s,&local_d8)" (identifier "iVar1") (= "=") (call_expression "__lxstat64(1,__s,&local_d8)" (identifier "__lxstat64") (argument_list "(1,__s,&local_d8)" (( "(") (number_literal "1") (, ",") (identifier "__s") (, ",") (pointer_expression "&local_d8" (& "&") (identifier "local_d8")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" (else "else") (compound_statement "{\n          iVar1 = __xstat64(1,__s,&local_d8);\n        }" ({ "{") (expression_statement "iVar1 = __xstat64(1,__s,&local_d8);" (assignment_expression "iVar1 = __xstat64(1,__s,&local_d8)" (identifier "iVar1") (= "=") (call_expression "__xstat64(1,__s,&local_d8)" (identifier "__xstat64") (argument_list "(1,__s,&local_d8)" (( "(") (number_literal "1") (, ",") (identifier "__s") (, ",") (pointer_expression "&local_d8" (& "&") (identifier "local_d8")) () ")")))) (; ";")) (} "}"))))) (} "}")) (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (DAT_001c65f8 != -1) {\n        local_d8.st_uid = DAT_001c65f8;\n      }" (if "if") (parenthesized_expression "(DAT_001c65f8 != -1)" (( "(") (binary_expression "DAT_001c65f8 != -1" (identifier "DAT_001c65f8") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        local_d8.st_uid = DAT_001c65f8;\n      }" ({ "{") (expression_statement "local_d8.st_uid = DAT_001c65f8;" (assignment_expression "local_d8.st_uid = DAT_001c65f8" (field_expression "local_d8.st_uid" (identifier "local_d8") (. ".") (field_identifier "st_uid")) (= "=") (identifier "DAT_001c65f8")) (; ";")) (} "}"))) (if_statement "if (_DAT_001c65fc != -1) {\n        local_d8.st_gid = _DAT_001c65fc;\n      }" (if "if") (parenthesized_expression "(_DAT_001c65fc != -1)" (( "(") (binary_expression "_DAT_001c65fc != -1" (identifier "_DAT_001c65fc") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        local_d8.st_gid = _DAT_001c65fc;\n      }" ({ "{") (expression_statement "local_d8.st_gid = _DAT_001c65fc;" (assignment_expression "local_d8.st_gid = _DAT_001c65fc" (field_expression "local_d8.st_gid" (identifier "local_d8") (. ".") (field_identifier "st_gid")) (= "=") (identifier "_DAT_001c65fc")) (; ";")) (} "}"))) (if_statement "if ((local_d8.st_mode & 0xd000) != 0x8000) {\n        local_d8.st_size = 0;\n      }" (if "if") (parenthesized_expression "((local_d8.st_mode & 0xd000) != 0x8000)" (( "(") (binary_expression "(local_d8.st_mode & 0xd000) != 0x8000" (parenthesized_expression "(local_d8.st_mode & 0xd000)" (( "(") (binary_expression "local_d8.st_mode & 0xd000" (field_expression "local_d8.st_mode" (identifier "local_d8") (. ".") (field_identifier "st_mode")) (& "&") (number_literal "0xd000")) () ")")) (!= "!=") (number_literal "0x8000")) () ")")) (compound_statement "{\n        local_d8.st_size = 0;\n      }" ({ "{") (expression_statement "local_d8.st_size = 0;" (assignment_expression "local_d8.st_size = 0" (field_expression "local_d8.st_size" (identifier "local_d8") (. ".") (field_identifier "st_size")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }" (if "if") (parenthesized_expression "(((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink))" (( "(") (binary_expression "((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)" (parenthesized_expression "((local_d8.st_mode & 0xf000) != 0x4000)" (( "(") (binary_expression "(local_d8.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(local_d8.st_mode & 0xf000)" (( "(") (binary_expression "local_d8.st_mode & 0xf000" (field_expression "local_d8.st_mode" (identifier "local_d8") (. ".") (field_identifier "st_mode")) (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")")) (&& "&&") (parenthesized_expression "(1 < local_d8.st_nlink)" (( "(") (binary_expression "1 < local_d8.st_nlink" (number_literal "1") (< "<") (field_expression "local_d8.st_nlink" (identifier "local_d8") (. ".") (field_identifier "st_nlink"))) () ")"))) () ")")) (compound_statement "{\n        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;\n        puVar4 = puVar5;\n        puVar7 = puVar5;\n        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;\n        goto LAB_00166bb9;\n      }" ({ "{") (if_statement "if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;" (if "if") (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined8 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00166bca;" (goto "goto") (statement_identifier "LAB_00166bca") (; ";"))) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" (identifier "puVar4") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" (identifier "puVar7") (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;" (if "if") (parenthesized_expression "(local_d8.st_ino == puVar5[3])" (( "(") (binary_expression "local_d8.st_ino == puVar5[3]" (field_expression "local_d8.st_ino" (identifier "local_d8") (. ".") (field_identifier "st_ino")) (== "==") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]"))) () ")")) (goto_statement "goto LAB_00166c43;" (goto "goto") (statement_identifier "LAB_00166c43") (; ";"))) (goto_statement "goto LAB_00166bb9;" (goto "goto") (statement_identifier "LAB_00166bb9") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);" (assignment_expression "iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00)" (identifier "iVar1") (= "=") (call_expression "__printf_chk(1,&DAT_001c02d5,__ptr_00)" (identifier "__printf_chk") (argument_list "(1,&DAT_001c02d5,__ptr_00)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_001c02d5" (& "&") (identifier "DAT_001c02d5")) (, ",") (identifier "__ptr_00") () ")")))) (; ";")) (expression_statement "lVar3 = (long)iVar1;" (assignment_expression "lVar3 = (long)iVar1" (identifier "lVar3") (= "=") (cast_expression "(long)iVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar1"))) (; ";")) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (labeled_statement "LAB_00166a65:\n    uVar9 = -(int)(lVar10 + lVar3) & 3;" (statement_identifier "LAB_00166a65") (: ":") (expression_statement "uVar9 = -(int)(lVar10 + lVar3) & 3;" (assignment_expression "uVar9 = -(int)(lVar10 + lVar3) & 3" (identifier "uVar9") (= "=") (binary_expression "-(int)(lVar10 + lVar3) & 3" (unary_expression "-(int)(lVar10 + lVar3)" (- "-") (cast_expression "(int)(lVar10 + lVar3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar10 + lVar3)" (( "(") (binary_expression "lVar10 + lVar3" (identifier "lVar10") (+ "+") (identifier "lVar3")) () ")")))) (& "&") (number_literal "3"))) (; ";"))) (expression_statement "lVar10 = lVar10 + lVar3 + (long)(int)uVar9;" (assignment_expression "lVar10 = lVar10 + lVar3 + (long)(int)uVar9" (identifier "lVar10") (= "=") (binary_expression "lVar10 + lVar3 + (long)(int)uVar9" (binary_expression "lVar10 + lVar3" (identifier "lVar10") (+ "+") (identifier "lVar3")) (+ "+") (cast_expression "(long)(int)uVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))))) (; ";")) (expression_statement "iVar1 = uVar9 - 1;" (assignment_expression "iVar1 = uVar9 - 1" (identifier "iVar1") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (-1 < iVar1) {\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }" (if "if") (parenthesized_expression "(-1 < iVar1)" (( "(") (binary_expression "-1 < iVar1" (number_literal "-1") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n      do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);\n    }" ({ "{") (do_statement "do {\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      } while (iVar1 != -1);" (do "do") (compound_statement "{\n        FUN_0010e956(0);\n        iVar1 = iVar1 + -1;\n      }" ({ "{") (expression_statement "FUN_0010e956(0);" (call_expression "FUN_0010e956(0)" (identifier "FUN_0010e956") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != -1)" (( "(") (binary_expression "iVar1 != -1" (identifier "iVar1") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00166a8a:\n    if (__ptr != (long *)0x0) break;" (statement_identifier "LAB_00166a8a") (: ":") (if_statement "if (__ptr != (long *)0x0) break;" (if "if") (parenthesized_expression "(__ptr != (long *)0x0)" (( "(") (binary_expression "__ptr != (long *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";")))) (if_statement "if (__s == "TRAILER!!!") {\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }" (if "if") (parenthesized_expression "(__s == "TRAILER!!!")" (( "(") (binary_expression "__s == "TRAILER!!!"" (identifier "__s") (== "==") (string_literal ""TRAILER!!!"" (" """) (string_content "TRAILER!!!") (" """))) () ")")) (compound_statement "{\n      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }\n                    \n      __stack_chk_fail();\n    }" ({ "{") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (goto_statement "goto LAB_0016686f;" (goto "goto") (statement_identifier "LAB_0016686f") (; ";")) (while_statement "while (puVar7[3] != local_d8.st_ino) {\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }" (while "while") (parenthesized_expression "(puVar7[3] != local_d8.st_ino)" (( "(") (binary_expression "puVar7[3] != local_d8.st_ino" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (!= "!=") (field_expression "local_d8.st_ino" (identifier "local_d8") (. ".") (field_identifier "st_ino"))) () ")")) (compound_statement "{\nLAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;\n    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;\n  }" ({ "{") (labeled_statement "LAB_00166bb9:\n    puVar7 = (undefined8 *)*puVar7;" (statement_identifier "LAB_00166bb9") (: ":") (expression_statement "puVar7 = (undefined8 *)*puVar7;" (assignment_expression "puVar7 = (undefined8 *)*puVar7" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)*puVar7" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";"))) (if_statement "if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;" (if "if") (parenthesized_expression "(puVar7 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined8 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00166bca;" (goto "goto") (statement_identifier "LAB_00166bca") (; ";"))) (} "}"))) (labeled_statement "LAB_00166c43:\n  sVar2 = strlen(__s);" (statement_identifier "LAB_00166c43") (: ":") (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" (identifier "sVar2") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";"))) (expression_statement "puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);" (assignment_expression "puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10)" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)FUN_0010e5ce(sVar2 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010e5ce(sVar2 + 0x10)" (identifier "FUN_0010e5ce") (argument_list "(sVar2 + 0x10)" (( "(") (binary_expression "sVar2 + 0x10" (identifier "sVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "strcpy((char *)(puVar5 + 1),__s);" (call_expression "strcpy((char *)(puVar5 + 1),__s)" (identifier "strcpy") (argument_list "((char *)(puVar5 + 1),__s)" (( "(") (cast_expression "(char *)(puVar5 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 1)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) () ")"))) (, ",") (identifier "__s") () ")"))) (; ";")) (expression_statement "*puVar5 = puVar7[1];" (assignment_expression "*puVar5 = puVar7[1]" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar7[1] = puVar5;" (assignment_expression "puVar7[1] = puVar5" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "puVar5 = puVar4;" (assignment_expression "puVar5 = puVar4" (identifier "puVar5") (= "=") (identifier "puVar4")) (; ";")) (goto_statement "goto LAB_0016686f;" (goto "goto") (statement_identifier "LAB_0016686f") (; ";")) (labeled_statement "LAB_00166bca:\n  puVar4 = (undefined8 *)FUN_0010e602(0xa0);" (statement_identifier "LAB_00166bca") (: ":") (expression_statement "puVar4 = (undefined8 *)FUN_0010e602(0xa0);" (assignment_expression "puVar4 = (undefined8 *)FUN_0010e602(0xa0)" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)FUN_0010e602(0xa0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010e602(0xa0)" (identifier "FUN_0010e602") (argument_list "(0xa0)" (( "(") (number_literal "0xa0") () ")"))))) (; ";"))) (expression_statement "puVar4[2] = local_d8.st_dev;" (assignment_expression "puVar4[2] = local_d8.st_dev" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (field_expression "local_d8.st_dev" (identifier "local_d8") (. ".") (field_identifier "st_dev"))) (; ";")) (expression_statement "puVar4[3] = local_d8.st_ino;" (assignment_expression "puVar4[3] = local_d8.st_ino" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (field_expression "local_d8.st_ino" (identifier "local_d8") (. ".") (field_identifier "st_ino"))) (; ";")) (expression_statement "puVar4[4] = local_d8.st_nlink;" (assignment_expression "puVar4[4] = local_d8.st_nlink" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (field_expression "local_d8.st_nlink" (identifier "local_d8") (. ".") (field_identifier "st_nlink"))) (; ";")) (expression_statement "puVar4[5] = local_d8._24_8_;" (assignment_expression "puVar4[5] = local_d8._24_8_" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (field_expression "local_d8._24_8_" (identifier "local_d8") (. ".") (field_identifier "_24_8_"))) (; ";")) (expression_statement "puVar4[6] = local_d8._32_8_;" (assignment_expression "puVar4[6] = local_d8._32_8_" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (field_expression "local_d8._32_8_" (identifier "local_d8") (. ".") (field_identifier "_32_8_"))) (; ";")) (expression_statement "puVar4[7] = local_d8.st_rdev;" (assignment_expression "puVar4[7] = local_d8.st_rdev" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (field_expression "local_d8.st_rdev" (identifier "local_d8") (. ".") (field_identifier "st_rdev"))) (; ";")) (expression_statement "puVar4[8] = local_d8.st_size;" (assignment_expression "puVar4[8] = local_d8.st_size" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (field_expression "local_d8.st_size" (identifier "local_d8") (. ".") (field_identifier "st_size"))) (; ";")) (expression_statement "puVar4[9] = local_d8.st_blksize;" (assignment_expression "puVar4[9] = local_d8.st_blksize" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (field_expression "local_d8.st_blksize" (identifier "local_d8") (. ".") (field_identifier "st_blksize"))) (; ";")) (expression_statement "puVar4[10] = local_d8.st_blocks;" (assignment_expression "puVar4[10] = local_d8.st_blocks" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (field_expression "local_d8.st_blocks" (identifier "local_d8") (. ".") (field_identifier "st_blocks"))) (; ";")) (expression_statement "puVar4[0xb] = local_d8.st_atim.tv_sec;" (assignment_expression "puVar4[0xb] = local_d8.st_atim.tv_sec" (subscript_expression "puVar4[0xb]" (identifier "puVar4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (field_expression "local_d8.st_atim.tv_sec" (field_expression "local_d8.st_atim" (identifier "local_d8") (. ".") (field_identifier "st_atim")) (. ".") (field_identifier "tv_sec"))) (; ";")) (expression_statement "puVar4[0xc] = local_d8.st_atim.tv_nsec;" (assignment_expression "puVar4[0xc] = local_d8.st_atim.tv_nsec" (subscript_expression "puVar4[0xc]" (identifier "puVar4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (field_expression "local_d8.st_atim.tv_nsec" (field_expression "local_d8.st_atim" (identifier "local_d8") (. ".") (field_identifier "st_atim")) (. ".") (field_identifier "tv_nsec"))) (; ";")) (expression_statement "puVar4[0xd] = local_d8.st_mtim.tv_sec;" (assignment_expression "puVar4[0xd] = local_d8.st_mtim.tv_sec" (subscript_expression "puVar4[0xd]" (identifier "puVar4") ([ "[") (number_literal "0xd") (] "]")) (= "=") (field_expression "local_d8.st_mtim.tv_sec" (field_expression "local_d8.st_mtim" (identifier "local_d8") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec"))) (; ";")) (expression_statement "puVar4[0xe] = local_d8.st_mtim.tv_nsec;" (assignment_expression "puVar4[0xe] = local_d8.st_mtim.tv_nsec" (subscript_expression "puVar4[0xe]" (identifier "puVar4") ([ "[") (number_literal "0xe") (] "]")) (= "=") (field_expression "local_d8.st_mtim.tv_nsec" (field_expression "local_d8.st_mtim" (identifier "local_d8") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec"))) (; ";")) (expression_statement "puVar4[0xf] = local_d8.st_ctim.tv_sec;" (assignment_expression "puVar4[0xf] = local_d8.st_ctim.tv_sec" (subscript_expression "puVar4[0xf]" (identifier "puVar4") ([ "[") (number_literal "0xf") (] "]")) (= "=") (field_expression "local_d8.st_ctim.tv_sec" (field_expression "local_d8.st_ctim" (identifier "local_d8") (. ".") (field_identifier "st_ctim")) (. ".") (field_identifier "tv_sec"))) (; ";")) (expression_statement "puVar4[0x10] = local_d8.st_ctim.tv_nsec;" (assignment_expression "puVar4[0x10] = local_d8.st_ctim.tv_nsec" (subscript_expression "puVar4[0x10]" (identifier "puVar4") ([ "[") (number_literal "0x10") (] "]")) (= "=") (field_expression "local_d8.st_ctim.tv_nsec" (field_expression "local_d8.st_ctim" (identifier "local_d8") (. ".") (field_identifier "st_ctim")) (. ".") (field_identifier "tv_nsec"))) (; ";")) (expression_statement "puVar4[0x11] = local_d8.__unused[0];" (assignment_expression "puVar4[0x11] = local_d8.__unused[0]" (subscript_expression "puVar4[0x11]" (identifier "puVar4") ([ "[") (number_literal "0x11") (] "]")) (= "=") (subscript_expression "local_d8.__unused[0]" (field_expression "local_d8.__unused" (identifier "local_d8") (. ".") (field_identifier "__unused")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "puVar4[0x12] = local_d8.__unused[1];" (assignment_expression "puVar4[0x12] = local_d8.__unused[1]" (subscript_expression "puVar4[0x12]" (identifier "puVar4") ([ "[") (number_literal "0x12") (] "]")) (= "=") (subscript_expression "local_d8.__unused[1]" (field_expression "local_d8.__unused" (identifier "local_d8") (. ".") (field_identifier "__unused")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar4[0x13] = local_d8.__unused[2];" (assignment_expression "puVar4[0x13] = local_d8.__unused[2]" (subscript_expression "puVar4[0x13]" (identifier "puVar4") ([ "[") (number_literal "0x13") (] "]")) (= "=") (subscript_expression "local_d8.__unused[2]" (field_expression "local_d8.__unused" (identifier "local_d8") (. ".") (field_identifier "__unused")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar7 = puVar4;" (assignment_expression "puVar7 = puVar4" (identifier "puVar7") (= "=") (identifier "puVar4")) (; ";")) (goto_statement "goto LAB_00166c43;" (goto "goto") (statement_identifier "LAB_00166c43") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

int function_1(void)

{
  long var_22;
  type_1 var_30;
  int var_9;
  long *var_4;
  size_t var_33;
  char *var_15;
  long var_6;
  type_2 *puVar6;
  type_2 *var_5;
  int var_12;
  type_2 *var_31;
  type_3 *psVar10;
  char *var_21;
  type_4 var_11;
  long var_10;
  long var_1;
  type_5 bVar13;
  type_3 st;
  
  bVar13 = 0;
  var_22 = *(long *)(var_1 + 0x28);
  var_10 = 0;
  var_5 = (type_2 *)0x0;
  do {
    while( true ) {
      while( true ) {
        if (((type_5)option_mask32 & 4) == 0) {
          var_4 = (long *)var_2(stdin);
        }
        else {
          var_4 = (long *)var_3(stdin,(size_t *)0x0);
        }
        var_21 = (char *)var_4;
        if (var_4 != (long *)0x0) break;
        while( true ) {
          if (var_5 == (type_2 *)0x0) {
            psVar10 = &st;
            for (var_6 = 0x12; var_6 != 0; var_6 = var_6 + -1) {
              psVar10->st_dev = 0;
              psVar10 = (type_3 *)((long)psVar10 + (type_6)bVar13 * -0x10 + 8);
            }
            var_21 = "TRAILER!!!";
          }
          else {
            st.st_dev = var_5[2];
            st.st_ino = var_5[3];
            st.st_nlink = var_5[4];
            st._24_8_ = var_5[5];
            st._32_8_ = var_5[6];
            st.st_rdev = var_5[7];
            st.st_size = var_5[8];
            st.st_blksize = var_5[9];
            st.st_blocks = var_5[10];
            st.st_atim.tv_sec = var_5[0xb];
            st.st_atim.tv_nsec = var_5[0xc];
            st.st_mtim.tv_sec = var_5[0xd];
            st.st_mtim.tv_nsec = var_5[0xe];
            st.st_ctim.tv_sec = var_5[0xf];
            st.st_ctim.tv_nsec = var_5[0x10];
            st.__glibc_reserved[0] = var_5[0x11];
            st.__glibc_reserved[1] = var_5[0x12];
            st.__glibc_reserved[2] = var_5[0x13];
            var_21 = (char *)((long *)var_5[1] + 1);
            var_6 = *(long *)var_5[1];
            var_5[1] = var_6;
            if (var_6 == 0) {
              var_5 = (type_2 *)*var_5;
            }
            else {
              st.st_size = 0;
            }
          }
LAB_00166923:
          var_33 = var_7(var_21);
          var_9 = var_8(1,
                               "070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",
                               st.st_ino & 0xffffffff,st._24_8_ & 0xffffffff,st.st_uid,
                               st._32_8_ & 0xffffffff,st.st_nlink,st.st_mtim.tv_sec,st.st_size,
                               (type_4)(st.st_dev >> 0x20) & 0xfffff000 |
                               (type_4)(st.st_dev >> 8) & 0xfff,
                               (type_4)((st.st_dev >> 0x14) << 8) | (type_4)st.st_dev & 0xff,
                               (type_4)(st.st_rdev >> 0x20) & 0xfffff000 |
                               (type_4)(st.st_rdev >> 8) & 0xfff,
                               (type_4)((st.st_rdev >> 0x14) << 8) | (type_4)st.st_rdev & 0xff,
                               (int)var_33 + 1,var_21,0);
          var_11 = -(int)(var_9 + var_10) & 3;
          var_12 = var_11 - 1;
          if (-1 < var_12) {
            do {
              var_13(0);
              var_12 = var_12 + -1;
            } while (var_12 != -1);
          }
          var_10 = (long)(int)var_11 + var_9 + var_10;
          if (st.st_size != 0) {
            if ((st.st_mode & 0xf000) == 0xa000) {
              var_15 = var_14(var_21);
              if (var_15 == (char *)0x0) goto LAB_00166b16;
              var_9 = var_8(1,&DAT_001c02d5,var_15);
              var_6 = (long)var_9;
              var_16(var_15);
            }
            else {
              var_9 = var_17(var_21,0);
              var_18();
              var_19(var_9,1,st.st_size);
              var_6 = st.st_size;
              var_20(var_9);
            }
            var_11 = -(int)(var_10 + var_6) & 3;
            var_10 = var_10 + var_6 + (long)(int)var_11;
            var_9 = var_11 - 1;
            if (-1 < var_9) {
              do {
                var_13(0);
                var_9 = var_9 + -1;
              } while (var_9 != -1);
            }
          }
          if (var_4 != (long *)0x0) break;
          if (var_21 == "TRAILER!!!") {
            if (var_22 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
              var_23();
            }
            return 0;
          }
        }
        var_16(var_4);
      }
      while ((char)*(long *)var_21 == '.') {
        if (*(char *)((long)var_21 + 1) != '/') goto LAB_00166af4;
        do {
          var_21 = (char *)((long)var_21 + 1);
        } while (*var_21 == '/');
      }
      if ((char)*(long *)var_21 != '\0') break;
      var_16(var_4);
    }
LAB_00166af4:
    if (((type_5)option_mask32 & 0x80) == 0) {
      var_9 = var_24(1,var_21,(type_7 *)&st);
    }
    else {
      var_9 = var_25(1,var_21,(type_7 *)&st);
    }
    if (var_9 != 0) {
LAB_00166b16:
                    /* WARNING: Subroutine does not return */
      var_26(var_21);
    }
    if (var_27 != 0xffffffff) {
      st.st_uid = var_27;
    }
    if (var_28 != 0xffffffff) {
      st.st_gid = var_28;
    }
    if ((st.st_mode & 0xd000) != 0x8000) {
      st.st_size = 0;
    }
    if ((st.st_mode & 0xf000) == 0x4000) goto LAB_00166923;
    if (st.st_nlink < 2) goto LAB_00166923;
    if (var_5 == (type_2 *)0x0) {
LAB_00166bca:
      puVar6 = (type_2 *)var_29(0xa0);
      puVar6[2] = st.st_dev;
      puVar6[3] = st.st_ino;
      puVar6[4] = st.st_nlink;
      puVar6[5] = st._24_8_;
      puVar6[6] = st._32_8_;
      puVar6[7] = st.st_rdev;
      puVar6[8] = st.st_size;
      puVar6[9] = st.st_blksize;
      puVar6[10] = st.st_blocks;
      puVar6[0xb] = st.st_atim.tv_sec;
      puVar6[0xc] = st.st_atim.tv_nsec;
      puVar6[0xd] = st.st_mtim.tv_sec;
      puVar6[0xe] = st.st_mtim.tv_nsec;
      puVar6[0xf] = st.st_ctim.tv_sec;
      puVar6[0x10] = st.st_ctim.tv_nsec;
      puVar6[0x11] = st.__glibc_reserved[0];
      puVar6[0x12] = st.__glibc_reserved[1];
      puVar6[0x13] = st.__glibc_reserved[2];
      *puVar6 = var_5;
      var_31 = puVar6;
    }
    else {
      var_30 = var_5[3];
      var_31 = var_5;
      while (puVar6 = var_5, st.st_ino != var_30) {
        var_31 = (type_2 *)*var_31;
        if (var_31 == (type_2 *)0x0) goto LAB_00166bca;
        var_30 = var_31[3];
      }
    }
    var_33 = var_7(var_21);
    var_5 = (type_2 *)var_32(var_33 + 0x10);
    var_34((char *)(var_5 + 1),var_21);
    *var_5 = var_31[1];
    var_31[1] = var_5;
    var_16(var_4);
    var_5 = puVar6;
  } while( true );
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) (field_expression argument: (identifier) field: (field_identifier)) (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) (field_expression argument: (identifier) field: (field_identifier)) (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) (field_expression argument: (identifier) field: (field_identifier)) (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) right: (number_literal))) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) right: (number_literal))) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) right: (char_literal (character)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier))))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (field_expression argument: (identifier) field: (field_identifier)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal (string_content)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) condition: (parenthesized_expression (true))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)) (while_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 MASKED(void)

{
  int iVar1;
  long *__ptr;
  size_t sVar2;
  void *__ptr_00;
  long lVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  int iVar6;
  undefined8 *puVar7;
  stat64 *psVar8;
  char *__s;
  uint uVar9;
  long lVar10;
  long in_FS_OFFSET;
  byte bVar11;
  stat64 local_d8;
  long local_40;
  
  bVar11 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  lVar10 = 0;
  puVar5 = (undefined8 *)0x0;
LAB_0016686f:
  if (((byte)DAT_001c6a08 & 4) == 0) {
    __ptr = (long *)FUN_0019b90d(stdin);
  }
  else {
    __ptr = (long *)FUN_0019b81d(stdin,0);
  }
  __s = (char *)__ptr;
  if (__ptr != (long *)0x0) goto LAB_00166ae3;
  do {
    if (puVar5 == (undefined8 *)0x0) {
      psVar8 = &local_d8;
      for (lVar3 = 0x12; lVar3 != 0; lVar3 = lVar3 + -1) {
        psVar8->st_dev = 0;
        psVar8 = (stat64 *)((long)psVar8 + (ulong)bVar11 * -0x10 + 8);
      }
      __s = "TRAILER!!!";
    }
    else {
      local_d8.st_dev = puVar5[2];
      local_d8.st_ino = puVar5[3];
      local_d8.st_nlink = puVar5[4];
      local_d8._24_8_ = puVar5[5];
      local_d8._32_8_ = puVar5[6];
      local_d8.st_rdev = puVar5[7];
      local_d8.st_size = puVar5[8];
      local_d8.st_blksize = puVar5[9];
      local_d8.st_blocks = puVar5[10];
      local_d8.st_atim.tv_sec = puVar5[0xb];
      local_d8.st_atim.tv_nsec = puVar5[0xc];
      local_d8.st_mtim.tv_sec = puVar5[0xd];
      local_d8.st_mtim.tv_nsec = puVar5[0xe];
      local_d8.st_ctim.tv_sec = puVar5[0xf];
      local_d8.st_ctim.tv_nsec = puVar5[0x10];
      local_d8.__unused[0] = puVar5[0x11];
      local_d8.__unused[1] = puVar5[0x12];
      local_d8.__unused[2] = puVar5[0x13];
      __s = (char *)((long *)puVar5[1] + 1);
      lVar3 = *(long *)puVar5[1];
      puVar5[1] = lVar3;
      if (lVar3 == 0) {
        puVar5 = (undefined8 *)*puVar5;
      }
      else {
        local_d8.st_size = 0;
      }
    }
    while( true ) {
      sVar2 = strlen(__s);
      iVar1 = __printf_chk(1,"070701%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X00000000%s%c",
                           local_d8.st_ino & 0xffffffff,local_d8._24_8_ & 0xffffffff,local_d8.st_uid
                           ,local_d8._32_8_ & 0xffffffff,local_d8.st_nlink,local_d8.st_mtim.tv_sec,
                           local_d8.st_size,
                           (uint)(local_d8.st_dev >> 0x20) & 0xfffff000 |
                           (uint)(local_d8.st_dev >> 8) & 0xfff,
                           (uint)((local_d8.st_dev >> 0x14) << 8) | (uint)local_d8.st_dev & 0xff,
                           (uint)(local_d8.st_rdev >> 0x20) & 0xfffff000 |
                           (uint)(local_d8.st_rdev >> 8) & 0xfff,
                           (uint)((local_d8.st_rdev >> 0x14) << 8) | (uint)local_d8.st_rdev & 0xff,
                           (int)sVar2 + 1,__s,0);
      uVar9 = -(int)(iVar1 + lVar10) & 3;
      iVar6 = uVar9 - 1;
      if (-1 < iVar6) {
        do {
          FUN_0010e956(0);
          iVar6 = iVar6 + -1;
        } while (iVar6 != -1);
      }
      lVar10 = (long)(int)uVar9 + iVar1 + lVar10;
      if (local_d8.st_size == 0) goto LAB_00166a8a;
      if ((local_d8.st_mode & 0xf000) != 0xa000) {
        iVar1 = FUN_0010e707(__s,0);
        FUN_0010e943();
        FUN_0010f4b7(iVar1,1,local_d8.st_size);
        lVar3 = local_d8.st_size;
        close(iVar1);
        goto LAB_00166a65;
      }
      __ptr_00 = (void *)FUN_0010f198(__s);
      if (__ptr_00 != (void *)0x0) break;
      do {
        FUN_0010d969(__s);
        __s = (char *)__ptr;
LAB_00166ae3:
        while ((char)*(long *)__s == '.') {
          if (*(char *)((long)__s + 1) != '/') goto LAB_00166af4;
          do {
            __s = (char *)((long)__s + 1);
          } while (*__s == '/');
        }
        if ((char)*(long *)__s == '\0') {
          free(__ptr);
          goto LAB_0016686f;
        }
LAB_00166af4:
        if (((byte)DAT_001c6a08 & 0x80) == 0) {
          iVar1 = __lxstat64(1,__s,&local_d8);
        }
        else {
          iVar1 = __xstat64(1,__s,&local_d8);
        }
      } while (iVar1 != 0);
      if (DAT_001c65f8 != -1) {
        local_d8.st_uid = DAT_001c65f8;
      }
      if (_DAT_001c65fc != -1) {
        local_d8.st_gid = _DAT_001c65fc;
      }
      if ((local_d8.st_mode & 0xd000) != 0x8000) {
        local_d8.st_size = 0;
      }
      if (((local_d8.st_mode & 0xf000) != 0x4000) && (1 < local_d8.st_nlink)) {
        if (puVar5 == (undefined8 *)0x0) goto LAB_00166bca;
        puVar4 = puVar5;
        puVar7 = puVar5;
        if (local_d8.st_ino == puVar5[3]) goto LAB_00166c43;
        goto LAB_00166bb9;
      }
    }
    iVar1 = __printf_chk(1,&DAT_001c02d5,__ptr_00);
    lVar3 = (long)iVar1;
    free(__ptr_00);
LAB_00166a65:
    uVar9 = -(int)(lVar10 + lVar3) & 3;
    lVar10 = lVar10 + lVar3 + (long)(int)uVar9;
    iVar1 = uVar9 - 1;
    if (-1 < iVar1) {
      do {
        FUN_0010e956(0);
        iVar1 = iVar1 + -1;
      } while (iVar1 != -1);
    }
LAB_00166a8a:
    if (__ptr != (long *)0x0) break;
    if (__s == "TRAILER!!!") {
      if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
        return 0;
      }
                    /* WARNING: Subroutine does not return */
      __stack_chk_fail();
    }
  } while( true );
  free(__ptr);
  goto LAB_0016686f;
  while (puVar7[3] != local_d8.st_ino) {
LAB_00166bb9:
    puVar7 = (undefined8 *)*puVar7;
    if (puVar7 == (undefined8 *)0x0) goto LAB_00166bca;
  }
LAB_00166c43:
  sVar2 = strlen(__s);
  puVar5 = (undefined8 *)FUN_0010e5ce(sVar2 + 0x10);
  strcpy((char *)(puVar5 + 1),__s);
  *puVar5 = puVar7[1];
  puVar7[1] = puVar5;
  free(__ptr);
  puVar5 = puVar4;
  goto LAB_0016686f;
LAB_00166bca:
  puVar4 = (undefined8 *)FUN_0010e602(0xa0);
  puVar4[2] = local_d8.st_dev;
  puVar4[3] = local_d8.st_ino;
  puVar4[4] = local_d8.st_nlink;
  puVar4[5] = local_d8._24_8_;
  puVar4[6] = local_d8._32_8_;
  puVar4[7] = local_d8.st_rdev;
  puVar4[8] = local_d8.st_size;
  puVar4[9] = local_d8.st_blksize;
  puVar4[10] = local_d8.st_blocks;
  puVar4[0xb] = local_d8.st_atim.tv_sec;
  puVar4[0xc] = local_d8.st_atim.tv_nsec;
  puVar4[0xd] = local_d8.st_mtim.tv_sec;
  puVar4[0xe] = local_d8.st_mtim.tv_nsec;
  puVar4[0xf] = local_d8.st_ctim.tv_sec;
  puVar4[0x10] = local_d8.st_ctim.tv_nsec;
  puVar4[0x11] = local_d8.__unused[0];
  puVar4[0x12] = local_d8.__unused[1];
  puVar4[0x13] = local_d8.__unused[2];
  *puVar4 = puVar5;
  puVar7 = puVar4;
  goto LAB_00166c43;
}

