
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

char * rpl_getcwd(char *buf,size_t size)

{
  int iVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  bool bVar7;
  bool bVar8;
  bool bVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int *piVar18;
  int iVar19;
  dirent64 *pdVar20;
  uint uVar21;
  size_t __n;
  char *pcVar22;
  size_t sVar23;
  DIR *__dirp;
  char *pcVar24;
  int in_GS_OFFSET;
  int local_e8;
  int local_e0;
  int local_dc;
  char *local_d0;
  char *local_cc;
  int local_c8;
  size_t local_c4;
  int local_c0;
  char *local_a8;
  stat st;
  
  local_cc = buf;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (size == 0) {
    local_c4 = 0x1000;
    if (buf != (char *)0x0) {
      piVar18 = __errno_location();
      local_d0 = (char *)0x0;
      *piVar18 = 0x16;
      pcVar24 = local_d0;
      goto LAB_0001cf78;
    }
LAB_0001cf5b:
    local_d0 = (char *)malloc(local_c4);
    pcVar24 = local_d0;
    if (local_d0 == (char *)0x0) goto LAB_0001cf78;
  }
  else {
    local_c4 = size;
    if (buf == (char *)0x0) goto LAB_0001cf5b;
    local_d0 = buf;
  }
  pcVar24 = local_d0 + local_c4;
  pcVar24[-1] = '\0';
  iVar16 = __lxstat64(3,".",(stat64 *)&st);
  iVar14 = st.st_ino._4_4_;
  iVar12 = (int)st.st_ino;
  iVar10 = st.st_dev._4_4_;
  iVar19 = (int)st.st_dev;
  if (iVar16 < 0) {
LAB_0001d440:
    piVar18 = __errno_location();
  }
  else {
    local_c8 = st.st_dev._4_4_;
    local_c0 = (int)st.st_dev;
    local_e0 = (int)st.st_ino;
    local_dc = st.st_ino._4_4_;
    iVar17 = __lxstat64(3,"/",(stat64 *)&st);
    iVar15 = st.st_ino._4_4_;
    iVar13 = (int)st.st_ino;
    iVar11 = st.st_dev._4_4_;
    iVar16 = (int)st.st_dev;
    if (iVar17 < 0) goto LAB_0001d440;
    local_a8 = pcVar24 + -1;
    bVar7 = iVar19 != (int)st.st_dev;
    bVar8 = iVar10 != st.st_dev._4_4_;
    bVar2 = iVar12 != (int)st.st_ino;
    bVar3 = iVar14 != st.st_ino._4_4_;
    if ((!bVar7 && !bVar8) && (!bVar2 && !bVar3)) {
LAB_0001d35f:
      if (local_a8 == local_d0 + (local_c4 - 1)) {
        local_a8[-1] = '/';
        local_a8 = local_a8 + -1;
      }
      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);
      if (size == 0) {
        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);
      }
      pcVar24 = local_cc;
      if (local_cc == (char *)0x0) {
        pcVar24 = local_d0;
      }
      goto LAB_0001cf78;
    }
    piVar18 = __errno_location();
    local_e8 = -100;
    __dirp = (DIR *)0x0;
    do {
      local_e8 = openat64(local_e8,"..",0);
      if (local_e8 < 0) {
        iVar19 = *piVar18;
        if (__dirp != (DIR *)0x0) goto LAB_0001d417;
        goto joined_r0x0001d429;
      }
      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);
      if (iVar19 != 0) {
        iVar19 = *piVar18;
        if (__dirp != (DIR *)0x0) {
          closedir(__dirp);
        }
LAB_0001d486:
        close(local_e8);
        goto joined_r0x0001d429;
      }
      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||
         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,
         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),
         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {
        iVar19 = *piVar18;
        goto LAB_0001d486;
      }
LAB_0001d168:
      do {
        do {
          *piVar18 = 0;
          pdVar20 = readdir64(__dirp);
          if (pdVar20 == (dirent64 *)0x0) {
            iVar19 = *piVar18;
            if ((iVar19 == 0) && (bVar9)) {
              rewinddir(__dirp);
              pdVar20 = readdir64(__dirp);
              if (pdVar20 != (dirent64 *)0x0) {
                bVar6 = false;
                bVar9 = bVar6;
                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;
                break;
              }
              iVar19 = *piVar18;
            }
            if (iVar19 == 0) {
              *piVar18 = 2;
              iVar19 = 2;
            }
            goto LAB_0001d417;
          }
          if (pdVar20->d_name[0] == '.') {
LAB_0001d3e8:
            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))
            goto LAB_0001d168;
          }
          bVar6 = bVar9;
        } while ((bVar9) &&
                (bVar4 = local_e0 == (int)pdVar20->d_ino,
                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),
                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),
                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));
        pcVar24 = pdVar20->d_name;
        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);
        bVar9 = bVar6;
      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||
               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||
              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));
      uVar21 = (int)local_a8 - (int)local_d0;
      __n = strlen(pcVar24);
      if (uVar21 <= __n) {
        if (size == 0) {
          sVar23 = local_c4;
          if (local_c4 <= __n) {
            sVar23 = __n;
          }
          if ((!CARRY4(local_c4,sVar23)) &&
             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {
            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);
            local_d0 = pcVar22;
            local_c4 = local_c4 + sVar23;
            goto LAB_0001d2ce;
          }
          iVar19 = 0xc;
          *piVar18 = 0xc;
        }
        else {
          iVar19 = 0x22;
          *piVar18 = 0x22;
        }
LAB_0001d417:
        closedir(__dirp);
        goto joined_r0x0001d429;
      }
LAB_0001d2ce:
      pcVar22 = local_a8 + -__n;
      memcpy(pcVar22,pcVar24,__n);
      local_c8 = iVar12;
      local_a8 = pcVar22 + -1;
      local_e0 = iVar14;
      local_c0 = iVar10;
      pcVar22[-1] = '/';
      local_dc = iVar17;
    } while ((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17));
    iVar19 = closedir(__dirp);
    if (iVar19 == 0) {
      pcVar24 = local_d0 + local_c4;
      goto LAB_0001d35f;
    }
  }
  iVar19 = *piVar18;
joined_r0x0001d429:
  if (buf == (char *)0x0) {
    free(local_d0);
  }
  *piVar18 = iVar19;
  local_d0 = (char *)0x0;
  pcVar24 = local_d0;
LAB_0001cf78:
  local_d0 = pcVar24;
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return local_d0;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void * FUN_0001cf10(void *param_1,size_t param_2)

{
  char *__filename;
  bool bVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  bool bVar7;
  bool bVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int *piVar17;
  int iVar18;
  dirent64 *pdVar19;
  uint uVar20;
  size_t __n;
  void *pvVar21;
  size_t sVar22;
  DIR *__dirp;
  int iVar23;
  int in_GS_OFFSET;
  int local_e8;
  int local_e0;
  int local_dc;
  void *local_d0;
  void *local_cc;
  int local_c8;
  size_t local_c4;
  int local_c0;
  void *local_a8;
  stat64 local_80;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1cf19;
  local_cc = param_1;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_2 == 0) {
    local_c4 = 0x1000;
    if (param_1 != (void *)0x0) {
      piVar17 = __errno_location();
      local_d0 = (void *)0x0;
      *piVar17 = 0x16;
      pvVar21 = local_d0;
      goto LAB_0001cf78;
    }
LAB_0001cf5b:
    local_d0 = malloc(local_c4);
    pvVar21 = local_d0;
    if (local_d0 == (void *)0x0) goto LAB_0001cf78;
  }
  else {
    local_c4 = param_2;
    if (param_1 == (void *)0x0) goto LAB_0001cf5b;
    local_d0 = param_1;
  }
  iVar23 = (int)local_d0 + local_c4;
  *(undefined1 *)(iVar23 + -1) = 0;
  iVar15 = __lxstat64(3,".",&local_80);
  iVar13 = local_80.st_ino._4_4_;
  iVar11 = (int)local_80.st_ino;
  iVar9 = local_80.st_dev._4_4_;
  iVar18 = (int)local_80.st_dev;
  if (iVar15 < 0) {
LAB_0001d440:
    piVar17 = __errno_location();
  }
  else {
    local_c8 = local_80.st_dev._4_4_;
    local_c0 = (int)local_80.st_dev;
    local_e0 = (int)local_80.st_ino;
    local_dc = local_80.st_ino._4_4_;
    iVar16 = __lxstat64(3,"/",&local_80);
    iVar14 = local_80.st_ino._4_4_;
    iVar12 = (int)local_80.st_ino;
    iVar10 = local_80.st_dev._4_4_;
    iVar15 = (int)local_80.st_dev;
    if (iVar16 < 0) goto LAB_0001d440;
    local_a8 = (void *)(iVar23 + -1);
    bVar6 = iVar18 != (int)local_80.st_dev;
    bVar7 = iVar9 != local_80.st_dev._4_4_;
    bVar1 = iVar11 != (int)local_80.st_ino;
    bVar2 = iVar13 != local_80.st_ino._4_4_;
    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {
LAB_0001d35f:
      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {
        *(undefined1 *)((int)local_a8 + -1) = 0x2f;
        local_a8 = (void *)((int)local_a8 + -1);
      }
      memmove(local_d0,local_a8,iVar23 - (int)local_a8);
      if (param_2 == 0) {
        local_cc = realloc(local_d0,iVar23 - (int)local_a8);
      }
      pvVar21 = local_cc;
      if (local_cc == (void *)0x0) {
        pvVar21 = local_d0;
      }
      goto LAB_0001cf78;
    }
    piVar17 = __errno_location();
    local_e8 = -100;
    __dirp = (DIR *)0x0;
    do {
      local_e8 = openat64(local_e8,"..",0);
      if (local_e8 < 0) {
        iVar18 = *piVar17;
        if (__dirp != (DIR *)0x0) goto LAB_0001d417;
        goto joined_r0x0001d429;
      }
      iVar18 = __fxstat64(3,local_e8,&local_80);
      if (iVar18 != 0) {
        iVar18 = *piVar17;
        if (__dirp != (DIR *)0x0) {
          closedir(__dirp);
        }
LAB_0001d486:
        close(local_e8);
        goto joined_r0x0001d429;
      }
      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||
         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,
         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),
         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {
        iVar18 = *piVar17;
        goto LAB_0001d486;
      }
LAB_0001d168:
      do {
        do {
          *piVar17 = 0;
          pdVar19 = readdir64(__dirp);
          if (pdVar19 == (dirent64 *)0x0) {
            iVar18 = *piVar17;
            if ((iVar18 == 0) && (bVar8)) {
              rewinddir(__dirp);
              pdVar19 = readdir64(__dirp);
              if (pdVar19 != (dirent64 *)0x0) {
                bVar5 = false;
                bVar8 = bVar5;
                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;
                break;
              }
              iVar18 = *piVar17;
            }
            if (iVar18 == 0) {
              *piVar17 = 2;
              iVar18 = 2;
            }
            goto LAB_0001d417;
          }
          if (pdVar19->d_name[0] == '.') {
LAB_0001d3e8:
            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))
            goto LAB_0001d168;
          }
          bVar5 = bVar8;
        } while ((bVar8) &&
                (bVar3 = local_e0 == (int)pdVar19->d_ino,
                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),
                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),
                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));
        __filename = pdVar19->d_name;
        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);
        bVar8 = bVar5;
      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||
               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||
              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));
      uVar20 = (int)local_a8 - (int)local_d0;
      __n = strlen(__filename);
      if (uVar20 <= __n) {
        if (param_2 == 0) {
          sVar22 = local_c4;
          if (local_c4 <= __n) {
            sVar22 = __n;
          }
          if ((!CARRY4(local_c4,sVar22)) &&
             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {
            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),
                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);
            local_d0 = pvVar21;
            local_c4 = local_c4 + sVar22;
            goto LAB_0001d2ce;
          }
          iVar18 = 0xc;
          *piVar17 = 0xc;
        }
        else {
          iVar18 = 0x22;
          *piVar17 = 0x22;
        }
LAB_0001d417:
        closedir(__dirp);
        goto joined_r0x0001d429;
      }
LAB_0001d2ce:
      pvVar21 = (void *)((int)local_a8 - __n);
      memcpy(pvVar21,__filename,__n);
      local_c8 = iVar11;
      local_a8 = (void *)((int)pvVar21 + -1);
      local_e0 = iVar13;
      local_c0 = iVar9;
      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;
      local_dc = iVar23;
    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));
    iVar18 = closedir(__dirp);
    if (iVar18 == 0) {
      iVar23 = (int)local_d0 + local_c4;
      goto LAB_0001d35f;
    }
  }
  iVar18 = *piVar17;
joined_r0x0001d429:
  if (param_1 == (void *)0x0) {
    free(local_d0);
  }
  *piVar17 = iVar18;
  local_d0 = (void *)0x0;
  pvVar21 = local_d0;
LAB_0001cf78:
  local_d0 = pvVar21;
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0001d960();
  }
  return local_d0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013430
ADD EBX,0x80e7
SUB ESP,0xdc
MOV EAX,dword ptr [ESP + 0xf0]
MOV dword ptr [ESP + 0x20],EAX
MOV EDI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0xcc],EDI
XOR EDI,EDI
MOV EDI,dword ptr [ESP + 0xf4]
TEST EDI,EDI
JNZ 0x0001cfa0
MOV dword ptr [ESP + 0x28],0x1000
TEST EAX,EAX
JNZ 0x0001d468
SUB ESP,0xc
PUSH dword ptr [ESP + 0x34]
CALL 0x00012260
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001cfbb
LEA ESI,[ESI]
MOV EDI,dword ptr [ESP + 0xcc]
XOR EDI,dword ptr GS:[0x14]
MOV EAX,dword ptr [ESP + 0x1c]
JNZ 0x0001d51d
ADD ESP,0xdc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0xf4]
TEST ESI,ESI
MOV dword ptr [ESP + 0x28],EAX
JZ 0x0001cf5b
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x1c],EAX
MOV ESI,dword ptr [ESP + 0x1c]
SUB ESP,0x4
ADD ESI,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffffa827]
LEA EDI,[ESP + 0x70]
MOV byte ptr [ESI + -0x1],0x0
MOV dword ptr [ESP + 0xc],EDI
PUSH EDI
PUSH EAX
PUSH 0x3
CALL 0x000124d0
ADD ESP,0x10
TEST EAX,EAX
JS 0x0001d440
MOV EAX,dword ptr [ESP + 0x70]
MOV EBP,dword ptr [ESP + 0x6c]
SUB ESP,0x4
MOV ECX,dword ptr [ESP + 0xc8]
MOV EDX,dword ptr [ESP + 0xcc]
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0xffffab94]
MOV dword ptr [ESP + 0x30],EBP
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0x14],EDX
PUSH EDI
PUSH EAX
PUSH 0x3
CALL 0x000124d0
ADD ESP,0x10
TEST EAX,EAX
JS 0x0001d440
MOV EDX,dword ptr [ESP + 0x70]
LEA EDI,[ESI + -0x1]
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x44],EDI
MOV EDI,dword ptr [ESP + 0x6c]
MOV ECX,EDX
MOV dword ptr [ESP + 0x4c],EDX
MOV EDX,dword ptr [ESP + 0xc4]
XOR EAX,ECX
MOV ECX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x48],EDI
MOV dword ptr [ESP + 0x34],EDX
MOV EDX,dword ptr [ESP + 0xc8]
MOV dword ptr [ESP + 0x38],EDX
MOV EDX,EBP
XOR EDX,EDI
MOV EBP,EDX
OR EBP,EAX
MOV EAX,dword ptr [ESP + 0x10]
SETNZ DL
XOR EAX,dword ptr [ESP + 0x38]
XOR ECX,dword ptr [ESP + 0x34]
OR ECX,EAX
SETNZ AL
OR DL,AL
MOV byte ptr [ESP + 0x43],DL
JZ 0x0001d35f
CALL 0x00012350
MOV dword ptr [ESP + 0x4],0xffffff9c
XOR EBP,EBP
MOV EDI,EAX
LEA EAX,[EBX + 0xffffa826]
MOV dword ptr [ESP + 0x3c],EAX
MOV dword ptr [ESP + 0x30],EDI
SUB ESP,0x4
PUSH 0x0
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x10]
CALL 0x00012310
MOV dword ptr [ESP + 0x14],EAX
ADD ESP,0x10
TEST EAX,EAX
JS 0x0001d4b0
SUB ESP,0x4
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x3
CALL 0x000121b0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001d497
TEST EBP,EBP
JZ 0x0001d102
SUB ESP,0xc
PUSH EBP
CALL 0x000124f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001d480
MOV EDX,dword ptr [ESP + 0xc4]
MOV EAX,dword ptr [ESP + 0x70]
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x64],EDX
MOV EDX,dword ptr [ESP + 0xd4]
MOV EDI,EAX
MOV dword ptr [ESP + 0x5c],ESI
MOV dword ptr [ESP + 0x60],EAX
MOV dword ptr [ESP + 0x68],EDX
PUSH dword ptr [ESP + 0x10]
CALL 0x000123f0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0001d480
MOVZX EAX,byte ptr [ESP + 0x43]
XOR ESI,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x14],ESI
MOV byte ptr [ESP],AL
MOV EAX,dword ptr [ESP + 0x24]
XOR EAX,EDI
MOV EDI,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x18],EAX
LEA ESI,[ESI]
SUB ESP,0xc
MOV dword ptr [EDI],0x0
PUSH EBP
CALL 0x00012440
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001d3b0
CMP byte ptr [EAX + 0x13],0x2e
JZ 0x0001d3e8
CMP byte ptr [ESP],0x0
JZ 0x0001d1b6
MOV ECX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x10]
XOR ECX,dword ptr [EAX]
XOR EDX,dword ptr [EAX + 0x4]
OR ECX,EDX
MOV ESI,dword ptr [ESP + 0x14]
SETZ DL
OR ESI,dword ptr [ESP + 0x18]
SETNZ CL
OR DL,CL
JZ 0x0001d168
MOV byte ptr [ESP],DL
SUB ESP,0xc
LEA ESI,[EAX + 0x13]
PUSH 0x100
PUSH dword ptr [ESP + 0x18]
PUSH ESI
PUSH dword ptr [ESP + 0x1c]
PUSH 0x3
CALL 0x00012180
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0001d168
MOV EAX,dword ptr [ESP + 0x7c]
AND EAX,0xf000
CMP EAX,0x4000
JNZ 0x0001d168
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [ESP + 0x24]
XOR EAX,dword ptr [ESP + 0x6c]
XOR EDX,dword ptr [ESP + 0x70]
OR EDX,EAX
JNZ 0x0001d168
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x10]
XOR EAX,dword ptr [ESP + 0xc4]
XOR EDX,dword ptr [ESP + 0xc8]
OR EDX,EAX
JNZ 0x0001d168
MOV dword ptr [ESP + 0x30],EDI
MOV EAX,dword ptr [ESP + 0x44]
SUB ESP,0xc
SUB EAX,dword ptr [ESP + 0x28]
PUSH ESI
MOV EDI,EAX
CALL 0x00012300
ADD ESP,0x10
MOV EDX,EAX
CMP EDI,EDX
JA 0x0001d2ce
MOV ECX,dword ptr [ESP + 0xf4]
TEST ECX,ECX
JNZ 0x0001d509
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x14],EDX
CMP EDX,EAX
MOV ECX,EAX
CMOVNC ECX,EDX
ADD EAX,ECX
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0xc],EAX
JC 0x0001d4f5
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x28]
CALL 0x00012240
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
TEST EAX,EAX
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
JZ 0x0001d4f5
MOV dword ptr [ESP + 0x10],EDX
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,EDI
ADD ECX,EDI
MOV EDI,dword ptr [ESP]
SUB ESP,0x4
SUB EAX,EDX
ADD ECX,EDI
ADD EDX,EDI
PUSH EAX
PUSH EDX
PUSH ECX
CALL 0x000120b0
MOV dword ptr [ESP + 0x54],EAX
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x28],EDI
MOV dword ptr [ESP + 0x1c],EAX
MOV ECX,dword ptr [ESP + 0x44]
SUB ESP,0x4
PUSH EDX
SUB ECX,EDX
PUSH ESI
PUSH ECX
MOV dword ptr [ESP + 0x10],ECX
CALL 0x000120b0
MOV ECX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [ESP + 0x64]
MOV EDX,dword ptr [ESP + 0x58]
MOV EDI,dword ptr [ESP + 0x5c]
LEA EAX,[ECX + -0x1]
MOV dword ptr [ESP + 0x34],ESI
MOV ESI,dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0x54],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV byte ptr [ECX + -0x1],0x2f
MOV ECX,dword ptr [ESP + 0x6c]
XOR EDI,dword ptr [ESP + 0x34]
XOR EDX,EAX
MOV dword ptr [ESP + 0x3c],EAX
MOV dword ptr [ESP + 0x1c],ESI
MOV dword ptr [ESP + 0x20],ECX
ADD ESP,0x10
OR EDX,EDI
JNZ 0x0001d0af
MOV EAX,dword ptr [ESP + 0x38]
XOR ESI,dword ptr [ESP + 0x34]
MOV EDX,ESI
XOR EAX,ECX
OR EDX,EAX
JNZ 0x0001d0af
MOV EDI,dword ptr [ESP + 0x30]
SUB ESP,0xc
PUSH EBP
CALL 0x000124f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001d447
MOV ESI,dword ptr [ESP + 0x1c]
ADD ESI,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDI,dword ptr [ESP + 0x28]
LEA EAX,[EAX + EDI*0x1 + -0x1]
CMP dword ptr [ESP + 0x44],EAX
JZ 0x0001d4e1
MOV EAX,dword ptr [ESP + 0x44]
SUB ESP,0x4
SUB ESI,EAX
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x28]
CALL 0x000120a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xf4]
TEST EDX,EDX
JZ 0x0001d4c8
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
CMOVZ EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x0001cf78
MOV ESI,dword ptr [EDI]
TEST ESI,ESI
JNZ 0x0001d408
CMP byte ptr [ESP],0x0
JZ 0x0001d408
SUB ESP,0xc
PUSH EBP
CALL 0x00012550
MOV dword ptr [ESP],EBP
CALL 0x00012440
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001d402
CMP byte ptr [EAX + 0x13],0x2e
MOV byte ptr [ESP],0x0
JNZ 0x0001d1b6
LEA ESI,[ESI]
CMP byte ptr [EAX + 0x14],0x0
JZ 0x0001d168
CMP word ptr [EAX + 0x14],0x2e
JNZ 0x0001d18c
JMP 0x0001d168
MOV ESI,dword ptr [EDI]
LEA ESI,[ESI]
TEST ESI,ESI
JNZ 0x0001d417
MOV dword ptr [EDI],0x2
MOV ESI,0x2
SUB ESP,0xc
PUSH EBP
CALL 0x000124f0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JZ 0x0001d451
MOV dword ptr [EDI],ESI
MOV dword ptr [ESP + 0x1c],0x0
JMP 0x0001cf78
CALL 0x00012350
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [EDI]
TEST EAX,EAX
JNZ 0x0001d42b
SUB ESP,0xc
PUSH dword ptr [ESP + 0x28]
CALL 0x00012560
ADD ESP,0x10
JMP 0x0001d42b
CALL 0x00012350
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [EAX],0x16
JMP 0x0001cf78
MOV EDI,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [EDI]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x10]
CALL 0x000124e0
ADD ESP,0x10
JMP 0x0001d423
MOV EDI,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [EDI]
TEST EBP,EBP
JZ 0x0001d486
SUB ESP,0xc
PUSH EBP
CALL 0x000124f0
ADD ESP,0x10
JMP 0x0001d486
MOV EDI,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [EDI]
TEST EBP,EBP
JZ 0x0001d423
JMP 0x0001d417
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [ESP + 0x28]
CALL 0x00012240
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
JMP 0x0001d39b
MOV EAX,dword ptr [ESP + 0x44]
MOV byte ptr [EAX + -0x1],0x2f
SUB EAX,0x1
MOV dword ptr [ESP + 0x44],EAX
JMP 0x0001d375
MOV EDI,dword ptr [ESP + 0x30]
MOV ESI,0xc
MOV dword ptr [EDI],0xc
JMP 0x0001d417
MOV EDI,dword ptr [ESP + 0x30]
MOV ESI,0x22
MOV dword ptr [EDI],0x22
JMP 0x0001d417
CALL 0x0001d960
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid * FUN_0001cf10(void *param_1,size_t param_2)\n\n{\n  char *__filename;\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  dirent64 *pdVar19;\n  uint uVar20;\n  size_t __n;\n  void *pvVar21;\n  size_t sVar22;\n  DIR *__dirp;\n  int iVar23;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  void *local_d0;\n  void *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  void *local_a8;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1cf19;\n  local_cc = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }\n  iVar23 = (int)local_d0 + local_c4;\n  *(undefined1 *)(iVar23 + -1) = 0;\n  iVar15 = __lxstat64(3,".",&local_80);\n  iVar13 = local_80.st_ino._4_4_;\n  iVar11 = (int)local_80.st_ino;\n  iVar9 = local_80.st_dev._4_4_;\n  iVar18 = (int)local_80.st_dev;\n  if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar18 = *piVar17;\njoined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }\n  *piVar17 = iVar18;\n  local_d0 = (void *)0x0;\n  pvVar21 = local_d0;\nLAB_0001cf78:\n  local_d0 = pvVar21;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0001d960();\n  }\n  return local_d0;\n}\n\n" comment (function_definition "void * FUN_0001cf10(void *param_1,size_t param_2)\n\n{\n  char *__filename;\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  dirent64 *pdVar19;\n  uint uVar20;\n  size_t __n;\n  void *pvVar21;\n  size_t sVar22;\n  DIR *__dirp;\n  int iVar23;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  void *local_d0;\n  void *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  void *local_a8;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1cf19;\n  local_cc = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }\n  iVar23 = (int)local_d0 + local_c4;\n  *(undefined1 *)(iVar23 + -1) = 0;\n  iVar15 = __lxstat64(3,".",&local_80);\n  iVar13 = local_80.st_ino._4_4_;\n  iVar11 = (int)local_80.st_ino;\n  iVar9 = local_80.st_dev._4_4_;\n  iVar18 = (int)local_80.st_dev;\n  if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar18 = *piVar17;\njoined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }\n  *piVar17 = iVar18;\n  local_d0 = (void *)0x0;\n  pvVar21 = local_d0;\nLAB_0001cf78:\n  local_d0 = pvVar21;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0001d960();\n  }\n  return local_d0;\n}" primitive_type (pointer_declarator "* FUN_0001cf10(void *param_1,size_t param_2)" * (function_declarator "FUN_0001cf10(void *param_1,size_t param_2)" identifier (parameter_list "(void *param_1,size_t param_2)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "size_t param_2" primitive_type identifier) )))) (compound_statement "{\n  char *__filename;\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  dirent64 *pdVar19;\n  uint uVar20;\n  size_t __n;\n  void *pvVar21;\n  size_t sVar22;\n  DIR *__dirp;\n  int iVar23;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  void *local_d0;\n  void *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  void *local_a8;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1cf19;\n  local_cc = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }\n  iVar23 = (int)local_d0 + local_c4;\n  *(undefined1 *)(iVar23 + -1) = 0;\n  iVar15 = __lxstat64(3,".",&local_80);\n  iVar13 = local_80.st_ino._4_4_;\n  iVar11 = (int)local_80.st_ino;\n  iVar9 = local_80.st_dev._4_4_;\n  iVar18 = (int)local_80.st_dev;\n  if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar18 = *piVar17;\njoined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }\n  *piVar17 = iVar18;\n  local_d0 = (void *)0x0;\n  pvVar21 = local_d0;\nLAB_0001cf78:\n  local_d0 = pvVar21;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0001d960();\n  }\n  return local_d0;\n}" { (declaration "char *__filename;" primitive_type (pointer_declarator "*__filename" * identifier) ;) (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "dirent64 *pdVar19;" type_identifier (pointer_declarator "*pdVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *pvVar21;" primitive_type (pointer_declarator "*pvVar21" * identifier) ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "void *local_d0;" primitive_type (pointer_declarator "*local_d0" * identifier) ;) (declaration "void *local_cc;" primitive_type (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "size_t local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "void *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "stat64 local_80;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1cf19;" (assignment_expression "uStack_14 = 0x1cf19" identifier = number_literal) ;) (expression_statement "local_cc = param_1;" (assignment_expression "local_cc = param_1" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }" { (expression_statement "local_c4 = 0x1000;" (assignment_expression "local_c4 = 0x1000" identifier = number_literal) ;) (if_statement "if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }" if (parenthesized_expression "(param_1 != (void *)0x0)" ( (binary_expression "param_1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }" { (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d0 = (void *)0x0;" (assignment_expression "local_d0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*piVar17 = 0x16;" (assignment_expression "*piVar17 = 0x16" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" identifier = identifier) ;) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;) })) (labeled_statement "LAB_0001cf5b:\n    local_d0 = malloc(local_c4);" statement_identifier : (expression_statement "local_d0 = malloc(local_c4);" (assignment_expression "local_d0 = malloc(local_c4)" identifier = (call_expression "malloc(local_c4)" identifier (argument_list "(local_c4)" ( identifier )))) ;)) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" identifier = identifier) ;) (if_statement "if (local_d0 == (void *)0x0) goto LAB_0001cf78;" if (parenthesized_expression "(local_d0 == (void *)0x0)" ( (binary_expression "local_d0 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;)) }) (else_clause "else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" else (compound_statement "{\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" { (expression_statement "local_c4 = param_2;" (assignment_expression "local_c4 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == (void *)0x0) goto LAB_0001cf5b;" if (parenthesized_expression "(param_1 == (void *)0x0)" ( (binary_expression "param_1 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cf5b;" goto statement_identifier ;)) (expression_statement "local_d0 = param_1;" (assignment_expression "local_d0 = param_1" identifier = identifier) ;) }))) (expression_statement "iVar23 = (int)local_d0 + local_c4;" (assignment_expression "iVar23 = (int)local_d0 + local_c4" identifier = (binary_expression "(int)local_d0 + local_c4" (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(undefined1 *)(iVar23 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar23 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar23 + -1)" * (cast_expression "(undefined1 *)(iVar23 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -1)" ( (binary_expression "iVar23 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = __lxstat64(3,".",&local_80);" (assignment_expression "iVar15 = __lxstat64(3,".",&local_80)" identifier = (call_expression "__lxstat64(3,".",&local_80)" identifier (argument_list "(3,".",&local_80)" ( number_literal , (string_literal ""."" " string_content ") , (pointer_expression "&local_80" & identifier) )))) ;) (expression_statement "iVar13 = local_80.st_ino._4_4_;" (assignment_expression "iVar13 = local_80.st_ino._4_4_" identifier = (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar11 = (int)local_80.st_ino;" (assignment_expression "iVar11 = (int)local_80.st_ino" identifier = (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier))) ;) (expression_statement "iVar9 = local_80.st_dev._4_4_;" (assignment_expression "iVar9 = local_80.st_dev._4_4_" identifier = (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar18 = (int)local_80.st_dev;" (assignment_expression "iVar18 = (int)local_80.st_dev" identifier = (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier))) ;) (if_statement "if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" if (parenthesized_expression "(iVar15 < 0)" ( (binary_expression "iVar15 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }" { (labeled_statement "LAB_0001d440:\n    piVar17 = __errno_location();" statement_identifier : (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) }) (else_clause "else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" else (compound_statement "{\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" { (expression_statement "local_c8 = local_80.st_dev._4_4_;" (assignment_expression "local_c8 = local_80.st_dev._4_4_" identifier = (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_c0 = (int)local_80.st_dev;" (assignment_expression "local_c0 = (int)local_80.st_dev" identifier = (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier))) ;) (expression_statement "local_e0 = (int)local_80.st_ino;" (assignment_expression "local_e0 = (int)local_80.st_ino" identifier = (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier))) ;) (expression_statement "local_dc = local_80.st_ino._4_4_;" (assignment_expression "local_dc = local_80.st_ino._4_4_" identifier = (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar16 = __lxstat64(3,"/",&local_80);" (assignment_expression "iVar16 = __lxstat64(3,"/",&local_80)" identifier = (call_expression "__lxstat64(3,"/",&local_80)" identifier (argument_list "(3,"/",&local_80)" ( number_literal , (string_literal ""/"" " string_content ") , (pointer_expression "&local_80" & identifier) )))) ;) (expression_statement "iVar14 = local_80.st_ino._4_4_;" (assignment_expression "iVar14 = local_80.st_ino._4_4_" identifier = (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar12 = (int)local_80.st_ino;" (assignment_expression "iVar12 = (int)local_80.st_ino" identifier = (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier))) ;) (expression_statement "iVar10 = local_80.st_dev._4_4_;" (assignment_expression "iVar10 = local_80.st_dev._4_4_" identifier = (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar15 = (int)local_80.st_dev;" (assignment_expression "iVar15 = (int)local_80.st_dev" identifier = (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier))) ;) (if_statement "if (iVar16 < 0) goto LAB_0001d440;" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0001d440;" goto statement_identifier ;)) (expression_statement "local_a8 = (void *)(iVar23 + -1);" (assignment_expression "local_a8 = (void *)(iVar23 + -1)" identifier = (cast_expression "(void *)(iVar23 + -1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -1)" ( (binary_expression "iVar23 + -1" identifier + number_literal) )))) ;) (expression_statement "bVar6 = iVar18 != (int)local_80.st_dev;" (assignment_expression "bVar6 = iVar18 != (int)local_80.st_dev" identifier = (binary_expression "iVar18 != (int)local_80.st_dev" identifier != (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier)))) ;) (expression_statement "bVar7 = iVar9 != local_80.st_dev._4_4_;" (assignment_expression "bVar7 = iVar9 != local_80.st_dev._4_4_" identifier = (binary_expression "iVar9 != local_80.st_dev._4_4_" identifier != (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier))) ;) (expression_statement "bVar1 = iVar11 != (int)local_80.st_ino;" (assignment_expression "bVar1 = iVar11 != (int)local_80.st_ino" identifier = (binary_expression "iVar11 != (int)local_80.st_ino" identifier != (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier)))) ;) (expression_statement "bVar2 = iVar13 != local_80.st_ino._4_4_;" (assignment_expression "bVar2 = iVar13 != local_80.st_ino._4_4_" identifier = (binary_expression "iVar13 != local_80.st_ino._4_4_" identifier != (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier))) ;) (if_statement "if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }" if (parenthesized_expression "((!bVar6 && !bVar7) && (!bVar1 && !bVar2))" ( (binary_expression "(!bVar6 && !bVar7) && (!bVar1 && !bVar2)" (parenthesized_expression "(!bVar6 && !bVar7)" ( (binary_expression "!bVar6 && !bVar7" (unary_expression "!bVar6" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) && (parenthesized_expression "(!bVar1 && !bVar2)" ( (binary_expression "!bVar1 && !bVar2" (unary_expression "!bVar1" ! identifier) && (unary_expression "!bVar2" ! identifier)) ))) )) (compound_statement "{\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }" { (labeled_statement "LAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" statement_identifier : (if_statement "if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" if (parenthesized_expression "(local_a8 == (void *)((int)local_d0 + (local_c4 - 1)))" ( (binary_expression "local_a8 == (void *)((int)local_d0 + (local_c4 - 1))" identifier == (cast_expression "(void *)((int)local_d0 + (local_c4 - 1))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_d0 + (local_c4 - 1))" ( (binary_expression "(int)local_d0 + (local_c4 - 1)" (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(local_c4 - 1)" ( (binary_expression "local_c4 - 1" identifier - number_literal) ))) )))) )) (compound_statement "{\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" { (expression_statement "*(undefined1 *)((int)local_a8 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)local_a8 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)local_a8 + -1)" * (cast_expression "(undefined1 *)((int)local_a8 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -1)" ( (binary_expression "(int)local_a8 + -1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_a8 = (void *)((int)local_a8 + -1);" (assignment_expression "local_a8 = (void *)((int)local_a8 + -1)" identifier = (cast_expression "(void *)((int)local_a8 + -1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -1)" ( (binary_expression "(int)local_a8 + -1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "memmove(local_d0,local_a8,iVar23 - (int)local_a8);" (call_expression "memmove(local_d0,local_a8,iVar23 - (int)local_a8)" identifier (argument_list "(local_d0,local_a8,iVar23 - (int)local_a8)" ( identifier , identifier , (binary_expression "iVar23 - (int)local_a8" identifier - (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (if_statement "if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }" { (expression_statement "local_cc = realloc(local_d0,iVar23 - (int)local_a8);" (assignment_expression "local_cc = realloc(local_d0,iVar23 - (int)local_a8)" identifier = (call_expression "realloc(local_d0,iVar23 - (int)local_a8)" identifier (argument_list "(local_d0,iVar23 - (int)local_a8)" ( identifier , (binary_expression "iVar23 - (int)local_a8" identifier - (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "pvVar21 = local_cc;" (assignment_expression "pvVar21 = local_cc" identifier = identifier) ;) (if_statement "if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }" if (parenthesized_expression "(local_cc == (void *)0x0)" ( (binary_expression "local_cc == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pvVar21 = local_d0;\n      }" { (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" identifier = identifier) ;) })) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;) })) (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_e8 = -100;" (assignment_expression "local_e8 = -100" identifier = number_literal) ;) (expression_statement "__dirp = (DIR *)0x0;" (assignment_expression "__dirp = (DIR *)0x0" identifier = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));" do (compound_statement "{\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    }" { (expression_statement "local_e8 = openat64(local_e8,"..",0);" (assignment_expression "local_e8 = openat64(local_e8,"..",0)" identifier = (call_expression "openat64(local_e8,"..",0)" identifier (argument_list "(local_e8,"..",0)" ( identifier , (string_literal "".."" " string_content ") , number_literal )))) ;) (if_statement "if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(local_e8 < 0)" ( (binary_expression "local_e8 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }" { (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (if_statement "if (__dirp != (DIR *)0x0) goto LAB_0001d417;" if (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d417;" goto statement_identifier ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (expression_statement "iVar18 = __fxstat64(3,local_e8,&local_80);" (assignment_expression "iVar18 = __fxstat64(3,local_e8,&local_80)" identifier = (call_expression "__fxstat64(3,local_e8,&local_80)" identifier (argument_list "(3,local_e8,&local_80)" ( number_literal , identifier , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }" { (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (if_statement "if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }" if (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          closedir(__dirp);\n        }" { (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) })) (labeled_statement "LAB_0001d486:\n        close(local_e8);" statement_identifier : (expression_statement "close(local_e8);" (call_expression "close(local_e8)" identifier (argument_list "(local_e8)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (if_statement "if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }" if (parenthesized_expression "(((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0))" ( (binary_expression "((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)" (parenthesized_expression "((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0))" ( (binary_expression "(__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)" (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar18 = closedir(__dirp), iVar18 != 0)" ( (comma_expression "iVar18 = closedir(__dirp), iVar18 != 0" (assignment_expression "iVar18 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)" ( (comma_expression "iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar23 = local_80.st_ino._4_4_" identifier = (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) , (comma_expression "iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar13 = (int)local_80.st_ino" identifier = (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier))) , (comma_expression "iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar11 = local_80.st_dev._4_4_" identifier = (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) , (comma_expression "iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar9 = (int)local_80.st_dev" identifier = (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier))) , (comma_expression "__dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "__dirp = fdopendir(local_e8)" identifier = (call_expression "fdopendir(local_e8)" identifier (argument_list "(local_e8)" ( identifier )))) , (comma_expression "bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2)" identifier = (binary_expression "(bVar6 || bVar7) || (bVar1 || bVar2)" (parenthesized_expression "(bVar6 || bVar7)" ( (binary_expression "bVar6 || bVar7" identifier || identifier) )) || (parenthesized_expression "(bVar1 || bVar2)" ( (binary_expression "bVar1 || bVar2" identifier || identifier) )))) , (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))))))) ))) )) (compound_statement "{\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }" { (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (goto_statement "goto LAB_0001d486;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));" statement_identifier : (do_statement "do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));" do (compound_statement "{\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      }" { (do_statement "do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));" do (compound_statement "{\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        }" { (expression_statement "*piVar17 = 0;" (assignment_expression "*piVar17 = 0" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "pdVar19 = readdir64(__dirp);" (assignment_expression "pdVar19 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }" if (parenthesized_expression "(pdVar19 == (dirent64 *)0x0)" ( (binary_expression "pdVar19 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }" { (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (if_statement "if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }" if (parenthesized_expression "((iVar18 == 0) && (bVar8))" ( (binary_expression "(iVar18 == 0) && (bVar8)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar8)" ( identifier ))) )) (compound_statement "{\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }" { (expression_statement "rewinddir(__dirp);" (call_expression "rewinddir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) (expression_statement "pdVar19 = readdir64(__dirp);" (assignment_expression "pdVar19 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }" if (parenthesized_expression "(pdVar19 != (dirent64 *)0x0)" ( (binary_expression "pdVar19 != (dirent64 *)0x0" identifier != (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar8 = bVar5;" (assignment_expression "bVar8 = bVar5" identifier = identifier) ;) (if_statement "if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;" if (parenthesized_expression "(pdVar19->d_name[0] == '.')" ( (binary_expression "pdVar19->d_name[0] == '.'" (subscript_expression "pdVar19->d_name[0]" (field_expression "pdVar19->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0001d3e8;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) })) (if_statement "if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n              *piVar17 = 2;\n              iVar18 = 2;\n            }" { (expression_statement "*piVar17 = 2;" (assignment_expression "*piVar17 = 2" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" identifier = number_literal) ;) })) (goto_statement "goto LAB_0001d417;" goto statement_identifier ;) })) (if_statement "if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }" if (parenthesized_expression "(pdVar19->d_name[0] == '.')" ( (binary_expression "pdVar19->d_name[0] == '.'" (subscript_expression "pdVar19->d_name[0]" (field_expression "pdVar19->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) (compound_statement "{\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }" { (labeled_statement "LAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;" statement_identifier : (if_statement "if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;" if (parenthesized_expression "((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))" ( (binary_expression "(pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e)" (parenthesized_expression "(pdVar19->d_name[1] == '\0')" ( (binary_expression "pdVar19->d_name[1] == '\0'" (subscript_expression "pdVar19->d_name[1]" (field_expression "pdVar19->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(short *)(pdVar19->d_name + 1) == 0x2e)" ( (binary_expression "*(short *)(pdVar19->d_name + 1) == 0x2e" (pointer_expression "*(short *)(pdVar19->d_name + 1)" * (cast_expression "(short *)(pdVar19->d_name + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar19->d_name + 1)" ( (binary_expression "pdVar19->d_name + 1" (field_expression "pdVar19->d_name" identifier -> field_identifier) + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_0001d168;" goto statement_identifier ;))) })) (expression_statement "bVar5 = bVar8;" (assignment_expression "bVar5 = bVar8" identifier = identifier) ;) }) while (parenthesized_expression "((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)))" ( (binary_expression "(bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11))" (parenthesized_expression "(bVar8)" ( identifier )) && (parenthesized_expression "(bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11))" ( (comma_expression "bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar3 = local_e0 == (int)pdVar19->d_ino" identifier = (binary_expression "local_e0 == (int)pdVar19->d_ino" identifier == (cast_expression "(int)pdVar19->d_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "pdVar19->d_ino" identifier -> field_identifier)))) , (comma_expression "bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4)" identifier = (binary_expression "local_dc == *(int *)((int)&pdVar19->d_ino + 4)" identifier == (pointer_expression "*(int *)((int)&pdVar19->d_ino + 4)" * (cast_expression "(int *)((int)&pdVar19->d_ino + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pdVar19->d_ino + 4)" ( (binary_expression "(int)&pdVar19->d_ino + 4" (cast_expression "(int)&pdVar19->d_ino" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pdVar19->d_ino" & (field_expression "pdVar19->d_ino" identifier -> field_identifier))) + number_literal) )))))) , (comma_expression "bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11)" identifier = (binary_expression "bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11)" (binary_expression "bVar3 && bVar4" identifier && identifier) || (parenthesized_expression "(iVar9 != local_c0 || local_c8 != iVar11)" ( (binary_expression "iVar9 != local_c0 || local_c8 != iVar11" (binary_expression "iVar9 != local_c0" identifier != identifier) || (binary_expression "local_c8 != iVar11" identifier != identifier)) )))) , (binary_expression "(!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (parenthesized_expression "(!bVar3 || !bVar4)" ( (binary_expression "!bVar3 || !bVar4" (unary_expression "!bVar3" ! identifier) || (unary_expression "!bVar4" ! identifier)) )) && (parenthesized_expression "(iVar9 == local_c0 && local_c8 == iVar11)" ( (binary_expression "iVar9 == local_c0 && local_c8 == iVar11" (binary_expression "iVar9 == local_c0" identifier == identifier) && (binary_expression "local_c8 == iVar11" identifier == identifier)) )))))) ))) )) ;) (expression_statement "__filename = pdVar19->d_name;" (assignment_expression "__filename = pdVar19->d_name" identifier = (field_expression "pdVar19->d_name" identifier -> field_identifier)) ;) (expression_statement "iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);" (assignment_expression "iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100)" identifier = (call_expression "__fxstatat64(3,local_e8,__filename,&local_80,0x100)" identifier (argument_list "(3,local_e8,__filename,&local_80,0x100)" ( number_literal , identifier , identifier , (pointer_expression "&local_80" & identifier) , number_literal )))) ;) (expression_statement "bVar8 = bVar5;" (assignment_expression "bVar8 = bVar5" identifier = identifier) ;) }) while (parenthesized_expression "((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino))" ( (binary_expression "(((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino)" (parenthesized_expression "(((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev))" ( (binary_expression "((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)" (parenthesized_expression "((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000))" ( (binary_expression "(iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)" (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) || (parenthesized_expression "((local_80.st_mode & 0xf000) != 0x4000)" ( (binary_expression "(local_80.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(local_80.st_mode & 0xf000)" ( (binary_expression "local_80.st_mode & 0xf000" (field_expression "local_80.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)" ( (binary_expression "local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev" (binary_expression "local_c8 != local_80.st_dev._4_4_" identifier != (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) || (binary_expression "local_c0 != (int)local_80.st_dev" identifier != (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier)))) ))) )) || (parenthesized_expression "(local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino)" ( (binary_expression "local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino" (binary_expression "local_dc != local_80.st_ino._4_4_" identifier != (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) || (binary_expression "local_e0 != (int)local_80.st_ino" identifier != (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier)))) ))) )) ;)) (expression_statement "uVar20 = (int)local_a8 - (int)local_d0;" (assignment_expression "uVar20 = (int)local_a8 - (int)local_d0" identifier = (binary_expression "(int)local_a8 - (int)local_d0" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "__n = strlen(__filename);" (assignment_expression "__n = strlen(__filename)" identifier = (call_expression "strlen(__filename)" identifier (argument_list "(__filename)" ( identifier )))) ;) (if_statement "if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(uVar20 <= __n)" ( (binary_expression "uVar20 <= __n" identifier <= identifier) )) (compound_statement "{\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }" { (if_statement "if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }" { (expression_statement "sVar22 = local_c4;" (assignment_expression "sVar22 = local_c4" identifier = identifier) ;) (if_statement "if (local_c4 <= __n) {\n            sVar22 = __n;\n          }" if (parenthesized_expression "(local_c4 <= __n)" ( (binary_expression "local_c4 <= __n" identifier <= identifier) )) (compound_statement "{\n            sVar22 = __n;\n          }" { (expression_statement "sVar22 = __n;" (assignment_expression "sVar22 = __n" identifier = identifier) ;) })) (if_statement "if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }" if (parenthesized_expression "((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0))" ( (binary_expression "(!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)" (parenthesized_expression "(!CARRY4(local_c4,sVar22))" ( (unary_expression "!CARRY4(local_c4,sVar22)" ! (call_expression "CARRY4(local_c4,sVar22)" identifier (argument_list "(local_c4,sVar22)" ( identifier , identifier )))) )) && (parenthesized_expression "(pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)" ( (comma_expression "pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0" (assignment_expression "pvVar21 = realloc(local_d0,local_c4 + sVar22)" identifier = (call_expression "realloc(local_d0,local_c4 + sVar22)" identifier (argument_list "(local_d0,local_c4 + sVar22)" ( identifier , (binary_expression "local_c4 + sVar22" identifier + identifier) )))) , (binary_expression "pvVar21 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }" { (expression_statement "local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);" (assignment_expression "local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" identifier = (call_expression "memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" identifier (argument_list "((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" ( (cast_expression "(void *)(sVar22 + uVar20 + (int)pvVar21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar22 + uVar20 + (int)pvVar21)" ( (binary_expression "sVar22 + uVar20 + (int)pvVar21" (binary_expression "sVar22 + uVar20" identifier + identifier) + (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (cast_expression "(void *)(uVar20 + (int)pvVar21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 + (int)pvVar21)" ( (binary_expression "uVar20 + (int)pvVar21" identifier + (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "local_c4 - uVar20" identifier - identifier) )))) ;) (expression_statement "local_d0 = pvVar21;" (assignment_expression "local_d0 = pvVar21" identifier = identifier) ;) (expression_statement "local_c4 = local_c4 + sVar22;" (assignment_expression "local_c4 = local_c4 + sVar22" identifier = (binary_expression "local_c4 + sVar22" identifier + identifier)) ;) (goto_statement "goto LAB_0001d2ce;" goto statement_identifier ;) })) (expression_statement "iVar18 = 0xc;" (assignment_expression "iVar18 = 0xc" identifier = number_literal) ;) (expression_statement "*piVar17 = 0xc;" (assignment_expression "*piVar17 = 0xc" (pointer_expression "*piVar17" * identifier) = number_literal) ;) }) (else_clause "else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" else (compound_statement "{\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" { (expression_statement "iVar18 = 0x22;" (assignment_expression "iVar18 = 0x22" identifier = number_literal) ;) (expression_statement "*piVar17 = 0x22;" (assignment_expression "*piVar17 = 0x22" (pointer_expression "*piVar17" * identifier) = number_literal) ;) }))) (labeled_statement "LAB_0001d417:\n        closedir(__dirp);" statement_identifier : (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);" statement_identifier : (expression_statement "pvVar21 = (void *)((int)local_a8 - __n);" (assignment_expression "pvVar21 = (void *)((int)local_a8 - __n)" identifier = (cast_expression "(void *)((int)local_a8 - __n)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - __n)" ( (binary_expression "(int)local_a8 - __n" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;)) (expression_statement "memcpy(pvVar21,__filename,__n);" (call_expression "memcpy(pvVar21,__filename,__n)" identifier (argument_list "(pvVar21,__filename,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_c8 = iVar11;" (assignment_expression "local_c8 = iVar11" identifier = identifier) ;) (expression_statement "local_a8 = (void *)((int)pvVar21 + -1);" (assignment_expression "local_a8 = (void *)((int)pvVar21 + -1)" identifier = (cast_expression "(void *)((int)pvVar21 + -1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar21 + -1)" ( (binary_expression "(int)pvVar21 + -1" (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_e0 = iVar13;" (assignment_expression "local_e0 = iVar13" identifier = identifier) ;) (expression_statement "local_c0 = iVar9;" (assignment_expression "local_c0 = iVar9" identifier = identifier) ;) (expression_statement "*(undefined1 *)((int)pvVar21 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)pvVar21 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)pvVar21 + -1)" * (cast_expression "(undefined1 *)((int)pvVar21 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar21 + -1)" ( (binary_expression "(int)pvVar21 + -1" (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_dc = iVar23;" (assignment_expression "local_dc = iVar23" identifier = identifier) ;) }) while (parenthesized_expression "((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23))" ( (binary_expression "(iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23)" (parenthesized_expression "(iVar15 != iVar9 || iVar10 != iVar11)" ( (binary_expression "iVar15 != iVar9 || iVar10 != iVar11" (binary_expression "iVar15 != iVar9" identifier != identifier) || (binary_expression "iVar10 != iVar11" identifier != identifier)) )) || (parenthesized_expression "(iVar13 != iVar12 || iVar14 != iVar23)" ( (binary_expression "iVar13 != iVar12 || iVar14 != iVar23" (binary_expression "iVar13 != iVar12" identifier != identifier) || (binary_expression "iVar14 != iVar23" identifier != identifier)) ))) )) ;) (expression_statement "iVar18 = closedir(__dirp);" (assignment_expression "iVar18 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }" { (expression_statement "iVar23 = (int)local_d0 + local_c4;" (assignment_expression "iVar23 = (int)local_d0 + local_c4" identifier = (binary_expression "(int)local_d0 + local_c4" (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (goto_statement "goto LAB_0001d35f;" goto statement_identifier ;) })) }))) (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (labeled_statement "joined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }" statement_identifier : (if_statement "if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }" if (parenthesized_expression "(param_1 == (void *)0x0)" ( (binary_expression "param_1 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_d0);\n  }" { (expression_statement "free(local_d0);" (call_expression "free(local_d0)" identifier (argument_list "(local_d0)" ( identifier ))) ;) }))) (expression_statement "*piVar17 = iVar18;" (assignment_expression "*piVar17 = iVar18" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "local_d0 = (void *)0x0;" (assignment_expression "local_d0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" identifier = identifier) ;) (labeled_statement "LAB_0001cf78:\n  local_d0 = pvVar21;" statement_identifier : (expression_statement "local_d0 = pvVar21;" (assignment_expression "local_d0 = pvVar21" identifier = identifier) ;)) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0001d960();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0001d960();\n  }" { comment (expression_statement "FUN_0001d960();" (call_expression "FUN_0001d960()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_d0;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar * rpl_getcwd(char *buf,size_t size)\n\n{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  bool bVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  dirent64 *pdVar20;\n  uint uVar21;\n  size_t __n;\n  char *pcVar22;\n  size_t sVar23;\n  DIR *__dirp;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  char *local_d0;\n  char *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  char *local_a8;\n  stat st;\n  \n  local_cc = buf;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (size == 0) {\n    local_c4 = 0x1000;\n    if (buf != (char *)0x0) {\n      piVar18 = __errno_location();\n      local_d0 = (char *)0x0;\n      *piVar18 = 0x16;\n      pcVar24 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = (char *)malloc(local_c4);\n    pcVar24 = local_d0;\n    if (local_d0 == (char *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = size;\n    if (buf == (char *)0x0) goto LAB_0001cf5b;\n    local_d0 = buf;\n  }\n  pcVar24 = local_d0 + local_c4;\n  pcVar24[-1] = '\0';\n  iVar16 = __lxstat64(3,".",(stat64 *)&st);\n  iVar14 = st.st_ino._4_4_;\n  iVar12 = (int)st.st_ino;\n  iVar10 = st.st_dev._4_4_;\n  iVar19 = (int)st.st_dev;\n  if (iVar16 < 0) {\nLAB_0001d440:\n    piVar18 = __errno_location();\n  }\n  else {\n    local_c8 = st.st_dev._4_4_;\n    local_c0 = (int)st.st_dev;\n    local_e0 = (int)st.st_ino;\n    local_dc = st.st_ino._4_4_;\n    iVar17 = __lxstat64(3,"/",(stat64 *)&st);\n    iVar15 = st.st_ino._4_4_;\n    iVar13 = (int)st.st_ino;\n    iVar11 = st.st_dev._4_4_;\n    iVar16 = (int)st.st_dev;\n    if (iVar17 < 0) goto LAB_0001d440;\n    local_a8 = pcVar24 + -1;\n    bVar7 = iVar19 != (int)st.st_dev;\n    bVar8 = iVar10 != st.st_dev._4_4_;\n    bVar2 = iVar12 != (int)st.st_ino;\n    bVar3 = iVar14 != st.st_ino._4_4_;\n    if ((!bVar7 && !bVar8) && (!bVar2 && !bVar3)) {\nLAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }\n      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);\n      if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }\n      pcVar24 = local_cc;\n      if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar18 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);\n      if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));\n      uVar21 = (int)local_a8 - (int)local_d0;\n      __n = strlen(pcVar24);\n      if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;\n      memcpy(pcVar22,pcVar24,__n);\n      local_c8 = iVar12;\n      local_a8 = pcVar22 + -1;\n      local_e0 = iVar14;\n      local_c0 = iVar10;\n      pcVar22[-1] = '/';\n      local_dc = iVar17;\n    } while ((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17));\n    iVar19 = closedir(__dirp);\n    if (iVar19 == 0) {\n      pcVar24 = local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar19 = *piVar18;\njoined_r0x0001d429:\n  if (buf == (char *)0x0) {\n    free(local_d0);\n  }\n  *piVar18 = iVar19;\n  local_d0 = (char *)0x0;\n  pcVar24 = local_d0;\nLAB_0001cf78:\n  local_d0 = pcVar24;\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_d0;\n}\n\n" comment (function_definition "char * rpl_getcwd(char *buf,size_t size)\n\n{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  bool bVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  dirent64 *pdVar20;\n  uint uVar21;\n  size_t __n;\n  char *pcVar22;\n  size_t sVar23;\n  DIR *__dirp;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  char *local_d0;\n  char *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  char *local_a8;\n  stat st;\n  \n  local_cc = buf;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (size == 0) {\n    local_c4 = 0x1000;\n    if (buf != (char *)0x0) {\n      piVar18 = __errno_location();\n      local_d0 = (char *)0x0;\n      *piVar18 = 0x16;\n      pcVar24 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = (char *)malloc(local_c4);\n    pcVar24 = local_d0;\n    if (local_d0 == (char *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = size;\n    if (buf == (char *)0x0) goto LAB_0001cf5b;\n    local_d0 = buf;\n  }\n  pcVar24 = local_d0 + local_c4;\n  pcVar24[-1] = '\0';\n  iVar16 = __lxstat64(3,".",(stat64 *)&st);\n  iVar14 = st.st_ino._4_4_;\n  iVar12 = (int)st.st_ino;\n  iVar10 = st.st_dev._4_4_;\n  iVar19 = (int)st.st_dev;\n  if (iVar16 < 0) {\nLAB_0001d440:\n    piVar18 = __errno_location();\n  }\n  else {\n    local_c8 = st.st_dev._4_4_;\n    local_c0 = (int)st.st_dev;\n    local_e0 = (int)st.st_ino;\n    local_dc = st.st_ino._4_4_;\n    iVar17 = __lxstat64(3,"/",(stat64 *)&st);\n    iVar15 = st.st_ino._4_4_;\n    iVar13 = (int)st.st_ino;\n    iVar11 = st.st_dev._4_4_;\n    iVar16 = (int)st.st_dev;\n    if (iVar17 < 0) goto LAB_0001d440;\n    local_a8 = pcVar24 + -1;\n    bVar7 = iVar19 != (int)st.st_dev;\n    bVar8 = iVar10 != st.st_dev._4_4_;\n    bVar2 = iVar12 != (int)st.st_ino;\n    bVar3 = iVar14 != st.st_ino._4_4_;\n    if ((!bVar7 && !bVar8) && (!bVar2 && !bVar3)) {\nLAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }\n      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);\n      if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }\n      pcVar24 = local_cc;\n      if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar18 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);\n      if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));\n      uVar21 = (int)local_a8 - (int)local_d0;\n      __n = strlen(pcVar24);\n      if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;\n      memcpy(pcVar22,pcVar24,__n);\n      local_c8 = iVar12;\n      local_a8 = pcVar22 + -1;\n      local_e0 = iVar14;\n      local_c0 = iVar10;\n      pcVar22[-1] = '/';\n      local_dc = iVar17;\n    } while ((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17));\n    iVar19 = closedir(__dirp);\n    if (iVar19 == 0) {\n      pcVar24 = local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar19 = *piVar18;\njoined_r0x0001d429:\n  if (buf == (char *)0x0) {\n    free(local_d0);\n  }\n  *piVar18 = iVar19;\n  local_d0 = (char *)0x0;\n  pcVar24 = local_d0;\nLAB_0001cf78:\n  local_d0 = pcVar24;\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_d0;\n}" primitive_type (pointer_declarator "* rpl_getcwd(char *buf,size_t size)" * (function_declarator "rpl_getcwd(char *buf,size_t size)" identifier (parameter_list "(char *buf,size_t size)" ( (parameter_declaration "char *buf" primitive_type (pointer_declarator "*buf" * identifier)) , (parameter_declaration "size_t size" primitive_type identifier) )))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  bool bVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  dirent64 *pdVar20;\n  uint uVar21;\n  size_t __n;\n  char *pcVar22;\n  size_t sVar23;\n  DIR *__dirp;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  char *local_d0;\n  char *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  char *local_a8;\n  stat st;\n  \n  local_cc = buf;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (size == 0) {\n    local_c4 = 0x1000;\n    if (buf != (char *)0x0) {\n      piVar18 = __errno_location();\n      local_d0 = (char *)0x0;\n      *piVar18 = 0x16;\n      pcVar24 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = (char *)malloc(local_c4);\n    pcVar24 = local_d0;\n    if (local_d0 == (char *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = size;\n    if (buf == (char *)0x0) goto LAB_0001cf5b;\n    local_d0 = buf;\n  }\n  pcVar24 = local_d0 + local_c4;\n  pcVar24[-1] = '\0';\n  iVar16 = __lxstat64(3,".",(stat64 *)&st);\n  iVar14 = st.st_ino._4_4_;\n  iVar12 = (int)st.st_ino;\n  iVar10 = st.st_dev._4_4_;\n  iVar19 = (int)st.st_dev;\n  if (iVar16 < 0) {\nLAB_0001d440:\n    piVar18 = __errno_location();\n  }\n  else {\n    local_c8 = st.st_dev._4_4_;\n    local_c0 = (int)st.st_dev;\n    local_e0 = (int)st.st_ino;\n    local_dc = st.st_ino._4_4_;\n    iVar17 = __lxstat64(3,"/",(stat64 *)&st);\n    iVar15 = st.st_ino._4_4_;\n    iVar13 = (int)st.st_ino;\n    iVar11 = st.st_dev._4_4_;\n    iVar16 = (int)st.st_dev;\n    if (iVar17 < 0) goto LAB_0001d440;\n    local_a8 = pcVar24 + -1;\n    bVar7 = iVar19 != (int)st.st_dev;\n    bVar8 = iVar10 != st.st_dev._4_4_;\n    bVar2 = iVar12 != (int)st.st_ino;\n    bVar3 = iVar14 != st.st_ino._4_4_;\n    if ((!bVar7 && !bVar8) && (!bVar2 && !bVar3)) {\nLAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }\n      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);\n      if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }\n      pcVar24 = local_cc;\n      if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar18 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);\n      if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));\n      uVar21 = (int)local_a8 - (int)local_d0;\n      __n = strlen(pcVar24);\n      if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;\n      memcpy(pcVar22,pcVar24,__n);\n      local_c8 = iVar12;\n      local_a8 = pcVar22 + -1;\n      local_e0 = iVar14;\n      local_c0 = iVar10;\n      pcVar22[-1] = '/';\n      local_dc = iVar17;\n    } while ((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17));\n    iVar19 = closedir(__dirp);\n    if (iVar19 == 0) {\n      pcVar24 = local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar19 = *piVar18;\njoined_r0x0001d429:\n  if (buf == (char *)0x0) {\n    free(local_d0);\n  }\n  *piVar18 = iVar19;\n  local_d0 = (char *)0x0;\n  pcVar24 = local_d0;\nLAB_0001cf78:\n  local_d0 = pcVar24;\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_d0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "dirent64 *pdVar20;" type_identifier (pointer_declarator "*pdVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "size_t sVar23;" primitive_type identifier ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "char *local_d0;" primitive_type (pointer_declarator "*local_d0" * identifier) ;) (declaration "char *local_cc;" primitive_type (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "size_t local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "stat st;" type_identifier identifier ;) (expression_statement "local_cc = buf;" (assignment_expression "local_cc = buf" identifier = identifier) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (size == 0) {\n    local_c4 = 0x1000;\n    if (buf != (char *)0x0) {\n      piVar18 = __errno_location();\n      local_d0 = (char *)0x0;\n      *piVar18 = 0x16;\n      pcVar24 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = (char *)malloc(local_c4);\n    pcVar24 = local_d0;\n    if (local_d0 == (char *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = size;\n    if (buf == (char *)0x0) goto LAB_0001cf5b;\n    local_d0 = buf;\n  }" if (parenthesized_expression "(size == 0)" ( (binary_expression "size == 0" identifier == number_literal) )) (compound_statement "{\n    local_c4 = 0x1000;\n    if (buf != (char *)0x0) {\n      piVar18 = __errno_location();\n      local_d0 = (char *)0x0;\n      *piVar18 = 0x16;\n      pcVar24 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = (char *)malloc(local_c4);\n    pcVar24 = local_d0;\n    if (local_d0 == (char *)0x0) goto LAB_0001cf78;\n  }" { (expression_statement "local_c4 = 0x1000;" (assignment_expression "local_c4 = 0x1000" identifier = number_literal) ;) (if_statement "if (buf != (char *)0x0) {\n      piVar18 = __errno_location();\n      local_d0 = (char *)0x0;\n      *piVar18 = 0x16;\n      pcVar24 = local_d0;\n      goto LAB_0001cf78;\n    }" if (parenthesized_expression "(buf != (char *)0x0)" ( (binary_expression "buf != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar18 = __errno_location();\n      local_d0 = (char *)0x0;\n      *piVar18 = 0x16;\n      pcVar24 = local_d0;\n      goto LAB_0001cf78;\n    }" { (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d0 = (char *)0x0;" (assignment_expression "local_d0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*piVar18 = 0x16;" (assignment_expression "*piVar18 = 0x16" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "pcVar24 = local_d0;" (assignment_expression "pcVar24 = local_d0" identifier = identifier) ;) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;) })) (labeled_statement "LAB_0001cf5b:\n    local_d0 = (char *)malloc(local_c4);" statement_identifier : (expression_statement "local_d0 = (char *)malloc(local_c4);" (assignment_expression "local_d0 = (char *)malloc(local_c4)" identifier = (cast_expression "(char *)malloc(local_c4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(local_c4)" identifier (argument_list "(local_c4)" ( identifier ))))) ;)) (expression_statement "pcVar24 = local_d0;" (assignment_expression "pcVar24 = local_d0" identifier = identifier) ;) (if_statement "if (local_d0 == (char *)0x0) goto LAB_0001cf78;" if (parenthesized_expression "(local_d0 == (char *)0x0)" ( (binary_expression "local_d0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;)) }) (else_clause "else {\n    local_c4 = size;\n    if (buf == (char *)0x0) goto LAB_0001cf5b;\n    local_d0 = buf;\n  }" else (compound_statement "{\n    local_c4 = size;\n    if (buf == (char *)0x0) goto LAB_0001cf5b;\n    local_d0 = buf;\n  }" { (expression_statement "local_c4 = size;" (assignment_expression "local_c4 = size" identifier = identifier) ;) (if_statement "if (buf == (char *)0x0) goto LAB_0001cf5b;" if (parenthesized_expression "(buf == (char *)0x0)" ( (binary_expression "buf == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cf5b;" goto statement_identifier ;)) (expression_statement "local_d0 = buf;" (assignment_expression "local_d0 = buf" identifier = identifier) ;) }))) (expression_statement "pcVar24 = local_d0 + local_c4;" (assignment_expression "pcVar24 = local_d0 + local_c4" identifier = (binary_expression "local_d0 + local_c4" identifier + identifier)) ;) (expression_statement "pcVar24[-1] = '\0';" (assignment_expression "pcVar24[-1] = '\0'" (subscript_expression "pcVar24[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar16 = __lxstat64(3,".",(stat64 *)&st);" (assignment_expression "iVar16 = __lxstat64(3,".",(stat64 *)&st)" identifier = (call_expression "__lxstat64(3,".",(stat64 *)&st)" identifier (argument_list "(3,".",(stat64 *)&st)" ( number_literal , (string_literal ""."" " string_content ") , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) (expression_statement "iVar14 = st.st_ino._4_4_;" (assignment_expression "iVar14 = st.st_ino._4_4_" identifier = (field_expression "st.st_ino._4_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar12 = (int)st.st_ino;" (assignment_expression "iVar12 = (int)st.st_ino" identifier = (cast_expression "(int)st.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_ino" identifier . field_identifier))) ;) (expression_statement "iVar10 = st.st_dev._4_4_;" (assignment_expression "iVar10 = st.st_dev._4_4_" identifier = (field_expression "st.st_dev._4_4_" (field_expression "st.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar19 = (int)st.st_dev;" (assignment_expression "iVar19 = (int)st.st_dev" identifier = (cast_expression "(int)st.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_dev" identifier . field_identifier))) ;) (if_statement "if (iVar16 < 0) {\nLAB_0001d440:\n    piVar18 = __errno_location();\n  }\n  else {\n    local_c8 = st.st_dev._4_4_;\n    local_c0 = (int)st.st_dev;\n    local_e0 = (int)st.st_ino;\n    local_dc = st.st_ino._4_4_;\n    iVar17 = __lxstat64(3,"/",(stat64 *)&st);\n    iVar15 = st.st_ino._4_4_;\n    iVar13 = (int)st.st_ino;\n    iVar11 = st.st_dev._4_4_;\n    iVar16 = (int)st.st_dev;\n    if (iVar17 < 0) goto LAB_0001d440;\n    local_a8 = pcVar24 + -1;\n    bVar7 = iVar19 != (int)st.st_dev;\n    bVar8 = iVar10 != st.st_dev._4_4_;\n    bVar2 = iVar12 != (int)st.st_ino;\n    bVar3 = iVar14 != st.st_ino._4_4_;\n    if ((!bVar7 && !bVar8) && (!bVar2 && !bVar3)) {\nLAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }\n      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);\n      if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }\n      pcVar24 = local_cc;\n      if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar18 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);\n      if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));\n      uVar21 = (int)local_a8 - (int)local_d0;\n      __n = strlen(pcVar24);\n      if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;\n      memcpy(pcVar22,pcVar24,__n);\n      local_c8 = iVar12;\n      local_a8 = pcVar22 + -1;\n      local_e0 = iVar14;\n      local_c0 = iVar10;\n      pcVar22[-1] = '/';\n      local_dc = iVar17;\n    } while ((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17));\n    iVar19 = closedir(__dirp);\n    if (iVar19 == 0) {\n      pcVar24 = local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0001d440:\n    piVar18 = __errno_location();\n  }" { (labeled_statement "LAB_0001d440:\n    piVar18 = __errno_location();" statement_identifier : (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) }) (else_clause "else {\n    local_c8 = st.st_dev._4_4_;\n    local_c0 = (int)st.st_dev;\n    local_e0 = (int)st.st_ino;\n    local_dc = st.st_ino._4_4_;\n    iVar17 = __lxstat64(3,"/",(stat64 *)&st);\n    iVar15 = st.st_ino._4_4_;\n    iVar13 = (int)st.st_ino;\n    iVar11 = st.st_dev._4_4_;\n    iVar16 = (int)st.st_dev;\n    if (iVar17 < 0) goto LAB_0001d440;\n    local_a8 = pcVar24 + -1;\n    bVar7 = iVar19 != (int)st.st_dev;\n    bVar8 = iVar10 != st.st_dev._4_4_;\n    bVar2 = iVar12 != (int)st.st_ino;\n    bVar3 = iVar14 != st.st_ino._4_4_;\n    if ((!bVar7 && !bVar8) && (!bVar2 && !bVar3)) {\nLAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }\n      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);\n      if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }\n      pcVar24 = local_cc;\n      if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar18 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);\n      if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));\n      uVar21 = (int)local_a8 - (int)local_d0;\n      __n = strlen(pcVar24);\n      if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;\n      memcpy(pcVar22,pcVar24,__n);\n      local_c8 = iVar12;\n      local_a8 = pcVar22 + -1;\n      local_e0 = iVar14;\n      local_c0 = iVar10;\n      pcVar22[-1] = '/';\n      local_dc = iVar17;\n    } while ((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17));\n    iVar19 = closedir(__dirp);\n    if (iVar19 == 0) {\n      pcVar24 = local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" else (compound_statement "{\n    local_c8 = st.st_dev._4_4_;\n    local_c0 = (int)st.st_dev;\n    local_e0 = (int)st.st_ino;\n    local_dc = st.st_ino._4_4_;\n    iVar17 = __lxstat64(3,"/",(stat64 *)&st);\n    iVar15 = st.st_ino._4_4_;\n    iVar13 = (int)st.st_ino;\n    iVar11 = st.st_dev._4_4_;\n    iVar16 = (int)st.st_dev;\n    if (iVar17 < 0) goto LAB_0001d440;\n    local_a8 = pcVar24 + -1;\n    bVar7 = iVar19 != (int)st.st_dev;\n    bVar8 = iVar10 != st.st_dev._4_4_;\n    bVar2 = iVar12 != (int)st.st_ino;\n    bVar3 = iVar14 != st.st_ino._4_4_;\n    if ((!bVar7 && !bVar8) && (!bVar2 && !bVar3)) {\nLAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }\n      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);\n      if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }\n      pcVar24 = local_cc;\n      if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar18 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);\n      if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));\n      uVar21 = (int)local_a8 - (int)local_d0;\n      __n = strlen(pcVar24);\n      if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;\n      memcpy(pcVar22,pcVar24,__n);\n      local_c8 = iVar12;\n      local_a8 = pcVar22 + -1;\n      local_e0 = iVar14;\n      local_c0 = iVar10;\n      pcVar22[-1] = '/';\n      local_dc = iVar17;\n    } while ((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17));\n    iVar19 = closedir(__dirp);\n    if (iVar19 == 0) {\n      pcVar24 = local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" { (expression_statement "local_c8 = st.st_dev._4_4_;" (assignment_expression "local_c8 = st.st_dev._4_4_" identifier = (field_expression "st.st_dev._4_4_" (field_expression "st.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_c0 = (int)st.st_dev;" (assignment_expression "local_c0 = (int)st.st_dev" identifier = (cast_expression "(int)st.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_dev" identifier . field_identifier))) ;) (expression_statement "local_e0 = (int)st.st_ino;" (assignment_expression "local_e0 = (int)st.st_ino" identifier = (cast_expression "(int)st.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_ino" identifier . field_identifier))) ;) (expression_statement "local_dc = st.st_ino._4_4_;" (assignment_expression "local_dc = st.st_ino._4_4_" identifier = (field_expression "st.st_ino._4_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar17 = __lxstat64(3,"/",(stat64 *)&st);" (assignment_expression "iVar17 = __lxstat64(3,"/",(stat64 *)&st)" identifier = (call_expression "__lxstat64(3,"/",(stat64 *)&st)" identifier (argument_list "(3,"/",(stat64 *)&st)" ( number_literal , (string_literal ""/"" " string_content ") , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) (expression_statement "iVar15 = st.st_ino._4_4_;" (assignment_expression "iVar15 = st.st_ino._4_4_" identifier = (field_expression "st.st_ino._4_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar13 = (int)st.st_ino;" (assignment_expression "iVar13 = (int)st.st_ino" identifier = (cast_expression "(int)st.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_ino" identifier . field_identifier))) ;) (expression_statement "iVar11 = st.st_dev._4_4_;" (assignment_expression "iVar11 = st.st_dev._4_4_" identifier = (field_expression "st.st_dev._4_4_" (field_expression "st.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar16 = (int)st.st_dev;" (assignment_expression "iVar16 = (int)st.st_dev" identifier = (cast_expression "(int)st.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_dev" identifier . field_identifier))) ;) (if_statement "if (iVar17 < 0) goto LAB_0001d440;" if (parenthesized_expression "(iVar17 < 0)" ( (binary_expression "iVar17 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0001d440;" goto statement_identifier ;)) (expression_statement "local_a8 = pcVar24 + -1;" (assignment_expression "local_a8 = pcVar24 + -1" identifier = (binary_expression "pcVar24 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = iVar19 != (int)st.st_dev;" (assignment_expression "bVar7 = iVar19 != (int)st.st_dev" identifier = (binary_expression "iVar19 != (int)st.st_dev" identifier != (cast_expression "(int)st.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_dev" identifier . field_identifier)))) ;) (expression_statement "bVar8 = iVar10 != st.st_dev._4_4_;" (assignment_expression "bVar8 = iVar10 != st.st_dev._4_4_" identifier = (binary_expression "iVar10 != st.st_dev._4_4_" identifier != (field_expression "st.st_dev._4_4_" (field_expression "st.st_dev" identifier . field_identifier) . field_identifier))) ;) (expression_statement "bVar2 = iVar12 != (int)st.st_ino;" (assignment_expression "bVar2 = iVar12 != (int)st.st_ino" identifier = (binary_expression "iVar12 != (int)st.st_ino" identifier != (cast_expression "(int)st.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_ino" identifier . field_identifier)))) ;) (expression_statement "bVar3 = iVar14 != st.st_ino._4_4_;" (assignment_expression "bVar3 = iVar14 != st.st_ino._4_4_" identifier = (binary_expression "iVar14 != st.st_ino._4_4_" identifier != (field_expression "st.st_ino._4_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier))) ;) (if_statement "if ((!bVar7 && !bVar8) && (!bVar2 && !bVar3)) {\nLAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }\n      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);\n      if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }\n      pcVar24 = local_cc;\n      if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }" if (parenthesized_expression "((!bVar7 && !bVar8) && (!bVar2 && !bVar3))" ( (binary_expression "(!bVar7 && !bVar8) && (!bVar2 && !bVar3)" (parenthesized_expression "(!bVar7 && !bVar8)" ( (binary_expression "!bVar7 && !bVar8" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) && (parenthesized_expression "(!bVar2 && !bVar3)" ( (binary_expression "!bVar2 && !bVar3" (unary_expression "!bVar2" ! identifier) && (unary_expression "!bVar3" ! identifier)) ))) )) (compound_statement "{\nLAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }\n      memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);\n      if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }\n      pcVar24 = local_cc;\n      if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }" { (labeled_statement "LAB_0001d35f:\n      if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }" statement_identifier : (if_statement "if (local_a8 == local_d0 + (local_c4 - 1)) {\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }" if (parenthesized_expression "(local_a8 == local_d0 + (local_c4 - 1))" ( (binary_expression "local_a8 == local_d0 + (local_c4 - 1)" identifier == (binary_expression "local_d0 + (local_c4 - 1)" identifier + (parenthesized_expression "(local_c4 - 1)" ( (binary_expression "local_c4 - 1" identifier - number_literal) )))) )) (compound_statement "{\n        local_a8[-1] = '/';\n        local_a8 = local_a8 + -1;\n      }" { (expression_statement "local_a8[-1] = '/';" (assignment_expression "local_a8[-1] = '/'" (subscript_expression "local_a8[-1]" identifier [ number_literal ]) = (char_literal "'/'" ' character ')) ;) (expression_statement "local_a8 = local_a8 + -1;" (assignment_expression "local_a8 = local_a8 + -1" identifier = (binary_expression "local_a8 + -1" identifier + number_literal)) ;) }))) (expression_statement "memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8);" (call_expression "memmove(local_d0,local_a8,(int)pcVar24 - (int)local_a8)" identifier (argument_list "(local_d0,local_a8,(int)pcVar24 - (int)local_a8)" ( identifier , identifier , (binary_expression "(int)pcVar24 - (int)local_a8" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (if_statement "if (size == 0) {\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }" if (parenthesized_expression "(size == 0)" ( (binary_expression "size == 0" identifier == number_literal) )) (compound_statement "{\n        local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);\n      }" { (expression_statement "local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8);" (assignment_expression "local_cc = (char *)realloc(local_d0,(int)pcVar24 - (int)local_a8)" identifier = (cast_expression "(char *)realloc(local_d0,(int)pcVar24 - (int)local_a8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "realloc(local_d0,(int)pcVar24 - (int)local_a8)" identifier (argument_list "(local_d0,(int)pcVar24 - (int)local_a8)" ( identifier , (binary_expression "(int)pcVar24 - (int)local_a8" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) })) (expression_statement "pcVar24 = local_cc;" (assignment_expression "pcVar24 = local_cc" identifier = identifier) ;) (if_statement "if (local_cc == (char *)0x0) {\n        pcVar24 = local_d0;\n      }" if (parenthesized_expression "(local_cc == (char *)0x0)" ( (binary_expression "local_cc == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar24 = local_d0;\n      }" { (expression_statement "pcVar24 = local_d0;" (assignment_expression "pcVar24 = local_d0" identifier = identifier) ;) })) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;) })) (expression_statement "piVar18 = __errno_location();" (assignment_expression "piVar18 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_e8 = -100;" (assignment_expression "local_e8 = -100" identifier = number_literal) ;) (expression_statement "__dirp = (DIR *)0x0;" (assignment_expression "__dirp = (DIR *)0x0" identifier = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);\n      if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));\n      uVar21 = (int)local_a8 - (int)local_d0;\n      __n = strlen(pcVar24);\n      if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;\n      memcpy(pcVar22,pcVar24,__n);\n      local_c8 = iVar12;\n      local_a8 = pcVar22 + -1;\n      local_e0 = iVar14;\n      local_c0 = iVar10;\n      pcVar22[-1] = '/';\n      local_dc = iVar17;\n    } while ((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17));" do (compound_statement "{\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);\n      if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));\n      uVar21 = (int)local_a8 - (int)local_d0;\n      __n = strlen(pcVar24);\n      if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;\n      memcpy(pcVar22,pcVar24,__n);\n      local_c8 = iVar12;\n      local_a8 = pcVar22 + -1;\n      local_e0 = iVar14;\n      local_c0 = iVar10;\n      pcVar22[-1] = '/';\n      local_dc = iVar17;\n    }" { (expression_statement "local_e8 = openat64(local_e8,"..",0);" (assignment_expression "local_e8 = openat64(local_e8,"..",0)" identifier = (call_expression "openat64(local_e8,"..",0)" identifier (argument_list "(local_e8,"..",0)" ( identifier , (string_literal "".."" " string_content ") , number_literal )))) ;) (if_statement "if (local_e8 < 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(local_e8 < 0)" ( (binary_expression "local_e8 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }" { (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (if_statement "if (__dirp != (DIR *)0x0) goto LAB_0001d417;" if (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d417;" goto statement_identifier ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (expression_statement "iVar19 = __fxstat64(3,local_e8,(stat64 *)&st);" (assignment_expression "iVar19 = __fxstat64(3,local_e8,(stat64 *)&st)" identifier = (call_expression "__fxstat64(3,local_e8,(stat64 *)&st)" identifier (argument_list "(3,local_e8,(stat64 *)&st)" ( number_literal , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) (if_statement "if (iVar19 != 0) {\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar19 = *piVar18;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }" { (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (if_statement "if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }" if (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          closedir(__dirp);\n        }" { (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) })) (labeled_statement "LAB_0001d486:\n        close(local_e8);" statement_identifier : (expression_statement "close(local_e8);" (call_expression "close(local_e8)" identifier (argument_list "(local_e8)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (if_statement "if (((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)) {\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }" if (parenthesized_expression "(((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0))" ( (binary_expression "((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)) ||\n         (iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)" (parenthesized_expression "((__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0))" ( (binary_expression "(__dirp != (DIR *)0x0) && (iVar19 = closedir(__dirp), iVar19 != 0)" (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar19 = closedir(__dirp), iVar19 != 0)" ( (comma_expression "iVar19 = closedir(__dirp), iVar19 != 0" (assignment_expression "iVar19 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) , (binary_expression "iVar19 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0)" ( (comma_expression "iVar17 = st.st_ino._4_4_, iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0" (assignment_expression "iVar17 = st.st_ino._4_4_" identifier = (field_expression "st.st_ino._4_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier)) , (comma_expression "iVar14 = (int)st.st_ino, iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0" (assignment_expression "iVar14 = (int)st.st_ino" identifier = (cast_expression "(int)st.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_ino" identifier . field_identifier))) , (comma_expression "iVar12 = st.st_dev._4_4_,\n         iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0" (assignment_expression "iVar12 = st.st_dev._4_4_" identifier = (field_expression "st.st_dev._4_4_" (field_expression "st.st_dev" identifier . field_identifier) . field_identifier)) , (comma_expression "iVar10 = (int)st.st_dev, __dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0" (assignment_expression "iVar10 = (int)st.st_dev" identifier = (cast_expression "(int)st.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_dev" identifier . field_identifier))) , (comma_expression "__dirp = fdopendir(local_e8),\n         bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0" (assignment_expression "__dirp = fdopendir(local_e8)" identifier = (call_expression "fdopendir(local_e8)" identifier (argument_list "(local_e8)" ( identifier )))) , (comma_expression "bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3), __dirp == (DIR *)0x0" (assignment_expression "bVar9 = (bVar7 || bVar8) || (bVar2 || bVar3)" identifier = (binary_expression "(bVar7 || bVar8) || (bVar2 || bVar3)" (parenthesized_expression "(bVar7 || bVar8)" ( (binary_expression "bVar7 || bVar8" identifier || identifier) )) || (parenthesized_expression "(bVar2 || bVar3)" ( (binary_expression "bVar2 || bVar3" identifier || identifier) )))) , (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))))))) ))) )) (compound_statement "{\n        iVar19 = *piVar18;\n        goto LAB_0001d486;\n      }" { (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (goto_statement "goto LAB_0001d486;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d168:\n      do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));" statement_identifier : (do_statement "do {\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      } while ((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino));" do (compound_statement "{\n        do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));\n        pcVar24 = pdVar20->d_name;\n        iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);\n        bVar9 = bVar6;\n      }" { (do_statement "do {\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        } while ((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)));" do (compound_statement "{\n          *piVar18 = 0;\n          pdVar20 = readdir64(__dirp);\n          if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar6 = bVar9;\n        }" { (expression_statement "*piVar18 = 0;" (assignment_expression "*piVar18 = 0" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "pdVar20 = readdir64(__dirp);" (assignment_expression "pdVar20 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar20 == (dirent64 *)0x0) {\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }" if (parenthesized_expression "(pdVar20 == (dirent64 *)0x0)" ( (binary_expression "pdVar20 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar19 = *piVar18;\n            if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }\n            if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }\n            goto LAB_0001d417;\n          }" { (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (if_statement "if ((iVar19 == 0) && (bVar9)) {\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }" if (parenthesized_expression "((iVar19 == 0) && (bVar9))" ( (binary_expression "(iVar19 == 0) && (bVar9)" (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar9)" ( identifier ))) )) (compound_statement "{\n              rewinddir(__dirp);\n              pdVar20 = readdir64(__dirp);\n              if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar19 = *piVar18;\n            }" { (expression_statement "rewinddir(__dirp);" (call_expression "rewinddir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) (expression_statement "pdVar20 = readdir64(__dirp);" (assignment_expression "pdVar20 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar20 != (dirent64 *)0x0) {\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }" if (parenthesized_expression "(pdVar20 != (dirent64 *)0x0)" ( (binary_expression "pdVar20 != (dirent64 *)0x0" identifier != (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                bVar6 = false;\n                bVar9 = bVar6;\n                if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "bVar9 = bVar6;" (assignment_expression "bVar9 = bVar6" identifier = identifier) ;) (if_statement "if (pdVar20->d_name[0] == '.') goto LAB_0001d3e8;" if (parenthesized_expression "(pdVar20->d_name[0] == '.')" ( (binary_expression "pdVar20->d_name[0] == '.'" (subscript_expression "pdVar20->d_name[0]" (field_expression "pdVar20->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0001d3e8;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) })) (if_statement "if (iVar19 == 0) {\n              *piVar18 = 2;\n              iVar19 = 2;\n            }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n              *piVar18 = 2;\n              iVar19 = 2;\n            }" { (expression_statement "*piVar18 = 2;" (assignment_expression "*piVar18 = 2" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 2" identifier = number_literal) ;) })) (goto_statement "goto LAB_0001d417;" goto statement_identifier ;) })) (if_statement "if (pdVar20->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }" if (parenthesized_expression "(pdVar20->d_name[0] == '.')" ( (binary_expression "pdVar20->d_name[0] == '.'" (subscript_expression "pdVar20->d_name[0]" (field_expression "pdVar20->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) (compound_statement "{\nLAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }" { (labeled_statement "LAB_0001d3e8:\n            if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;" statement_identifier : (if_statement "if ((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))\n            goto LAB_0001d168;" if (parenthesized_expression "((pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e))" ( (binary_expression "(pdVar20->d_name[1] == '\0') || (*(short *)(pdVar20->d_name + 1) == 0x2e)" (parenthesized_expression "(pdVar20->d_name[1] == '\0')" ( (binary_expression "pdVar20->d_name[1] == '\0'" (subscript_expression "pdVar20->d_name[1]" (field_expression "pdVar20->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(short *)(pdVar20->d_name + 1) == 0x2e)" ( (binary_expression "*(short *)(pdVar20->d_name + 1) == 0x2e" (pointer_expression "*(short *)(pdVar20->d_name + 1)" * (cast_expression "(short *)(pdVar20->d_name + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar20->d_name + 1)" ( (binary_expression "pdVar20->d_name + 1" (field_expression "pdVar20->d_name" identifier -> field_identifier) + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_0001d168;" goto statement_identifier ;))) })) (expression_statement "bVar6 = bVar9;" (assignment_expression "bVar6 = bVar9" identifier = identifier) ;) }) while (parenthesized_expression "((bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)))" ( (binary_expression "(bVar9) &&\n                (bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12))" (parenthesized_expression "(bVar9)" ( identifier )) && (parenthesized_expression "(bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12))" ( (comma_expression "bVar4 = local_e0 == (int)pdVar20->d_ino,\n                bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)" (assignment_expression "bVar4 = local_e0 == (int)pdVar20->d_ino" identifier = (binary_expression "local_e0 == (int)pdVar20->d_ino" identifier == (cast_expression "(int)pdVar20->d_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "pdVar20->d_ino" identifier -> field_identifier)))) , (comma_expression "bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4),\n                bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)" (assignment_expression "bVar5 = local_dc == *(int *)((int)&pdVar20->d_ino + 4)" identifier = (binary_expression "local_dc == *(int *)((int)&pdVar20->d_ino + 4)" identifier == (pointer_expression "*(int *)((int)&pdVar20->d_ino + 4)" * (cast_expression "(int *)((int)&pdVar20->d_ino + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pdVar20->d_ino + 4)" ( (binary_expression "(int)&pdVar20->d_ino + 4" (cast_expression "(int)&pdVar20->d_ino" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pdVar20->d_ino" & (field_expression "pdVar20->d_ino" identifier -> field_identifier))) + number_literal) )))))) , (comma_expression "bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12),\n                (!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)" (assignment_expression "bVar6 = bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12)" identifier = (binary_expression "bVar4 && bVar5 || (iVar10 != local_c0 || local_c8 != iVar12)" (binary_expression "bVar4 && bVar5" identifier && identifier) || (parenthesized_expression "(iVar10 != local_c0 || local_c8 != iVar12)" ( (binary_expression "iVar10 != local_c0 || local_c8 != iVar12" (binary_expression "iVar10 != local_c0" identifier != identifier) || (binary_expression "local_c8 != iVar12" identifier != identifier)) )))) , (binary_expression "(!bVar4 || !bVar5) && (iVar10 == local_c0 && local_c8 == iVar12)" (parenthesized_expression "(!bVar4 || !bVar5)" ( (binary_expression "!bVar4 || !bVar5" (unary_expression "!bVar4" ! identifier) || (unary_expression "!bVar5" ! identifier)) )) && (parenthesized_expression "(iVar10 == local_c0 && local_c8 == iVar12)" ( (binary_expression "iVar10 == local_c0 && local_c8 == iVar12" (binary_expression "iVar10 == local_c0" identifier == identifier) && (binary_expression "local_c8 == iVar12" identifier == identifier)) )))))) ))) )) ;) (expression_statement "pcVar24 = pdVar20->d_name;" (assignment_expression "pcVar24 = pdVar20->d_name" identifier = (field_expression "pdVar20->d_name" identifier -> field_identifier)) ;) (expression_statement "iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100);" (assignment_expression "iVar19 = __fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100)" identifier = (call_expression "__fxstatat64(3,local_e8,pcVar24,(stat64 *)&st,0x100)" identifier (argument_list "(3,local_e8,pcVar24,(stat64 *)&st,0x100)" ( number_literal , identifier , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) , number_literal )))) ;) (expression_statement "bVar9 = bVar6;" (assignment_expression "bVar9 = bVar6" identifier = identifier) ;) }) while (parenthesized_expression "((((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino))" ( (binary_expression "(((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)) ||\n              (local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino)" (parenthesized_expression "(((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev))" ( (binary_expression "((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)" (parenthesized_expression "((iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000))" ( (binary_expression "(iVar19 != 0) || ((st.st_mode & 0xf000) != 0x4000)" (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) || (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) ))) )) || (parenthesized_expression "(local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev)" ( (binary_expression "local_c8 != st.st_dev._4_4_ || local_c0 != (int)st.st_dev" (binary_expression "local_c8 != st.st_dev._4_4_" identifier != (field_expression "st.st_dev._4_4_" (field_expression "st.st_dev" identifier . field_identifier) . field_identifier)) || (binary_expression "local_c0 != (int)st.st_dev" identifier != (cast_expression "(int)st.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_dev" identifier . field_identifier)))) ))) )) || (parenthesized_expression "(local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino)" ( (binary_expression "local_dc != st.st_ino._4_4_ || local_e0 != (int)st.st_ino" (binary_expression "local_dc != st.st_ino._4_4_" identifier != (field_expression "st.st_ino._4_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier)) || (binary_expression "local_e0 != (int)st.st_ino" identifier != (cast_expression "(int)st.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "st.st_ino" identifier . field_identifier)))) ))) )) ;)) (expression_statement "uVar21 = (int)local_a8 - (int)local_d0;" (assignment_expression "uVar21 = (int)local_a8 - (int)local_d0" identifier = (binary_expression "(int)local_a8 - (int)local_d0" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "__n = strlen(pcVar24);" (assignment_expression "__n = strlen(pcVar24)" identifier = (call_expression "strlen(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier )))) ;) (if_statement "if (uVar21 <= __n) {\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(uVar21 <= __n)" ( (binary_expression "uVar21 <= __n" identifier <= identifier) )) (compound_statement "{\n        if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }" { (if_statement "if (size == 0) {\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }\n        else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }" if (parenthesized_expression "(size == 0)" ( (binary_expression "size == 0" identifier == number_literal) )) (compound_statement "{\n          sVar23 = local_c4;\n          if (local_c4 <= __n) {\n            sVar23 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }\n          iVar19 = 0xc;\n          *piVar18 = 0xc;\n        }" { (expression_statement "sVar23 = local_c4;" (assignment_expression "sVar23 = local_c4" identifier = identifier) ;) (if_statement "if (local_c4 <= __n) {\n            sVar23 = __n;\n          }" if (parenthesized_expression "(local_c4 <= __n)" ( (binary_expression "local_c4 <= __n" identifier <= identifier) )) (compound_statement "{\n            sVar23 = __n;\n          }" { (expression_statement "sVar23 = __n;" (assignment_expression "sVar23 = __n" identifier = identifier) ;) })) (if_statement "if ((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)) {\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }" if (parenthesized_expression "((!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0))" ( (binary_expression "(!CARRY4(local_c4,sVar23)) &&\n             (pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)" (parenthesized_expression "(!CARRY4(local_c4,sVar23))" ( (unary_expression "!CARRY4(local_c4,sVar23)" ! (call_expression "CARRY4(local_c4,sVar23)" identifier (argument_list "(local_c4,sVar23)" ( identifier , identifier )))) )) && (parenthesized_expression "(pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0)" ( (comma_expression "pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23), pcVar22 != (char *)0x0" (assignment_expression "pcVar22 = (char *)realloc(local_d0,local_c4 + sVar23)" identifier = (cast_expression "(char *)realloc(local_d0,local_c4 + sVar23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "realloc(local_d0,local_c4 + sVar23)" identifier (argument_list "(local_d0,local_c4 + sVar23)" ( identifier , (binary_expression "local_c4 + sVar23" identifier + identifier) ))))) , (binary_expression "pcVar22 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);\n            local_d0 = pcVar22;\n            local_c4 = local_c4 + sVar23;\n            goto LAB_0001d2ce;\n          }" { (expression_statement "local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21);" (assignment_expression "local_a8 = (char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21)" identifier = (cast_expression "(char *)memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "memcpy(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21)" identifier (argument_list "(pcVar22 + sVar23 + uVar21,pcVar22 + uVar21,local_c4 - uVar21)" ( (binary_expression "pcVar22 + sVar23 + uVar21" (binary_expression "pcVar22 + sVar23" identifier + identifier) + identifier) , (binary_expression "pcVar22 + uVar21" identifier + identifier) , (binary_expression "local_c4 - uVar21" identifier - identifier) ))))) ;) (expression_statement "local_d0 = pcVar22;" (assignment_expression "local_d0 = pcVar22" identifier = identifier) ;) (expression_statement "local_c4 = local_c4 + sVar23;" (assignment_expression "local_c4 = local_c4 + sVar23" identifier = (binary_expression "local_c4 + sVar23" identifier + identifier)) ;) (goto_statement "goto LAB_0001d2ce;" goto statement_identifier ;) })) (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "*piVar18 = 0xc;" (assignment_expression "*piVar18 = 0xc" (pointer_expression "*piVar18" * identifier) = number_literal) ;) }) (else_clause "else {\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }" else (compound_statement "{\n          iVar19 = 0x22;\n          *piVar18 = 0x22;\n        }" { (expression_statement "iVar19 = 0x22;" (assignment_expression "iVar19 = 0x22" identifier = number_literal) ;) (expression_statement "*piVar18 = 0x22;" (assignment_expression "*piVar18 = 0x22" (pointer_expression "*piVar18" * identifier) = number_literal) ;) }))) (labeled_statement "LAB_0001d417:\n        closedir(__dirp);" statement_identifier : (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d2ce:\n      pcVar22 = local_a8 + -__n;" statement_identifier : (expression_statement "pcVar22 = local_a8 + -__n;" (assignment_expression "pcVar22 = local_a8 + -__n" identifier = (binary_expression "local_a8 + -__n" identifier + (unary_expression "-__n" - identifier))) ;)) (expression_statement "memcpy(pcVar22,pcVar24,__n);" (call_expression "memcpy(pcVar22,pcVar24,__n)" identifier (argument_list "(pcVar22,pcVar24,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_c8 = iVar12;" (assignment_expression "local_c8 = iVar12" identifier = identifier) ;) (expression_statement "local_a8 = pcVar22 + -1;" (assignment_expression "local_a8 = pcVar22 + -1" identifier = (binary_expression "pcVar22 + -1" identifier + number_literal)) ;) (expression_statement "local_e0 = iVar14;" (assignment_expression "local_e0 = iVar14" identifier = identifier) ;) (expression_statement "local_c0 = iVar10;" (assignment_expression "local_c0 = iVar10" identifier = identifier) ;) (expression_statement "pcVar22[-1] = '/';" (assignment_expression "pcVar22[-1] = '/'" (subscript_expression "pcVar22[-1]" identifier [ number_literal ]) = (char_literal "'/'" ' character ')) ;) (expression_statement "local_dc = iVar17;" (assignment_expression "local_dc = iVar17" identifier = identifier) ;) }) while (parenthesized_expression "((iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17))" ( (binary_expression "(iVar16 != iVar10 || iVar11 != iVar12) || (iVar14 != iVar13 || iVar15 != iVar17)" (parenthesized_expression "(iVar16 != iVar10 || iVar11 != iVar12)" ( (binary_expression "iVar16 != iVar10 || iVar11 != iVar12" (binary_expression "iVar16 != iVar10" identifier != identifier) || (binary_expression "iVar11 != iVar12" identifier != identifier)) )) || (parenthesized_expression "(iVar14 != iVar13 || iVar15 != iVar17)" ( (binary_expression "iVar14 != iVar13 || iVar15 != iVar17" (binary_expression "iVar14 != iVar13" identifier != identifier) || (binary_expression "iVar15 != iVar17" identifier != identifier)) ))) )) ;) (expression_statement "iVar19 = closedir(__dirp);" (assignment_expression "iVar19 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (iVar19 == 0) {\n      pcVar24 = local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar24 = local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }" { (expression_statement "pcVar24 = local_d0 + local_c4;" (assignment_expression "pcVar24 = local_d0 + local_c4" identifier = (binary_expression "local_d0 + local_c4" identifier + identifier)) ;) (goto_statement "goto LAB_0001d35f;" goto statement_identifier ;) })) }))) (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (labeled_statement "joined_r0x0001d429:\n  if (buf == (char *)0x0) {\n    free(local_d0);\n  }" statement_identifier : (if_statement "if (buf == (char *)0x0) {\n    free(local_d0);\n  }" if (parenthesized_expression "(buf == (char *)0x0)" ( (binary_expression "buf == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_d0);\n  }" { (expression_statement "free(local_d0);" (call_expression "free(local_d0)" identifier (argument_list "(local_d0)" ( identifier ))) ;) }))) (expression_statement "*piVar18 = iVar19;" (assignment_expression "*piVar18 = iVar19" (pointer_expression "*piVar18" * identifier) = identifier) ;) (expression_statement "local_d0 = (char *)0x0;" (assignment_expression "local_d0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar24 = local_d0;" (assignment_expression "pcVar24 = local_d0" identifier = identifier) ;) (labeled_statement "LAB_0001cf78:\n  local_d0 = pcVar24;" statement_identifier : (expression_statement "local_d0 = pcVar24;" (assignment_expression "local_d0 = pcVar24" identifier = identifier) ;)) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_d0;" return identifier ;) })))
(translation_unit "void * FUN_0001cf10(void *param_1,size_t param_2)\n\n{\n  char *__filename;\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  dirent64 *pdVar19;\n  uint uVar20;\n  size_t __n;\n  void *pvVar21;\n  size_t sVar22;\n  DIR *__dirp;\n  int iVar23;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  void *local_d0;\n  void *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  void *local_a8;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1cf19;\n  local_cc = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }\n  iVar23 = (int)local_d0 + local_c4;\n  *(undefined1 *)(iVar23 + -1) = 0;\n  iVar15 = __lxstat64(3,".",&local_80);\n  iVar13 = local_80.st_ino._4_4_;\n  iVar11 = (int)local_80.st_ino;\n  iVar9 = local_80.st_dev._4_4_;\n  iVar18 = (int)local_80.st_dev;\n  if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar18 = *piVar17;\njoined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }\n  *piVar17 = iVar18;\n  local_d0 = (void *)0x0;\n  pvVar21 = local_d0;\nLAB_0001cf78:\n  local_d0 = pvVar21;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0001d960();\n  }\n  return local_d0;\n}\n\n" (function_definition "void * FUN_0001cf10(void *param_1,size_t param_2)\n\n{\n  char *__filename;\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  dirent64 *pdVar19;\n  uint uVar20;\n  size_t __n;\n  void *pvVar21;\n  size_t sVar22;\n  DIR *__dirp;\n  int iVar23;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  void *local_d0;\n  void *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  void *local_a8;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1cf19;\n  local_cc = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }\n  iVar23 = (int)local_d0 + local_c4;\n  *(undefined1 *)(iVar23 + -1) = 0;\n  iVar15 = __lxstat64(3,".",&local_80);\n  iVar13 = local_80.st_ino._4_4_;\n  iVar11 = (int)local_80.st_ino;\n  iVar9 = local_80.st_dev._4_4_;\n  iVar18 = (int)local_80.st_dev;\n  if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar18 = *piVar17;\njoined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }\n  *piVar17 = iVar18;\n  local_d0 = (void *)0x0;\n  pvVar21 = local_d0;\nLAB_0001cf78:\n  local_d0 = pvVar21;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0001d960();\n  }\n  return local_d0;\n}" primitive_type (pointer_declarator "* FUN_0001cf10(void *param_1,size_t param_2)" * (function_declarator "FUN_0001cf10(void *param_1,size_t param_2)" identifier (parameter_list "(void *param_1,size_t param_2)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "size_t param_2" primitive_type identifier) )))) (compound_statement "{\n  char *__filename;\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  dirent64 *pdVar19;\n  uint uVar20;\n  size_t __n;\n  void *pvVar21;\n  size_t sVar22;\n  DIR *__dirp;\n  int iVar23;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  void *local_d0;\n  void *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  void *local_a8;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1cf19;\n  local_cc = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }\n  iVar23 = (int)local_d0 + local_c4;\n  *(undefined1 *)(iVar23 + -1) = 0;\n  iVar15 = __lxstat64(3,".",&local_80);\n  iVar13 = local_80.st_ino._4_4_;\n  iVar11 = (int)local_80.st_ino;\n  iVar9 = local_80.st_dev._4_4_;\n  iVar18 = (int)local_80.st_dev;\n  if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar18 = *piVar17;\njoined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }\n  *piVar17 = iVar18;\n  local_d0 = (void *)0x0;\n  pvVar21 = local_d0;\nLAB_0001cf78:\n  local_d0 = pvVar21;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0001d960();\n  }\n  return local_d0;\n}" { (declaration "char *__filename;" primitive_type (pointer_declarator "*__filename" * identifier) ;) (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "dirent64 *pdVar19;" type_identifier (pointer_declarator "*pdVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *pvVar21;" primitive_type (pointer_declarator "*pvVar21" * identifier) ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "void *local_d0;" primitive_type (pointer_declarator "*local_d0" * identifier) ;) (declaration "void *local_cc;" primitive_type (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "size_t local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "void *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "stat64 local_80;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1cf19;" (assignment_expression "uStack_14 = 0x1cf19" identifier = number_literal) ;) (expression_statement "local_cc = param_1;" (assignment_expression "local_cc = param_1" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }" { (expression_statement "local_c4 = 0x1000;" (assignment_expression "local_c4 = 0x1000" identifier = number_literal) ;) (if_statement "if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }" if (parenthesized_expression "(param_1 != (void *)0x0)" ( (binary_expression "param_1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }" { (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d0 = (void *)0x0;" (assignment_expression "local_d0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*piVar17 = 0x16;" (assignment_expression "*piVar17 = 0x16" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" identifier = identifier) ;) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;) })) (labeled_statement "LAB_0001cf5b:\n    local_d0 = malloc(local_c4);" statement_identifier : (expression_statement "local_d0 = malloc(local_c4);" (assignment_expression "local_d0 = malloc(local_c4)" identifier = (call_expression "malloc(local_c4)" identifier (argument_list "(local_c4)" ( identifier )))) ;)) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" identifier = identifier) ;) (if_statement "if (local_d0 == (void *)0x0) goto LAB_0001cf78;" if (parenthesized_expression "(local_d0 == (void *)0x0)" ( (binary_expression "local_d0 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;)) }) (else_clause "else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" else (compound_statement "{\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" { (expression_statement "local_c4 = param_2;" (assignment_expression "local_c4 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == (void *)0x0) goto LAB_0001cf5b;" if (parenthesized_expression "(param_1 == (void *)0x0)" ( (binary_expression "param_1 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cf5b;" goto statement_identifier ;)) (expression_statement "local_d0 = param_1;" (assignment_expression "local_d0 = param_1" identifier = identifier) ;) }))) (expression_statement "iVar23 = (int)local_d0 + local_c4;" (assignment_expression "iVar23 = (int)local_d0 + local_c4" identifier = (binary_expression "(int)local_d0 + local_c4" (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(undefined1 *)(iVar23 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar23 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar23 + -1)" * (cast_expression "(undefined1 *)(iVar23 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -1)" ( (binary_expression "iVar23 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = __lxstat64(3,".",&local_80);" (assignment_expression "iVar15 = __lxstat64(3,".",&local_80)" identifier = (call_expression "__lxstat64(3,".",&local_80)" identifier (argument_list "(3,".",&local_80)" ( number_literal , (string_literal ""."" " string_content ") , (pointer_expression "&local_80" & identifier) )))) ;) (expression_statement "iVar13 = local_80.st_ino._4_4_;" (assignment_expression "iVar13 = local_80.st_ino._4_4_" identifier = (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar11 = (int)local_80.st_ino;" (assignment_expression "iVar11 = (int)local_80.st_ino" identifier = (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier))) ;) (expression_statement "iVar9 = local_80.st_dev._4_4_;" (assignment_expression "iVar9 = local_80.st_dev._4_4_" identifier = (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar18 = (int)local_80.st_dev;" (assignment_expression "iVar18 = (int)local_80.st_dev" identifier = (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier))) ;) (if_statement "if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" if (parenthesized_expression "(iVar15 < 0)" ( (binary_expression "iVar15 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }" { (labeled_statement "LAB_0001d440:\n    piVar17 = __errno_location();" statement_identifier : (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) }) (else_clause "else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" else (compound_statement "{\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" { (expression_statement "local_c8 = local_80.st_dev._4_4_;" (assignment_expression "local_c8 = local_80.st_dev._4_4_" identifier = (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_c0 = (int)local_80.st_dev;" (assignment_expression "local_c0 = (int)local_80.st_dev" identifier = (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier))) ;) (expression_statement "local_e0 = (int)local_80.st_ino;" (assignment_expression "local_e0 = (int)local_80.st_ino" identifier = (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier))) ;) (expression_statement "local_dc = local_80.st_ino._4_4_;" (assignment_expression "local_dc = local_80.st_ino._4_4_" identifier = (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar16 = __lxstat64(3,"/",&local_80);" (assignment_expression "iVar16 = __lxstat64(3,"/",&local_80)" identifier = (call_expression "__lxstat64(3,"/",&local_80)" identifier (argument_list "(3,"/",&local_80)" ( number_literal , (string_literal ""/"" " string_content ") , (pointer_expression "&local_80" & identifier) )))) ;) (expression_statement "iVar14 = local_80.st_ino._4_4_;" (assignment_expression "iVar14 = local_80.st_ino._4_4_" identifier = (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar12 = (int)local_80.st_ino;" (assignment_expression "iVar12 = (int)local_80.st_ino" identifier = (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier))) ;) (expression_statement "iVar10 = local_80.st_dev._4_4_;" (assignment_expression "iVar10 = local_80.st_dev._4_4_" identifier = (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar15 = (int)local_80.st_dev;" (assignment_expression "iVar15 = (int)local_80.st_dev" identifier = (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier))) ;) (if_statement "if (iVar16 < 0) goto LAB_0001d440;" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0001d440;" goto statement_identifier ;)) (expression_statement "local_a8 = (void *)(iVar23 + -1);" (assignment_expression "local_a8 = (void *)(iVar23 + -1)" identifier = (cast_expression "(void *)(iVar23 + -1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -1)" ( (binary_expression "iVar23 + -1" identifier + number_literal) )))) ;) (expression_statement "bVar6 = iVar18 != (int)local_80.st_dev;" (assignment_expression "bVar6 = iVar18 != (int)local_80.st_dev" identifier = (binary_expression "iVar18 != (int)local_80.st_dev" identifier != (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier)))) ;) (expression_statement "bVar7 = iVar9 != local_80.st_dev._4_4_;" (assignment_expression "bVar7 = iVar9 != local_80.st_dev._4_4_" identifier = (binary_expression "iVar9 != local_80.st_dev._4_4_" identifier != (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier))) ;) (expression_statement "bVar1 = iVar11 != (int)local_80.st_ino;" (assignment_expression "bVar1 = iVar11 != (int)local_80.st_ino" identifier = (binary_expression "iVar11 != (int)local_80.st_ino" identifier != (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier)))) ;) (expression_statement "bVar2 = iVar13 != local_80.st_ino._4_4_;" (assignment_expression "bVar2 = iVar13 != local_80.st_ino._4_4_" identifier = (binary_expression "iVar13 != local_80.st_ino._4_4_" identifier != (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier))) ;) (if_statement "if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }" if (parenthesized_expression "((!bVar6 && !bVar7) && (!bVar1 && !bVar2))" ( (binary_expression "(!bVar6 && !bVar7) && (!bVar1 && !bVar2)" (parenthesized_expression "(!bVar6 && !bVar7)" ( (binary_expression "!bVar6 && !bVar7" (unary_expression "!bVar6" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) && (parenthesized_expression "(!bVar1 && !bVar2)" ( (binary_expression "!bVar1 && !bVar2" (unary_expression "!bVar1" ! identifier) && (unary_expression "!bVar2" ! identifier)) ))) )) (compound_statement "{\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }" { (labeled_statement "LAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" statement_identifier : (if_statement "if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" if (parenthesized_expression "(local_a8 == (void *)((int)local_d0 + (local_c4 - 1)))" ( (binary_expression "local_a8 == (void *)((int)local_d0 + (local_c4 - 1))" identifier == (cast_expression "(void *)((int)local_d0 + (local_c4 - 1))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_d0 + (local_c4 - 1))" ( (binary_expression "(int)local_d0 + (local_c4 - 1)" (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(local_c4 - 1)" ( (binary_expression "local_c4 - 1" identifier - number_literal) ))) )))) )) (compound_statement "{\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" { (expression_statement "*(undefined1 *)((int)local_a8 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)local_a8 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)local_a8 + -1)" * (cast_expression "(undefined1 *)((int)local_a8 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -1)" ( (binary_expression "(int)local_a8 + -1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_a8 = (void *)((int)local_a8 + -1);" (assignment_expression "local_a8 = (void *)((int)local_a8 + -1)" identifier = (cast_expression "(void *)((int)local_a8 + -1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + -1)" ( (binary_expression "(int)local_a8 + -1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "memmove(local_d0,local_a8,iVar23 - (int)local_a8);" (call_expression "memmove(local_d0,local_a8,iVar23 - (int)local_a8)" identifier (argument_list "(local_d0,local_a8,iVar23 - (int)local_a8)" ( identifier , identifier , (binary_expression "iVar23 - (int)local_a8" identifier - (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (if_statement "if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }" { (expression_statement "local_cc = realloc(local_d0,iVar23 - (int)local_a8);" (assignment_expression "local_cc = realloc(local_d0,iVar23 - (int)local_a8)" identifier = (call_expression "realloc(local_d0,iVar23 - (int)local_a8)" identifier (argument_list "(local_d0,iVar23 - (int)local_a8)" ( identifier , (binary_expression "iVar23 - (int)local_a8" identifier - (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "pvVar21 = local_cc;" (assignment_expression "pvVar21 = local_cc" identifier = identifier) ;) (if_statement "if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }" if (parenthesized_expression "(local_cc == (void *)0x0)" ( (binary_expression "local_cc == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pvVar21 = local_d0;\n      }" { (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" identifier = identifier) ;) })) (goto_statement "goto LAB_0001cf78;" goto statement_identifier ;) })) (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_e8 = -100;" (assignment_expression "local_e8 = -100" identifier = number_literal) ;) (expression_statement "__dirp = (DIR *)0x0;" (assignment_expression "__dirp = (DIR *)0x0" identifier = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));" do (compound_statement "{\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    }" { (expression_statement "local_e8 = openat64(local_e8,"..",0);" (assignment_expression "local_e8 = openat64(local_e8,"..",0)" identifier = (call_expression "openat64(local_e8,"..",0)" identifier (argument_list "(local_e8,"..",0)" ( identifier , (string_literal "".."" " string_content ") , number_literal )))) ;) (if_statement "if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(local_e8 < 0)" ( (binary_expression "local_e8 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }" { (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (if_statement "if (__dirp != (DIR *)0x0) goto LAB_0001d417;" if (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d417;" goto statement_identifier ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (expression_statement "iVar18 = __fxstat64(3,local_e8,&local_80);" (assignment_expression "iVar18 = __fxstat64(3,local_e8,&local_80)" identifier = (call_expression "__fxstat64(3,local_e8,&local_80)" identifier (argument_list "(3,local_e8,&local_80)" ( number_literal , identifier , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }" { (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (if_statement "if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }" if (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          closedir(__dirp);\n        }" { (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) })) (labeled_statement "LAB_0001d486:\n        close(local_e8);" statement_identifier : (expression_statement "close(local_e8);" (call_expression "close(local_e8)" identifier (argument_list "(local_e8)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (if_statement "if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }" if (parenthesized_expression "(((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0))" ( (binary_expression "((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)" (parenthesized_expression "((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0))" ( (binary_expression "(__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)" (parenthesized_expression "(__dirp != (DIR *)0x0)" ( (binary_expression "__dirp != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar18 = closedir(__dirp), iVar18 != 0)" ( (comma_expression "iVar18 = closedir(__dirp), iVar18 != 0" (assignment_expression "iVar18 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)" ( (comma_expression "iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar23 = local_80.st_ino._4_4_" identifier = (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) , (comma_expression "iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar13 = (int)local_80.st_ino" identifier = (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier))) , (comma_expression "iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar11 = local_80.st_dev._4_4_" identifier = (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) , (comma_expression "iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar9 = (int)local_80.st_dev" identifier = (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier))) , (comma_expression "__dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "__dirp = fdopendir(local_e8)" identifier = (call_expression "fdopendir(local_e8)" identifier (argument_list "(local_e8)" ( identifier )))) , (comma_expression "bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2)" identifier = (binary_expression "(bVar6 || bVar7) || (bVar1 || bVar2)" (parenthesized_expression "(bVar6 || bVar7)" ( (binary_expression "bVar6 || bVar7" identifier || identifier) )) || (parenthesized_expression "(bVar1 || bVar2)" ( (binary_expression "bVar1 || bVar2" identifier || identifier) )))) , (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))))))) ))) )) (compound_statement "{\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }" { (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (goto_statement "goto LAB_0001d486;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));" statement_identifier : (do_statement "do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));" do (compound_statement "{\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      }" { (do_statement "do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));" do (compound_statement "{\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        }" { (expression_statement "*piVar17 = 0;" (assignment_expression "*piVar17 = 0" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "pdVar19 = readdir64(__dirp);" (assignment_expression "pdVar19 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }" if (parenthesized_expression "(pdVar19 == (dirent64 *)0x0)" ( (binary_expression "pdVar19 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }" { (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (if_statement "if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }" if (parenthesized_expression "((iVar18 == 0) && (bVar8))" ( (binary_expression "(iVar18 == 0) && (bVar8)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar8)" ( identifier ))) )) (compound_statement "{\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }" { (expression_statement "rewinddir(__dirp);" (call_expression "rewinddir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) (expression_statement "pdVar19 = readdir64(__dirp);" (assignment_expression "pdVar19 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }" if (parenthesized_expression "(pdVar19 != (dirent64 *)0x0)" ( (binary_expression "pdVar19 != (dirent64 *)0x0" identifier != (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar8 = bVar5;" (assignment_expression "bVar8 = bVar5" identifier = identifier) ;) (if_statement "if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;" if (parenthesized_expression "(pdVar19->d_name[0] == '.')" ( (binary_expression "pdVar19->d_name[0] == '.'" (subscript_expression "pdVar19->d_name[0]" (field_expression "pdVar19->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0001d3e8;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) })) (if_statement "if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n              *piVar17 = 2;\n              iVar18 = 2;\n            }" { (expression_statement "*piVar17 = 2;" (assignment_expression "*piVar17 = 2" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" identifier = number_literal) ;) })) (goto_statement "goto LAB_0001d417;" goto statement_identifier ;) })) (if_statement "if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }" if (parenthesized_expression "(pdVar19->d_name[0] == '.')" ( (binary_expression "pdVar19->d_name[0] == '.'" (subscript_expression "pdVar19->d_name[0]" (field_expression "pdVar19->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) (compound_statement "{\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }" { (labeled_statement "LAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;" statement_identifier : (if_statement "if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;" if (parenthesized_expression "((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))" ( (binary_expression "(pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e)" (parenthesized_expression "(pdVar19->d_name[1] == '\0')" ( (binary_expression "pdVar19->d_name[1] == '\0'" (subscript_expression "pdVar19->d_name[1]" (field_expression "pdVar19->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(short *)(pdVar19->d_name + 1) == 0x2e)" ( (binary_expression "*(short *)(pdVar19->d_name + 1) == 0x2e" (pointer_expression "*(short *)(pdVar19->d_name + 1)" * (cast_expression "(short *)(pdVar19->d_name + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar19->d_name + 1)" ( (binary_expression "pdVar19->d_name + 1" (field_expression "pdVar19->d_name" identifier -> field_identifier) + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_0001d168;" goto statement_identifier ;))) })) (expression_statement "bVar5 = bVar8;" (assignment_expression "bVar5 = bVar8" identifier = identifier) ;) }) while (parenthesized_expression "((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)))" ( (binary_expression "(bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11))" (parenthesized_expression "(bVar8)" ( identifier )) && (parenthesized_expression "(bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11))" ( (comma_expression "bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar3 = local_e0 == (int)pdVar19->d_ino" identifier = (binary_expression "local_e0 == (int)pdVar19->d_ino" identifier == (cast_expression "(int)pdVar19->d_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "pdVar19->d_ino" identifier -> field_identifier)))) , (comma_expression "bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4)" identifier = (binary_expression "local_dc == *(int *)((int)&pdVar19->d_ino + 4)" identifier == (pointer_expression "*(int *)((int)&pdVar19->d_ino + 4)" * (cast_expression "(int *)((int)&pdVar19->d_ino + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pdVar19->d_ino + 4)" ( (binary_expression "(int)&pdVar19->d_ino + 4" (cast_expression "(int)&pdVar19->d_ino" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pdVar19->d_ino" & (field_expression "pdVar19->d_ino" identifier -> field_identifier))) + number_literal) )))))) , (comma_expression "bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11)" identifier = (binary_expression "bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11)" (binary_expression "bVar3 && bVar4" identifier && identifier) || (parenthesized_expression "(iVar9 != local_c0 || local_c8 != iVar11)" ( (binary_expression "iVar9 != local_c0 || local_c8 != iVar11" (binary_expression "iVar9 != local_c0" identifier != identifier) || (binary_expression "local_c8 != iVar11" identifier != identifier)) )))) , (binary_expression "(!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (parenthesized_expression "(!bVar3 || !bVar4)" ( (binary_expression "!bVar3 || !bVar4" (unary_expression "!bVar3" ! identifier) || (unary_expression "!bVar4" ! identifier)) )) && (parenthesized_expression "(iVar9 == local_c0 && local_c8 == iVar11)" ( (binary_expression "iVar9 == local_c0 && local_c8 == iVar11" (binary_expression "iVar9 == local_c0" identifier == identifier) && (binary_expression "local_c8 == iVar11" identifier == identifier)) )))))) ))) )) ;) (expression_statement "__filename = pdVar19->d_name;" (assignment_expression "__filename = pdVar19->d_name" identifier = (field_expression "pdVar19->d_name" identifier -> field_identifier)) ;) (expression_statement "iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);" (assignment_expression "iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100)" identifier = (call_expression "__fxstatat64(3,local_e8,__filename,&local_80,0x100)" identifier (argument_list "(3,local_e8,__filename,&local_80,0x100)" ( number_literal , identifier , identifier , (pointer_expression "&local_80" & identifier) , number_literal )))) ;) (expression_statement "bVar8 = bVar5;" (assignment_expression "bVar8 = bVar5" identifier = identifier) ;) }) while (parenthesized_expression "((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino))" ( (binary_expression "(((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino)" (parenthesized_expression "(((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev))" ( (binary_expression "((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)" (parenthesized_expression "((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000))" ( (binary_expression "(iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)" (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) || (parenthesized_expression "((local_80.st_mode & 0xf000) != 0x4000)" ( (binary_expression "(local_80.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(local_80.st_mode & 0xf000)" ( (binary_expression "local_80.st_mode & 0xf000" (field_expression "local_80.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)" ( (binary_expression "local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev" (binary_expression "local_c8 != local_80.st_dev._4_4_" identifier != (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" identifier . field_identifier) . field_identifier)) || (binary_expression "local_c0 != (int)local_80.st_dev" identifier != (cast_expression "(int)local_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_dev" identifier . field_identifier)))) ))) )) || (parenthesized_expression "(local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino)" ( (binary_expression "local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino" (binary_expression "local_dc != local_80.st_ino._4_4_" identifier != (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" identifier . field_identifier) . field_identifier)) || (binary_expression "local_e0 != (int)local_80.st_ino" identifier != (cast_expression "(int)local_80.st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "local_80.st_ino" identifier . field_identifier)))) ))) )) ;)) (expression_statement "uVar20 = (int)local_a8 - (int)local_d0;" (assignment_expression "uVar20 = (int)local_a8 - (int)local_d0" identifier = (binary_expression "(int)local_a8 - (int)local_d0" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "__n = strlen(__filename);" (assignment_expression "__n = strlen(__filename)" identifier = (call_expression "strlen(__filename)" identifier (argument_list "(__filename)" ( identifier )))) ;) (if_statement "if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }" if (parenthesized_expression "(uVar20 <= __n)" ( (binary_expression "uVar20 <= __n" identifier <= identifier) )) (compound_statement "{\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }" { (if_statement "if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }" { (expression_statement "sVar22 = local_c4;" (assignment_expression "sVar22 = local_c4" identifier = identifier) ;) (if_statement "if (local_c4 <= __n) {\n            sVar22 = __n;\n          }" if (parenthesized_expression "(local_c4 <= __n)" ( (binary_expression "local_c4 <= __n" identifier <= identifier) )) (compound_statement "{\n            sVar22 = __n;\n          }" { (expression_statement "sVar22 = __n;" (assignment_expression "sVar22 = __n" identifier = identifier) ;) })) (if_statement "if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }" if (parenthesized_expression "((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0))" ( (binary_expression "(!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)" (parenthesized_expression "(!CARRY4(local_c4,sVar22))" ( (unary_expression "!CARRY4(local_c4,sVar22)" ! (call_expression "CARRY4(local_c4,sVar22)" identifier (argument_list "(local_c4,sVar22)" ( identifier , identifier )))) )) && (parenthesized_expression "(pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)" ( (comma_expression "pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0" (assignment_expression "pvVar21 = realloc(local_d0,local_c4 + sVar22)" identifier = (call_expression "realloc(local_d0,local_c4 + sVar22)" identifier (argument_list "(local_d0,local_c4 + sVar22)" ( identifier , (binary_expression "local_c4 + sVar22" identifier + identifier) )))) , (binary_expression "pvVar21 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }" { (expression_statement "local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);" (assignment_expression "local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" identifier = (call_expression "memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" identifier (argument_list "((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" ( (cast_expression "(void *)(sVar22 + uVar20 + (int)pvVar21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar22 + uVar20 + (int)pvVar21)" ( (binary_expression "sVar22 + uVar20 + (int)pvVar21" (binary_expression "sVar22 + uVar20" identifier + identifier) + (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (cast_expression "(void *)(uVar20 + (int)pvVar21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 + (int)pvVar21)" ( (binary_expression "uVar20 + (int)pvVar21" identifier + (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "local_c4 - uVar20" identifier - identifier) )))) ;) (expression_statement "local_d0 = pvVar21;" (assignment_expression "local_d0 = pvVar21" identifier = identifier) ;) (expression_statement "local_c4 = local_c4 + sVar22;" (assignment_expression "local_c4 = local_c4 + sVar22" identifier = (binary_expression "local_c4 + sVar22" identifier + identifier)) ;) (goto_statement "goto LAB_0001d2ce;" goto statement_identifier ;) })) (expression_statement "iVar18 = 0xc;" (assignment_expression "iVar18 = 0xc" identifier = number_literal) ;) (expression_statement "*piVar17 = 0xc;" (assignment_expression "*piVar17 = 0xc" (pointer_expression "*piVar17" * identifier) = number_literal) ;) }) (else_clause "else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" else (compound_statement "{\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" { (expression_statement "iVar18 = 0x22;" (assignment_expression "iVar18 = 0x22" identifier = number_literal) ;) (expression_statement "*piVar17 = 0x22;" (assignment_expression "*piVar17 = 0x22" (pointer_expression "*piVar17" * identifier) = number_literal) ;) }))) (labeled_statement "LAB_0001d417:\n        closedir(__dirp);" statement_identifier : (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001d429;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);" statement_identifier : (expression_statement "pvVar21 = (void *)((int)local_a8 - __n);" (assignment_expression "pvVar21 = (void *)((int)local_a8 - __n)" identifier = (cast_expression "(void *)((int)local_a8 - __n)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - __n)" ( (binary_expression "(int)local_a8 - __n" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;)) (expression_statement "memcpy(pvVar21,__filename,__n);" (call_expression "memcpy(pvVar21,__filename,__n)" identifier (argument_list "(pvVar21,__filename,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_c8 = iVar11;" (assignment_expression "local_c8 = iVar11" identifier = identifier) ;) (expression_statement "local_a8 = (void *)((int)pvVar21 + -1);" (assignment_expression "local_a8 = (void *)((int)pvVar21 + -1)" identifier = (cast_expression "(void *)((int)pvVar21 + -1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar21 + -1)" ( (binary_expression "(int)pvVar21 + -1" (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_e0 = iVar13;" (assignment_expression "local_e0 = iVar13" identifier = identifier) ;) (expression_statement "local_c0 = iVar9;" (assignment_expression "local_c0 = iVar9" identifier = identifier) ;) (expression_statement "*(undefined1 *)((int)pvVar21 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)pvVar21 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)pvVar21 + -1)" * (cast_expression "(undefined1 *)((int)pvVar21 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar21 + -1)" ( (binary_expression "(int)pvVar21 + -1" (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_dc = iVar23;" (assignment_expression "local_dc = iVar23" identifier = identifier) ;) }) while (parenthesized_expression "((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23))" ( (binary_expression "(iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23)" (parenthesized_expression "(iVar15 != iVar9 || iVar10 != iVar11)" ( (binary_expression "iVar15 != iVar9 || iVar10 != iVar11" (binary_expression "iVar15 != iVar9" identifier != identifier) || (binary_expression "iVar10 != iVar11" identifier != identifier)) )) || (parenthesized_expression "(iVar13 != iVar12 || iVar14 != iVar23)" ( (binary_expression "iVar13 != iVar12 || iVar14 != iVar23" (binary_expression "iVar13 != iVar12" identifier != identifier) || (binary_expression "iVar14 != iVar23" identifier != identifier)) ))) )) ;) (expression_statement "iVar18 = closedir(__dirp);" (assignment_expression "iVar18 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }" { (expression_statement "iVar23 = (int)local_d0 + local_c4;" (assignment_expression "iVar23 = (int)local_d0 + local_c4" identifier = (binary_expression "(int)local_d0 + local_c4" (cast_expression "(int)local_d0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (goto_statement "goto LAB_0001d35f;" goto statement_identifier ;) })) }))) (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (labeled_statement "joined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }" statement_identifier : (if_statement "if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }" if (parenthesized_expression "(param_1 == (void *)0x0)" ( (binary_expression "param_1 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_d0);\n  }" { (expression_statement "free(local_d0);" (call_expression "free(local_d0)" identifier (argument_list "(local_d0)" ( identifier ))) ;) }))) (expression_statement "*piVar17 = iVar18;" (assignment_expression "*piVar17 = iVar18" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "local_d0 = (void *)0x0;" (assignment_expression "local_d0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" identifier = identifier) ;) (labeled_statement "LAB_0001cf78:\n  local_d0 = pvVar21;" statement_identifier : (expression_statement "local_d0 = pvVar21;" (assignment_expression "local_d0 = pvVar21" identifier = identifier) ;)) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0001d960();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0001d960();\n  }" { (expression_statement "FUN_0001d960();" (call_expression "FUN_0001d960()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_d0;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (field_expression (field_expression IDENT . field_identifier) . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (field_expression (field_expression IDENT . field_identifier) . field_identifier))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) && (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) , (comma_expression (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT || IDENT) )) || (parenthesized_expression ( (binary_expression IDENT || IDENT) )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) == LIT) ))) )) (goto_statement goto statement_identifier ;))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier)))) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT -> field_identifier))) + LIT) )))))) , (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression IDENT && IDENT) || (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (binary_expression IDENT != IDENT)) )))) , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) || (unary_expression ! IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (binary_expression IDENT == IDENT)) )))))) ))) )) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT != (field_expression (field_expression IDENT . field_identifier) . field_identifier)) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)))) ))) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT != (field_expression (field_expression IDENT . field_identifier) . field_identifier)) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)))) ))) )) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (binary_expression IDENT != IDENT)) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (binary_expression IDENT != IDENT)) ))) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "void * FUN_0001cf10(void *param_1,size_t param_2)\n\n{\n  char *__filename;\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  dirent64 *pdVar19;\n  uint uVar20;\n  size_t __n;\n  void *pvVar21;\n  size_t sVar22;\n  DIR *__dirp;\n  int iVar23;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  void *local_d0;\n  void *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  void *local_a8;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1cf19;\n  local_cc = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }\n  iVar23 = (int)local_d0 + local_c4;\n  *(undefined1 *)(iVar23 + -1) = 0;\n  iVar15 = __lxstat64(3,".",&local_80);\n  iVar13 = local_80.st_ino._4_4_;\n  iVar11 = (int)local_80.st_ino;\n  iVar9 = local_80.st_dev._4_4_;\n  iVar18 = (int)local_80.st_dev;\n  if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar18 = *piVar17;\njoined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }\n  *piVar17 = iVar18;\n  local_d0 = (void *)0x0;\n  pvVar21 = local_d0;\nLAB_0001cf78:\n  local_d0 = pvVar21;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0001d960();\n  }\n  return local_d0;\n}" (primitive_type "void") (pointer_declarator "* FUN_0001cf10(void *param_1,size_t param_2)" (* "*") (function_declarator "FUN_0001cf10(void *param_1,size_t param_2)" (identifier "FUN_0001cf10") (parameter_list "(void *param_1,size_t param_2)" (( "(") (parameter_declaration "void *param_1" (primitive_type "void") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "size_t param_2" (primitive_type "size_t") (identifier "param_2")) () ")")))) (compound_statement "{\n  char *__filename;\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  dirent64 *pdVar19;\n  uint uVar20;\n  size_t __n;\n  void *pvVar21;\n  size_t sVar22;\n  DIR *__dirp;\n  int iVar23;\n  int in_GS_OFFSET;\n  int local_e8;\n  int local_e0;\n  int local_dc;\n  void *local_d0;\n  void *local_cc;\n  int local_c8;\n  size_t local_c4;\n  int local_c0;\n  void *local_a8;\n  stat64 local_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1cf19;\n  local_cc = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }\n  iVar23 = (int)local_d0 + local_c4;\n  *(undefined1 *)(iVar23 + -1) = 0;\n  iVar15 = __lxstat64(3,".",&local_80);\n  iVar13 = local_80.st_ino._4_4_;\n  iVar11 = (int)local_80.st_ino;\n  iVar9 = local_80.st_dev._4_4_;\n  iVar18 = (int)local_80.st_dev;\n  if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }\n  iVar18 = *piVar17;\njoined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }\n  *piVar17 = iVar18;\n  local_d0 = (void *)0x0;\n  pvVar21 = local_d0;\nLAB_0001cf78:\n  local_d0 = pvVar21;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0001d960();\n  }\n  return local_d0;\n}" ({ "{") (declaration "char *__filename;" (primitive_type "char") (pointer_declarator "*__filename" (* "*") (identifier "__filename")) (; ";")) (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "dirent64 *pdVar19;" (type_identifier "dirent64") (pointer_declarator "*pdVar19" (* "*") (identifier "pdVar19")) (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "void *pvVar21;" (primitive_type "void") (pointer_declarator "*pvVar21" (* "*") (identifier "pvVar21")) (; ";")) (declaration "size_t sVar22;" (primitive_type "size_t") (identifier "sVar22") (; ";")) (declaration "DIR *__dirp;" (type_identifier "DIR") (pointer_declarator "*__dirp" (* "*") (identifier "__dirp")) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int local_e8;" (primitive_type "int") (identifier "local_e8") (; ";")) (declaration "int local_e0;" (primitive_type "int") (identifier "local_e0") (; ";")) (declaration "int local_dc;" (primitive_type "int") (identifier "local_dc") (; ";")) (declaration "void *local_d0;" (primitive_type "void") (pointer_declarator "*local_d0" (* "*") (identifier "local_d0")) (; ";")) (declaration "void *local_cc;" (primitive_type "void") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc")) (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "size_t local_c4;" (primitive_type "size_t") (identifier "local_c4") (; ";")) (declaration "int local_c0;" (primitive_type "int") (identifier "local_c0") (; ";")) (declaration "void *local_a8;" (primitive_type "void") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "stat64 local_80;" (type_identifier "stat64") (identifier "local_80") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1cf19;" (assignment_expression "uStack_14 = 0x1cf19" (identifier "uStack_14") (= "=") (number_literal "0x1cf19")) (; ";")) (expression_statement "local_cc = param_1;" (assignment_expression "local_cc = param_1" (identifier "local_cc") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (param_2 == 0) {\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }\n  else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_c4 = 0x1000;\n    if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }\nLAB_0001cf5b:\n    local_d0 = malloc(local_c4);\n    pvVar21 = local_d0;\n    if (local_d0 == (void *)0x0) goto LAB_0001cf78;\n  }" ({ "{") (expression_statement "local_c4 = 0x1000;" (assignment_expression "local_c4 = 0x1000" (identifier "local_c4") (= "=") (number_literal "0x1000")) (; ";")) (if_statement "if (param_1 != (void *)0x0) {\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }" (if "if") (parenthesized_expression "(param_1 != (void *)0x0)" (( "(") (binary_expression "param_1 != (void *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar17 = __errno_location();\n      local_d0 = (void *)0x0;\n      *piVar17 = 0x16;\n      pvVar21 = local_d0;\n      goto LAB_0001cf78;\n    }" ({ "{") (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" (identifier "piVar17") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_d0 = (void *)0x0;" (assignment_expression "local_d0 = (void *)0x0" (identifier "local_d0") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*piVar17 = 0x16;" (assignment_expression "*piVar17 = 0x16" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" (identifier "pvVar21") (= "=") (identifier "local_d0")) (; ";")) (goto_statement "goto LAB_0001cf78;" (goto "goto") (statement_identifier "LAB_0001cf78") (; ";")) (} "}"))) (labeled_statement "LAB_0001cf5b:\n    local_d0 = malloc(local_c4);" (statement_identifier "LAB_0001cf5b") (: ":") (expression_statement "local_d0 = malloc(local_c4);" (assignment_expression "local_d0 = malloc(local_c4)" (identifier "local_d0") (= "=") (call_expression "malloc(local_c4)" (identifier "malloc") (argument_list "(local_c4)" (( "(") (identifier "local_c4") () ")")))) (; ";"))) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" (identifier "pvVar21") (= "=") (identifier "local_d0")) (; ";")) (if_statement "if (local_d0 == (void *)0x0) goto LAB_0001cf78;" (if "if") (parenthesized_expression "(local_d0 == (void *)0x0)" (( "(") (binary_expression "local_d0 == (void *)0x0" (identifier "local_d0") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cf78;" (goto "goto") (statement_identifier "LAB_0001cf78") (; ";"))) (} "}")) (else_clause "else {\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" (else "else") (compound_statement "{\n    local_c4 = param_2;\n    if (param_1 == (void *)0x0) goto LAB_0001cf5b;\n    local_d0 = param_1;\n  }" ({ "{") (expression_statement "local_c4 = param_2;" (assignment_expression "local_c4 = param_2" (identifier "local_c4") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_1 == (void *)0x0) goto LAB_0001cf5b;" (if "if") (parenthesized_expression "(param_1 == (void *)0x0)" (( "(") (binary_expression "param_1 == (void *)0x0" (identifier "param_1") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cf5b;" (goto "goto") (statement_identifier "LAB_0001cf5b") (; ";"))) (expression_statement "local_d0 = param_1;" (assignment_expression "local_d0 = param_1" (identifier "local_d0") (= "=") (identifier "param_1")) (; ";")) (} "}")))) (expression_statement "iVar23 = (int)local_d0 + local_c4;" (assignment_expression "iVar23 = (int)local_d0 + local_c4" (identifier "iVar23") (= "=") (binary_expression "(int)local_d0 + local_c4" (cast_expression "(int)local_d0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d0")) (+ "+") (identifier "local_c4"))) (; ";")) (expression_statement "*(undefined1 *)(iVar23 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar23 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar23 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar23 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + -1)" (( "(") (binary_expression "iVar23 + -1" (identifier "iVar23") (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar15 = __lxstat64(3,".",&local_80);" (assignment_expression "iVar15 = __lxstat64(3,".",&local_80)" (identifier "iVar15") (= "=") (call_expression "__lxstat64(3,".",&local_80)" (identifier "__lxstat64") (argument_list "(3,".",&local_80)" (( "(") (number_literal "3") (, ",") (string_literal ""."" (" """) (string_content ".") (" """)) (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (expression_statement "iVar13 = local_80.st_ino._4_4_;" (assignment_expression "iVar13 = local_80.st_ino._4_4_" (identifier "iVar13") (= "=") (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")) (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "iVar11 = (int)local_80.st_ino;" (assignment_expression "iVar11 = (int)local_80.st_ino" (identifier "iVar11") (= "=") (cast_expression "(int)local_80.st_ino" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")))) (; ";")) (expression_statement "iVar9 = local_80.st_dev._4_4_;" (assignment_expression "iVar9 = local_80.st_dev._4_4_" (identifier "iVar9") (= "=") (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "iVar18 = (int)local_80.st_dev;" (assignment_expression "iVar18 = (int)local_80.st_dev" (identifier "iVar18") (= "=") (cast_expression "(int)local_80.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")))) (; ";")) (if_statement "if (iVar15 < 0) {\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }\n  else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" (if "if") (parenthesized_expression "(iVar15 < 0)" (( "(") (binary_expression "iVar15 < 0" (identifier "iVar15") (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001d440:\n    piVar17 = __errno_location();\n  }" ({ "{") (labeled_statement "LAB_0001d440:\n    piVar17 = __errno_location();" (statement_identifier "LAB_0001d440") (: ":") (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" (identifier "piVar17") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";"))) (} "}")) (else_clause "else {\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" (else "else") (compound_statement "{\n    local_c8 = local_80.st_dev._4_4_;\n    local_c0 = (int)local_80.st_dev;\n    local_e0 = (int)local_80.st_ino;\n    local_dc = local_80.st_ino._4_4_;\n    iVar16 = __lxstat64(3,"/",&local_80);\n    iVar14 = local_80.st_ino._4_4_;\n    iVar12 = (int)local_80.st_ino;\n    iVar10 = local_80.st_dev._4_4_;\n    iVar15 = (int)local_80.st_dev;\n    if (iVar16 < 0) goto LAB_0001d440;\n    local_a8 = (void *)(iVar23 + -1);\n    bVar6 = iVar18 != (int)local_80.st_dev;\n    bVar7 = iVar9 != local_80.st_dev._4_4_;\n    bVar1 = iVar11 != (int)local_80.st_ino;\n    bVar2 = iVar13 != local_80.st_ino._4_4_;\n    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }\n    piVar17 = __errno_location();\n    local_e8 = -100;\n    __dirp = (DIR *)0x0;\n    do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));\n    iVar18 = closedir(__dirp);\n    if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }\n  }" ({ "{") (expression_statement "local_c8 = local_80.st_dev._4_4_;" (assignment_expression "local_c8 = local_80.st_dev._4_4_" (identifier "local_c8") (= "=") (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "local_c0 = (int)local_80.st_dev;" (assignment_expression "local_c0 = (int)local_80.st_dev" (identifier "local_c0") (= "=") (cast_expression "(int)local_80.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")))) (; ";")) (expression_statement "local_e0 = (int)local_80.st_ino;" (assignment_expression "local_e0 = (int)local_80.st_ino" (identifier "local_e0") (= "=") (cast_expression "(int)local_80.st_ino" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")))) (; ";")) (expression_statement "local_dc = local_80.st_ino._4_4_;" (assignment_expression "local_dc = local_80.st_ino._4_4_" (identifier "local_dc") (= "=") (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")) (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "iVar16 = __lxstat64(3,"/",&local_80);" (assignment_expression "iVar16 = __lxstat64(3,"/",&local_80)" (identifier "iVar16") (= "=") (call_expression "__lxstat64(3,"/",&local_80)" (identifier "__lxstat64") (argument_list "(3,"/",&local_80)" (( "(") (number_literal "3") (, ",") (string_literal ""/"" (" """) (string_content "/") (" """)) (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (expression_statement "iVar14 = local_80.st_ino._4_4_;" (assignment_expression "iVar14 = local_80.st_ino._4_4_" (identifier "iVar14") (= "=") (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")) (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "iVar12 = (int)local_80.st_ino;" (assignment_expression "iVar12 = (int)local_80.st_ino" (identifier "iVar12") (= "=") (cast_expression "(int)local_80.st_ino" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")))) (; ";")) (expression_statement "iVar10 = local_80.st_dev._4_4_;" (assignment_expression "iVar10 = local_80.st_dev._4_4_" (identifier "iVar10") (= "=") (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "iVar15 = (int)local_80.st_dev;" (assignment_expression "iVar15 = (int)local_80.st_dev" (identifier "iVar15") (= "=") (cast_expression "(int)local_80.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")))) (; ";")) (if_statement "if (iVar16 < 0) goto LAB_0001d440;" (if "if") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d440;" (goto "goto") (statement_identifier "LAB_0001d440") (; ";"))) (expression_statement "local_a8 = (void *)(iVar23 + -1);" (assignment_expression "local_a8 = (void *)(iVar23 + -1)" (identifier "local_a8") (= "=") (cast_expression "(void *)(iVar23 + -1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + -1)" (( "(") (binary_expression "iVar23 + -1" (identifier "iVar23") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar6 = iVar18 != (int)local_80.st_dev;" (assignment_expression "bVar6 = iVar18 != (int)local_80.st_dev" (identifier "bVar6") (= "=") (binary_expression "iVar18 != (int)local_80.st_dev" (identifier "iVar18") (!= "!=") (cast_expression "(int)local_80.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev"))))) (; ";")) (expression_statement "bVar7 = iVar9 != local_80.st_dev._4_4_;" (assignment_expression "bVar7 = iVar9 != local_80.st_dev._4_4_" (identifier "bVar7") (= "=") (binary_expression "iVar9 != local_80.st_dev._4_4_" (identifier "iVar9") (!= "!=") (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_")))) (; ";")) (expression_statement "bVar1 = iVar11 != (int)local_80.st_ino;" (assignment_expression "bVar1 = iVar11 != (int)local_80.st_ino" (identifier "bVar1") (= "=") (binary_expression "iVar11 != (int)local_80.st_ino" (identifier "iVar11") (!= "!=") (cast_expression "(int)local_80.st_ino" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino"))))) (; ";")) (expression_statement "bVar2 = iVar13 != local_80.st_ino._4_4_;" (assignment_expression "bVar2 = iVar13 != local_80.st_ino._4_4_" (identifier "bVar2") (= "=") (binary_expression "iVar13 != local_80.st_ino._4_4_" (identifier "iVar13") (!= "!=") (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")) (. ".") (field_identifier "_4_4_")))) (; ";")) (if_statement "if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }" (if "if") (parenthesized_expression "((!bVar6 && !bVar7) && (!bVar1 && !bVar2))" (( "(") (binary_expression "(!bVar6 && !bVar7) && (!bVar1 && !bVar2)" (parenthesized_expression "(!bVar6 && !bVar7)" (( "(") (binary_expression "!bVar6 && !bVar7" (unary_expression "!bVar6" (! "!") (identifier "bVar6")) (&& "&&") (unary_expression "!bVar7" (! "!") (identifier "bVar7"))) () ")")) (&& "&&") (parenthesized_expression "(!bVar1 && !bVar2)" (( "(") (binary_expression "!bVar1 && !bVar2" (unary_expression "!bVar1" (! "!") (identifier "bVar1")) (&& "&&") (unary_expression "!bVar2" (! "!") (identifier "bVar2"))) () ")"))) () ")")) (compound_statement "{\nLAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }\n      memmove(local_d0,local_a8,iVar23 - (int)local_a8);\n      if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }\n      pvVar21 = local_cc;\n      if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }\n      goto LAB_0001cf78;\n    }" ({ "{") (labeled_statement "LAB_0001d35f:\n      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" (statement_identifier "LAB_0001d35f") (: ":") (if_statement "if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" (if "if") (parenthesized_expression "(local_a8 == (void *)((int)local_d0 + (local_c4 - 1)))" (( "(") (binary_expression "local_a8 == (void *)((int)local_d0 + (local_c4 - 1))" (identifier "local_a8") (== "==") (cast_expression "(void *)((int)local_d0 + (local_c4 - 1))" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_d0 + (local_c4 - 1))" (( "(") (binary_expression "(int)local_d0 + (local_c4 - 1)" (cast_expression "(int)local_d0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d0")) (+ "+") (parenthesized_expression "(local_c4 - 1)" (( "(") (binary_expression "local_c4 - 1" (identifier "local_c4") (- "-") (number_literal "1")) () ")"))) () ")")))) () ")")) (compound_statement "{\n        *(undefined1 *)((int)local_a8 + -1) = 0x2f;\n        local_a8 = (void *)((int)local_a8 + -1);\n      }" ({ "{") (expression_statement "*(undefined1 *)((int)local_a8 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)local_a8 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)local_a8 + -1)" (* "*") (cast_expression "(undefined1 *)((int)local_a8 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + -1)" (( "(") (binary_expression "(int)local_a8 + -1" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "local_a8 = (void *)((int)local_a8 + -1);" (assignment_expression "local_a8 = (void *)((int)local_a8 + -1)" (identifier "local_a8") (= "=") (cast_expression "(void *)((int)local_a8 + -1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + -1)" (( "(") (binary_expression "(int)local_a8 + -1" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (} "}")))) (expression_statement "memmove(local_d0,local_a8,iVar23 - (int)local_a8);" (call_expression "memmove(local_d0,local_a8,iVar23 - (int)local_a8)" (identifier "memmove") (argument_list "(local_d0,local_a8,iVar23 - (int)local_a8)" (( "(") (identifier "local_d0") (, ",") (identifier "local_a8") (, ",") (binary_expression "iVar23 - (int)local_a8" (identifier "iVar23") (- "-") (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8"))) () ")"))) (; ";")) (if_statement "if (param_2 == 0) {\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_cc = realloc(local_d0,iVar23 - (int)local_a8);\n      }" ({ "{") (expression_statement "local_cc = realloc(local_d0,iVar23 - (int)local_a8);" (assignment_expression "local_cc = realloc(local_d0,iVar23 - (int)local_a8)" (identifier "local_cc") (= "=") (call_expression "realloc(local_d0,iVar23 - (int)local_a8)" (identifier "realloc") (argument_list "(local_d0,iVar23 - (int)local_a8)" (( "(") (identifier "local_d0") (, ",") (binary_expression "iVar23 - (int)local_a8" (identifier "iVar23") (- "-") (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8"))) () ")")))) (; ";")) (} "}"))) (expression_statement "pvVar21 = local_cc;" (assignment_expression "pvVar21 = local_cc" (identifier "pvVar21") (= "=") (identifier "local_cc")) (; ";")) (if_statement "if (local_cc == (void *)0x0) {\n        pvVar21 = local_d0;\n      }" (if "if") (parenthesized_expression "(local_cc == (void *)0x0)" (( "(") (binary_expression "local_cc == (void *)0x0" (identifier "local_cc") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pvVar21 = local_d0;\n      }" ({ "{") (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" (identifier "pvVar21") (= "=") (identifier "local_d0")) (; ";")) (} "}"))) (goto_statement "goto LAB_0001cf78;" (goto "goto") (statement_identifier "LAB_0001cf78") (; ";")) (} "}"))) (expression_statement "piVar17 = __errno_location();" (assignment_expression "piVar17 = __errno_location()" (identifier "piVar17") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_e8 = -100;" (assignment_expression "local_e8 = -100" (identifier "local_e8") (= "=") (number_literal "-100")) (; ";")) (expression_statement "__dirp = (DIR *)0x0;" (assignment_expression "__dirp = (DIR *)0x0" (identifier "__dirp") (= "=") (cast_expression "(DIR *)0x0" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));" (do "do") (compound_statement "{\n      local_e8 = openat64(local_e8,"..",0);\n      if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }\n      iVar18 = __fxstat64(3,local_e8,&local_80);\n      if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }\n      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }\nLAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));\n      uVar20 = (int)local_a8 - (int)local_d0;\n      __n = strlen(__filename);\n      if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }\nLAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);\n      memcpy(pvVar21,__filename,__n);\n      local_c8 = iVar11;\n      local_a8 = (void *)((int)pvVar21 + -1);\n      local_e0 = iVar13;\n      local_c0 = iVar9;\n      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;\n      local_dc = iVar23;\n    }" ({ "{") (expression_statement "local_e8 = openat64(local_e8,"..",0);" (assignment_expression "local_e8 = openat64(local_e8,"..",0)" (identifier "local_e8") (= "=") (call_expression "openat64(local_e8,"..",0)" (identifier "openat64") (argument_list "(local_e8,"..",0)" (( "(") (identifier "local_e8") (, ",") (string_literal "".."" (" """) (string_content "..") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (local_e8 < 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }" (if "if") (parenthesized_expression "(local_e8 < 0)" (( "(") (binary_expression "local_e8 < 0" (identifier "local_e8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) goto LAB_0001d417;\n        goto joined_r0x0001d429;\n      }" ({ "{") (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" (identifier "iVar18") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (if_statement "if (__dirp != (DIR *)0x0) goto LAB_0001d417;" (if "if") (parenthesized_expression "(__dirp != (DIR *)0x0)" (( "(") (binary_expression "__dirp != (DIR *)0x0" (identifier "__dirp") (!= "!=") (cast_expression "(DIR *)0x0" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d417;" (goto "goto") (statement_identifier "LAB_0001d417") (; ";"))) (goto_statement "goto joined_r0x0001d429;" (goto "goto") (statement_identifier "joined_r0x0001d429") (; ";")) (} "}"))) (expression_statement "iVar18 = __fxstat64(3,local_e8,&local_80);" (assignment_expression "iVar18 = __fxstat64(3,local_e8,&local_80)" (identifier "iVar18") (= "=") (call_expression "__fxstat64(3,local_e8,&local_80)" (identifier "__fxstat64") (argument_list "(3,local_e8,&local_80)" (( "(") (number_literal "3") (, ",") (identifier "local_e8") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (if_statement "if (iVar18 != 0) {\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar18 = *piVar17;\n        if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }\nLAB_0001d486:\n        close(local_e8);\n        goto joined_r0x0001d429;\n      }" ({ "{") (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" (identifier "iVar18") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (if_statement "if (__dirp != (DIR *)0x0) {\n          closedir(__dirp);\n        }" (if "if") (parenthesized_expression "(__dirp != (DIR *)0x0)" (( "(") (binary_expression "__dirp != (DIR *)0x0" (identifier "__dirp") (!= "!=") (cast_expression "(DIR *)0x0" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          closedir(__dirp);\n        }" ({ "{") (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" (identifier "closedir") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001d486:\n        close(local_e8);" (statement_identifier "LAB_0001d486") (: ":") (expression_statement "close(local_e8);" (call_expression "close(local_e8)" (identifier "close") (argument_list "(local_e8)" (( "(") (identifier "local_e8") () ")"))) (; ";"))) (goto_statement "goto joined_r0x0001d429;" (goto "goto") (statement_identifier "joined_r0x0001d429") (; ";")) (} "}"))) (if_statement "if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }" (if "if") (parenthesized_expression "(((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0))" (( "(") (binary_expression "((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||\n         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)" (parenthesized_expression "((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0))" (( "(") (binary_expression "(__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)" (parenthesized_expression "(__dirp != (DIR *)0x0)" (( "(") (binary_expression "__dirp != (DIR *)0x0" (identifier "__dirp") (!= "!=") (cast_expression "(DIR *)0x0" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar18 = closedir(__dirp), iVar18 != 0)" (( "(") (comma_expression "iVar18 = closedir(__dirp), iVar18 != 0" (assignment_expression "iVar18 = closedir(__dirp)" (identifier "iVar18") (= "=") (call_expression "closedir(__dirp)" (identifier "closedir") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)" (( "(") (comma_expression "iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar23 = local_80.st_ino._4_4_" (identifier "iVar23") (= "=") (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")) (. ".") (field_identifier "_4_4_"))) (, ",") (comma_expression "iVar13 = (int)local_80.st_ino,\n         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar13 = (int)local_80.st_ino" (identifier "iVar13") (= "=") (cast_expression "(int)local_80.st_ino" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")))) (, ",") (comma_expression "iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar11 = local_80.st_dev._4_4_" (identifier "iVar11") (= "=") (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_"))) (, ",") (comma_expression "iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "iVar9 = (int)local_80.st_dev" (identifier "iVar9") (= "=") (cast_expression "(int)local_80.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")))) (, ",") (comma_expression "__dirp = fdopendir(local_e8),\n         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "__dirp = fdopendir(local_e8)" (identifier "__dirp") (= "=") (call_expression "fdopendir(local_e8)" (identifier "fdopendir") (argument_list "(local_e8)" (( "(") (identifier "local_e8") () ")")))) (, ",") (comma_expression "bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0" (assignment_expression "bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2)" (identifier "bVar8") (= "=") (binary_expression "(bVar6 || bVar7) || (bVar1 || bVar2)" (parenthesized_expression "(bVar6 || bVar7)" (( "(") (binary_expression "bVar6 || bVar7" (identifier "bVar6") (|| "||") (identifier "bVar7")) () ")")) (|| "||") (parenthesized_expression "(bVar1 || bVar2)" (( "(") (binary_expression "bVar1 || bVar2" (identifier "bVar1") (|| "||") (identifier "bVar2")) () ")")))) (, ",") (binary_expression "__dirp == (DIR *)0x0" (identifier "__dirp") (== "==") (cast_expression "(DIR *)0x0" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))))))) () ")"))) () ")")) (compound_statement "{\n        iVar18 = *piVar17;\n        goto LAB_0001d486;\n      }" ({ "{") (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" (identifier "iVar18") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (goto_statement "goto LAB_0001d486;" (goto "goto") (statement_identifier "LAB_0001d486") (; ";")) (} "}"))) (labeled_statement "LAB_0001d168:\n      do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));" (statement_identifier "LAB_0001d168") (: ":") (do_statement "do {\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));" (do "do") (compound_statement "{\n        do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));\n        __filename = pdVar19->d_name;\n        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);\n        bVar8 = bVar5;\n      }" ({ "{") (do_statement "do {\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        } while ((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));" (do "do") (compound_statement "{\n          *piVar17 = 0;\n          pdVar19 = readdir64(__dirp);\n          if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }\n          if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }\n          bVar5 = bVar8;\n        }" ({ "{") (expression_statement "*piVar17 = 0;" (assignment_expression "*piVar17 = 0" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pdVar19 = readdir64(__dirp);" (assignment_expression "pdVar19 = readdir64(__dirp)" (identifier "pdVar19") (= "=") (call_expression "readdir64(__dirp)" (identifier "readdir64") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (; ";")) (if_statement "if (pdVar19 == (dirent64 *)0x0) {\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }" (if "if") (parenthesized_expression "(pdVar19 == (dirent64 *)0x0)" (( "(") (binary_expression "pdVar19 == (dirent64 *)0x0" (identifier "pdVar19") (== "==") (cast_expression "(dirent64 *)0x0" (( "(") (type_descriptor "dirent64 *" (type_identifier "dirent64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar18 = *piVar17;\n            if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }\n            if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }\n            goto LAB_0001d417;\n          }" ({ "{") (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" (identifier "iVar18") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (if_statement "if ((iVar18 == 0) && (bVar8)) {\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }" (if "if") (parenthesized_expression "((iVar18 == 0) && (bVar8))" (( "(") (binary_expression "(iVar18 == 0) && (bVar8)" (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")"))) () ")")) (compound_statement "{\n              rewinddir(__dirp);\n              pdVar19 = readdir64(__dirp);\n              if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }\n              iVar18 = *piVar17;\n            }" ({ "{") (expression_statement "rewinddir(__dirp);" (call_expression "rewinddir(__dirp)" (identifier "rewinddir") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")"))) (; ";")) (expression_statement "pdVar19 = readdir64(__dirp);" (assignment_expression "pdVar19 = readdir64(__dirp)" (identifier "pdVar19") (= "=") (call_expression "readdir64(__dirp)" (identifier "readdir64") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (; ";")) (if_statement "if (pdVar19 != (dirent64 *)0x0) {\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }" (if "if") (parenthesized_expression "(pdVar19 != (dirent64 *)0x0)" (( "(") (binary_expression "pdVar19 != (dirent64 *)0x0" (identifier "pdVar19") (!= "!=") (cast_expression "(dirent64 *)0x0" (( "(") (type_descriptor "dirent64 *" (type_identifier "dirent64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                bVar5 = false;\n                bVar8 = bVar5;\n                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;\n                break;\n              }" ({ "{") (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (expression_statement "bVar8 = bVar5;" (assignment_expression "bVar8 = bVar5" (identifier "bVar8") (= "=") (identifier "bVar5")) (; ";")) (if_statement "if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;" (if "if") (parenthesized_expression "(pdVar19->d_name[0] == '.')" (( "(") (binary_expression "pdVar19->d_name[0] == '.'" (subscript_expression "pdVar19->d_name[0]" (field_expression "pdVar19->d_name" (identifier "pdVar19") (-> "->") (field_identifier "d_name")) ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_0001d3e8;" (goto "goto") (statement_identifier "LAB_0001d3e8") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" (identifier "iVar18") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (} "}"))) (if_statement "if (iVar18 == 0) {\n              *piVar17 = 2;\n              iVar18 = 2;\n            }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              *piVar17 = 2;\n              iVar18 = 2;\n            }" ({ "{") (expression_statement "*piVar17 = 2;" (assignment_expression "*piVar17 = 2" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar18 = 2;" (assignment_expression "iVar18 = 2" (identifier "iVar18") (= "=") (number_literal "2")) (; ";")) (} "}"))) (goto_statement "goto LAB_0001d417;" (goto "goto") (statement_identifier "LAB_0001d417") (; ";")) (} "}"))) (if_statement "if (pdVar19->d_name[0] == '.') {\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }" (if "if") (parenthesized_expression "(pdVar19->d_name[0] == '.')" (( "(") (binary_expression "pdVar19->d_name[0] == '.'" (subscript_expression "pdVar19->d_name[0]" (field_expression "pdVar19->d_name" (identifier "pdVar19") (-> "->") (field_identifier "d_name")) ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\nLAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;\n          }" ({ "{") (labeled_statement "LAB_0001d3e8:\n            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;" (statement_identifier "LAB_0001d3e8") (: ":") (if_statement "if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))\n            goto LAB_0001d168;" (if "if") (parenthesized_expression "((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))" (( "(") (binary_expression "(pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e)" (parenthesized_expression "(pdVar19->d_name[1] == '\0')" (( "(") (binary_expression "pdVar19->d_name[1] == '\0'" (subscript_expression "pdVar19->d_name[1]" (field_expression "pdVar19->d_name" (identifier "pdVar19") (-> "->") (field_identifier "d_name")) ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(short *)(pdVar19->d_name + 1) == 0x2e)" (( "(") (binary_expression "*(short *)(pdVar19->d_name + 1) == 0x2e" (pointer_expression "*(short *)(pdVar19->d_name + 1)" (* "*") (cast_expression "(short *)(pdVar19->d_name + 1)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar19->d_name + 1)" (( "(") (binary_expression "pdVar19->d_name + 1" (field_expression "pdVar19->d_name" (identifier "pdVar19") (-> "->") (field_identifier "d_name")) (+ "+") (number_literal "1")) () ")")))) (== "==") (number_literal "0x2e")) () ")"))) () ")")) (goto_statement "goto LAB_0001d168;" (goto "goto") (statement_identifier "LAB_0001d168") (; ";")))) (} "}"))) (expression_statement "bVar5 = bVar8;" (assignment_expression "bVar5 = bVar8" (identifier "bVar5") (= "=") (identifier "bVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)))" (( "(") (binary_expression "(bVar8) &&\n                (bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11))" (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (&& "&&") (parenthesized_expression "(bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11))" (( "(") (comma_expression "bVar3 = local_e0 == (int)pdVar19->d_ino,\n                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar3 = local_e0 == (int)pdVar19->d_ino" (identifier "bVar3") (= "=") (binary_expression "local_e0 == (int)pdVar19->d_ino" (identifier "local_e0") (== "==") (cast_expression "(int)pdVar19->d_ino" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pdVar19->d_ino" (identifier "pdVar19") (-> "->") (field_identifier "d_ino"))))) (, ",") (comma_expression "bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),\n                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4)" (identifier "bVar4") (= "=") (binary_expression "local_dc == *(int *)((int)&pdVar19->d_ino + 4)" (identifier "local_dc") (== "==") (pointer_expression "*(int *)((int)&pdVar19->d_ino + 4)" (* "*") (cast_expression "(int *)((int)&pdVar19->d_ino + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pdVar19->d_ino + 4)" (( "(") (binary_expression "(int)&pdVar19->d_ino + 4" (cast_expression "(int)&pdVar19->d_ino" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pdVar19->d_ino" (& "&") (field_expression "pdVar19->d_ino" (identifier "pdVar19") (-> "->") (field_identifier "d_ino")))) (+ "+") (number_literal "4")) () ")")))))) (, ",") (comma_expression "bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),\n                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (assignment_expression "bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11)" (identifier "bVar5") (= "=") (binary_expression "bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11)" (binary_expression "bVar3 && bVar4" (identifier "bVar3") (&& "&&") (identifier "bVar4")) (|| "||") (parenthesized_expression "(iVar9 != local_c0 || local_c8 != iVar11)" (( "(") (binary_expression "iVar9 != local_c0 || local_c8 != iVar11" (binary_expression "iVar9 != local_c0" (identifier "iVar9") (!= "!=") (identifier "local_c0")) (|| "||") (binary_expression "local_c8 != iVar11" (identifier "local_c8") (!= "!=") (identifier "iVar11"))) () ")")))) (, ",") (binary_expression "(!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)" (parenthesized_expression "(!bVar3 || !bVar4)" (( "(") (binary_expression "!bVar3 || !bVar4" (unary_expression "!bVar3" (! "!") (identifier "bVar3")) (|| "||") (unary_expression "!bVar4" (! "!") (identifier "bVar4"))) () ")")) (&& "&&") (parenthesized_expression "(iVar9 == local_c0 && local_c8 == iVar11)" (( "(") (binary_expression "iVar9 == local_c0 && local_c8 == iVar11" (binary_expression "iVar9 == local_c0" (identifier "iVar9") (== "==") (identifier "local_c0")) (&& "&&") (binary_expression "local_c8 == iVar11" (identifier "local_c8") (== "==") (identifier "iVar11"))) () ")")))))) () ")"))) () ")")) (; ";")) (expression_statement "__filename = pdVar19->d_name;" (assignment_expression "__filename = pdVar19->d_name" (identifier "__filename") (= "=") (field_expression "pdVar19->d_name" (identifier "pdVar19") (-> "->") (field_identifier "d_name"))) (; ";")) (expression_statement "iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);" (assignment_expression "iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100)" (identifier "iVar18") (= "=") (call_expression "__fxstatat64(3,local_e8,__filename,&local_80,0x100)" (identifier "__fxstatat64") (argument_list "(3,local_e8,__filename,&local_80,0x100)" (( "(") (number_literal "3") (, ",") (identifier "local_e8") (, ",") (identifier "__filename") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) (, ",") (number_literal "0x100") () ")")))) (; ";")) (expression_statement "bVar8 = bVar5;" (assignment_expression "bVar8 = bVar5" (identifier "bVar8") (= "=") (identifier "bVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino))" (( "(") (binary_expression "(((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||\n              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino)" (parenthesized_expression "(((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev))" (( "(") (binary_expression "((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||\n               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)" (parenthesized_expression "((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000))" (( "(") (binary_expression "(iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)" (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((local_80.st_mode & 0xf000) != 0x4000)" (( "(") (binary_expression "(local_80.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(local_80.st_mode & 0xf000)" (( "(") (binary_expression "local_80.st_mode & 0xf000" (field_expression "local_80.st_mode" (identifier "local_80") (. ".") (field_identifier "st_mode")) (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)" (( "(") (binary_expression "local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev" (binary_expression "local_c8 != local_80.st_dev._4_4_" (identifier "local_c8") (!= "!=") (field_expression "local_80.st_dev._4_4_" (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_"))) (|| "||") (binary_expression "local_c0 != (int)local_80.st_dev" (identifier "local_c0") (!= "!=") (cast_expression "(int)local_80.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_dev" (identifier "local_80") (. ".") (field_identifier "st_dev"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino)" (( "(") (binary_expression "local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino" (binary_expression "local_dc != local_80.st_ino._4_4_" (identifier "local_dc") (!= "!=") (field_expression "local_80.st_ino._4_4_" (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino")) (. ".") (field_identifier "_4_4_"))) (|| "||") (binary_expression "local_e0 != (int)local_80.st_ino" (identifier "local_e0") (!= "!=") (cast_expression "(int)local_80.st_ino" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_80.st_ino" (identifier "local_80") (. ".") (field_identifier "st_ino"))))) () ")"))) () ")")) (; ";"))) (expression_statement "uVar20 = (int)local_a8 - (int)local_d0;" (assignment_expression "uVar20 = (int)local_a8 - (int)local_d0" (identifier "uVar20") (= "=") (binary_expression "(int)local_a8 - (int)local_d0" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (cast_expression "(int)local_d0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d0")))) (; ";")) (expression_statement "__n = strlen(__filename);" (assignment_expression "__n = strlen(__filename)" (identifier "__n") (= "=") (call_expression "strlen(__filename)" (identifier "strlen") (argument_list "(__filename)" (( "(") (identifier "__filename") () ")")))) (; ";")) (if_statement "if (uVar20 <= __n) {\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }" (if "if") (parenthesized_expression "(uVar20 <= __n)" (( "(") (binary_expression "uVar20 <= __n" (identifier "uVar20") (<= "<=") (identifier "__n")) () ")")) (compound_statement "{\n        if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }\nLAB_0001d417:\n        closedir(__dirp);\n        goto joined_r0x0001d429;\n      }" ({ "{") (if_statement "if (param_2 == 0) {\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }\n        else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          sVar22 = local_c4;\n          if (local_c4 <= __n) {\n            sVar22 = __n;\n          }\n          if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }\n          iVar18 = 0xc;\n          *piVar17 = 0xc;\n        }" ({ "{") (expression_statement "sVar22 = local_c4;" (assignment_expression "sVar22 = local_c4" (identifier "sVar22") (= "=") (identifier "local_c4")) (; ";")) (if_statement "if (local_c4 <= __n) {\n            sVar22 = __n;\n          }" (if "if") (parenthesized_expression "(local_c4 <= __n)" (( "(") (binary_expression "local_c4 <= __n" (identifier "local_c4") (<= "<=") (identifier "__n")) () ")")) (compound_statement "{\n            sVar22 = __n;\n          }" ({ "{") (expression_statement "sVar22 = __n;" (assignment_expression "sVar22 = __n" (identifier "sVar22") (= "=") (identifier "__n")) (; ";")) (} "}"))) (if_statement "if ((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }" (if "if") (parenthesized_expression "((!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0))" (( "(") (binary_expression "(!CARRY4(local_c4,sVar22)) &&\n             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)" (parenthesized_expression "(!CARRY4(local_c4,sVar22))" (( "(") (unary_expression "!CARRY4(local_c4,sVar22)" (! "!") (call_expression "CARRY4(local_c4,sVar22)" (identifier "CARRY4") (argument_list "(local_c4,sVar22)" (( "(") (identifier "local_c4") (, ",") (identifier "sVar22") () ")")))) () ")")) (&& "&&") (parenthesized_expression "(pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)" (( "(") (comma_expression "pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0" (assignment_expression "pvVar21 = realloc(local_d0,local_c4 + sVar22)" (identifier "pvVar21") (= "=") (call_expression "realloc(local_d0,local_c4 + sVar22)" (identifier "realloc") (argument_list "(local_d0,local_c4 + sVar22)" (( "(") (identifier "local_d0") (, ",") (binary_expression "local_c4 + sVar22" (identifier "local_c4") (+ "+") (identifier "sVar22")) () ")")))) (, ",") (binary_expression "pvVar21 != (void *)0x0" (identifier "pvVar21") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);\n            local_d0 = pvVar21;\n            local_c4 = local_c4 + sVar22;\n            goto LAB_0001d2ce;\n          }" ({ "{") (expression_statement "local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);" (assignment_expression "local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" (identifier "local_a8") (= "=") (call_expression "memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" (identifier "memcpy") (argument_list "((void *)(sVar22 + uVar20 + (int)pvVar21),\n                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20)" (( "(") (cast_expression "(void *)(sVar22 + uVar20 + (int)pvVar21)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(sVar22 + uVar20 + (int)pvVar21)" (( "(") (binary_expression "sVar22 + uVar20 + (int)pvVar21" (binary_expression "sVar22 + uVar20" (identifier "sVar22") (+ "+") (identifier "uVar20")) (+ "+") (cast_expression "(int)pvVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar21"))) () ")"))) (, ",") (cast_expression "(void *)(uVar20 + (int)pvVar21)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar20 + (int)pvVar21)" (( "(") (binary_expression "uVar20 + (int)pvVar21" (identifier "uVar20") (+ "+") (cast_expression "(int)pvVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar21"))) () ")"))) (, ",") (binary_expression "local_c4 - uVar20" (identifier "local_c4") (- "-") (identifier "uVar20")) () ")")))) (; ";")) (expression_statement "local_d0 = pvVar21;" (assignment_expression "local_d0 = pvVar21" (identifier "local_d0") (= "=") (identifier "pvVar21")) (; ";")) (expression_statement "local_c4 = local_c4 + sVar22;" (assignment_expression "local_c4 = local_c4 + sVar22" (identifier "local_c4") (= "=") (binary_expression "local_c4 + sVar22" (identifier "local_c4") (+ "+") (identifier "sVar22"))) (; ";")) (goto_statement "goto LAB_0001d2ce;" (goto "goto") (statement_identifier "LAB_0001d2ce") (; ";")) (} "}"))) (expression_statement "iVar18 = 0xc;" (assignment_expression "iVar18 = 0xc" (identifier "iVar18") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "*piVar17 = 0xc;" (assignment_expression "*piVar17 = 0xc" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else {\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" (else "else") (compound_statement "{\n          iVar18 = 0x22;\n          *piVar17 = 0x22;\n        }" ({ "{") (expression_statement "iVar18 = 0x22;" (assignment_expression "iVar18 = 0x22" (identifier "iVar18") (= "=") (number_literal "0x22")) (; ";")) (expression_statement "*piVar17 = 0x22;" (assignment_expression "*piVar17 = 0x22" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (number_literal "0x22")) (; ";")) (} "}")))) (labeled_statement "LAB_0001d417:\n        closedir(__dirp);" (statement_identifier "LAB_0001d417") (: ":") (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" (identifier "closedir") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")"))) (; ";"))) (goto_statement "goto joined_r0x0001d429;" (goto "goto") (statement_identifier "joined_r0x0001d429") (; ";")) (} "}"))) (labeled_statement "LAB_0001d2ce:\n      pvVar21 = (void *)((int)local_a8 - __n);" (statement_identifier "LAB_0001d2ce") (: ":") (expression_statement "pvVar21 = (void *)((int)local_a8 - __n);" (assignment_expression "pvVar21 = (void *)((int)local_a8 - __n)" (identifier "pvVar21") (= "=") (cast_expression "(void *)((int)local_a8 - __n)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 - __n)" (( "(") (binary_expression "(int)local_a8 - __n" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (identifier "__n")) () ")")))) (; ";"))) (expression_statement "memcpy(pvVar21,__filename,__n);" (call_expression "memcpy(pvVar21,__filename,__n)" (identifier "memcpy") (argument_list "(pvVar21,__filename,__n)" (( "(") (identifier "pvVar21") (, ",") (identifier "__filename") (, ",") (identifier "__n") () ")"))) (; ";")) (expression_statement "local_c8 = iVar11;" (assignment_expression "local_c8 = iVar11" (identifier "local_c8") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "local_a8 = (void *)((int)pvVar21 + -1);" (assignment_expression "local_a8 = (void *)((int)pvVar21 + -1)" (identifier "local_a8") (= "=") (cast_expression "(void *)((int)pvVar21 + -1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar21 + -1)" (( "(") (binary_expression "(int)pvVar21 + -1" (cast_expression "(int)pvVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar21")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "local_e0 = iVar13;" (assignment_expression "local_e0 = iVar13" (identifier "local_e0") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "local_c0 = iVar9;" (assignment_expression "local_c0 = iVar9" (identifier "local_c0") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)pvVar21 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)pvVar21 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)pvVar21 + -1)" (* "*") (cast_expression "(undefined1 *)((int)pvVar21 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar21 + -1)" (( "(") (binary_expression "(int)pvVar21 + -1" (cast_expression "(int)pvVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar21")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "local_dc = iVar23;" (assignment_expression "local_dc = iVar23" (identifier "local_dc") (= "=") (identifier "iVar23")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23))" (( "(") (binary_expression "(iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23)" (parenthesized_expression "(iVar15 != iVar9 || iVar10 != iVar11)" (( "(") (binary_expression "iVar15 != iVar9 || iVar10 != iVar11" (binary_expression "iVar15 != iVar9" (identifier "iVar15") (!= "!=") (identifier "iVar9")) (|| "||") (binary_expression "iVar10 != iVar11" (identifier "iVar10") (!= "!=") (identifier "iVar11"))) () ")")) (|| "||") (parenthesized_expression "(iVar13 != iVar12 || iVar14 != iVar23)" (( "(") (binary_expression "iVar13 != iVar12 || iVar14 != iVar23" (binary_expression "iVar13 != iVar12" (identifier "iVar13") (!= "!=") (identifier "iVar12")) (|| "||") (binary_expression "iVar14 != iVar23" (identifier "iVar14") (!= "!=") (identifier "iVar23"))) () ")"))) () ")")) (; ";")) (expression_statement "iVar18 = closedir(__dirp);" (assignment_expression "iVar18 = closedir(__dirp)" (identifier "iVar18") (= "=") (call_expression "closedir(__dirp)" (identifier "closedir") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar23 = (int)local_d0 + local_c4;\n      goto LAB_0001d35f;\n    }" ({ "{") (expression_statement "iVar23 = (int)local_d0 + local_c4;" (assignment_expression "iVar23 = (int)local_d0 + local_c4" (identifier "iVar23") (= "=") (binary_expression "(int)local_d0 + local_c4" (cast_expression "(int)local_d0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d0")) (+ "+") (identifier "local_c4"))) (; ";")) (goto_statement "goto LAB_0001d35f;" (goto "goto") (statement_identifier "LAB_0001d35f") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar18 = *piVar17;" (assignment_expression "iVar18 = *piVar17" (identifier "iVar18") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (labeled_statement "joined_r0x0001d429:\n  if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }" (statement_identifier "joined_r0x0001d429") (: ":") (if_statement "if (param_1 == (void *)0x0) {\n    free(local_d0);\n  }" (if "if") (parenthesized_expression "(param_1 == (void *)0x0)" (( "(") (binary_expression "param_1 == (void *)0x0" (identifier "param_1") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(local_d0);\n  }" ({ "{") (expression_statement "free(local_d0);" (call_expression "free(local_d0)" (identifier "free") (argument_list "(local_d0)" (( "(") (identifier "local_d0") () ")"))) (; ";")) (} "}")))) (expression_statement "*piVar17 = iVar18;" (assignment_expression "*piVar17 = iVar18" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "local_d0 = (void *)0x0;" (assignment_expression "local_d0 = (void *)0x0" (identifier "local_d0") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pvVar21 = local_d0;" (assignment_expression "pvVar21 = local_d0" (identifier "pvVar21") (= "=") (identifier "local_d0")) (; ";")) (labeled_statement "LAB_0001cf78:\n  local_d0 = pvVar21;" (statement_identifier "LAB_0001cf78") (: ":") (expression_statement "local_d0 = pvVar21;" (assignment_expression "local_d0 = pvVar21" (identifier "local_d0") (= "=") (identifier "pvVar21")) (; ";"))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0001d960();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0001d960();\n  }" ({ "{") (expression_statement "FUN_0001d960();" (call_expression "FUN_0001d960()" (identifier "FUN_0001d960") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return local_d0;" (return "return") (identifier "local_d0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

char * function_1(char *var_3,size_t var_2)

{
  int var_52;
  bool var_29;
  bool var_30;
  bool var_36;
  bool var_37;
  bool bVar6;
  bool var_27;
  bool var_28;
  bool bVar9;
  int var_13;
  int var_48;
  int var_14;
  int var_49;
  int var_15;
  int var_50;
  int var_9;
  int var_10;
  int *piVar18;
  int var_12;
  type_1 *var_32;
  type_2 var_42;
  size_t var_43;
  char *var_46;
  size_t var_45;
  type_3 *var_22;
  char *var_11;
  int var_1;
  int var_21;
  int var_34;
  int var_35;
  char *var_6;
  char *var_19;
  int var_39;
  size_t var_7;
  int var_38;
  char *var_16;
  type_4 st;
  
  var_19 = var_3;
  var_52 = *(int *)(var_1 + 0x14);
  if (var_2 == 0) {
    var_7 = 0x1000;
    if (var_3 != (char *)0x0) {
      piVar18 = var_4();
      var_6 = (char *)0x0;
      *piVar18 = 0x16;
      var_11 = var_6;
      goto LAB_0001cf78;
    }
LAB_0001cf5b:
    var_6 = (char *)var_5(var_7);
    var_11 = var_6;
    if (var_6 == (char *)0x0) goto LAB_0001cf78;
  }
  else {
    var_7 = var_2;
    if (var_3 == (char *)0x0) goto LAB_0001cf5b;
    var_6 = var_3;
  }
  var_11 = var_6 + var_7;
  var_11[-1] = '\0';
  var_9 = var_8(3,".",(type_5 *)&st);
  var_15 = st.st_ino._4_4_;
  var_14 = (int)st.st_ino;
  var_13 = st.st_dev._4_4_;
  var_12 = (int)st.st_dev;
  if (var_9 < 0) {
LAB_0001d440:
    piVar18 = var_4();
  }
  else {
    var_39 = st.st_dev._4_4_;
    var_38 = (int)st.st_dev;
    var_34 = (int)st.st_ino;
    var_35 = st.st_ino._4_4_;
    var_10 = var_8(3,"/",(type_5 *)&st);
    var_50 = st.st_ino._4_4_;
    var_49 = (int)st.st_ino;
    var_48 = st.st_dev._4_4_;
    var_9 = (int)st.st_dev;
    if (var_10 < 0) goto LAB_0001d440;
    var_16 = var_11 + -1;
    var_27 = var_12 != (int)st.st_dev;
    var_28 = var_13 != st.st_dev._4_4_;
    var_29 = var_14 != (int)st.st_ino;
    var_30 = var_15 != st.st_ino._4_4_;
    if ((!var_27 && !var_28) && (!var_29 && !var_30)) {
LAB_0001d35f:
      if (var_16 == var_6 + (var_7 - 1)) {
        var_16[-1] = '/';
        var_16 = var_16 + -1;
      }
      var_17(var_6,var_16,(int)var_11 - (int)var_16);
      if (var_2 == 0) {
        var_19 = (char *)var_18(var_6,(int)var_11 - (int)var_16);
      }
      var_11 = var_19;
      if (var_19 == (char *)0x0) {
        var_11 = var_6;
      }
      goto LAB_0001cf78;
    }
    piVar18 = var_4();
    var_21 = -100;
    var_22 = (type_3 *)0x0;
    do {
      var_21 = var_20(var_21,"..",0);
      if (var_21 < 0) {
        var_12 = *piVar18;
        if (var_22 != (type_3 *)0x0) goto LAB_0001d417;
        goto joined_r0x0001d429;
      }
      var_12 = var_23(3,var_21,(type_5 *)&st);
      if (var_12 != 0) {
        var_12 = *piVar18;
        if (var_22 != (type_3 *)0x0) {
          var_24(var_22);
        }
LAB_0001d486:
        var_25(var_21);
        goto joined_r0x0001d429;
      }
      if (((var_22 != (type_3 *)0x0) && (var_12 = var_24(var_22), var_12 != 0)) ||
         (var_10 = st.st_ino._4_4_, var_15 = (int)st.st_ino, var_14 = st.st_dev._4_4_,
         var_13 = (int)st.st_dev, var_22 = var_26(var_21),
         bVar9 = (var_27 || var_28) || (var_29 || var_30), var_22 == (type_3 *)0x0)) {
        var_12 = *piVar18;
        goto LAB_0001d486;
      }
LAB_0001d168:
      do {
        do {
          *piVar18 = 0;
          var_32 = var_31(var_22);
          if (var_32 == (type_1 *)0x0) {
            var_12 = *piVar18;
            if ((var_12 == 0) && (bVar9)) {
              var_33(var_22);
              var_32 = var_31(var_22);
              if (var_32 != (type_1 *)0x0) {
                bVar6 = false;
                bVar9 = bVar6;
                if (var_32->d_name[0] == '.') goto LAB_0001d3e8;
                break;
              }
              var_12 = *piVar18;
            }
            if (var_12 == 0) {
              *piVar18 = 2;
              var_12 = 2;
            }
            goto LAB_0001d417;
          }
          if (var_32->d_name[0] == '.') {
LAB_0001d3e8:
            if ((var_32->d_name[1] == '\0') || (*(short *)(var_32->d_name + 1) == 0x2e))
            goto LAB_0001d168;
          }
          bVar6 = bVar9;
        } while ((bVar9) &&
                (var_36 = var_34 == (int)var_32->d_ino,
                var_37 = var_35 == *(int *)((int)&var_32->d_ino + 4),
                bVar6 = var_36 && var_37 || (var_13 != var_38 || var_39 != var_14),
                (!var_36 || !var_37) && (var_13 == var_38 && var_39 == var_14)));
        var_11 = var_32->d_name;
        var_12 = var_40(3,var_21,var_11,(type_5 *)&st,0x100);
        bVar9 = bVar6;
      } while ((((var_12 != 0) || ((st.st_mode & 0xf000) != 0x4000)) ||
               (var_39 != st.st_dev._4_4_ || var_38 != (int)st.st_dev)) ||
              (var_35 != st.st_ino._4_4_ || var_34 != (int)st.st_ino));
      var_42 = (int)var_16 - (int)var_6;
      var_43 = var_41(var_11);
      if (var_42 <= var_43) {
        if (var_2 == 0) {
          var_45 = var_7;
          if (var_7 <= var_43) {
            var_45 = var_43;
          }
          if ((!var_44(var_7,var_45)) &&
             (var_46 = (char *)var_18(var_6,var_7 + var_45), var_46 != (char *)0x0)) {
            var_16 = (char *)var_47(var_46 + var_45 + var_42,var_46 + var_42,var_7 - var_42);
            var_6 = var_46;
            var_7 = var_7 + var_45;
            goto LAB_0001d2ce;
          }
          var_12 = 0xc;
          *piVar18 = 0xc;
        }
        else {
          var_12 = 0x22;
          *piVar18 = 0x22;
        }
LAB_0001d417:
        var_24(var_22);
        goto joined_r0x0001d429;
      }
LAB_0001d2ce:
      var_46 = var_16 + -var_43;
      var_47(var_46,var_11,var_43);
      var_39 = var_14;
      var_16 = var_46 + -1;
      var_34 = var_15;
      var_38 = var_13;
      var_46[-1] = '/';
      var_35 = var_10;
    } while ((var_9 != var_13 || var_48 != var_14) || (var_15 != var_49 || var_50 != var_10));
    var_12 = var_24(var_22);
    if (var_12 == 0) {
      var_11 = var_6 + var_7;
      goto LAB_0001d35f;
    }
  }
  var_12 = *piVar18;
joined_r0x0001d429:
  if (var_3 == (char *)0x0) {
    var_51(var_6);
  }
  *piVar18 = var_12;
  var_6 = (char *)0x0;
  var_11 = var_6;
LAB_0001cf78:
  var_6 = var_11;
  if (var_52 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_53();
  }
  return var_6;
}


(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal))) (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_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: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (primitive_type)) value: (identifier)) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (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)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))) right: (number_literal))))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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: (binary_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (unary_expression argument: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (identifier))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (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: (primitive_type)) value: (identifier)) right: (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_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: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void * MASKED(void *param_1,size_t param_2)

{
  char *__filename;
  bool bVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  bool bVar7;
  bool bVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int *piVar17;
  int iVar18;
  dirent64 *pdVar19;
  uint uVar20;
  size_t __n;
  void *pvVar21;
  size_t sVar22;
  DIR *__dirp;
  int iVar23;
  int in_GS_OFFSET;
  int local_e8;
  int local_e0;
  int local_dc;
  void *local_d0;
  void *local_cc;
  int local_c8;
  size_t local_c4;
  int local_c0;
  void *local_a8;
  stat64 local_80;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1cf19;
  local_cc = param_1;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_2 == 0) {
    local_c4 = 0x1000;
    if (param_1 != (void *)0x0) {
      piVar17 = __errno_location();
      local_d0 = (void *)0x0;
      *piVar17 = 0x16;
      pvVar21 = local_d0;
      goto LAB_0001cf78;
    }
LAB_0001cf5b:
    local_d0 = malloc(local_c4);
    pvVar21 = local_d0;
    if (local_d0 == (void *)0x0) goto LAB_0001cf78;
  }
  else {
    local_c4 = param_2;
    if (param_1 == (void *)0x0) goto LAB_0001cf5b;
    local_d0 = param_1;
  }
  iVar23 = (int)local_d0 + local_c4;
  *(undefined1 *)(iVar23 + -1) = 0;
  iVar15 = __lxstat64(3,".",&local_80);
  iVar13 = local_80.st_ino._4_4_;
  iVar11 = (int)local_80.st_ino;
  iVar9 = local_80.st_dev._4_4_;
  iVar18 = (int)local_80.st_dev;
  if (iVar15 < 0) {
LAB_0001d440:
    piVar17 = __errno_location();
  }
  else {
    local_c8 = local_80.st_dev._4_4_;
    local_c0 = (int)local_80.st_dev;
    local_e0 = (int)local_80.st_ino;
    local_dc = local_80.st_ino._4_4_;
    iVar16 = __lxstat64(3,"/",&local_80);
    iVar14 = local_80.st_ino._4_4_;
    iVar12 = (int)local_80.st_ino;
    iVar10 = local_80.st_dev._4_4_;
    iVar15 = (int)local_80.st_dev;
    if (iVar16 < 0) goto LAB_0001d440;
    local_a8 = (void *)(iVar23 + -1);
    bVar6 = iVar18 != (int)local_80.st_dev;
    bVar7 = iVar9 != local_80.st_dev._4_4_;
    bVar1 = iVar11 != (int)local_80.st_ino;
    bVar2 = iVar13 != local_80.st_ino._4_4_;
    if ((!bVar6 && !bVar7) && (!bVar1 && !bVar2)) {
LAB_0001d35f:
      if (local_a8 == (void *)((int)local_d0 + (local_c4 - 1))) {
        *(undefined1 *)((int)local_a8 + -1) = 0x2f;
        local_a8 = (void *)((int)local_a8 + -1);
      }
      memmove(local_d0,local_a8,iVar23 - (int)local_a8);
      if (param_2 == 0) {
        local_cc = realloc(local_d0,iVar23 - (int)local_a8);
      }
      pvVar21 = local_cc;
      if (local_cc == (void *)0x0) {
        pvVar21 = local_d0;
      }
      goto LAB_0001cf78;
    }
    piVar17 = __errno_location();
    local_e8 = -100;
    __dirp = (DIR *)0x0;
    do {
      local_e8 = openat64(local_e8,"..",0);
      if (local_e8 < 0) {
        iVar18 = *piVar17;
        if (__dirp != (DIR *)0x0) goto LAB_0001d417;
        goto joined_r0x0001d429;
      }
      iVar18 = __fxstat64(3,local_e8,&local_80);
      if (iVar18 != 0) {
        iVar18 = *piVar17;
        if (__dirp != (DIR *)0x0) {
          closedir(__dirp);
        }
LAB_0001d486:
        close(local_e8);
        goto joined_r0x0001d429;
      }
      if (((__dirp != (DIR *)0x0) && (iVar18 = closedir(__dirp), iVar18 != 0)) ||
         (iVar23 = local_80.st_ino._4_4_, iVar13 = (int)local_80.st_ino,
         iVar11 = local_80.st_dev._4_4_, iVar9 = (int)local_80.st_dev, __dirp = fdopendir(local_e8),
         bVar8 = (bVar6 || bVar7) || (bVar1 || bVar2), __dirp == (DIR *)0x0)) {
        iVar18 = *piVar17;
        goto LAB_0001d486;
      }
LAB_0001d168:
      do {
        do {
          *piVar17 = 0;
          pdVar19 = readdir64(__dirp);
          if (pdVar19 == (dirent64 *)0x0) {
            iVar18 = *piVar17;
            if ((iVar18 == 0) && (bVar8)) {
              rewinddir(__dirp);
              pdVar19 = readdir64(__dirp);
              if (pdVar19 != (dirent64 *)0x0) {
                bVar5 = false;
                bVar8 = bVar5;
                if (pdVar19->d_name[0] == '.') goto LAB_0001d3e8;
                break;
              }
              iVar18 = *piVar17;
            }
            if (iVar18 == 0) {
              *piVar17 = 2;
              iVar18 = 2;
            }
            goto LAB_0001d417;
          }
          if (pdVar19->d_name[0] == '.') {
LAB_0001d3e8:
            if ((pdVar19->d_name[1] == '\0') || (*(short *)(pdVar19->d_name + 1) == 0x2e))
            goto LAB_0001d168;
          }
          bVar5 = bVar8;
        } while ((bVar8) &&
                (bVar3 = local_e0 == (int)pdVar19->d_ino,
                bVar4 = local_dc == *(int *)((int)&pdVar19->d_ino + 4),
                bVar5 = bVar3 && bVar4 || (iVar9 != local_c0 || local_c8 != iVar11),
                (!bVar3 || !bVar4) && (iVar9 == local_c0 && local_c8 == iVar11)));
        __filename = pdVar19->d_name;
        iVar18 = __fxstatat64(3,local_e8,__filename,&local_80,0x100);
        bVar8 = bVar5;
      } while ((((iVar18 != 0) || ((local_80.st_mode & 0xf000) != 0x4000)) ||
               (local_c8 != local_80.st_dev._4_4_ || local_c0 != (int)local_80.st_dev)) ||
              (local_dc != local_80.st_ino._4_4_ || local_e0 != (int)local_80.st_ino));
      uVar20 = (int)local_a8 - (int)local_d0;
      __n = strlen(__filename);
      if (uVar20 <= __n) {
        if (param_2 == 0) {
          sVar22 = local_c4;
          if (local_c4 <= __n) {
            sVar22 = __n;
          }
          if ((!CARRY4(local_c4,sVar22)) &&
             (pvVar21 = realloc(local_d0,local_c4 + sVar22), pvVar21 != (void *)0x0)) {
            local_a8 = memcpy((void *)(sVar22 + uVar20 + (int)pvVar21),
                              (void *)(uVar20 + (int)pvVar21),local_c4 - uVar20);
            local_d0 = pvVar21;
            local_c4 = local_c4 + sVar22;
            goto LAB_0001d2ce;
          }
          iVar18 = 0xc;
          *piVar17 = 0xc;
        }
        else {
          iVar18 = 0x22;
          *piVar17 = 0x22;
        }
LAB_0001d417:
        closedir(__dirp);
        goto joined_r0x0001d429;
      }
LAB_0001d2ce:
      pvVar21 = (void *)((int)local_a8 - __n);
      memcpy(pvVar21,__filename,__n);
      local_c8 = iVar11;
      local_a8 = (void *)((int)pvVar21 + -1);
      local_e0 = iVar13;
      local_c0 = iVar9;
      *(undefined1 *)((int)pvVar21 + -1) = 0x2f;
      local_dc = iVar23;
    } while ((iVar15 != iVar9 || iVar10 != iVar11) || (iVar13 != iVar12 || iVar14 != iVar23));
    iVar18 = closedir(__dirp);
    if (iVar18 == 0) {
      iVar23 = (int)local_d0 + local_c4;
      goto LAB_0001d35f;
    }
  }
  iVar18 = *piVar17;
joined_r0x0001d429:
  if (param_1 == (void *)0x0) {
    free(local_d0);
  }
  *piVar17 = iVar18;
  local_d0 = (void *)0x0;
  pvVar21 = local_d0;
LAB_0001cf78:
  local_d0 = pvVar21;
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0001d960();
  }
  return local_d0;
}

