
char * rpl_getcwd(char *buf,size_t size)

{
  byte bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  ulong uVar5;
  ulong uVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  uint *puVar10;
  int iVar11;
  int iVar12;
  stat *psVar13;
  int iVar14;
  int *piVar15;
  int *piVar16;
  stat *psVar17;
  undefined4 *puVar18;
  int iVar19;
  uint uVar20;
  stat *psVar21;
  uint *puVar22;
  stat *psVar23;
  stat *psVar24;
  uint uVar25;
  stat *in_a2;
  uint uVar26;
  char *pcVar27;
  stat *psVar28;
  stat *psVar29;
  stat *psVar30;
  char *local_108;
  ulong local_104;
  char *local_100;
  int local_fc;
  stat *local_f8;
  stat *local_e0;
  stat st;
  
  puVar4 = PTR___stack_chk_guard_000333cc;
  puVar10 = *(uint **)PTR___stack_chk_guard_000333cc;
  if (size != 0) {
    local_108 = buf;
    local_f8 = (stat *)size;
    if (buf == (char *)0x0) goto LAB_0001f288;
LAB_0001f2bc:
    puVar3 = PTR___lxstat64_000332cc;
    pcVar27 = local_108 + (int)local_f8;
    psVar23 = (stat *)(PTR_LAB_00033108 + 0x2744);
    pcVar27[-1] = '\0';
    psVar17 = &st;
    iVar11 = (*(code *)puVar3)(3);
    iVar19 = st.st_ino._0_4_;
    if (-1 < iVar11) {
      local_104 = st.st_dev;
      psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);
      local_fc = st.st_ino._4_4_;
      psVar17 = &st;
      iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);
      iVar8 = st.st_ino._4_4_;
      iVar11 = st.st_ino._0_4_;
      uVar5 = st.st_dev;
      if (-1 < iVar12) {
        iVar12 = 0;
        psVar30 = (stat *)0xffffff9c;
        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);
        do {
          local_e0 = (stat *)(pcVar27 + -1);
          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {
            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))
            break;
            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {
              local_e0 = (stat *)(pcVar27 + -2);
              *(char *)&local_e0->st_dev = '/';
            }
            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);
            in_a2 = psVar17;
            (*(code *)PTR_memmove_000333d8)();
            local_100 = buf;
            if (size == 0) {
              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);
              local_e0 = psVar17;
            }
            pcVar27 = local_100;
            if (local_100 == (char *)0x0) {
              pcVar27 = local_108;
            }
            goto LAB_0001f65c;
          }
          in_a2 = (stat *)0x0;
          psVar24 = psVar13;
          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);
          if ((int)psVar30 < 0) {
            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();
            iVar14 = *piVar15;
            if (iVar12 == 0) goto joined_r0x0001f71c;
            goto LAB_0001f638;
          }
          psVar24 = psVar30;
          in_a2 = &st;
          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);
          if (iVar14 != 0) {
            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();
            iVar14 = *piVar15;
            if (iVar12 != 0) {
              (*(code *)PTR_closedir_000332c0)(iVar12);
            }
LAB_0001f70c:
            (*(code *)PTR_close_000332c4)(psVar30);
            goto joined_r0x0001f71c;
          }
          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {
            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();
LAB_0001f708:
            iVar14 = *piVar15;
            goto LAB_0001f70c;
          }
          iVar9 = st.st_ino._4_4_;
          iVar7 = st.st_ino._0_4_;
          uVar6 = st.st_dev;
          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);
          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();
          if (iVar12 == 0) goto LAB_0001f708;
          bVar2 = true;
LAB_0001f418:
          do {
            do {
              puVar3 = PTR_readdir64_000332f0;
              *piVar15 = 0;
              piVar16 = (int *)(*(code *)puVar3)(iVar12);
              if (piVar16 == (int *)0x0) {
                iVar14 = *piVar15;
                if (iVar14 != 0) goto LAB_0001f638;
                if (bVar2) {
                  (*(code *)PTR_rewinddir_000332a4)(iVar12);
                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);
                  if (piVar16 != (int *)0x0) {
                    bVar2 = false;
                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;
                    break;
                  }
                  iVar14 = *piVar15;
                  if (iVar14 != 0) goto LAB_0001f638;
                }
                iVar14 = 2;
                *piVar15 = 2;
                goto LAB_0001f638;
              }
              if (*(char *)((int)piVar16 + 0x13) == '.') {
LAB_0001f5e0:
                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))
                goto LAB_0001f418;
              }
            } while ((bVar2) &&
                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));
            psVar23 = (stat *)((int)piVar16 + 0x13);
            psVar24 = psVar30;
            in_a2 = psVar23;
            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);
          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)
                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));
          psVar29 = (stat *)((int)local_e0 - (int)local_108);
          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);
          if (psVar29 <= psVar17) {
            if (size != 0) {
              iVar14 = 0x22;
              *piVar15 = 0x22;
              goto LAB_0001f638;
            }
            psVar21 = local_f8;
            if (local_f8 < psVar17) {
              psVar21 = psVar17;
            }
            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));
            if ((psVar28 < local_f8) ||
               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),
               pcVar27 == (char *)0x0)) goto LAB_0001f838;
            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)
                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),
                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);
            local_108 = pcVar27;
            local_f8 = psVar28;
          }
          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);
          pcVar27[-1] = '/';
          local_fc = iVar9;
          local_104 = uVar6;
          iVar19 = iVar7;
        } while( true );
      }
    }
    piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();
    iVar14 = *piVar15;
    psVar24 = psVar23;
    in_a2 = psVar17;
    goto joined_r0x0001f71c;
  }
  if (buf == (char *)0x0) {
    local_f8 = (stat *)0x1000;
LAB_0001f288:
    local_e0 = (stat *)size;
    local_108 = (char *)(*(code *)PTR_malloc_00033378)(local_f8);
    pcVar27 = local_108;
    if (local_108 != (char *)0x0) goto LAB_0001f2bc;
  }
  else {
    puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();
    local_108 = (char *)0x0;
    *puVar18 = 0x16;
    local_e0 = (stat *)size;
    pcVar27 = local_108;
  }
  goto LAB_0001f65c;
LAB_0001f838:
  iVar14 = 0xc;
  *piVar15 = 0xc;
LAB_0001f638:
  (*(code *)PTR_closedir_000332c0)(iVar12);
joined_r0x0001f71c:
  if (buf == (char *)0x0) {
    (*(code *)PTR_free_000333d4)(local_108);
  }
  *piVar15 = iVar14;
  local_108 = (char *)0x0;
  local_e0 = psVar24;
  pcVar27 = local_108;
LAB_0001f65c:
  local_108 = pcVar27;
  if (puVar10 == *(uint **)puVar4) {
    return local_108;
  }
  (*(code *)PTR___stack_chk_fail_000333b0)();
  uVar26 = (uint)local_e0 & 0xff;
  if (in_a2 == (stat *)0x0) {
    return (char *)0x0;
  }
  while (((uint)puVar10 & 3) != 0) {
    in_a2 = (stat *)((int)in_a2[-1].st_pad5 + 0x37);
    if (*(byte *)puVar10 == uVar26) {
      return (char *)puVar10;
    }
    puVar10 = (uint *)((int)puVar10 + 1);
    if (in_a2 == (stat *)0x0) {
      return (char *)0x0;
    }
  }
  uVar25 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;
  uVar25 = uVar25 << 0x10 | uVar25;
  if ((stat *)0x3 < in_a2) {
    uVar20 = uVar25 ^ *puVar10;
    if ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0) {
      bVar1 = *(byte *)puVar10;
      goto LAB_0001f934;
    }
    do {
      in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);
      puVar10 = puVar10 + 1;
      if (in_a2 < (stat *)0x4) {
        if (in_a2 == (stat *)0x0) {
          return (char *)0x0;
        }
        break;
      }
      uVar20 = uVar25 ^ *puVar10;
    } while ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0);
  }
  bVar1 = *(byte *)puVar10;
LAB_0001f934:
  if (bVar1 == uVar26) {
    return (char *)puVar10;
  }
  puVar22 = (uint *)((int)puVar10 + (int)in_a2);
  do {
    puVar10 = (uint *)((int)puVar10 + 1);
    if (puVar22 == puVar10) {
      return (char *)0x0;
    }
  } while (*(byte *)puVar10 != uVar26);
  return (char *)puVar10;
}



uint * rpl_getcwd(uint *param_1,int *param_2,int *param_3)

{
  byte bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int *piVar12;
  int iVar13;
  int *piVar14;
  int *piVar15;
  undefined4 *puVar16;
  int iVar17;
  uint uVar18;
  int *piVar19;
  uint *puVar20;
  int *piVar21;
  int *piVar22;
  uint uVar23;
  uint uVar24;
  undefined1 *puVar25;
  int *piVar26;
  int *piVar27;
  int *piVar28;
  uint *local_108;
  int local_104;
  uint *local_100;
  int local_fc;
  int *local_f8;
  int *local_e0;
  int local_d0 [4];
  int local_c0;
  int local_bc;
  uint local_b8;
  uint *local_2c;
  
  puVar4 = PTR___stack_chk_guard_000333cc;
  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;
  if (param_2 != (int *)0x0) {
    local_108 = param_1;
    local_f8 = param_2;
    if (param_1 == (uint *)0x0) goto LAB_0001f288;
LAB_0001f2bc:
    puVar3 = PTR___lxstat64_000332cc;
    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);
    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);
    puVar25[-1] = 0;
    piVar15 = local_d0;
    iVar10 = (*(code *)puVar3)(3);
    iVar17 = local_c0;
    if (-1 < iVar10) {
      local_104 = local_d0[0];
      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);
      local_fc = local_bc;
      piVar15 = local_d0;
      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);
      iVar8 = local_bc;
      iVar6 = local_c0;
      iVar10 = local_d0[0];
      if (-1 < iVar11) {
        iVar11 = 0;
        piVar28 = (int *)0xffffff9c;
        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);
        do {
          local_e0 = (int *)(puVar25 + -1);
          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {
            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))
            break;
            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {
              local_e0 = (int *)(puVar25 + -2);
              *(undefined1 *)local_e0 = 0x2f;
            }
            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);
            param_3 = piVar15;
            (*(code *)PTR_memmove_000333d8)();
            local_100 = param_1;
            if (param_2 == (int *)0x0) {
              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);
              local_e0 = piVar15;
            }
            puVar20 = local_100;
            if (local_100 == (uint *)0x0) {
              puVar20 = local_108;
            }
            goto LAB_0001f65c;
          }
          param_3 = (int *)0x0;
          piVar22 = piVar12;
          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);
          if ((int)piVar28 < 0) {
            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
            iVar13 = *piVar14;
            if (iVar11 == 0) goto joined_r0x0001f71c;
            goto LAB_0001f638;
          }
          piVar22 = piVar28;
          param_3 = local_d0;
          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);
          if (iVar13 != 0) {
            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
            iVar13 = *piVar14;
            if (iVar11 != 0) {
              (*(code *)PTR_closedir_000332c0)(iVar11);
            }
LAB_0001f70c:
            (*(code *)PTR_close_000332c4)(piVar28);
            goto joined_r0x0001f71c;
          }
          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {
            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
LAB_0001f708:
            iVar13 = *piVar14;
            goto LAB_0001f70c;
          }
          iVar9 = local_bc;
          iVar7 = local_c0;
          iVar5 = local_d0[0];
          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);
          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
          if (iVar11 == 0) goto LAB_0001f708;
          bVar2 = true;
LAB_0001f418:
          do {
            do {
              puVar3 = PTR_readdir64_000332f0;
              *piVar14 = 0;
              piVar21 = (int *)(*(code *)puVar3)(iVar11);
              if (piVar21 == (int *)0x0) {
                iVar13 = *piVar14;
                if (iVar13 != 0) goto LAB_0001f638;
                if (bVar2) {
                  (*(code *)PTR_rewinddir_000332a4)(iVar11);
                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);
                  if (piVar21 != (int *)0x0) {
                    bVar2 = false;
                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;
                    break;
                  }
                  iVar13 = *piVar14;
                  if (iVar13 != 0) goto LAB_0001f638;
                }
                iVar13 = 2;
                *piVar14 = 2;
                goto LAB_0001f638;
              }
              if (*(char *)((int)piVar21 + 0x13) == '.') {
LAB_0001f5e0:
                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))
                goto LAB_0001f418;
              }
            } while ((bVar2) &&
                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));
            piVar21 = (int *)((int)piVar21 + 0x13);
            piVar22 = piVar28;
            param_3 = piVar21;
            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);
          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)
                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));
          piVar27 = (int *)((int)local_e0 - (int)local_108);
          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);
          if (piVar27 <= piVar15) {
            if (param_2 != (int *)0x0) {
              iVar13 = 0x22;
              *piVar14 = 0x22;
              goto LAB_0001f638;
            }
            piVar19 = local_f8;
            if (local_f8 < piVar15) {
              piVar19 = piVar15;
            }
            piVar26 = (int *)((int)piVar19 + (int)local_f8);
            if ((piVar26 < local_f8) ||
               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),
               puVar20 == (uint *)0x0)) goto LAB_0001f838;
            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)
                                        ((undefined1 *)
                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),
                                         (undefined1 *)((int)puVar20 + (int)piVar27),
                                         (int)local_f8 - (int)piVar27);
            local_108 = puVar20;
            local_f8 = piVar26;
          }
          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);
          puVar25[-1] = 0x2f;
          local_fc = iVar9;
          local_104 = iVar5;
          iVar17 = iVar7;
        } while( true );
      }
    }
    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
    iVar13 = *piVar14;
    piVar22 = piVar21;
    param_3 = piVar15;
    goto joined_r0x0001f71c;
  }
  if (param_1 == (uint *)0x0) {
    local_f8 = (int *)0x1000;
LAB_0001f288:
    local_e0 = param_2;
    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);
    puVar20 = local_108;
    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;
  }
  else {
    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();
    local_108 = (uint *)0x0;
    *puVar16 = 0x16;
    local_e0 = param_2;
    puVar20 = local_108;
  }
  goto LAB_0001f65c;
LAB_0001f838:
  iVar13 = 0xc;
  *piVar14 = 0xc;
LAB_0001f638:
  (*(code *)PTR_closedir_000332c0)(iVar11);
joined_r0x0001f71c:
  if (param_1 == (uint *)0x0) {
    (*(code *)PTR_free_000333d4)(local_108);
  }
  *piVar14 = iVar13;
  local_108 = (uint *)0x0;
  local_e0 = piVar22;
  puVar20 = local_108;
LAB_0001f65c:
  local_108 = puVar20;
  if (local_2c == *(uint **)puVar4) {
    return local_108;
  }
  (*(code *)PTR___stack_chk_fail_000333b0)();
  uVar24 = (uint)local_e0 & 0xff;
  if (param_3 == (int *)0x0) {
    return (uint *)0x0;
  }
  while (((uint)local_2c & 3) != 0) {
    param_3 = (int *)((int)param_3 + -1);
    if (*(byte *)local_2c == uVar24) {
      return local_2c;
    }
    local_2c = (uint *)((int)local_2c + 1);
    if (param_3 == (int *)0x0) {
      return (uint *)0x0;
    }
  }
  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;
  uVar23 = uVar23 << 0x10 | uVar23;
  if ((int *)0x3 < param_3) {
    uVar18 = uVar23 ^ *local_2c;
    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {
      bVar1 = *(byte *)local_2c;
      goto LAB_0001f934;
    }
    do {
      param_3 = param_3 + -1;
      local_2c = local_2c + 1;
      if (param_3 < (int *)0x4) {
        if (param_3 == (int *)0x0) {
          return (uint *)0x0;
        }
        break;
      }
      uVar18 = uVar23 ^ *local_2c;
    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);
  }
  bVar1 = *(byte *)local_2c;
LAB_0001f934:
  if (bVar1 == uVar24) {
    return local_2c;
  }
  puVar20 = (uint *)((int)local_2c + (int)param_3);
  do {
    local_2c = (uint *)((int)local_2c + 1);
    if (puVar20 == local_2c) {
      return (uint *)0x0;
    }
  } while (*(byte *)local_2c != uVar24);
  return local_2c;
}


lui gp,0x2
addiu gp,gp,-0x4150
addu gp,gp,t9
lw v0,-0x7d04(gp)
addiu sp,sp,-0x128
sw v0,0x34(sp)
sw gp,0x18(sp)
sw ra,0x124(sp)
sw s8,0x120(sp)
sw s7,0x11c(sp)
sw s6,0x118(sp)
sw s5,0x114(sp)
sw s4,0x110(sp)
sw s3,0x10c(sp)
sw s2,0x108(sp)
sw s1,0x104(sp)
sw s0,0x100(sp)
sw a1,0x12c(sp)
sw a0,0x28(sp)
lw v0,0x0(v0)
sw v0,0xfc(sp)
bne a1,zero,0x0001f2a8
_lw v0,0x28(sp)
bne a0,zero,0x0001f6c4
_li v0,0x1000
sw v0,0x30(sp)
lw t9,-0x7d58(gp)
jalr t9
_lw a0,0x30(sp)
lw gp,0x18(sp)
bne v0,zero,0x0001f2bc
_sw v0,0x20(sp)
b 0x0001f65c
_lw v1,0x34(sp)
beq v0,zero,0x0001f858
_lw v0,0x12c(sp)
sw v0,0x30(sp)
lw v0,0x28(sp)
sw v0,0x20(sp)
lw v0,0x20(sp)
addiu s7,sp,0x58
lw v1,0x30(sp)
li a0,0x3
lw a1,-0x7fc8(gp)
or a2,s7,zero
lw t9,-0x7e04(gp)
addu s0,v0,v1
addiu a1,a1,0x2744
jalr t9
_sb zero,-0x1(s0)
bltz v0,0x0001f69c
_lw gp,0x18(sp)
lw v0,0x58(sp)
li a0,0x3
lw a1,-0x7fc8(gp)
or a2,s7,zero
lw t9,-0x7e04(gp)
lw s8,0x68(sp)
sw v0,0x24(sp)
addiu a1,a1,0x28ec
lw v0,0x6c(sp)
jalr t9
_sw v0,0x2c(sp)
bltz v0,0x0001f69c
_lw gp,0x18(sp)
addiu v0,s0,-0x1
or s1,zero,zero
sw v0,0x48(sp)
li s6,-0x64
lw v0,0x58(sp)
sw v0,0x3c(sp)
lw v0,0x68(sp)
sw v0,0x44(sp)
lw v0,0x6c(sp)
sw v0,0x4c(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x2740
sw v0,0x40(sp)
lw v0,0x24(sp)
lw v1,0x3c(sp)
bne v0,v1,0x0001f370
_lw v0,0x44(sp)
beq s8,v0,0x0001f72c
_lw v0,0x2c(sp)
lw t9,-0x7d78(gp)
or a2,zero,zero
lw a1,0x40(sp)
jalr t9
_or a0,s6,zero
lw gp,0x18(sp)
bltz v0,0x0001f7b0
_or s6,v0,zero
lw t9,-0x7d34(gp)
li a0,0x3
or a2,s7,zero
jalr t9
_or a1,v0,zero
bne v0,zero,0x0001f7d4
_lw gp,0x18(sp)
beq s1,zero,0x0001f3c4
_lw t9,-0x7e10(gp)
jalr t9
_or a0,s1,zero
bne v0,zero,0x0001f6f4
_lw gp,0x18(sp)
lw v0,0x58(sp)
or a0,s6,zero
lw t9,-0x7dd0(gp)
sw v0,0x38(sp)
lw v0,0x68(sp)
sw v0,0x50(sp)
lw v0,0x6c(sp)
jalr t9
_sw v0,0x54(sp)
lw gp,0x18(sp)
lw t9,-0x7d98(gp)
jalr t9
_or s1,v0,zero
lw gp,0x18(sp)
beq s1,zero,0x0001f708
_or s2,v0,zero
li s3,0x1
li s5,0x100
li s4,0x2e
lw t9,-0x7de0(gp)
or a0,s1,zero
jalr t9
_sw zero,0x0(s2)
beq v0,zero,0x0001f5a0
_lw gp,0x18(sp)
lb v1,0x13(v0)
beq v1,s4,0x0001f5e0
_nop
beq s3,zero,0x0001f45c
_lw t9,-0x7d28(gp)
lw v1,0x0(v0)
beq v1,s8,0x0001f608
_lw a0,0x2c(sp)
lw v1,0x24(sp)
lw a0,0x38(sp)
beq v1,a0,0x0001f414
_lw t9,-0x7de0(gp)
lw t9,-0x7d28(gp)
addiu s0,v0,0x13
li a0,0x3
sw s5,0x10(sp)
or a3,s7,zero
or a2,s0,zero
jalr t9
_or a1,s6,zero
bne v0,zero,0x0001f410
_lw gp,0x18(sp)
lw v0,0x70(sp)
li v1,0x4000
andi v0,v0,0xf000
bne v0,v1,0x0001f414
_lw t9,-0x7de0(gp)
lw v0,0x58(sp)
lw v1,0x24(sp)
bne v0,v1,0x0001f418
_or a0,s1,zero
lw v0,0x68(sp)
bne v0,s8,0x0001f414
_lw v0,0x6c(sp)
lw v1,0x2c(sp)
bne v0,v1,0x0001f414
_lw v0,0x48(sp)
or a0,s0,zero
lw v1,0x20(sp)
lw t9,-0x7d74(gp)
jalr t9
_subu s5,v0,v1
or s3,v0,zero
sltu v0,v0,s5
bne v0,zero,0x0001f554
_lw gp,0x18(sp)
lw v0,0x12c(sp)
bne v0,zero,0x0001f848
_lw v0,0x30(sp)
sltu s4,v0,s3
or v1,v0,zero
movn v1,s3,s4
addu s4,v1,v0
sltu v0,s4,v0
bne v0,zero,0x0001f838
_lw t9,-0x7d54(gp)
or a1,s4,zero
lw a0,0x20(sp)
jalr t9
_sw v1,0x24(sp)
lw gp,0x18(sp)
beq v0,zero,0x0001f838
_or s8,v0,zero
lw v1,0x24(sp)
addu a1,s8,s5
lw v0,0x30(sp)
lw t9,-0x7d00(gp)
addu a0,v1,s5
subu a2,v0,s5
jalr t9
_addu a0,s8,a0
lw gp,0x18(sp)
sw s4,0x30(sp)
sw v0,0x48(sp)
sw s8,0x20(sp)
lw v0,0x48(sp)
or a2,s3,zero
lw t9,-0x7d00(gp)
or a1,s0,zero
subu v1,v0,s3
jalr t9
_or a0,v1,zero
or v1,v0,zero
lw gp,0x18(sp)
addiu v0,v0,-0x1
lw s8,0x50(sp)
sw v0,0x48(sp)
li v0,0x2f
sb v0,-0x1(v1)
lw v0,0x54(sp)
sw v0,0x2c(sp)
lw v0,0x38(sp)
b 0x0001f358
_sw v0,0x24(sp)
lw s0,0x0(s2)
bne s0,zero,0x0001f638
_lw t9,-0x7e10(gp)
beq s3,zero,0x0001f628
_lw t9,-0x7e2c(gp)
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
lw t9,-0x7de0(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0001f61c
_lw gp,0x18(sp)
lb v1,0x13(v0)
bne v1,s4,0x0001f458
_or s3,zero,zero
lb v1,0x14(v0)
beq v1,zero,0x0001f410
_lui a0,0xffff
lw v1,0x14(v0)
and v1,v1,a0
lui a0,0x2e00
bne v1,a0,0x0001f434
_lw t9,-0x7de0(gp)
b 0x0001f418
_or a0,s1,zero
lw v1,0x4(v0)
bne v1,a0,0x0001f44c
_lw v1,0x24(sp)
b 0x0001f45c
_lw t9,-0x7d28(gp)
lw s0,0x0(s2)
bne s0,zero,0x0001f638
_lw t9,-0x7e10(gp)
li v0,0x2
li s0,0x2
sw v0,0x0(s2)
lw t9,-0x7e10(gp)
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
lw v0,0x28(sp)
beq v0,zero,0x0001f6e4
_lw t9,-0x7cfc(gp)
sw s0,0x0(s2)
sw zero,0x20(sp)
lw v1,0x34(sp)
lw a0,0xfc(sp)
lw v0,0x20(sp)
lw v1,0x0(v1)
bne a0,v1,0x0001f860
_lw ra,0x124(sp)
lw s8,0x120(sp)
lw s7,0x11c(sp)
lw s6,0x118(sp)
lw s5,0x114(sp)
lw s4,0x110(sp)
lw s3,0x10c(sp)
lw s2,0x108(sp)
lw s1,0x104(sp)
lw s0,0x100(sp)
jr ra
_addiu sp,sp,0x128
lw t9,-0x7d98(gp)
jalr t9
_nop
or s2,v0,zero
lw s0,0x0(v0)
lw v0,0x28(sp)
bne v0,zero,0x0001f650
_lw gp,0x18(sp)
b 0x0001f6e4
_lw t9,-0x7cfc(gp)
lw t9,-0x7d98(gp)
jalr t9
_nop
li v1,0x16
lw gp,0x18(sp)
sw zero,0x20(sp)
b 0x0001f658
_sw v1,0x0(v0)
jalr t9
_lw a0,0x20(sp)
b 0x0001f650
_lw gp,0x18(sp)
lw t9,-0x7d98(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s2,v0,zero
lw s0,0x0(s2)
lw t9,-0x7e0c(gp)
jalr t9
_or a0,s6,zero
lw v0,0x28(sp)
bne v0,zero,0x0001f650
_lw gp,0x18(sp)
b 0x0001f6e4
_lw t9,-0x7cfc(gp)
lw v1,0x4c(sp)
bne v0,v1,0x0001f374
_lw t9,-0x7d78(gp)
beq s1,zero,0x0001f750
_lw t9,-0x7e10(gp)
jalr t9
_or a0,s1,zero
bne v0,zero,0x0001f69c
_lw gp,0x18(sp)
lw v0,0x30(sp)
lw v1,0x20(sp)
addiu v0,v0,-0x1
addu v0,v1,v0
lw v1,0x48(sp)
beq v1,v0,0x0001f820
_lw v0,0x48(sp)
lw v0,0x30(sp)
lw a0,0x20(sp)
lw t9,-0x7cf8(gp)
addu s0,a0,v0
lw v0,0x48(sp)
subu s0,s0,v0
or a1,v0,zero
jalr t9
_or a2,s0,zero
lw v0,0x12c(sp)
beq v0,zero,0x0001f804
_lw gp,0x18(sp)
lw v1,0x20(sp)
lw v0,0x28(sp)
movz v0,v1,v0
b 0x0001f658
_sw v0,0x20(sp)
lw t9,-0x7d98(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s2,v0,zero
beq s1,zero,0x0001f644
_lw s0,0x0(v0)
b 0x0001f638
_lw t9,-0x7e10(gp)
lw t9,-0x7d98(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s2,v0,zero
beq s1,zero,0x0001f70c
_lw s0,0x0(v0)
lw t9,-0x7e10(gp)
jalr t9
_or a0,s1,zero
b 0x0001f70c
_lw gp,0x18(sp)
lw t9,-0x7d54(gp)
or a1,s0,zero
jalr t9
_lw a0,0x20(sp)
lw gp,0x18(sp)
b 0x0001f79c
_sw v0,0x28(sp)
addiu v0,v0,-0x1
or v1,v0,zero
sw v0,0x48(sp)
li v0,0x2f
b 0x0001f76c
_sb v0,0x0(v1)
li v0,0xc
li s0,0xc
b 0x0001f634
_sw v0,0x0(s2)
li v0,0x22
li s0,0x22
b 0x0001f634
_sw v0,0x0(s2)
b 0x0001f288
_sw v0,0x30(sp)
lw t9,-0x7d20(gp)
jalr t9
_nop
nop
(translation_unit "uint * rpl_getcwd(uint *param_1,int *param_2,int *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  uint *puVar20;\n  int *piVar21;\n  int *piVar22;\n  uint uVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  int *piVar26;\n  int *piVar27;\n  int *piVar28;\n  uint *local_108;\n  int local_104;\n  uint *local_100;\n  int local_fc;\n  int *local_f8;\n  int *local_e0;\n  int local_d0 [4];\n  int local_c0;\n  int local_bc;\n  uint local_b8;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }\n  if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar13 = 0xc;\n  *piVar14 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);\njoined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar14 = iVar13;\n  local_108 = (uint *)0x0;\n  local_e0 = piVar22;\n  puVar20 = local_108;\nLAB_0001f65c:\n  local_108 = puVar20;\n  if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar24 = (uint)local_e0 & 0xff;\n  if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }\n  while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar23 = uVar23 << 0x10 | uVar23;\n  if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)local_2c;\nLAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }\n  puVar20 = (uint *)((int)local_2c + (int)param_3);\n  do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);\n  return local_2c;\n}\n\n" (function_definition "uint * rpl_getcwd(uint *param_1,int *param_2,int *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  uint *puVar20;\n  int *piVar21;\n  int *piVar22;\n  uint uVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  int *piVar26;\n  int *piVar27;\n  int *piVar28;\n  uint *local_108;\n  int local_104;\n  uint *local_100;\n  int local_fc;\n  int *local_f8;\n  int *local_e0;\n  int local_d0 [4];\n  int local_c0;\n  int local_bc;\n  uint local_b8;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }\n  if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar13 = 0xc;\n  *piVar14 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);\njoined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar14 = iVar13;\n  local_108 = (uint *)0x0;\n  local_e0 = piVar22;\n  puVar20 = local_108;\nLAB_0001f65c:\n  local_108 = puVar20;\n  if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar24 = (uint)local_e0 & 0xff;\n  if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }\n  while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar23 = uVar23 << 0x10 | uVar23;\n  if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)local_2c;\nLAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }\n  puVar20 = (uint *)((int)local_2c + (int)param_3);\n  do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);\n  return local_2c;\n}" type_identifier (pointer_declarator "* rpl_getcwd(uint *param_1,int *param_2,int *param_3)" * (function_declarator "rpl_getcwd(uint *param_1,int *param_2,int *param_3)" identifier (parameter_list "(uint *param_1,int *param_2,int *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  uint *puVar20;\n  int *piVar21;\n  int *piVar22;\n  uint uVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  int *piVar26;\n  int *piVar27;\n  int *piVar28;\n  uint *local_108;\n  int local_104;\n  uint *local_100;\n  int local_fc;\n  int *local_f8;\n  int *local_e0;\n  int local_d0 [4];\n  int local_c0;\n  int local_bc;\n  uint local_b8;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }\n  if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar13 = 0xc;\n  *piVar14 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);\njoined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar14 = iVar13;\n  local_108 = (uint *)0x0;\n  local_e0 = piVar22;\n  puVar20 = local_108;\nLAB_0001f65c:\n  local_108 = puVar20;\n  if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar24 = (uint)local_e0 & 0xff;\n  if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }\n  while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar23 = uVar23 << 0x10 | uVar23;\n  if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)local_2c;\nLAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }\n  puVar20 = (uint *)((int)local_2c + (int)param_3);\n  do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);\n  return local_2c;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int *piVar28;" primitive_type (pointer_declarator "*piVar28" * identifier) ;) (declaration "uint *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "int local_104;" primitive_type identifier ;) (declaration "uint *local_100;" type_identifier (pointer_declarator "*local_100" * identifier) ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "int *local_f8;" primitive_type (pointer_declarator "*local_f8" * identifier) ;) (declaration "int *local_e0;" primitive_type (pointer_declarator "*local_e0" * identifier) ;) (declaration "int local_d0 [4];" primitive_type (array_declarator "local_d0 [4]" identifier [ number_literal ]) ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_000333cc;" (assignment_expression "puVar4 = PTR___stack_chk_guard_000333cc" identifier = identifier) ;) (expression_statement "local_2c = *(uint **)PTR___stack_chk_guard_000333cc;" (assignment_expression "local_2c = *(uint **)PTR___stack_chk_guard_000333cc" identifier = (pointer_expression "*(uint **)PTR___stack_chk_guard_000333cc" * (cast_expression "(uint **)PTR___stack_chk_guard_000333cc" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }" { (expression_statement "local_108 = param_1;" (assignment_expression "local_108 = param_1" identifier = identifier) ;) (expression_statement "local_f8 = param_2;" (assignment_expression "local_f8 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == (uint *)0x0) goto LAB_0001f288;" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f288;" goto statement_identifier ;)) (labeled_statement "LAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;" statement_identifier : (expression_statement "puVar3 = PTR___lxstat64_000332cc;" (assignment_expression "puVar3 = PTR___lxstat64_000332cc" identifier = identifier) ;)) (expression_statement "puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);" (assignment_expression "puVar25 = (undefined1 *)((int)local_108 + (int)local_f8)" identifier = (cast_expression "(undefined1 *)((int)local_108 + (int)local_f8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_108 + (int)local_f8)" ( (binary_expression "(int)local_108 + (int)local_f8" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);" (assignment_expression "piVar21 = (int *)(PTR_LAB_00033108 + 0x2744)" identifier = (cast_expression "(int *)(PTR_LAB_00033108 + 0x2744)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x2744)" ( (binary_expression "PTR_LAB_00033108 + 0x2744" identifier + number_literal) )))) ;) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar15 = local_d0;" (assignment_expression "piVar15 = local_d0" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)puVar3)(3);" (assignment_expression "iVar10 = (*(code *)puVar3)(3)" identifier = (call_expression "(*(code *)puVar3)(3)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (expression_statement "iVar17 = local_c0;" (assignment_expression "iVar17 = local_c0" identifier = identifier) ;) (if_statement "if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (compound_statement "{\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }" { (expression_statement "local_104 = local_d0[0];" (assignment_expression "local_104 = local_d0[0]" identifier = (subscript_expression "local_d0[0]" identifier [ number_literal ])) ;) (expression_statement "piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);" (assignment_expression "piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec)" identifier = (cast_expression "(int *)(PTR_LAB_00033108 + 0x28ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x28ec)" ( (binary_expression "PTR_LAB_00033108 + 0x28ec" identifier + number_literal) )))) ;) (expression_statement "local_fc = local_bc;" (assignment_expression "local_fc = local_bc" identifier = identifier) ;) (expression_statement "piVar15 = local_d0;" (assignment_expression "piVar15 = local_d0" identifier = identifier) ;) (expression_statement "iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);" (assignment_expression "iVar11 = (*(code *)PTR___lxstat64_000332cc)(3)" identifier = (call_expression "(*(code *)PTR___lxstat64_000332cc)(3)" (parenthesized_expression "(*(code *)PTR___lxstat64_000332cc)" ( (pointer_expression "*(code *)PTR___lxstat64_000332cc" * (cast_expression "(code *)PTR___lxstat64_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (expression_statement "iVar8 = local_bc;" (assignment_expression "iVar8 = local_bc" identifier = identifier) ;) (expression_statement "iVar6 = local_c0;" (assignment_expression "iVar6 = local_c0" identifier = identifier) ;) (expression_statement "iVar10 = local_d0[0];" (assignment_expression "iVar10 = local_d0[0]" identifier = (subscript_expression "local_d0[0]" identifier [ number_literal ])) ;) (if_statement "if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }" if (parenthesized_expression "(-1 < iVar11)" ( (binary_expression "-1 < iVar11" number_literal < identifier) )) (compound_statement "{\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "piVar28 = (int *)0xffffff9c;" (assignment_expression "piVar28 = (int *)0xffffff9c" identifier = (cast_expression "(int *)0xffffff9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);" (assignment_expression "piVar12 = (int *)(PTR_LAB_00033108 + 0x2740)" identifier = (cast_expression "(int *)(PTR_LAB_00033108 + 0x2740)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x2740)" ( (binary_expression "PTR_LAB_00033108 + 0x2740" identifier + number_literal) )))) ;) (do_statement "do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );" do (compound_statement "{\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        }" { (expression_statement "local_e0 = (int *)(puVar25 + -1);" (assignment_expression "local_e0 = (int *)(puVar25 + -1)" identifier = (cast_expression "(int *)(puVar25 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -1)" ( (binary_expression "puVar25 + -1" identifier + number_literal) )))) ;) (if_statement "if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }" if (parenthesized_expression "(((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8))" ( (binary_expression "((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)" (parenthesized_expression "((local_104 == iVar10) && (iVar17 == iVar6))" ( (binary_expression "(local_104 == iVar10) && (iVar17 == iVar6)" (parenthesized_expression "(local_104 == iVar10)" ( (binary_expression "local_104 == iVar10" identifier == identifier) )) && (parenthesized_expression "(iVar17 == iVar6)" ( (binary_expression "iVar17 == iVar6" identifier == identifier) ))) )) && (parenthesized_expression "(local_fc == iVar8)" ( (binary_expression "local_fc == iVar8" identifier == identifier) ))) )) (compound_statement "{\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }" { (if_statement "if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;" if (parenthesized_expression "((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))" ( (binary_expression "(iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0)" ( (comma_expression "iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0" (assignment_expression "iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11)" identifier = (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier )))) , (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }" if (parenthesized_expression "(local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1)))" ( (binary_expression "local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))" identifier == (cast_expression "(int *)((int)local_108 + (int)((int)local_f8 + -1))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_108 + (int)((int)local_f8 + -1))" ( (binary_expression "(int)local_108 + (int)((int)local_f8 + -1)" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)local_f8 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_f8 + -1)" ( (binary_expression "(int)local_f8 + -1" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) )) (compound_statement "{\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }" { (expression_statement "local_e0 = (int *)(puVar25 + -2);" (assignment_expression "local_e0 = (int *)(puVar25 + -2)" identifier = (cast_expression "(int *)(puVar25 + -2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -2)" ( (binary_expression "puVar25 + -2" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)local_e0 = 0x2f;" (assignment_expression "*(undefined1 *)local_e0 = 0x2f" (pointer_expression "*(undefined1 *)local_e0" * (cast_expression "(undefined1 *)local_e0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (expression_statement "piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);" (assignment_expression "piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" identifier = (cast_expression "(int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" ( (binary_expression "(undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0" (cast_expression "(undefined1 *)((int)local_108 + (int)local_f8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_108 + (int)local_f8)" ( (binary_expression "(int)local_108 + (int)local_f8" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (unary_expression "-(int)local_e0" - (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "param_3 = piVar15;" (assignment_expression "param_3 = piVar15" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memmove_000333d8)();" (call_expression "(*(code *)PTR_memmove_000333d8)()" (parenthesized_expression "(*(code *)PTR_memmove_000333d8)" ( (pointer_expression "*(code *)PTR_memmove_000333d8" * (cast_expression "(code *)PTR_memmove_000333d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_100 = param_1;" (assignment_expression "local_100 = param_1" identifier = identifier) ;) (if_statement "if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }" { (expression_statement "local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);" (assignment_expression "local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108)" identifier = (cast_expression "(uint *)(*(code *)PTR_realloc_0003337c)(local_108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0003337c)(local_108)" (parenthesized_expression "(*(code *)PTR_realloc_0003337c)" ( (pointer_expression "*(code *)PTR_realloc_0003337c" * (cast_expression "(code *)PTR_realloc_0003337c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))))) ;) (expression_statement "local_e0 = piVar15;" (assignment_expression "local_e0 = piVar15" identifier = identifier) ;) })) (expression_statement "puVar20 = local_100;" (assignment_expression "puVar20 = local_100" identifier = identifier) ;) (if_statement "if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }" if (parenthesized_expression "(local_100 == (uint *)0x0)" ( (binary_expression "local_100 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar20 = local_108;\n            }" { (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" identifier = identifier) ;) })) (goto_statement "goto LAB_0001f65c;" goto statement_identifier ;) })) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar22 = piVar12;" (assignment_expression "piVar22 = piVar12" identifier = identifier) ;) (expression_statement "piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);" (assignment_expression "piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28)" identifier = (cast_expression "(int *)(*(code *)PTR_openat64_00033358)(piVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_openat64_00033358)(piVar28)" (parenthesized_expression "(*(code *)PTR_openat64_00033358)" ( (pointer_expression "*(code *)PTR_openat64_00033358" * (cast_expression "(code *)PTR_openat64_00033358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar28)" ( identifier ))))) ;) (if_statement "if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }" if (parenthesized_expression "((int)piVar28 < 0)" ( (binary_expression "(int)piVar28 < 0" (cast_expression "(int)piVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }" { (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar11 == 0) goto joined_r0x0001f71c;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (expression_statement "piVar22 = piVar28;" (assignment_expression "piVar22 = piVar28" identifier = identifier) ;) (expression_statement "param_3 = local_d0;" (assignment_expression "param_3 = local_d0" identifier = identifier) ;) (expression_statement "iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);" (assignment_expression "iVar13 = (*(code *)PTR___fxstat64_0003339c)(3)" identifier = (call_expression "(*(code *)PTR___fxstat64_0003339c)(3)" (parenthesized_expression "(*(code *)PTR___fxstat64_0003339c)" ( (pointer_expression "*(code *)PTR___fxstat64_0003339c" * (cast_expression "(code *)PTR___fxstat64_0003339c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (if_statement "if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }" { (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }" { (expression_statement "(*(code *)PTR_closedir_000332c0)(iVar11);" (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))) ;) })) (labeled_statement "LAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);" statement_identifier : (expression_statement "(*(code *)PTR_close_000332c4)(piVar28);" (call_expression "(*(code *)PTR_close_000332c4)(piVar28)" (parenthesized_expression "(*(code *)PTR_close_000332c4)" ( (pointer_expression "*(code *)PTR_close_000332c4" * (cast_expression "(code *)PTR_close_000332c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar28)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;) })) (if_statement "if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }" if (parenthesized_expression "((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0))" ( (binary_expression "(iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)" ( (comma_expression "iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0" (assignment_expression "iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11)" identifier = (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }" { (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0001f708:\n            iVar13 = *piVar14;" statement_identifier : (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;)) (goto_statement "goto LAB_0001f70c;" goto statement_identifier ;) })) (expression_statement "iVar9 = local_bc;" (assignment_expression "iVar9 = local_bc" identifier = identifier) ;) (expression_statement "iVar7 = local_c0;" (assignment_expression "iVar7 = local_c0" identifier = identifier) ;) (expression_statement "iVar5 = local_d0[0];" (assignment_expression "iVar5 = local_d0[0]" identifier = (subscript_expression "local_d0[0]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);" (assignment_expression "iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28)" identifier = (call_expression "(*(code *)PTR_fdopendir_00033300)(piVar28)" (parenthesized_expression "(*(code *)PTR_fdopendir_00033300)" ( (pointer_expression "*(code *)PTR_fdopendir_00033300" * (cast_expression "(code *)PTR_fdopendir_00033300" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar28)" ( identifier )))) ;) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_0001f708;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f708;" goto statement_identifier ;)) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (labeled_statement "LAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));" statement_identifier : (do_statement "do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));" do (compound_statement "{\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          }" { (do_statement "do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));" do (compound_statement "{\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            }" { (expression_statement "puVar3 = PTR_readdir64_000332f0;" (assignment_expression "puVar3 = PTR_readdir64_000332f0" identifier = identifier) ;) (expression_statement "*piVar14 = 0;" (assignment_expression "*piVar14 = 0" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (expression_statement "piVar21 = (int *)(*(code *)puVar3)(iVar11);" (assignment_expression "piVar21 = (int *)(*(code *)puVar3)(iVar11)" identifier = (cast_expression "(int *)(*(code *)puVar3)(iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar3)(iVar11)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))))) ;) (if_statement "if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }" if (parenthesized_expression "(piVar21 == (int *)0x0)" ( (binary_expression "piVar21 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }" { (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar13 != 0) goto LAB_0001f638;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;)) (if_statement "if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }" { (expression_statement "(*(code *)PTR_rewinddir_000332a4)(iVar11);" (call_expression "(*(code *)PTR_rewinddir_000332a4)(iVar11)" (parenthesized_expression "(*(code *)PTR_rewinddir_000332a4)" ( (pointer_expression "*(code *)PTR_rewinddir_000332a4" * (cast_expression "(code *)PTR_rewinddir_000332a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);" (assignment_expression "piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11)" identifier = (cast_expression "(int *)(*(code *)PTR_readdir64_000332f0)(iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_readdir64_000332f0)(iVar11)" (parenthesized_expression "(*(code *)PTR_readdir64_000332f0)" ( (pointer_expression "*(code *)PTR_readdir64_000332f0" * (cast_expression "(code *)PTR_readdir64_000332f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))))) ;) (if_statement "if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }" if (parenthesized_expression "(piVar21 != (int *)0x0)" ( (binary_expression "piVar21 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;" if (parenthesized_expression "(*(char *)((int)piVar21 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar21 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar21 + 0x13)" * (cast_expression "(char *)((int)piVar21 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar21 + 0x13)" ( (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0001f5e0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar13 != 0) goto LAB_0001f638;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;)) })) (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" identifier = number_literal) ;) (expression_statement "*piVar14 = 2;" (assignment_expression "*piVar14 = 2" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }" if (parenthesized_expression "(*(char *)((int)piVar21 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar21 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar21 + 0x13)" * (cast_expression "(char *)((int)piVar21 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar21 + 0x13)" ( (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (compound_statement "{\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }" { (labeled_statement "LAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;" statement_identifier : (if_statement "if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;" if (parenthesized_expression "((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))" ( (binary_expression "(*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000)" (parenthesized_expression "(*(char *)(piVar21 + 5) == '\0')" ( (binary_expression "*(char *)(piVar21 + 5) == '\0'" (pointer_expression "*(char *)(piVar21 + 5)" * (cast_expression "(char *)(piVar21 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar21 + 5)" ( (binary_expression "piVar21 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((piVar21[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar21[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar21[5] & 0xffff0000U)" ( (binary_expression "piVar21[5] & 0xffff0000U" (subscript_expression "piVar21[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0001f418;" goto statement_identifier ;))) })) }) while (parenthesized_expression "((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))))" ( (binary_expression "(bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)))" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)))" ( (parenthesized_expression "((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))" ( (binary_expression "(*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)" (parenthesized_expression "(*piVar21 != iVar17 || (piVar21[1] != local_fc))" ( (binary_expression "*piVar21 != iVar17 || (piVar21[1] != local_fc)" (binary_expression "*piVar21 != iVar17" (pointer_expression "*piVar21" * identifier) != identifier) || (parenthesized_expression "(piVar21[1] != local_fc)" ( (binary_expression "piVar21[1] != local_fc" (subscript_expression "piVar21[1]" identifier [ number_literal ]) != identifier) ))) )) && (parenthesized_expression "(local_104 == iVar5)" ( (binary_expression "local_104 == iVar5" identifier == identifier) ))) )) ))) )) ;) (expression_statement "piVar21 = (int *)((int)piVar21 + 0x13);" (assignment_expression "piVar21 = (int *)((int)piVar21 + 0x13)" identifier = (cast_expression "(int *)((int)piVar21 + 0x13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar21 + 0x13)" ( (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar22 = piVar28;" (assignment_expression "piVar22 = piVar28" identifier = identifier) ;) (expression_statement "param_3 = piVar21;" (assignment_expression "param_3 = piVar21" identifier = identifier) ;) (expression_statement "iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);" (assignment_expression "iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100)" identifier = (call_expression "(*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100)" (parenthesized_expression "(*(code *)PTR___fxstatat64_000333a8)" ( (pointer_expression "*(code *)PTR___fxstatat64_000333a8" * (cast_expression "(code *)PTR___fxstatat64_000333a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,piVar28,piVar21,local_d0,0x100)" ( number_literal , identifier , identifier , identifier , number_literal )))) ;) }) while (parenthesized_expression "((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))))" ( (binary_expression "(((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc)))" (parenthesized_expression "(((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   )" ( (binary_expression "((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)" (parenthesized_expression "((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000))" ( (binary_expression "(iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) || (parenthesized_expression "((local_b8 & 0xf000) != 0x4000)" ( (binary_expression "(local_b8 & 0xf000) != 0x4000" (parenthesized_expression "(local_b8 & 0xf000)" ( (binary_expression "local_b8 & 0xf000" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(local_d0[0] != local_104)" ( (binary_expression "local_d0[0] != local_104" (subscript_expression "local_d0[0]" identifier [ number_literal ]) != identifier) ))) )) || (parenthesized_expression "((local_c0 != iVar17 || (local_bc != local_fc)))" ( (parenthesized_expression "(local_c0 != iVar17 || (local_bc != local_fc))" ( (binary_expression "local_c0 != iVar17 || (local_bc != local_fc)" (binary_expression "local_c0 != iVar17" identifier != identifier) || (parenthesized_expression "(local_bc != local_fc)" ( (binary_expression "local_bc != local_fc" identifier != identifier) ))) )) ))) )) ;)) (expression_statement "piVar27 = (int *)((int)local_e0 - (int)local_108);" (assignment_expression "piVar27 = (int *)((int)local_e0 - (int)local_108)" identifier = (cast_expression "(int *)((int)local_e0 - (int)local_108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_e0 - (int)local_108)" ( (binary_expression "(int)local_e0 - (int)local_108" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);" (assignment_expression "piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21)" identifier = (cast_expression "(int *)(*(code *)PTR_strlen_0003335c)(piVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0003335c)(piVar21)" (parenthesized_expression "(*(code *)PTR_strlen_0003335c)" ( (pointer_expression "*(code *)PTR_strlen_0003335c" * (cast_expression "(code *)PTR_strlen_0003335c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar21)" ( identifier ))))) ;) (if_statement "if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }" if (parenthesized_expression "(piVar27 <= piVar15)" ( (binary_expression "piVar27 <= piVar15" identifier <= identifier) )) (compound_statement "{\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }" { (if_statement "if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }" { (expression_statement "iVar13 = 0x22;" (assignment_expression "iVar13 = 0x22" identifier = number_literal) ;) (expression_statement "*piVar14 = 0x22;" (assignment_expression "*piVar14 = 0x22" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (expression_statement "piVar19 = local_f8;" (assignment_expression "piVar19 = local_f8" identifier = identifier) ;) (if_statement "if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }" if (parenthesized_expression "(local_f8 < piVar15)" ( (binary_expression "local_f8 < piVar15" identifier < identifier) )) (compound_statement "{\n              piVar19 = piVar15;\n            }" { (expression_statement "piVar19 = piVar15;" (assignment_expression "piVar19 = piVar15" identifier = identifier) ;) })) (expression_statement "piVar26 = (int *)((int)piVar19 + (int)local_f8);" (assignment_expression "piVar26 = (int *)((int)piVar19 + (int)local_f8)" identifier = (cast_expression "(int *)((int)piVar19 + (int)local_f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + (int)local_f8)" ( (binary_expression "(int)piVar19 + (int)local_f8" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;" if (parenthesized_expression "((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0))" ( (binary_expression "(piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)" (parenthesized_expression "(piVar26 < local_f8)" ( (binary_expression "piVar26 < local_f8" identifier < identifier) )) || (parenthesized_expression "(piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)" ( (comma_expression "piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0" (assignment_expression "piVar22 = piVar26" identifier = identifier) , (comma_expression "puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0" (assignment_expression "puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108)" identifier = (cast_expression "(uint *)(*(code *)PTR_realloc_0003337c)(local_108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0003337c)(local_108)" (parenthesized_expression "(*(code *)PTR_realloc_0003337c)" ( (pointer_expression "*(code *)PTR_realloc_0003337c" * (cast_expression "(code *)PTR_realloc_0003337c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))))) , (binary_expression "puVar20 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_0001f838;" goto statement_identifier ;)) (expression_statement "local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);" (assignment_expression "local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" identifier = (cast_expression "(int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" (parenthesized_expression "(*(code *)PTR_memcpy_000333d0)" ( (pointer_expression "*(code *)PTR_memcpy_000333d0" * (cast_expression "(code *)PTR_memcpy_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" ( (cast_expression "(undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + (int)((int)piVar19 + (int)piVar27))" ( (binary_expression "(int)puVar20 + (int)((int)piVar19 + (int)piVar27)" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)piVar19 + (int)piVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)piVar19 + (int)piVar27)" ( (binary_expression "(int)piVar19 + (int)piVar27" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) , (cast_expression "(undefined1 *)((int)puVar20 + (int)piVar27)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + (int)piVar27)" ( (binary_expression "(int)puVar20 + (int)piVar27" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "(int)local_f8 - (int)piVar27" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_108 = puVar20;" (assignment_expression "local_108 = puVar20" identifier = identifier) ;) (expression_statement "local_f8 = piVar26;" (assignment_expression "local_f8 = piVar26" identifier = identifier) ;) })) (expression_statement "puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);" (assignment_expression "puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" (parenthesized_expression "(*(code *)PTR_memcpy_000333d0)" ( (pointer_expression "*(code *)PTR_memcpy_000333d0" * (cast_expression "(code *)PTR_memcpy_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)local_e0 - (int)piVar15)" ( (binary_expression "(int)local_e0 - (int)piVar15" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "puVar25[-1] = 0x2f;" (assignment_expression "puVar25[-1] = 0x2f" (subscript_expression "puVar25[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_fc = iVar9;" (assignment_expression "local_fc = iVar9" identifier = identifier) ;) (expression_statement "local_104 = iVar5;" (assignment_expression "local_104 = iVar5" identifier = identifier) ;) (expression_statement "iVar17 = iVar7;" (assignment_expression "iVar17 = iVar7" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "piVar22 = piVar21;" (assignment_expression "piVar22 = piVar21" identifier = identifier) ;) (expression_statement "param_3 = piVar15;" (assignment_expression "param_3 = piVar15" identifier = identifier) ;) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;) })) (if_statement "if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }" { (expression_statement "local_f8 = (int *)0x1000;" (assignment_expression "local_f8 = (int *)0x1000" identifier = (cast_expression "(int *)0x1000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001f288:\n    local_e0 = param_2;" statement_identifier : (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" identifier = identifier) ;)) (expression_statement "local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);" (assignment_expression "local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8)" identifier = (cast_expression "(uint *)(*(code *)PTR_malloc_00033378)(local_f8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00033378)(local_f8)" (parenthesized_expression "(*(code *)PTR_malloc_00033378)" ( (pointer_expression "*(code *)PTR_malloc_00033378" * (cast_expression "(code *)PTR_malloc_00033378" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f8)" ( identifier ))))) ;) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" identifier = identifier) ;) (if_statement "if (local_108 != (uint *)0x0) goto LAB_0001f2bc;" if (parenthesized_expression "(local_108 != (uint *)0x0)" ( (binary_expression "local_108 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f2bc;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" else (compound_statement "{\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" { (expression_statement "puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "local_108 = (uint *)0x0;" (assignment_expression "local_108 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar16 = 0x16;" (assignment_expression "*puVar16 = 0x16" (pointer_expression "*puVar16" * identifier) = number_literal) ;) (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" identifier = identifier) ;) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" identifier = identifier) ;) }))) (goto_statement "goto LAB_0001f65c;" goto statement_identifier ;) (labeled_statement "LAB_0001f838:\n  iVar13 = 0xc;" statement_identifier : (expression_statement "iVar13 = 0xc;" (assignment_expression "iVar13 = 0xc" identifier = number_literal) ;)) (expression_statement "*piVar14 = 0xc;" (assignment_expression "*piVar14 = 0xc" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (labeled_statement "LAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);" statement_identifier : (expression_statement "(*(code *)PTR_closedir_000332c0)(iVar11);" (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))) ;)) (labeled_statement "joined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" statement_identifier : (if_statement "if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" { (expression_statement "(*(code *)PTR_free_000333d4)(local_108);" (call_expression "(*(code *)PTR_free_000333d4)(local_108)" (parenthesized_expression "(*(code *)PTR_free_000333d4)" ( (pointer_expression "*(code *)PTR_free_000333d4" * (cast_expression "(code *)PTR_free_000333d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))) ;) }))) (expression_statement "*piVar14 = iVar13;" (assignment_expression "*piVar14 = iVar13" (pointer_expression "*piVar14" * identifier) = identifier) ;) (expression_statement "local_108 = (uint *)0x0;" (assignment_expression "local_108 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e0 = piVar22;" (assignment_expression "local_e0 = piVar22" identifier = identifier) ;) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" identifier = identifier) ;) (labeled_statement "LAB_0001f65c:\n  local_108 = puVar20;" statement_identifier : (expression_statement "local_108 = puVar20;" (assignment_expression "local_108 = puVar20" identifier = identifier) ;)) (if_statement "if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }" if (parenthesized_expression "(local_2c == *(uint **)puVar4)" ( (binary_expression "local_2c == *(uint **)puVar4" identifier == (pointer_expression "*(uint **)puVar4" * (cast_expression "(uint **)puVar4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return local_108;\n  }" { (return_statement "return local_108;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000333b0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000333b0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000333b0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000333b0" * (cast_expression "(code *)PTR___stack_chk_fail_000333b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar24 = (uint)local_e0 & 0xff;" (assignment_expression "uVar24 = (uint)local_e0 & 0xff" identifier = (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (uint *)0x0;\n  }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (while_statement "while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }" while (parenthesized_expression "(((uint)local_2c & 3) != 0)" ( (binary_expression "((uint)local_2c & 3) != 0" (parenthesized_expression "((uint)local_2c & 3)" ( (binary_expression "(uint)local_2c & 3" (cast_expression "(uint)local_2c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }" { (expression_statement "param_3 = (int *)((int)param_3 + -1);" (assignment_expression "param_3 = (int *)((int)param_3 + -1)" identifier = (cast_expression "(int *)((int)param_3 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + -1)" ( (binary_expression "(int)param_3 + -1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }" if (parenthesized_expression "(*(byte *)local_2c == uVar24)" ( (binary_expression "*(byte *)local_2c == uVar24" (pointer_expression "*(byte *)local_2c" * (cast_expression "(byte *)local_2c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n      return local_2c;\n    }" { (return_statement "return local_2c;" return identifier ;) })) (expression_statement "local_2c = (uint *)((int)local_2c + 1);" (assignment_expression "local_2c = (uint *)((int)local_2c + 1)" identifier = (cast_expression "(uint *)((int)local_2c + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + 1)" ( (binary_expression "(int)local_2c + 1" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (uint *)0x0;\n    }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) })) (expression_statement "uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;" (assignment_expression "uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff" identifier = (binary_expression "((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff" (binary_expression "((uint)local_e0 & 0xff) << 8" (parenthesized_expression "((uint)local_e0 & 0xff)" ( (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar23 = uVar23 << 0x10 | uVar23;" (assignment_expression "uVar23 = uVar23 << 0x10 | uVar23" identifier = (binary_expression "uVar23 << 0x10 | uVar23" (binary_expression "uVar23 << 0x10" identifier << number_literal) | identifier)) ;) (if_statement "if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }" if (parenthesized_expression "((int *)0x3 < param_3)" ( (binary_expression "(int *)0x3 < param_3" (cast_expression "(int *)0x3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }" { (expression_statement "uVar18 = uVar23 ^ *local_2c;" (assignment_expression "uVar18 = uVar23 ^ *local_2c" identifier = (binary_expression "uVar23 ^ *local_2c" identifier ^ (pointer_expression "*local_2c" * identifier))) ;) (if_statement "if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }" if (parenthesized_expression "((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0)" ( (binary_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0" (parenthesized_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080)" ( (binary_expression "uVar18 + 0xfefefeff & ~uVar18 & 0x80808080" (binary_expression "uVar18 + 0xfefefeff & ~uVar18" (binary_expression "uVar18 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar18" ~ identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }" { (expression_statement "bVar1 = *(byte *)local_2c;" (assignment_expression "bVar1 = *(byte *)local_2c" identifier = (pointer_expression "*(byte *)local_2c" * (cast_expression "(byte *)local_2c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (goto_statement "goto LAB_0001f934;" goto statement_identifier ;) })) (do_statement "do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);" do (compound_statement "{\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    }" { (expression_statement "param_3 = param_3 + -1;" (assignment_expression "param_3 = param_3 + -1" identifier = (binary_expression "param_3 + -1" identifier + number_literal)) ;) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (if_statement "if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }" if (parenthesized_expression "(param_3 < (int *)0x4)" ( (binary_expression "param_3 < (int *)0x4" identifier < (cast_expression "(int *)0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }" { (if_statement "if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (uint *)0x0;\n        }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (break_statement "break;" break ;) })) (expression_statement "uVar18 = uVar23 ^ *local_2c;" (assignment_expression "uVar18 = uVar23 ^ *local_2c" identifier = (binary_expression "uVar23 ^ *local_2c" identifier ^ (pointer_expression "*local_2c" * identifier))) ;) }) while (parenthesized_expression "((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0)" ( (binary_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0" (parenthesized_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080)" ( (binary_expression "uVar18 + 0xfefefeff & ~uVar18 & 0x80808080" (binary_expression "uVar18 + 0xfefefeff & ~uVar18" (binary_expression "uVar18 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar18" ~ identifier)) & number_literal) )) == number_literal) )) ;) })) (expression_statement "bVar1 = *(byte *)local_2c;" (assignment_expression "bVar1 = *(byte *)local_2c" identifier = (pointer_expression "*(byte *)local_2c" * (cast_expression "(byte *)local_2c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }" statement_identifier : (if_statement "if (bVar1 == uVar24) {\n    return local_2c;\n  }" if (parenthesized_expression "(bVar1 == uVar24)" ( (binary_expression "bVar1 == uVar24" identifier == identifier) )) (compound_statement "{\n    return local_2c;\n  }" { (return_statement "return local_2c;" return identifier ;) }))) (expression_statement "puVar20 = (uint *)((int)local_2c + (int)param_3);" (assignment_expression "puVar20 = (uint *)((int)local_2c + (int)param_3)" identifier = (cast_expression "(uint *)((int)local_2c + (int)param_3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (int)param_3)" ( (binary_expression "(int)local_2c + (int)param_3" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);" do (compound_statement "{\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  }" { (expression_statement "local_2c = (uint *)((int)local_2c + 1);" (assignment_expression "local_2c = (uint *)((int)local_2c + 1)" identifier = (cast_expression "(uint *)((int)local_2c + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + 1)" ( (binary_expression "(int)local_2c + 1" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }" if (parenthesized_expression "(puVar20 == local_2c)" ( (binary_expression "puVar20 == local_2c" identifier == identifier) )) (compound_statement "{\n      return (uint *)0x0;\n    }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) while (parenthesized_expression "(*(byte *)local_2c != uVar24)" ( (binary_expression "*(byte *)local_2c != uVar24" (pointer_expression "*(byte *)local_2c" * (cast_expression "(byte *)local_2c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) ;) (return_statement "return local_2c;" return identifier ;) })))
(translation_unit "char * rpl_getcwd(char *buf,size_t size)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  ulong uVar5;\n  ulong uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint *puVar10;\n  int iVar11;\n  int iVar12;\n  stat *psVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  stat *psVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  uint uVar20;\n  stat *psVar21;\n  uint *puVar22;\n  stat *psVar23;\n  stat *psVar24;\n  uint uVar25;\n  stat *in_a2;\n  uint uVar26;\n  char *pcVar27;\n  stat *psVar28;\n  stat *psVar29;\n  stat *psVar30;\n  char *local_108;\n  ulong local_104;\n  char *local_100;\n  int local_fc;\n  stat *local_f8;\n  stat *local_e0;\n  stat st;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  puVar10 = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (size != 0) {\n    local_108 = buf;\n    local_f8 = (stat *)size;\n    if (buf == (char *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    pcVar27 = local_108 + (int)local_f8;\n    psVar23 = (stat *)(PTR_LAB_00033108 + 0x2744);\n    pcVar27[-1] = '\0';\n    psVar17 = &st;\n    iVar11 = (*(code *)puVar3)(3);\n    iVar19 = st.st_ino._0_4_;\n    if (-1 < iVar11) {\n      local_104 = st.st_dev;\n      psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = st.st_ino._4_4_;\n      psVar17 = &st;\n      iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = st.st_ino._4_4_;\n      iVar11 = st.st_ino._0_4_;\n      uVar5 = st.st_dev;\n      if (-1 < iVar12) {\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }\n    }\n    piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar14 = *piVar15;\n    psVar24 = psVar23;\n    in_a2 = psVar17;\n    goto joined_r0x0001f71c;\n  }\n  if (buf == (char *)0x0) {\n    local_f8 = (stat *)0x1000;\nLAB_0001f288:\n    local_e0 = (stat *)size;\n    local_108 = (char *)(*(code *)PTR_malloc_00033378)(local_f8);\n    pcVar27 = local_108;\n    if (local_108 != (char *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (char *)0x0;\n    *puVar18 = 0x16;\n    local_e0 = (stat *)size;\n    pcVar27 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar14 = 0xc;\n  *piVar15 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar12);\njoined_r0x0001f71c:\n  if (buf == (char *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar15 = iVar14;\n  local_108 = (char *)0x0;\n  local_e0 = psVar24;\n  pcVar27 = local_108;\nLAB_0001f65c:\n  local_108 = pcVar27;\n  if (puVar10 == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar26 = (uint)local_e0 & 0xff;\n  if (in_a2 == (stat *)0x0) {\n    return (char *)0x0;\n  }\n  while (((uint)puVar10 & 3) != 0) {\n    in_a2 = (stat *)((int)in_a2[-1].st_pad5 + 0x37);\n    if (*(byte *)puVar10 == uVar26) {\n      return (char *)puVar10;\n    }\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (in_a2 == (stat *)0x0) {\n      return (char *)0x0;\n    }\n  }\n  uVar25 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar25 = uVar25 << 0x10 | uVar25;\n  if ((stat *)0x3 < in_a2) {\n    uVar20 = uVar25 ^ *puVar10;\n    if ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar10;\n      goto LAB_0001f934;\n    }\n    do {\n      in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);\n      puVar10 = puVar10 + 1;\n      if (in_a2 < (stat *)0x4) {\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }\n      uVar20 = uVar25 ^ *puVar10;\n    } while ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar10;\nLAB_0001f934:\n  if (bVar1 == uVar26) {\n    return (char *)puVar10;\n  }\n  puVar22 = (uint *)((int)puVar10 + (int)in_a2);\n  do {\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (puVar22 == puVar10) {\n      return (char *)0x0;\n    }\n  } while (*(byte *)puVar10 != uVar26);\n  return (char *)puVar10;\n}\n\n" (function_definition "char * rpl_getcwd(char *buf,size_t size)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  ulong uVar5;\n  ulong uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint *puVar10;\n  int iVar11;\n  int iVar12;\n  stat *psVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  stat *psVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  uint uVar20;\n  stat *psVar21;\n  uint *puVar22;\n  stat *psVar23;\n  stat *psVar24;\n  uint uVar25;\n  stat *in_a2;\n  uint uVar26;\n  char *pcVar27;\n  stat *psVar28;\n  stat *psVar29;\n  stat *psVar30;\n  char *local_108;\n  ulong local_104;\n  char *local_100;\n  int local_fc;\n  stat *local_f8;\n  stat *local_e0;\n  stat st;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  puVar10 = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (size != 0) {\n    local_108 = buf;\n    local_f8 = (stat *)size;\n    if (buf == (char *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    pcVar27 = local_108 + (int)local_f8;\n    psVar23 = (stat *)(PTR_LAB_00033108 + 0x2744);\n    pcVar27[-1] = '\0';\n    psVar17 = &st;\n    iVar11 = (*(code *)puVar3)(3);\n    iVar19 = st.st_ino._0_4_;\n    if (-1 < iVar11) {\n      local_104 = st.st_dev;\n      psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = st.st_ino._4_4_;\n      psVar17 = &st;\n      iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = st.st_ino._4_4_;\n      iVar11 = st.st_ino._0_4_;\n      uVar5 = st.st_dev;\n      if (-1 < iVar12) {\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }\n    }\n    piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar14 = *piVar15;\n    psVar24 = psVar23;\n    in_a2 = psVar17;\n    goto joined_r0x0001f71c;\n  }\n  if (buf == (char *)0x0) {\n    local_f8 = (stat *)0x1000;\nLAB_0001f288:\n    local_e0 = (stat *)size;\n    local_108 = (char *)(*(code *)PTR_malloc_00033378)(local_f8);\n    pcVar27 = local_108;\n    if (local_108 != (char *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (char *)0x0;\n    *puVar18 = 0x16;\n    local_e0 = (stat *)size;\n    pcVar27 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar14 = 0xc;\n  *piVar15 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar12);\njoined_r0x0001f71c:\n  if (buf == (char *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar15 = iVar14;\n  local_108 = (char *)0x0;\n  local_e0 = psVar24;\n  pcVar27 = local_108;\nLAB_0001f65c:\n  local_108 = pcVar27;\n  if (puVar10 == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar26 = (uint)local_e0 & 0xff;\n  if (in_a2 == (stat *)0x0) {\n    return (char *)0x0;\n  }\n  while (((uint)puVar10 & 3) != 0) {\n    in_a2 = (stat *)((int)in_a2[-1].st_pad5 + 0x37);\n    if (*(byte *)puVar10 == uVar26) {\n      return (char *)puVar10;\n    }\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (in_a2 == (stat *)0x0) {\n      return (char *)0x0;\n    }\n  }\n  uVar25 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar25 = uVar25 << 0x10 | uVar25;\n  if ((stat *)0x3 < in_a2) {\n    uVar20 = uVar25 ^ *puVar10;\n    if ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar10;\n      goto LAB_0001f934;\n    }\n    do {\n      in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);\n      puVar10 = puVar10 + 1;\n      if (in_a2 < (stat *)0x4) {\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }\n      uVar20 = uVar25 ^ *puVar10;\n    } while ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar10;\nLAB_0001f934:\n  if (bVar1 == uVar26) {\n    return (char *)puVar10;\n  }\n  puVar22 = (uint *)((int)puVar10 + (int)in_a2);\n  do {\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (puVar22 == puVar10) {\n      return (char *)0x0;\n    }\n  } while (*(byte *)puVar10 != uVar26);\n  return (char *)puVar10;\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  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  ulong uVar5;\n  ulong uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint *puVar10;\n  int iVar11;\n  int iVar12;\n  stat *psVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  stat *psVar17;\n  undefined4 *puVar18;\n  int iVar19;\n  uint uVar20;\n  stat *psVar21;\n  uint *puVar22;\n  stat *psVar23;\n  stat *psVar24;\n  uint uVar25;\n  stat *in_a2;\n  uint uVar26;\n  char *pcVar27;\n  stat *psVar28;\n  stat *psVar29;\n  stat *psVar30;\n  char *local_108;\n  ulong local_104;\n  char *local_100;\n  int local_fc;\n  stat *local_f8;\n  stat *local_e0;\n  stat st;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  puVar10 = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (size != 0) {\n    local_108 = buf;\n    local_f8 = (stat *)size;\n    if (buf == (char *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    pcVar27 = local_108 + (int)local_f8;\n    psVar23 = (stat *)(PTR_LAB_00033108 + 0x2744);\n    pcVar27[-1] = '\0';\n    psVar17 = &st;\n    iVar11 = (*(code *)puVar3)(3);\n    iVar19 = st.st_ino._0_4_;\n    if (-1 < iVar11) {\n      local_104 = st.st_dev;\n      psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = st.st_ino._4_4_;\n      psVar17 = &st;\n      iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = st.st_ino._4_4_;\n      iVar11 = st.st_ino._0_4_;\n      uVar5 = st.st_dev;\n      if (-1 < iVar12) {\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }\n    }\n    piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar14 = *piVar15;\n    psVar24 = psVar23;\n    in_a2 = psVar17;\n    goto joined_r0x0001f71c;\n  }\n  if (buf == (char *)0x0) {\n    local_f8 = (stat *)0x1000;\nLAB_0001f288:\n    local_e0 = (stat *)size;\n    local_108 = (char *)(*(code *)PTR_malloc_00033378)(local_f8);\n    pcVar27 = local_108;\n    if (local_108 != (char *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (char *)0x0;\n    *puVar18 = 0x16;\n    local_e0 = (stat *)size;\n    pcVar27 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar14 = 0xc;\n  *piVar15 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar12);\njoined_r0x0001f71c:\n  if (buf == (char *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar15 = iVar14;\n  local_108 = (char *)0x0;\n  local_e0 = psVar24;\n  pcVar27 = local_108;\nLAB_0001f65c:\n  local_108 = pcVar27;\n  if (puVar10 == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar26 = (uint)local_e0 & 0xff;\n  if (in_a2 == (stat *)0x0) {\n    return (char *)0x0;\n  }\n  while (((uint)puVar10 & 3) != 0) {\n    in_a2 = (stat *)((int)in_a2[-1].st_pad5 + 0x37);\n    if (*(byte *)puVar10 == uVar26) {\n      return (char *)puVar10;\n    }\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (in_a2 == (stat *)0x0) {\n      return (char *)0x0;\n    }\n  }\n  uVar25 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar25 = uVar25 << 0x10 | uVar25;\n  if ((stat *)0x3 < in_a2) {\n    uVar20 = uVar25 ^ *puVar10;\n    if ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar10;\n      goto LAB_0001f934;\n    }\n    do {\n      in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);\n      puVar10 = puVar10 + 1;\n      if (in_a2 < (stat *)0x4) {\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }\n      uVar20 = uVar25 ^ *puVar10;\n    } while ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar10;\nLAB_0001f934:\n  if (bVar1 == uVar26) {\n    return (char *)puVar10;\n  }\n  puVar22 = (uint *)((int)puVar10 + (int)in_a2);\n  do {\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (puVar22 == puVar10) {\n      return (char *)0x0;\n    }\n  } while (*(byte *)puVar10 != uVar26);\n  return (char *)puVar10;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "stat *psVar13;" type_identifier (pointer_declarator "*psVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "stat *psVar17;" type_identifier (pointer_declarator "*psVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "stat *psVar21;" type_identifier (pointer_declarator "*psVar21" * identifier) ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "stat *psVar23;" type_identifier (pointer_declarator "*psVar23" * identifier) ;) (declaration "stat *psVar24;" type_identifier (pointer_declarator "*psVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "stat *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "stat *psVar28;" type_identifier (pointer_declarator "*psVar28" * identifier) ;) (declaration "stat *psVar29;" type_identifier (pointer_declarator "*psVar29" * identifier) ;) (declaration "stat *psVar30;" type_identifier (pointer_declarator "*psVar30" * identifier) ;) (declaration "char *local_108;" primitive_type (pointer_declarator "*local_108" * identifier) ;) (declaration "ulong local_104;" type_identifier identifier ;) (declaration "char *local_100;" primitive_type (pointer_declarator "*local_100" * identifier) ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "stat *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "stat *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "stat st;" type_identifier identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_000333cc;" (assignment_expression "puVar4 = PTR___stack_chk_guard_000333cc" identifier = identifier) ;) (expression_statement "puVar10 = *(uint **)PTR___stack_chk_guard_000333cc;" (assignment_expression "puVar10 = *(uint **)PTR___stack_chk_guard_000333cc" identifier = (pointer_expression "*(uint **)PTR___stack_chk_guard_000333cc" * (cast_expression "(uint **)PTR___stack_chk_guard_000333cc" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (size != 0) {\n    local_108 = buf;\n    local_f8 = (stat *)size;\n    if (buf == (char *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    pcVar27 = local_108 + (int)local_f8;\n    psVar23 = (stat *)(PTR_LAB_00033108 + 0x2744);\n    pcVar27[-1] = '\0';\n    psVar17 = &st;\n    iVar11 = (*(code *)puVar3)(3);\n    iVar19 = st.st_ino._0_4_;\n    if (-1 < iVar11) {\n      local_104 = st.st_dev;\n      psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = st.st_ino._4_4_;\n      psVar17 = &st;\n      iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = st.st_ino._4_4_;\n      iVar11 = st.st_ino._0_4_;\n      uVar5 = st.st_dev;\n      if (-1 < iVar12) {\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }\n    }\n    piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar14 = *piVar15;\n    psVar24 = psVar23;\n    in_a2 = psVar17;\n    goto joined_r0x0001f71c;\n  }" if (parenthesized_expression "(size != 0)" ( (binary_expression "size != 0" identifier != number_literal) )) (compound_statement "{\n    local_108 = buf;\n    local_f8 = (stat *)size;\n    if (buf == (char *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    pcVar27 = local_108 + (int)local_f8;\n    psVar23 = (stat *)(PTR_LAB_00033108 + 0x2744);\n    pcVar27[-1] = '\0';\n    psVar17 = &st;\n    iVar11 = (*(code *)puVar3)(3);\n    iVar19 = st.st_ino._0_4_;\n    if (-1 < iVar11) {\n      local_104 = st.st_dev;\n      psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = st.st_ino._4_4_;\n      psVar17 = &st;\n      iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = st.st_ino._4_4_;\n      iVar11 = st.st_ino._0_4_;\n      uVar5 = st.st_dev;\n      if (-1 < iVar12) {\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }\n    }\n    piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar14 = *piVar15;\n    psVar24 = psVar23;\n    in_a2 = psVar17;\n    goto joined_r0x0001f71c;\n  }" { (expression_statement "local_108 = buf;" (assignment_expression "local_108 = buf" identifier = identifier) ;) (expression_statement "local_f8 = (stat *)size;" (assignment_expression "local_f8 = (stat *)size" identifier = (cast_expression "(stat *)size" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (buf == (char *)0x0) goto LAB_0001f288;" 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_0001f288;" goto statement_identifier ;)) (labeled_statement "LAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;" statement_identifier : (expression_statement "puVar3 = PTR___lxstat64_000332cc;" (assignment_expression "puVar3 = PTR___lxstat64_000332cc" identifier = identifier) ;)) (expression_statement "pcVar27 = local_108 + (int)local_f8;" (assignment_expression "pcVar27 = local_108 + (int)local_f8" identifier = (binary_expression "local_108 + (int)local_f8" identifier + (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psVar23 = (stat *)(PTR_LAB_00033108 + 0x2744);" (assignment_expression "psVar23 = (stat *)(PTR_LAB_00033108 + 0x2744)" identifier = (cast_expression "(stat *)(PTR_LAB_00033108 + 0x2744)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x2744)" ( (binary_expression "PTR_LAB_00033108 + 0x2744" identifier + number_literal) )))) ;) (expression_statement "pcVar27[-1] = '\0';" (assignment_expression "pcVar27[-1] = '\0'" (subscript_expression "pcVar27[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "psVar17 = &st;" (assignment_expression "psVar17 = &st" identifier = (pointer_expression "&st" & identifier)) ;) (expression_statement "iVar11 = (*(code *)puVar3)(3);" (assignment_expression "iVar11 = (*(code *)puVar3)(3)" identifier = (call_expression "(*(code *)puVar3)(3)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (expression_statement "iVar19 = st.st_ino._0_4_;" (assignment_expression "iVar19 = st.st_ino._0_4_" identifier = (field_expression "st.st_ino._0_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (-1 < iVar11) {\n      local_104 = st.st_dev;\n      psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = st.st_ino._4_4_;\n      psVar17 = &st;\n      iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = st.st_ino._4_4_;\n      iVar11 = st.st_ino._0_4_;\n      uVar5 = st.st_dev;\n      if (-1 < iVar12) {\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }\n    }" if (parenthesized_expression "(-1 < iVar11)" ( (binary_expression "-1 < iVar11" number_literal < identifier) )) (compound_statement "{\n      local_104 = st.st_dev;\n      psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = st.st_ino._4_4_;\n      psVar17 = &st;\n      iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = st.st_ino._4_4_;\n      iVar11 = st.st_ino._0_4_;\n      uVar5 = st.st_dev;\n      if (-1 < iVar12) {\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }\n    }" { (expression_statement "local_104 = st.st_dev;" (assignment_expression "local_104 = st.st_dev" identifier = (field_expression "st.st_dev" identifier . field_identifier)) ;) (expression_statement "psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec);" (assignment_expression "psVar23 = (stat *)(PTR_LAB_00033108 + 0x28ec)" identifier = (cast_expression "(stat *)(PTR_LAB_00033108 + 0x28ec)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x28ec)" ( (binary_expression "PTR_LAB_00033108 + 0x28ec" identifier + number_literal) )))) ;) (expression_statement "local_fc = st.st_ino._4_4_;" (assignment_expression "local_fc = 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 "psVar17 = &st;" (assignment_expression "psVar17 = &st" identifier = (pointer_expression "&st" & identifier)) ;) (expression_statement "iVar12 = (*(code *)PTR___lxstat64_000332cc)(3);" (assignment_expression "iVar12 = (*(code *)PTR___lxstat64_000332cc)(3)" identifier = (call_expression "(*(code *)PTR___lxstat64_000332cc)(3)" (parenthesized_expression "(*(code *)PTR___lxstat64_000332cc)" ( (pointer_expression "*(code *)PTR___lxstat64_000332cc" * (cast_expression "(code *)PTR___lxstat64_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (expression_statement "iVar8 = st.st_ino._4_4_;" (assignment_expression "iVar8 = 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 "iVar11 = st.st_ino._0_4_;" (assignment_expression "iVar11 = st.st_ino._0_4_" identifier = (field_expression "st.st_ino._0_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar5 = st.st_dev;" (assignment_expression "uVar5 = st.st_dev" identifier = (field_expression "st.st_dev" identifier . field_identifier)) ;) (if_statement "if (-1 < iVar12) {\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }" if (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) (compound_statement "{\n        iVar12 = 0;\n        psVar30 = (stat *)0xffffff9c;\n        psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "psVar30 = (stat *)0xffffff9c;" (assignment_expression "psVar30 = (stat *)0xffffff9c" identifier = (cast_expression "(stat *)0xffffff9c" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740);" (assignment_expression "psVar13 = (stat *)(PTR_LAB_00033108 + 0x2740)" identifier = (cast_expression "(stat *)(PTR_LAB_00033108 + 0x2740)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x2740)" ( (binary_expression "PTR_LAB_00033108 + 0x2740" identifier + number_literal) )))) ;) (do_statement "do {\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        } while( true );" do (compound_statement "{\n          local_e0 = (stat *)(pcVar27 + -1);\n          if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          in_a2 = (stat *)0x0;\n          psVar24 = psVar13;\n          psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);\n          if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          psVar24 = psVar30;\n          in_a2 = &st;\n          iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }\n          iVar9 = st.st_ino._4_4_;\n          iVar7 = st.st_ino._0_4_;\n          uVar6 = st.st_dev;\n          iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);\n          piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar12 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));\n          psVar29 = (stat *)((int)local_e0 - (int)local_108);\n          psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);\n          if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }\n          pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);\n          pcVar27[-1] = '/';\n          local_fc = iVar9;\n          local_104 = uVar6;\n          iVar19 = iVar7;\n        }" { (expression_statement "local_e0 = (stat *)(pcVar27 + -1);" (assignment_expression "local_e0 = (stat *)(pcVar27 + -1)" identifier = (cast_expression "(stat *)(pcVar27 + -1)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + -1)" ( (binary_expression "pcVar27 + -1" identifier + number_literal) )))) ;) (if_statement "if (((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)) {\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }" if (parenthesized_expression "(((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8))" ( (binary_expression "((local_104 == uVar5) && (iVar19 == iVar11)) && (local_fc == iVar8)" (parenthesized_expression "((local_104 == uVar5) && (iVar19 == iVar11))" ( (binary_expression "(local_104 == uVar5) && (iVar19 == iVar11)" (parenthesized_expression "(local_104 == uVar5)" ( (binary_expression "local_104 == uVar5" identifier == identifier) )) && (parenthesized_expression "(iVar19 == iVar11)" ( (binary_expression "iVar19 == iVar11" identifier == identifier) ))) )) && (parenthesized_expression "(local_fc == iVar8)" ( (binary_expression "local_fc == iVar8" identifier == identifier) ))) )) (compound_statement "{\n            if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;\n            if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }\n            psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);\n            in_a2 = psVar17;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = buf;\n            if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }\n            pcVar27 = local_100;\n            if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }\n            goto LAB_0001f65c;\n          }" { (if_statement "if ((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))\n            break;" if (parenthesized_expression "((iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0))" ( (binary_expression "(iVar12 != 0) && (iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0)" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0)" ( (comma_expression "iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar19 != 0" (assignment_expression "iVar19 = (*(code *)PTR_closedir_000332c0)(iVar12)" identifier = (call_expression "(*(code *)PTR_closedir_000332c0)(iVar12)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar19 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))) {\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }" if (parenthesized_expression "(local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37)))" ( (binary_expression "local_e0 == (stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))" identifier == (cast_expression "(stat *)(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37))" ( (binary_expression "local_108 + (int)((int)local_f8[-1].st_pad5 + 0x37)" identifier + (cast_expression "(int)((int)local_f8[-1].st_pad5 + 0x37)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_f8[-1].st_pad5 + 0x37)" ( (binary_expression "(int)local_f8[-1].st_pad5 + 0x37" (cast_expression "(int)local_f8[-1].st_pad5" ( (type_descriptor "int" primitive_type) ) (field_expression "local_f8[-1].st_pad5" (subscript_expression "local_f8[-1]" identifier [ number_literal ]) . field_identifier)) + number_literal) )))) )))) )) (compound_statement "{\n              local_e0 = (stat *)(pcVar27 + -2);\n              *(char *)&local_e0->st_dev = '/';\n            }" { (expression_statement "local_e0 = (stat *)(pcVar27 + -2);" (assignment_expression "local_e0 = (stat *)(pcVar27 + -2)" identifier = (cast_expression "(stat *)(pcVar27 + -2)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + -2)" ( (binary_expression "pcVar27 + -2" identifier + number_literal) )))) ;) (expression_statement "*(char *)&local_e0->st_dev = '/';" (assignment_expression "*(char *)&local_e0->st_dev = '/'" (pointer_expression "*(char *)&local_e0->st_dev" * (cast_expression "(char *)&local_e0->st_dev" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_e0->st_dev" & (field_expression "local_e0->st_dev" identifier -> field_identifier)))) = (char_literal "'/'" ' character ')) ;) })) (expression_statement "psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0);" (assignment_expression "psVar17 = (stat *)(local_108 + (int)local_f8 + -(int)local_e0)" identifier = (cast_expression "(stat *)(local_108 + (int)local_f8 + -(int)local_e0)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_108 + (int)local_f8 + -(int)local_e0)" ( (binary_expression "local_108 + (int)local_f8 + -(int)local_e0" (binary_expression "local_108 + (int)local_f8" identifier + (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier)) + (unary_expression "-(int)local_e0" - (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "in_a2 = psVar17;" (assignment_expression "in_a2 = psVar17" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memmove_000333d8)();" (call_expression "(*(code *)PTR_memmove_000333d8)()" (parenthesized_expression "(*(code *)PTR_memmove_000333d8)" ( (pointer_expression "*(code *)PTR_memmove_000333d8" * (cast_expression "(code *)PTR_memmove_000333d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_100 = buf;" (assignment_expression "local_100 = buf" identifier = identifier) ;) (if_statement "if (size == 0) {\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }" if (parenthesized_expression "(size == 0)" ( (binary_expression "size == 0" identifier == number_literal) )) (compound_statement "{\n              local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = psVar17;\n            }" { (expression_statement "local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108);" (assignment_expression "local_100 = (char *)(*(code *)PTR_realloc_0003337c)(local_108)" identifier = (cast_expression "(char *)(*(code *)PTR_realloc_0003337c)(local_108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0003337c)(local_108)" (parenthesized_expression "(*(code *)PTR_realloc_0003337c)" ( (pointer_expression "*(code *)PTR_realloc_0003337c" * (cast_expression "(code *)PTR_realloc_0003337c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))))) ;) (expression_statement "local_e0 = psVar17;" (assignment_expression "local_e0 = psVar17" identifier = identifier) ;) })) (expression_statement "pcVar27 = local_100;" (assignment_expression "pcVar27 = local_100" identifier = identifier) ;) (if_statement "if (local_100 == (char *)0x0) {\n              pcVar27 = local_108;\n            }" if (parenthesized_expression "(local_100 == (char *)0x0)" ( (binary_expression "local_100 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar27 = local_108;\n            }" { (expression_statement "pcVar27 = local_108;" (assignment_expression "pcVar27 = local_108" identifier = identifier) ;) })) (goto_statement "goto LAB_0001f65c;" goto statement_identifier ;) })) (expression_statement "in_a2 = (stat *)0x0;" (assignment_expression "in_a2 = (stat *)0x0" identifier = (cast_expression "(stat *)0x0" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar24 = psVar13;" (assignment_expression "psVar24 = psVar13" identifier = identifier) ;) (expression_statement "psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30);" (assignment_expression "psVar30 = (stat *)(*(code *)PTR_openat64_00033358)(psVar30)" identifier = (cast_expression "(stat *)(*(code *)PTR_openat64_00033358)(psVar30)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_openat64_00033358)(psVar30)" (parenthesized_expression "(*(code *)PTR_openat64_00033358)" ( (pointer_expression "*(code *)PTR_openat64_00033358" * (cast_expression "(code *)PTR_openat64_00033358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar30)" ( identifier ))))) ;) (if_statement "if ((int)psVar30 < 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }" if (parenthesized_expression "((int)psVar30 < 0)" ( (binary_expression "(int)psVar30 < 0" (cast_expression "(int)psVar30" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }" { (expression_statement "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar14 = *piVar15;" (assignment_expression "iVar14 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (iVar12 == 0) goto joined_r0x0001f71c;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (expression_statement "psVar24 = psVar30;" (assignment_expression "psVar24 = psVar30" identifier = identifier) ;) (expression_statement "in_a2 = &st;" (assignment_expression "in_a2 = &st" identifier = (pointer_expression "&st" & identifier)) ;) (expression_statement "iVar14 = (*(code *)PTR___fxstat64_0003339c)(3);" (assignment_expression "iVar14 = (*(code *)PTR___fxstat64_0003339c)(3)" identifier = (call_expression "(*(code *)PTR___fxstat64_0003339c)(3)" (parenthesized_expression "(*(code *)PTR___fxstat64_0003339c)" ( (pointer_expression "*(code *)PTR___fxstat64_0003339c" * (cast_expression "(code *)PTR___fxstat64_0003339c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (if_statement "if (iVar14 != 0) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar14 = *piVar15;\n            if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);\n            goto joined_r0x0001f71c;\n          }" { (expression_statement "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar14 = *piVar15;" (assignment_expression "iVar14 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (iVar12 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_closedir_000332c0)(iVar12);\n            }" { (expression_statement "(*(code *)PTR_closedir_000332c0)(iVar12);" (call_expression "(*(code *)PTR_closedir_000332c0)(iVar12)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier ))) ;) })) (labeled_statement "LAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(psVar30);" statement_identifier : (expression_statement "(*(code *)PTR_close_000332c4)(psVar30);" (call_expression "(*(code *)PTR_close_000332c4)(psVar30)" (parenthesized_expression "(*(code *)PTR_close_000332c4)" ( (pointer_expression "*(code *)PTR_close_000332c4" * (cast_expression "(code *)PTR_close_000332c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar30)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;) })) (if_statement "if ((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)) {\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }" if (parenthesized_expression "((iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0))" ( (binary_expression "(iVar12 != 0) && (iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0)" ( (comma_expression "iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12), iVar12 != 0" (assignment_expression "iVar12 = (*(code *)PTR_closedir_000332c0)(iVar12)" identifier = (call_expression "(*(code *)PTR_closedir_000332c0)(iVar12)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar14 = *piVar15;\n            goto LAB_0001f70c;\n          }" { (expression_statement "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0001f708:\n            iVar14 = *piVar15;" statement_identifier : (expression_statement "iVar14 = *piVar15;" (assignment_expression "iVar14 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;)) (goto_statement "goto LAB_0001f70c;" goto statement_identifier ;) })) (expression_statement "iVar9 = st.st_ino._4_4_;" (assignment_expression "iVar9 = 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 "iVar7 = st.st_ino._0_4_;" (assignment_expression "iVar7 = st.st_ino._0_4_" identifier = (field_expression "st.st_ino._0_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar6 = st.st_dev;" (assignment_expression "uVar6 = st.st_dev" identifier = (field_expression "st.st_dev" identifier . field_identifier)) ;) (expression_statement "iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30);" (assignment_expression "iVar12 = (*(code *)PTR_fdopendir_00033300)(psVar30)" identifier = (call_expression "(*(code *)PTR_fdopendir_00033300)(psVar30)" (parenthesized_expression "(*(code *)PTR_fdopendir_00033300)" ( (pointer_expression "*(code *)PTR_fdopendir_00033300" * (cast_expression "(code *)PTR_fdopendir_00033300" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar30)" ( identifier )))) ;) (expression_statement "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar12 == 0) goto LAB_0001f708;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f708;" goto statement_identifier ;)) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (labeled_statement "LAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));" statement_identifier : (do_statement "do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          } while ((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))));" do (compound_statement "{\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));\n            psVar23 = (stat *)((int)piVar16 + 0x13);\n            psVar24 = psVar30;\n            in_a2 = psVar23;\n            iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);\n          }" { (do_statement "do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))));" do (compound_statement "{\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar15 = 0;\n              piVar16 = (int *)(*(code *)puVar3)(iVar12);\n              if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            }" { (expression_statement "puVar3 = PTR_readdir64_000332f0;" (assignment_expression "puVar3 = PTR_readdir64_000332f0" identifier = identifier) ;) (expression_statement "*piVar15 = 0;" (assignment_expression "*piVar15 = 0" (pointer_expression "*piVar15" * identifier) = number_literal) ;) (expression_statement "piVar16 = (int *)(*(code *)puVar3)(iVar12);" (assignment_expression "piVar16 = (int *)(*(code *)puVar3)(iVar12)" identifier = (cast_expression "(int *)(*(code *)puVar3)(iVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar3)(iVar12)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier ))))) ;) (if_statement "if (piVar16 == (int *)0x0) {\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar14 = *piVar15;\n                if (iVar14 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }\n                iVar14 = 2;\n                *piVar15 = 2;\n                goto LAB_0001f638;\n              }" { (expression_statement "iVar14 = *piVar15;" (assignment_expression "iVar14 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (iVar14 != 0) goto LAB_0001f638;" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;)) (if_statement "if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                  (*(code *)PTR_rewinddir_000332a4)(iVar12);\n                  piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);\n                  if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar14 = *piVar15;\n                  if (iVar14 != 0) goto LAB_0001f638;\n                }" { (expression_statement "(*(code *)PTR_rewinddir_000332a4)(iVar12);" (call_expression "(*(code *)PTR_rewinddir_000332a4)(iVar12)" (parenthesized_expression "(*(code *)PTR_rewinddir_000332a4)" ( (pointer_expression "*(code *)PTR_rewinddir_000332a4" * (cast_expression "(code *)PTR_rewinddir_000332a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier ))) ;) (expression_statement "piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12);" (assignment_expression "piVar16 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar12)" identifier = (cast_expression "(int *)(*(code *)PTR_readdir64_000332f0)(iVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_readdir64_000332f0)(iVar12)" (parenthesized_expression "(*(code *)PTR_readdir64_000332f0)" ( (pointer_expression "*(code *)PTR_readdir64_000332f0" * (cast_expression "(code *)PTR_readdir64_000332f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier ))))) ;) (if_statement "if (piVar16 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar2 = false;\n                    if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar16 + 0x13) == '.') goto LAB_0001f5e0;" if (parenthesized_expression "(*(char *)((int)piVar16 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar16 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar16 + 0x13)" * (cast_expression "(char *)((int)piVar16 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x13)" ( (binary_expression "(int)piVar16 + 0x13" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0001f5e0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar14 = *piVar15;" (assignment_expression "iVar14 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (iVar14 != 0) goto LAB_0001f638;" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;)) })) (expression_statement "iVar14 = 2;" (assignment_expression "iVar14 = 2" identifier = number_literal) ;) (expression_statement "*piVar15 = 2;" (assignment_expression "*piVar15 = 2" (pointer_expression "*piVar15" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar16 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }" if (parenthesized_expression "(*(char *)((int)piVar16 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar16 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar16 + 0x13)" * (cast_expression "(char *)((int)piVar16 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x13)" ( (binary_expression "(int)piVar16 + 0x13" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (compound_statement "{\nLAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }" { (labeled_statement "LAB_0001f5e0:\n                if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;" statement_identifier : (if_statement "if ((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;" if (parenthesized_expression "((*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000))" ( (binary_expression "(*(char *)(piVar16 + 5) == '\0') || ((piVar16[5] & 0xffff0000U) == 0x2e000000)" (parenthesized_expression "(*(char *)(piVar16 + 5) == '\0')" ( (binary_expression "*(char *)(piVar16 + 5) == '\0'" (pointer_expression "*(char *)(piVar16 + 5)" * (cast_expression "(char *)(piVar16 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 5)" ( (binary_expression "piVar16 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((piVar16[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar16[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar16[5] & 0xffff0000U)" ( (binary_expression "piVar16[5] & 0xffff0000U" (subscript_expression "piVar16[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0001f418;" goto statement_identifier ;))) })) }) while (parenthesized_expression "((bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))))" ( (binary_expression "(bVar2) &&\n                    (((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6)))" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6)))" ( (parenthesized_expression "((*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6))" ( (binary_expression "(*piVar16 != iVar19 || (piVar16[1] != local_fc)) && (local_104 == uVar6)" (parenthesized_expression "(*piVar16 != iVar19 || (piVar16[1] != local_fc))" ( (binary_expression "*piVar16 != iVar19 || (piVar16[1] != local_fc)" (binary_expression "*piVar16 != iVar19" (pointer_expression "*piVar16" * identifier) != identifier) || (parenthesized_expression "(piVar16[1] != local_fc)" ( (binary_expression "piVar16[1] != local_fc" (subscript_expression "piVar16[1]" identifier [ number_literal ]) != identifier) ))) )) && (parenthesized_expression "(local_104 == uVar6)" ( (binary_expression "local_104 == uVar6" identifier == identifier) ))) )) ))) )) ;) (expression_statement "psVar23 = (stat *)((int)piVar16 + 0x13);" (assignment_expression "psVar23 = (stat *)((int)piVar16 + 0x13)" identifier = (cast_expression "(stat *)((int)piVar16 + 0x13)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x13)" ( (binary_expression "(int)piVar16 + 0x13" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "psVar24 = psVar30;" (assignment_expression "psVar24 = psVar30" identifier = identifier) ;) (expression_statement "in_a2 = psVar23;" (assignment_expression "in_a2 = psVar23" identifier = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);" (assignment_expression "iVar14 = (*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100)" identifier = (call_expression "(*(code *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100)" (parenthesized_expression "(*(code *)PTR___fxstatat64_000333a8)" ( (pointer_expression "*(code *)PTR___fxstatat64_000333a8" * (cast_expression "(code *)PTR___fxstatat64_000333a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,psVar30,psVar23,&st,0x100)" ( number_literal , identifier , identifier , (pointer_expression "&st" & identifier) , number_literal )))) ;) }) while (parenthesized_expression "((((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))))" ( (binary_expression "(((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   ) || ((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc)))" (parenthesized_expression "(((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)\n                   )" ( (binary_expression "((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != local_104)" (parenthesized_expression "((iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000))" ( (binary_expression "(iVar14 != 0) || ((st.st_mode & 0xf000) != 0x4000)" (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 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 "(st.st_dev != local_104)" ( (binary_expression "st.st_dev != local_104" (field_expression "st.st_dev" identifier . field_identifier) != identifier) ))) )) || (parenthesized_expression "((st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc)))" ( (parenthesized_expression "(st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc))" ( (binary_expression "st.st_ino._0_4_ != iVar19 || (st.st_ino._4_4_ != local_fc)" (binary_expression "st.st_ino._0_4_ != iVar19" (field_expression "st.st_ino._0_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier) != identifier) || (parenthesized_expression "(st.st_ino._4_4_ != local_fc)" ( (binary_expression "st.st_ino._4_4_ != local_fc" (field_expression "st.st_ino._4_4_" (field_expression "st.st_ino" identifier . field_identifier) . field_identifier) != identifier) ))) )) ))) )) ;)) (expression_statement "psVar29 = (stat *)((int)local_e0 - (int)local_108);" (assignment_expression "psVar29 = (stat *)((int)local_e0 - (int)local_108)" identifier = (cast_expression "(stat *)((int)local_e0 - (int)local_108)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_e0 - (int)local_108)" ( (binary_expression "(int)local_e0 - (int)local_108" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23);" (assignment_expression "psVar17 = (stat *)(*(code *)PTR_strlen_0003335c)(psVar23)" identifier = (cast_expression "(stat *)(*(code *)PTR_strlen_0003335c)(psVar23)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0003335c)(psVar23)" (parenthesized_expression "(*(code *)PTR_strlen_0003335c)" ( (pointer_expression "*(code *)PTR_strlen_0003335c" * (cast_expression "(code *)PTR_strlen_0003335c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar23)" ( identifier ))))) ;) (if_statement "if (psVar29 <= psVar17) {\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }" if (parenthesized_expression "(psVar29 <= psVar17)" ( (binary_expression "psVar29 <= psVar17" identifier <= identifier) )) (compound_statement "{\n            if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }\n            psVar21 = local_f8;\n            if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }\n            psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));\n            if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;\n            local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);\n            local_108 = pcVar27;\n            local_f8 = psVar28;\n          }" { (if_statement "if (size != 0) {\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }" if (parenthesized_expression "(size != 0)" ( (binary_expression "size != 0" identifier != number_literal) )) (compound_statement "{\n              iVar14 = 0x22;\n              *piVar15 = 0x22;\n              goto LAB_0001f638;\n            }" { (expression_statement "iVar14 = 0x22;" (assignment_expression "iVar14 = 0x22" identifier = number_literal) ;) (expression_statement "*piVar15 = 0x22;" (assignment_expression "*piVar15 = 0x22" (pointer_expression "*piVar15" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (expression_statement "psVar21 = local_f8;" (assignment_expression "psVar21 = local_f8" identifier = identifier) ;) (if_statement "if (local_f8 < psVar17) {\n              psVar21 = psVar17;\n            }" if (parenthesized_expression "(local_f8 < psVar17)" ( (binary_expression "local_f8 < psVar17" identifier < identifier) )) (compound_statement "{\n              psVar21 = psVar17;\n            }" { (expression_statement "psVar21 = psVar17;" (assignment_expression "psVar21 = psVar17" identifier = identifier) ;) })) (expression_statement "psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2));" (assignment_expression "psVar28 = (stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2))" identifier = (cast_expression "(stat *)((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2))" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2))" ( (binary_expression "(int)local_f8->st_pad1 + (int)(psVar21->st_pad1 + -2)" (cast_expression "(int)local_f8->st_pad1" ( (type_descriptor "int" primitive_type) ) (field_expression "local_f8->st_pad1" identifier -> field_identifier)) + (cast_expression "(int)(psVar21->st_pad1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(psVar21->st_pad1 + -2)" ( (binary_expression "psVar21->st_pad1 + -2" (field_expression "psVar21->st_pad1" identifier -> field_identifier) + number_literal) )))) )))) ;) (if_statement "if ((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)) goto LAB_0001f838;" if (parenthesized_expression "((psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0))" ( (binary_expression "(psVar28 < local_f8) ||\n               (psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)" (parenthesized_expression "(psVar28 < local_f8)" ( (binary_expression "psVar28 < local_f8" identifier < identifier) )) || (parenthesized_expression "(psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0)" ( (comma_expression "psVar24 = psVar28, pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0" (assignment_expression "psVar24 = psVar28" identifier = identifier) , (comma_expression "pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108),\n               pcVar27 == (char *)0x0" (assignment_expression "pcVar27 = (char *)(*(code *)PTR_realloc_0003337c)(local_108)" identifier = (cast_expression "(char *)(*(code *)PTR_realloc_0003337c)(local_108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0003337c)(local_108)" (parenthesized_expression "(*(code *)PTR_realloc_0003337c)" ( (pointer_expression "*(code *)PTR_realloc_0003337c" * (cast_expression "(code *)PTR_realloc_0003337c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))))) , (binary_expression "pcVar27 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_0001f838;" goto statement_identifier ;)) (expression_statement "local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29);" (assignment_expression "local_e0 = (stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29)" identifier = (cast_expression "(stat *)(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memcpy_000333d0)\n                                         (pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29)" (parenthesized_expression "(*(code *)PTR_memcpy_000333d0)" ( (pointer_expression "*(code *)PTR_memcpy_000333d0" * (cast_expression "(code *)PTR_memcpy_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar27 + (int)((int)psVar21 + (int)psVar29),\n                                          pcVar27 + (int)psVar29,(int)local_f8 - (int)psVar29)" ( (binary_expression "pcVar27 + (int)((int)psVar21 + (int)psVar29)" identifier + (cast_expression "(int)((int)psVar21 + (int)psVar29)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)psVar21 + (int)psVar29)" ( (binary_expression "(int)psVar21 + (int)psVar29" (cast_expression "(int)psVar21" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)psVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) , (binary_expression "pcVar27 + (int)psVar29" identifier + (cast_expression "(int)psVar29" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "(int)local_f8 - (int)psVar29" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)psVar29" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_108 = pcVar27;" (assignment_expression "local_108 = pcVar27" identifier = identifier) ;) (expression_statement "local_f8 = psVar28;" (assignment_expression "local_f8 = psVar28" identifier = identifier) ;) })) (expression_statement "pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17);" (assignment_expression "pcVar27 = (char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17)" identifier = (cast_expression "(char *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)psVar17)" (parenthesized_expression "(*(code *)PTR_memcpy_000333d0)" ( (pointer_expression "*(code *)PTR_memcpy_000333d0" * (cast_expression "(code *)PTR_memcpy_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)local_e0 - (int)psVar17)" ( (binary_expression "(int)local_e0 - (int)psVar17" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)psVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "pcVar27[-1] = '/';" (assignment_expression "pcVar27[-1] = '/'" (subscript_expression "pcVar27[-1]" identifier [ number_literal ]) = (char_literal "'/'" ' character ')) ;) (expression_statement "local_fc = iVar9;" (assignment_expression "local_fc = iVar9" identifier = identifier) ;) (expression_statement "local_104 = uVar6;" (assignment_expression "local_104 = uVar6" identifier = identifier) ;) (expression_statement "iVar19 = iVar7;" (assignment_expression "iVar19 = iVar7" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (expression_statement "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar15 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar14 = *piVar15;" (assignment_expression "iVar14 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "psVar24 = psVar23;" (assignment_expression "psVar24 = psVar23" identifier = identifier) ;) (expression_statement "in_a2 = psVar17;" (assignment_expression "in_a2 = psVar17" identifier = identifier) ;) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;) })) (if_statement "if (buf == (char *)0x0) {\n    local_f8 = (stat *)0x1000;\nLAB_0001f288:\n    local_e0 = (stat *)size;\n    local_108 = (char *)(*(code *)PTR_malloc_00033378)(local_f8);\n    pcVar27 = local_108;\n    if (local_108 != (char *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (char *)0x0;\n    *puVar18 = 0x16;\n    local_e0 = (stat *)size;\n    pcVar27 = local_108;\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    local_f8 = (stat *)0x1000;\nLAB_0001f288:\n    local_e0 = (stat *)size;\n    local_108 = (char *)(*(code *)PTR_malloc_00033378)(local_f8);\n    pcVar27 = local_108;\n    if (local_108 != (char *)0x0) goto LAB_0001f2bc;\n  }" { (expression_statement "local_f8 = (stat *)0x1000;" (assignment_expression "local_f8 = (stat *)0x1000" identifier = (cast_expression "(stat *)0x1000" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001f288:\n    local_e0 = (stat *)size;" statement_identifier : (expression_statement "local_e0 = (stat *)size;" (assignment_expression "local_e0 = (stat *)size" identifier = (cast_expression "(stat *)size" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "local_108 = (char *)(*(code *)PTR_malloc_00033378)(local_f8);" (assignment_expression "local_108 = (char *)(*(code *)PTR_malloc_00033378)(local_f8)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_00033378)(local_f8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00033378)(local_f8)" (parenthesized_expression "(*(code *)PTR_malloc_00033378)" ( (pointer_expression "*(code *)PTR_malloc_00033378" * (cast_expression "(code *)PTR_malloc_00033378" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f8)" ( identifier ))))) ;) (expression_statement "pcVar27 = local_108;" (assignment_expression "pcVar27 = local_108" identifier = identifier) ;) (if_statement "if (local_108 != (char *)0x0) goto LAB_0001f2bc;" if (parenthesized_expression "(local_108 != (char *)0x0)" ( (binary_expression "local_108 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f2bc;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (char *)0x0;\n    *puVar18 = 0x16;\n    local_e0 = (stat *)size;\n    pcVar27 = local_108;\n  }" else (compound_statement "{\n    puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (char *)0x0;\n    *puVar18 = 0x16;\n    local_e0 = (stat *)size;\n    pcVar27 = local_108;\n  }" { (expression_statement "puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "puVar18 = (undefined4 *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "local_108 = (char *)0x0;" (assignment_expression "local_108 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar18 = 0x16;" (assignment_expression "*puVar18 = 0x16" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "local_e0 = (stat *)size;" (assignment_expression "local_e0 = (stat *)size" identifier = (cast_expression "(stat *)size" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar27 = local_108;" (assignment_expression "pcVar27 = local_108" identifier = identifier) ;) }))) (goto_statement "goto LAB_0001f65c;" goto statement_identifier ;) (labeled_statement "LAB_0001f838:\n  iVar14 = 0xc;" statement_identifier : (expression_statement "iVar14 = 0xc;" (assignment_expression "iVar14 = 0xc" identifier = number_literal) ;)) (expression_statement "*piVar15 = 0xc;" (assignment_expression "*piVar15 = 0xc" (pointer_expression "*piVar15" * identifier) = number_literal) ;) (labeled_statement "LAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar12);" statement_identifier : (expression_statement "(*(code *)PTR_closedir_000332c0)(iVar12);" (call_expression "(*(code *)PTR_closedir_000332c0)(iVar12)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier ))) ;)) (labeled_statement "joined_r0x0001f71c:\n  if (buf == (char *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" statement_identifier : (if_statement "if (buf == (char *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\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    (*(code *)PTR_free_000333d4)(local_108);\n  }" { (expression_statement "(*(code *)PTR_free_000333d4)(local_108);" (call_expression "(*(code *)PTR_free_000333d4)(local_108)" (parenthesized_expression "(*(code *)PTR_free_000333d4)" ( (pointer_expression "*(code *)PTR_free_000333d4" * (cast_expression "(code *)PTR_free_000333d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))) ;) }))) (expression_statement "*piVar15 = iVar14;" (assignment_expression "*piVar15 = iVar14" (pointer_expression "*piVar15" * identifier) = identifier) ;) (expression_statement "local_108 = (char *)0x0;" (assignment_expression "local_108 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e0 = psVar24;" (assignment_expression "local_e0 = psVar24" identifier = identifier) ;) (expression_statement "pcVar27 = local_108;" (assignment_expression "pcVar27 = local_108" identifier = identifier) ;) (labeled_statement "LAB_0001f65c:\n  local_108 = pcVar27;" statement_identifier : (expression_statement "local_108 = pcVar27;" (assignment_expression "local_108 = pcVar27" identifier = identifier) ;)) (if_statement "if (puVar10 == *(uint **)puVar4) {\n    return local_108;\n  }" if (parenthesized_expression "(puVar10 == *(uint **)puVar4)" ( (binary_expression "puVar10 == *(uint **)puVar4" identifier == (pointer_expression "*(uint **)puVar4" * (cast_expression "(uint **)puVar4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return local_108;\n  }" { (return_statement "return local_108;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000333b0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000333b0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000333b0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000333b0" * (cast_expression "(code *)PTR___stack_chk_fail_000333b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = (uint)local_e0 & 0xff;" (assignment_expression "uVar26 = (uint)local_e0 & 0xff" identifier = (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (in_a2 == (stat *)0x0) {\n    return (char *)0x0;\n  }" if (parenthesized_expression "(in_a2 == (stat *)0x0)" ( (binary_expression "in_a2 == (stat *)0x0" identifier == (cast_expression "(stat *)0x0" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (char *)0x0;\n  }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (while_statement "while (((uint)puVar10 & 3) != 0) {\n    in_a2 = (stat *)((int)in_a2[-1].st_pad5 + 0x37);\n    if (*(byte *)puVar10 == uVar26) {\n      return (char *)puVar10;\n    }\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (in_a2 == (stat *)0x0) {\n      return (char *)0x0;\n    }\n  }" while (parenthesized_expression "(((uint)puVar10 & 3) != 0)" ( (binary_expression "((uint)puVar10 & 3) != 0" (parenthesized_expression "((uint)puVar10 & 3)" ( (binary_expression "(uint)puVar10 & 3" (cast_expression "(uint)puVar10" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    in_a2 = (stat *)((int)in_a2[-1].st_pad5 + 0x37);\n    if (*(byte *)puVar10 == uVar26) {\n      return (char *)puVar10;\n    }\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (in_a2 == (stat *)0x0) {\n      return (char *)0x0;\n    }\n  }" { (expression_statement "in_a2 = (stat *)((int)in_a2[-1].st_pad5 + 0x37);" (assignment_expression "in_a2 = (stat *)((int)in_a2[-1].st_pad5 + 0x37)" identifier = (cast_expression "(stat *)((int)in_a2[-1].st_pad5 + 0x37)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_a2[-1].st_pad5 + 0x37)" ( (binary_expression "(int)in_a2[-1].st_pad5 + 0x37" (cast_expression "(int)in_a2[-1].st_pad5" ( (type_descriptor "int" primitive_type) ) (field_expression "in_a2[-1].st_pad5" (subscript_expression "in_a2[-1]" identifier [ number_literal ]) . field_identifier)) + number_literal) )))) ;) (if_statement "if (*(byte *)puVar10 == uVar26) {\n      return (char *)puVar10;\n    }" if (parenthesized_expression "(*(byte *)puVar10 == uVar26)" ( (binary_expression "*(byte *)puVar10 == uVar26" (pointer_expression "*(byte *)puVar10" * (cast_expression "(byte *)puVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n      return (char *)puVar10;\n    }" { (return_statement "return (char *)puVar10;" return (cast_expression "(char *)puVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (expression_statement "puVar10 = (uint *)((int)puVar10 + 1);" (assignment_expression "puVar10 = (uint *)((int)puVar10 + 1)" identifier = (cast_expression "(uint *)((int)puVar10 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 1)" ( (binary_expression "(int)puVar10 + 1" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (in_a2 == (stat *)0x0) {\n      return (char *)0x0;\n    }" if (parenthesized_expression "(in_a2 == (stat *)0x0)" ( (binary_expression "in_a2 == (stat *)0x0" identifier == (cast_expression "(stat *)0x0" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (char *)0x0;\n    }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) })) (expression_statement "uVar25 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;" (assignment_expression "uVar25 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff" identifier = (binary_expression "((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff" (binary_expression "((uint)local_e0 & 0xff) << 8" (parenthesized_expression "((uint)local_e0 & 0xff)" ( (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar25 = uVar25 << 0x10 | uVar25;" (assignment_expression "uVar25 = uVar25 << 0x10 | uVar25" identifier = (binary_expression "uVar25 << 0x10 | uVar25" (binary_expression "uVar25 << 0x10" identifier << number_literal) | identifier)) ;) (if_statement "if ((stat *)0x3 < in_a2) {\n    uVar20 = uVar25 ^ *puVar10;\n    if ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar10;\n      goto LAB_0001f934;\n    }\n    do {\n      in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);\n      puVar10 = puVar10 + 1;\n      if (in_a2 < (stat *)0x4) {\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }\n      uVar20 = uVar25 ^ *puVar10;\n    } while ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0);\n  }" if (parenthesized_expression "((stat *)0x3 < in_a2)" ( (binary_expression "(stat *)0x3 < in_a2" (cast_expression "(stat *)0x3" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n    uVar20 = uVar25 ^ *puVar10;\n    if ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar10;\n      goto LAB_0001f934;\n    }\n    do {\n      in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);\n      puVar10 = puVar10 + 1;\n      if (in_a2 < (stat *)0x4) {\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }\n      uVar20 = uVar25 ^ *puVar10;\n    } while ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0);\n  }" { (expression_statement "uVar20 = uVar25 ^ *puVar10;" (assignment_expression "uVar20 = uVar25 ^ *puVar10" identifier = (binary_expression "uVar25 ^ *puVar10" identifier ^ (pointer_expression "*puVar10" * identifier))) ;) (if_statement "if ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar10;\n      goto LAB_0001f934;\n    }" if (parenthesized_expression "((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0)" ( (binary_expression "(uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) != 0" (parenthesized_expression "(uVar20 + 0xfefefeff & ~uVar20 & 0x80808080)" ( (binary_expression "uVar20 + 0xfefefeff & ~uVar20 & 0x80808080" (binary_expression "uVar20 + 0xfefefeff & ~uVar20" (binary_expression "uVar20 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar20" ~ identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)puVar10;\n      goto LAB_0001f934;\n    }" { (expression_statement "bVar1 = *(byte *)puVar10;" (assignment_expression "bVar1 = *(byte *)puVar10" identifier = (pointer_expression "*(byte *)puVar10" * (cast_expression "(byte *)puVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (goto_statement "goto LAB_0001f934;" goto statement_identifier ;) })) (do_statement "do {\n      in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);\n      puVar10 = puVar10 + 1;\n      if (in_a2 < (stat *)0x4) {\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }\n      uVar20 = uVar25 ^ *puVar10;\n    } while ((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0);" do (compound_statement "{\n      in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);\n      puVar10 = puVar10 + 1;\n      if (in_a2 < (stat *)0x4) {\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }\n      uVar20 = uVar25 ^ *puVar10;\n    }" { (expression_statement "in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd);" (assignment_expression "in_a2 = (stat *)(in_a2[-1].st_pad5 + 0xd)" identifier = (cast_expression "(stat *)(in_a2[-1].st_pad5 + 0xd)" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a2[-1].st_pad5 + 0xd)" ( (binary_expression "in_a2[-1].st_pad5 + 0xd" (field_expression "in_a2[-1].st_pad5" (subscript_expression "in_a2[-1]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (if_statement "if (in_a2 < (stat *)0x4) {\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }" if (parenthesized_expression "(in_a2 < (stat *)0x4)" ( (binary_expression "in_a2 < (stat *)0x4" identifier < (cast_expression "(stat *)0x4" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }\n        break;\n      }" { (if_statement "if (in_a2 == (stat *)0x0) {\n          return (char *)0x0;\n        }" if (parenthesized_expression "(in_a2 == (stat *)0x0)" ( (binary_expression "in_a2 == (stat *)0x0" identifier == (cast_expression "(stat *)0x0" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (char *)0x0;\n        }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (break_statement "break;" break ;) })) (expression_statement "uVar20 = uVar25 ^ *puVar10;" (assignment_expression "uVar20 = uVar25 ^ *puVar10" identifier = (binary_expression "uVar25 ^ *puVar10" identifier ^ (pointer_expression "*puVar10" * identifier))) ;) }) while (parenthesized_expression "((uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0)" ( (binary_expression "(uVar20 + 0xfefefeff & ~uVar20 & 0x80808080) == 0" (parenthesized_expression "(uVar20 + 0xfefefeff & ~uVar20 & 0x80808080)" ( (binary_expression "uVar20 + 0xfefefeff & ~uVar20 & 0x80808080" (binary_expression "uVar20 + 0xfefefeff & ~uVar20" (binary_expression "uVar20 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar20" ~ identifier)) & number_literal) )) == number_literal) )) ;) })) (expression_statement "bVar1 = *(byte *)puVar10;" (assignment_expression "bVar1 = *(byte *)puVar10" identifier = (pointer_expression "*(byte *)puVar10" * (cast_expression "(byte *)puVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_0001f934:\n  if (bVar1 == uVar26) {\n    return (char *)puVar10;\n  }" statement_identifier : (if_statement "if (bVar1 == uVar26) {\n    return (char *)puVar10;\n  }" if (parenthesized_expression "(bVar1 == uVar26)" ( (binary_expression "bVar1 == uVar26" identifier == identifier) )) (compound_statement "{\n    return (char *)puVar10;\n  }" { (return_statement "return (char *)puVar10;" return (cast_expression "(char *)puVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) }))) (expression_statement "puVar22 = (uint *)((int)puVar10 + (int)in_a2);" (assignment_expression "puVar22 = (uint *)((int)puVar10 + (int)in_a2)" identifier = (cast_expression "(uint *)((int)puVar10 + (int)in_a2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + (int)in_a2)" ( (binary_expression "(int)puVar10 + (int)in_a2" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)in_a2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (puVar22 == puVar10) {\n      return (char *)0x0;\n    }\n  } while (*(byte *)puVar10 != uVar26);" do (compound_statement "{\n    puVar10 = (uint *)((int)puVar10 + 1);\n    if (puVar22 == puVar10) {\n      return (char *)0x0;\n    }\n  }" { (expression_statement "puVar10 = (uint *)((int)puVar10 + 1);" (assignment_expression "puVar10 = (uint *)((int)puVar10 + 1)" identifier = (cast_expression "(uint *)((int)puVar10 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 1)" ( (binary_expression "(int)puVar10 + 1" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puVar22 == puVar10) {\n      return (char *)0x0;\n    }" if (parenthesized_expression "(puVar22 == puVar10)" ( (binary_expression "puVar22 == puVar10" identifier == identifier) )) (compound_statement "{\n      return (char *)0x0;\n    }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) while (parenthesized_expression "(*(byte *)puVar10 != uVar26)" ( (binary_expression "*(byte *)puVar10 != uVar26" (pointer_expression "*(byte *)puVar10" * (cast_expression "(byte *)puVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) ;) (return_statement "return (char *)puVar10;" return (cast_expression "(char *)puVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })))
(translation_unit "uint * rpl_getcwd(uint *param_1,int *param_2,int *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  uint *puVar20;\n  int *piVar21;\n  int *piVar22;\n  uint uVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  int *piVar26;\n  int *piVar27;\n  int *piVar28;\n  uint *local_108;\n  int local_104;\n  uint *local_100;\n  int local_fc;\n  int *local_f8;\n  int *local_e0;\n  int local_d0 [4];\n  int local_c0;\n  int local_bc;\n  uint local_b8;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }\n  if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar13 = 0xc;\n  *piVar14 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);\njoined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar14 = iVar13;\n  local_108 = (uint *)0x0;\n  local_e0 = piVar22;\n  puVar20 = local_108;\nLAB_0001f65c:\n  local_108 = puVar20;\n  if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar24 = (uint)local_e0 & 0xff;\n  if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }\n  while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar23 = uVar23 << 0x10 | uVar23;\n  if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)local_2c;\nLAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }\n  puVar20 = (uint *)((int)local_2c + (int)param_3);\n  do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);\n  return local_2c;\n}\n\n" (function_definition "uint * rpl_getcwd(uint *param_1,int *param_2,int *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  uint *puVar20;\n  int *piVar21;\n  int *piVar22;\n  uint uVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  int *piVar26;\n  int *piVar27;\n  int *piVar28;\n  uint *local_108;\n  int local_104;\n  uint *local_100;\n  int local_fc;\n  int *local_f8;\n  int *local_e0;\n  int local_d0 [4];\n  int local_c0;\n  int local_bc;\n  uint local_b8;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }\n  if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar13 = 0xc;\n  *piVar14 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);\njoined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar14 = iVar13;\n  local_108 = (uint *)0x0;\n  local_e0 = piVar22;\n  puVar20 = local_108;\nLAB_0001f65c:\n  local_108 = puVar20;\n  if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar24 = (uint)local_e0 & 0xff;\n  if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }\n  while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar23 = uVar23 << 0x10 | uVar23;\n  if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)local_2c;\nLAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }\n  puVar20 = (uint *)((int)local_2c + (int)param_3);\n  do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);\n  return local_2c;\n}" type_identifier (pointer_declarator "* rpl_getcwd(uint *param_1,int *param_2,int *param_3)" * (function_declarator "rpl_getcwd(uint *param_1,int *param_2,int *param_3)" identifier (parameter_list "(uint *param_1,int *param_2,int *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  uint *puVar20;\n  int *piVar21;\n  int *piVar22;\n  uint uVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  int *piVar26;\n  int *piVar27;\n  int *piVar28;\n  uint *local_108;\n  int local_104;\n  uint *local_100;\n  int local_fc;\n  int *local_f8;\n  int *local_e0;\n  int local_d0 [4];\n  int local_c0;\n  int local_bc;\n  uint local_b8;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }\n  if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar13 = 0xc;\n  *piVar14 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);\njoined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar14 = iVar13;\n  local_108 = (uint *)0x0;\n  local_e0 = piVar22;\n  puVar20 = local_108;\nLAB_0001f65c:\n  local_108 = puVar20;\n  if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar24 = (uint)local_e0 & 0xff;\n  if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }\n  while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar23 = uVar23 << 0x10 | uVar23;\n  if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)local_2c;\nLAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }\n  puVar20 = (uint *)((int)local_2c + (int)param_3);\n  do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);\n  return local_2c;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int *piVar28;" primitive_type (pointer_declarator "*piVar28" * identifier) ;) (declaration "uint *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "int local_104;" primitive_type identifier ;) (declaration "uint *local_100;" type_identifier (pointer_declarator "*local_100" * identifier) ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "int *local_f8;" primitive_type (pointer_declarator "*local_f8" * identifier) ;) (declaration "int *local_e0;" primitive_type (pointer_declarator "*local_e0" * identifier) ;) (declaration "int local_d0 [4];" primitive_type (array_declarator "local_d0 [4]" identifier [ number_literal ]) ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_000333cc;" (assignment_expression "puVar4 = PTR___stack_chk_guard_000333cc" identifier = identifier) ;) (expression_statement "local_2c = *(uint **)PTR___stack_chk_guard_000333cc;" (assignment_expression "local_2c = *(uint **)PTR___stack_chk_guard_000333cc" identifier = (pointer_expression "*(uint **)PTR___stack_chk_guard_000333cc" * (cast_expression "(uint **)PTR___stack_chk_guard_000333cc" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }" { (expression_statement "local_108 = param_1;" (assignment_expression "local_108 = param_1" identifier = identifier) ;) (expression_statement "local_f8 = param_2;" (assignment_expression "local_f8 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == (uint *)0x0) goto LAB_0001f288;" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f288;" goto statement_identifier ;)) (labeled_statement "LAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;" statement_identifier : (expression_statement "puVar3 = PTR___lxstat64_000332cc;" (assignment_expression "puVar3 = PTR___lxstat64_000332cc" identifier = identifier) ;)) (expression_statement "puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);" (assignment_expression "puVar25 = (undefined1 *)((int)local_108 + (int)local_f8)" identifier = (cast_expression "(undefined1 *)((int)local_108 + (int)local_f8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_108 + (int)local_f8)" ( (binary_expression "(int)local_108 + (int)local_f8" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);" (assignment_expression "piVar21 = (int *)(PTR_LAB_00033108 + 0x2744)" identifier = (cast_expression "(int *)(PTR_LAB_00033108 + 0x2744)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x2744)" ( (binary_expression "PTR_LAB_00033108 + 0x2744" identifier + number_literal) )))) ;) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar15 = local_d0;" (assignment_expression "piVar15 = local_d0" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)puVar3)(3);" (assignment_expression "iVar10 = (*(code *)puVar3)(3)" identifier = (call_expression "(*(code *)puVar3)(3)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (expression_statement "iVar17 = local_c0;" (assignment_expression "iVar17 = local_c0" identifier = identifier) ;) (if_statement "if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (compound_statement "{\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }" { (expression_statement "local_104 = local_d0[0];" (assignment_expression "local_104 = local_d0[0]" identifier = (subscript_expression "local_d0[0]" identifier [ number_literal ])) ;) (expression_statement "piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);" (assignment_expression "piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec)" identifier = (cast_expression "(int *)(PTR_LAB_00033108 + 0x28ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x28ec)" ( (binary_expression "PTR_LAB_00033108 + 0x28ec" identifier + number_literal) )))) ;) (expression_statement "local_fc = local_bc;" (assignment_expression "local_fc = local_bc" identifier = identifier) ;) (expression_statement "piVar15 = local_d0;" (assignment_expression "piVar15 = local_d0" identifier = identifier) ;) (expression_statement "iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);" (assignment_expression "iVar11 = (*(code *)PTR___lxstat64_000332cc)(3)" identifier = (call_expression "(*(code *)PTR___lxstat64_000332cc)(3)" (parenthesized_expression "(*(code *)PTR___lxstat64_000332cc)" ( (pointer_expression "*(code *)PTR___lxstat64_000332cc" * (cast_expression "(code *)PTR___lxstat64_000332cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (expression_statement "iVar8 = local_bc;" (assignment_expression "iVar8 = local_bc" identifier = identifier) ;) (expression_statement "iVar6 = local_c0;" (assignment_expression "iVar6 = local_c0" identifier = identifier) ;) (expression_statement "iVar10 = local_d0[0];" (assignment_expression "iVar10 = local_d0[0]" identifier = (subscript_expression "local_d0[0]" identifier [ number_literal ])) ;) (if_statement "if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }" if (parenthesized_expression "(-1 < iVar11)" ( (binary_expression "-1 < iVar11" number_literal < identifier) )) (compound_statement "{\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "piVar28 = (int *)0xffffff9c;" (assignment_expression "piVar28 = (int *)0xffffff9c" identifier = (cast_expression "(int *)0xffffff9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);" (assignment_expression "piVar12 = (int *)(PTR_LAB_00033108 + 0x2740)" identifier = (cast_expression "(int *)(PTR_LAB_00033108 + 0x2740)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00033108 + 0x2740)" ( (binary_expression "PTR_LAB_00033108 + 0x2740" identifier + number_literal) )))) ;) (do_statement "do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );" do (compound_statement "{\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        }" { (expression_statement "local_e0 = (int *)(puVar25 + -1);" (assignment_expression "local_e0 = (int *)(puVar25 + -1)" identifier = (cast_expression "(int *)(puVar25 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -1)" ( (binary_expression "puVar25 + -1" identifier + number_literal) )))) ;) (if_statement "if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }" if (parenthesized_expression "(((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8))" ( (binary_expression "((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)" (parenthesized_expression "((local_104 == iVar10) && (iVar17 == iVar6))" ( (binary_expression "(local_104 == iVar10) && (iVar17 == iVar6)" (parenthesized_expression "(local_104 == iVar10)" ( (binary_expression "local_104 == iVar10" identifier == identifier) )) && (parenthesized_expression "(iVar17 == iVar6)" ( (binary_expression "iVar17 == iVar6" identifier == identifier) ))) )) && (parenthesized_expression "(local_fc == iVar8)" ( (binary_expression "local_fc == iVar8" identifier == identifier) ))) )) (compound_statement "{\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }" { (if_statement "if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;" if (parenthesized_expression "((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))" ( (binary_expression "(iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0)" ( (comma_expression "iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0" (assignment_expression "iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11)" identifier = (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier )))) , (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }" if (parenthesized_expression "(local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1)))" ( (binary_expression "local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))" identifier == (cast_expression "(int *)((int)local_108 + (int)((int)local_f8 + -1))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_108 + (int)((int)local_f8 + -1))" ( (binary_expression "(int)local_108 + (int)((int)local_f8 + -1)" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)local_f8 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_f8 + -1)" ( (binary_expression "(int)local_f8 + -1" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) )) (compound_statement "{\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }" { (expression_statement "local_e0 = (int *)(puVar25 + -2);" (assignment_expression "local_e0 = (int *)(puVar25 + -2)" identifier = (cast_expression "(int *)(puVar25 + -2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -2)" ( (binary_expression "puVar25 + -2" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)local_e0 = 0x2f;" (assignment_expression "*(undefined1 *)local_e0 = 0x2f" (pointer_expression "*(undefined1 *)local_e0" * (cast_expression "(undefined1 *)local_e0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (expression_statement "piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);" (assignment_expression "piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" identifier = (cast_expression "(int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" ( (binary_expression "(undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0" (cast_expression "(undefined1 *)((int)local_108 + (int)local_f8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_108 + (int)local_f8)" ( (binary_expression "(int)local_108 + (int)local_f8" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (unary_expression "-(int)local_e0" - (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "param_3 = piVar15;" (assignment_expression "param_3 = piVar15" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memmove_000333d8)();" (call_expression "(*(code *)PTR_memmove_000333d8)()" (parenthesized_expression "(*(code *)PTR_memmove_000333d8)" ( (pointer_expression "*(code *)PTR_memmove_000333d8" * (cast_expression "(code *)PTR_memmove_000333d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_100 = param_1;" (assignment_expression "local_100 = param_1" identifier = identifier) ;) (if_statement "if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }" { (expression_statement "local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);" (assignment_expression "local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108)" identifier = (cast_expression "(uint *)(*(code *)PTR_realloc_0003337c)(local_108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0003337c)(local_108)" (parenthesized_expression "(*(code *)PTR_realloc_0003337c)" ( (pointer_expression "*(code *)PTR_realloc_0003337c" * (cast_expression "(code *)PTR_realloc_0003337c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))))) ;) (expression_statement "local_e0 = piVar15;" (assignment_expression "local_e0 = piVar15" identifier = identifier) ;) })) (expression_statement "puVar20 = local_100;" (assignment_expression "puVar20 = local_100" identifier = identifier) ;) (if_statement "if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }" if (parenthesized_expression "(local_100 == (uint *)0x0)" ( (binary_expression "local_100 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar20 = local_108;\n            }" { (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" identifier = identifier) ;) })) (goto_statement "goto LAB_0001f65c;" goto statement_identifier ;) })) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar22 = piVar12;" (assignment_expression "piVar22 = piVar12" identifier = identifier) ;) (expression_statement "piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);" (assignment_expression "piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28)" identifier = (cast_expression "(int *)(*(code *)PTR_openat64_00033358)(piVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_openat64_00033358)(piVar28)" (parenthesized_expression "(*(code *)PTR_openat64_00033358)" ( (pointer_expression "*(code *)PTR_openat64_00033358" * (cast_expression "(code *)PTR_openat64_00033358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar28)" ( identifier ))))) ;) (if_statement "if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }" if (parenthesized_expression "((int)piVar28 < 0)" ( (binary_expression "(int)piVar28 < 0" (cast_expression "(int)piVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }" { (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar11 == 0) goto joined_r0x0001f71c;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (expression_statement "piVar22 = piVar28;" (assignment_expression "piVar22 = piVar28" identifier = identifier) ;) (expression_statement "param_3 = local_d0;" (assignment_expression "param_3 = local_d0" identifier = identifier) ;) (expression_statement "iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);" (assignment_expression "iVar13 = (*(code *)PTR___fxstat64_0003339c)(3)" identifier = (call_expression "(*(code *)PTR___fxstat64_0003339c)(3)" (parenthesized_expression "(*(code *)PTR___fxstat64_0003339c)" ( (pointer_expression "*(code *)PTR___fxstat64_0003339c" * (cast_expression "(code *)PTR___fxstat64_0003339c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3)" ( number_literal )))) ;) (if_statement "if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }" { (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }" { (expression_statement "(*(code *)PTR_closedir_000332c0)(iVar11);" (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))) ;) })) (labeled_statement "LAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);" statement_identifier : (expression_statement "(*(code *)PTR_close_000332c4)(piVar28);" (call_expression "(*(code *)PTR_close_000332c4)(piVar28)" (parenthesized_expression "(*(code *)PTR_close_000332c4)" ( (pointer_expression "*(code *)PTR_close_000332c4" * (cast_expression "(code *)PTR_close_000332c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar28)" ( identifier ))) ;)) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;) })) (if_statement "if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }" if (parenthesized_expression "((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0))" ( (binary_expression "(iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)" ( (comma_expression "iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0" (assignment_expression "iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11)" identifier = (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }" { (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0001f708:\n            iVar13 = *piVar14;" statement_identifier : (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;)) (goto_statement "goto LAB_0001f70c;" goto statement_identifier ;) })) (expression_statement "iVar9 = local_bc;" (assignment_expression "iVar9 = local_bc" identifier = identifier) ;) (expression_statement "iVar7 = local_c0;" (assignment_expression "iVar7 = local_c0" identifier = identifier) ;) (expression_statement "iVar5 = local_d0[0];" (assignment_expression "iVar5 = local_d0[0]" identifier = (subscript_expression "local_d0[0]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);" (assignment_expression "iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28)" identifier = (call_expression "(*(code *)PTR_fdopendir_00033300)(piVar28)" (parenthesized_expression "(*(code *)PTR_fdopendir_00033300)" ( (pointer_expression "*(code *)PTR_fdopendir_00033300" * (cast_expression "(code *)PTR_fdopendir_00033300" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar28)" ( identifier )))) ;) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_0001f708;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f708;" goto statement_identifier ;)) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (labeled_statement "LAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));" statement_identifier : (do_statement "do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));" do (compound_statement "{\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          }" { (do_statement "do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));" do (compound_statement "{\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            }" { (expression_statement "puVar3 = PTR_readdir64_000332f0;" (assignment_expression "puVar3 = PTR_readdir64_000332f0" identifier = identifier) ;) (expression_statement "*piVar14 = 0;" (assignment_expression "*piVar14 = 0" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (expression_statement "piVar21 = (int *)(*(code *)puVar3)(iVar11);" (assignment_expression "piVar21 = (int *)(*(code *)puVar3)(iVar11)" identifier = (cast_expression "(int *)(*(code *)puVar3)(iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar3)(iVar11)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))))) ;) (if_statement "if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }" if (parenthesized_expression "(piVar21 == (int *)0x0)" ( (binary_expression "piVar21 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }" { (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar13 != 0) goto LAB_0001f638;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;)) (if_statement "if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }" { (expression_statement "(*(code *)PTR_rewinddir_000332a4)(iVar11);" (call_expression "(*(code *)PTR_rewinddir_000332a4)(iVar11)" (parenthesized_expression "(*(code *)PTR_rewinddir_000332a4)" ( (pointer_expression "*(code *)PTR_rewinddir_000332a4" * (cast_expression "(code *)PTR_rewinddir_000332a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);" (assignment_expression "piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11)" identifier = (cast_expression "(int *)(*(code *)PTR_readdir64_000332f0)(iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_readdir64_000332f0)(iVar11)" (parenthesized_expression "(*(code *)PTR_readdir64_000332f0)" ( (pointer_expression "*(code *)PTR_readdir64_000332f0" * (cast_expression "(code *)PTR_readdir64_000332f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))))) ;) (if_statement "if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }" if (parenthesized_expression "(piVar21 != (int *)0x0)" ( (binary_expression "piVar21 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;" if (parenthesized_expression "(*(char *)((int)piVar21 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar21 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar21 + 0x13)" * (cast_expression "(char *)((int)piVar21 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar21 + 0x13)" ( (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0001f5e0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar13 != 0) goto LAB_0001f638;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;)) })) (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" identifier = number_literal) ;) (expression_statement "*piVar14 = 2;" (assignment_expression "*piVar14 = 2" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }" if (parenthesized_expression "(*(char *)((int)piVar21 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar21 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar21 + 0x13)" * (cast_expression "(char *)((int)piVar21 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar21 + 0x13)" ( (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (compound_statement "{\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }" { (labeled_statement "LAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;" statement_identifier : (if_statement "if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;" if (parenthesized_expression "((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))" ( (binary_expression "(*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000)" (parenthesized_expression "(*(char *)(piVar21 + 5) == '\0')" ( (binary_expression "*(char *)(piVar21 + 5) == '\0'" (pointer_expression "*(char *)(piVar21 + 5)" * (cast_expression "(char *)(piVar21 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar21 + 5)" ( (binary_expression "piVar21 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((piVar21[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar21[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar21[5] & 0xffff0000U)" ( (binary_expression "piVar21[5] & 0xffff0000U" (subscript_expression "piVar21[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0001f418;" goto statement_identifier ;))) })) }) while (parenthesized_expression "((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))))" ( (binary_expression "(bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)))" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)))" ( (parenthesized_expression "((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))" ( (binary_expression "(*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)" (parenthesized_expression "(*piVar21 != iVar17 || (piVar21[1] != local_fc))" ( (binary_expression "*piVar21 != iVar17 || (piVar21[1] != local_fc)" (binary_expression "*piVar21 != iVar17" (pointer_expression "*piVar21" * identifier) != identifier) || (parenthesized_expression "(piVar21[1] != local_fc)" ( (binary_expression "piVar21[1] != local_fc" (subscript_expression "piVar21[1]" identifier [ number_literal ]) != identifier) ))) )) && (parenthesized_expression "(local_104 == iVar5)" ( (binary_expression "local_104 == iVar5" identifier == identifier) ))) )) ))) )) ;) (expression_statement "piVar21 = (int *)((int)piVar21 + 0x13);" (assignment_expression "piVar21 = (int *)((int)piVar21 + 0x13)" identifier = (cast_expression "(int *)((int)piVar21 + 0x13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar21 + 0x13)" ( (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar22 = piVar28;" (assignment_expression "piVar22 = piVar28" identifier = identifier) ;) (expression_statement "param_3 = piVar21;" (assignment_expression "param_3 = piVar21" identifier = identifier) ;) (expression_statement "iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);" (assignment_expression "iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100)" identifier = (call_expression "(*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100)" (parenthesized_expression "(*(code *)PTR___fxstatat64_000333a8)" ( (pointer_expression "*(code *)PTR___fxstatat64_000333a8" * (cast_expression "(code *)PTR___fxstatat64_000333a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,piVar28,piVar21,local_d0,0x100)" ( number_literal , identifier , identifier , identifier , number_literal )))) ;) }) while (parenthesized_expression "((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))))" ( (binary_expression "(((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc)))" (parenthesized_expression "(((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   )" ( (binary_expression "((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)" (parenthesized_expression "((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000))" ( (binary_expression "(iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) || (parenthesized_expression "((local_b8 & 0xf000) != 0x4000)" ( (binary_expression "(local_b8 & 0xf000) != 0x4000" (parenthesized_expression "(local_b8 & 0xf000)" ( (binary_expression "local_b8 & 0xf000" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(local_d0[0] != local_104)" ( (binary_expression "local_d0[0] != local_104" (subscript_expression "local_d0[0]" identifier [ number_literal ]) != identifier) ))) )) || (parenthesized_expression "((local_c0 != iVar17 || (local_bc != local_fc)))" ( (parenthesized_expression "(local_c0 != iVar17 || (local_bc != local_fc))" ( (binary_expression "local_c0 != iVar17 || (local_bc != local_fc)" (binary_expression "local_c0 != iVar17" identifier != identifier) || (parenthesized_expression "(local_bc != local_fc)" ( (binary_expression "local_bc != local_fc" identifier != identifier) ))) )) ))) )) ;)) (expression_statement "piVar27 = (int *)((int)local_e0 - (int)local_108);" (assignment_expression "piVar27 = (int *)((int)local_e0 - (int)local_108)" identifier = (cast_expression "(int *)((int)local_e0 - (int)local_108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_e0 - (int)local_108)" ( (binary_expression "(int)local_e0 - (int)local_108" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);" (assignment_expression "piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21)" identifier = (cast_expression "(int *)(*(code *)PTR_strlen_0003335c)(piVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0003335c)(piVar21)" (parenthesized_expression "(*(code *)PTR_strlen_0003335c)" ( (pointer_expression "*(code *)PTR_strlen_0003335c" * (cast_expression "(code *)PTR_strlen_0003335c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar21)" ( identifier ))))) ;) (if_statement "if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }" if (parenthesized_expression "(piVar27 <= piVar15)" ( (binary_expression "piVar27 <= piVar15" identifier <= identifier) )) (compound_statement "{\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }" { (if_statement "if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }" { (expression_statement "iVar13 = 0x22;" (assignment_expression "iVar13 = 0x22" identifier = number_literal) ;) (expression_statement "*piVar14 = 0x22;" (assignment_expression "*piVar14 = 0x22" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001f638;" goto statement_identifier ;) })) (expression_statement "piVar19 = local_f8;" (assignment_expression "piVar19 = local_f8" identifier = identifier) ;) (if_statement "if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }" if (parenthesized_expression "(local_f8 < piVar15)" ( (binary_expression "local_f8 < piVar15" identifier < identifier) )) (compound_statement "{\n              piVar19 = piVar15;\n            }" { (expression_statement "piVar19 = piVar15;" (assignment_expression "piVar19 = piVar15" identifier = identifier) ;) })) (expression_statement "piVar26 = (int *)((int)piVar19 + (int)local_f8);" (assignment_expression "piVar26 = (int *)((int)piVar19 + (int)local_f8)" identifier = (cast_expression "(int *)((int)piVar19 + (int)local_f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + (int)local_f8)" ( (binary_expression "(int)piVar19 + (int)local_f8" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;" if (parenthesized_expression "((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0))" ( (binary_expression "(piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)" (parenthesized_expression "(piVar26 < local_f8)" ( (binary_expression "piVar26 < local_f8" identifier < identifier) )) || (parenthesized_expression "(piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)" ( (comma_expression "piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0" (assignment_expression "piVar22 = piVar26" identifier = identifier) , (comma_expression "puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0" (assignment_expression "puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108)" identifier = (cast_expression "(uint *)(*(code *)PTR_realloc_0003337c)(local_108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0003337c)(local_108)" (parenthesized_expression "(*(code *)PTR_realloc_0003337c)" ( (pointer_expression "*(code *)PTR_realloc_0003337c" * (cast_expression "(code *)PTR_realloc_0003337c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))))) , (binary_expression "puVar20 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_0001f838;" goto statement_identifier ;)) (expression_statement "local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);" (assignment_expression "local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" identifier = (cast_expression "(int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" (parenthesized_expression "(*(code *)PTR_memcpy_000333d0)" ( (pointer_expression "*(code *)PTR_memcpy_000333d0" * (cast_expression "(code *)PTR_memcpy_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" ( (cast_expression "(undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + (int)((int)piVar19 + (int)piVar27))" ( (binary_expression "(int)puVar20 + (int)((int)piVar19 + (int)piVar27)" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)piVar19 + (int)piVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)piVar19 + (int)piVar27)" ( (binary_expression "(int)piVar19 + (int)piVar27" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) , (cast_expression "(undefined1 *)((int)puVar20 + (int)piVar27)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + (int)piVar27)" ( (binary_expression "(int)puVar20 + (int)piVar27" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "(int)local_f8 - (int)piVar27" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_108 = puVar20;" (assignment_expression "local_108 = puVar20" identifier = identifier) ;) (expression_statement "local_f8 = piVar26;" (assignment_expression "local_f8 = piVar26" identifier = identifier) ;) })) (expression_statement "puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);" (assignment_expression "puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" (parenthesized_expression "(*(code *)PTR_memcpy_000333d0)" ( (pointer_expression "*(code *)PTR_memcpy_000333d0" * (cast_expression "(code *)PTR_memcpy_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)local_e0 - (int)piVar15)" ( (binary_expression "(int)local_e0 - (int)piVar15" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "puVar25[-1] = 0x2f;" (assignment_expression "puVar25[-1] = 0x2f" (subscript_expression "puVar25[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_fc = iVar9;" (assignment_expression "local_fc = iVar9" identifier = identifier) ;) (expression_statement "local_104 = iVar5;" (assignment_expression "local_104 = iVar5" identifier = identifier) ;) (expression_statement "iVar17 = iVar7;" (assignment_expression "iVar17 = iVar7" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "piVar22 = piVar21;" (assignment_expression "piVar22 = piVar21" identifier = identifier) ;) (expression_statement "param_3 = piVar15;" (assignment_expression "param_3 = piVar15" identifier = identifier) ;) (goto_statement "goto joined_r0x0001f71c;" goto statement_identifier ;) })) (if_statement "if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }" { (expression_statement "local_f8 = (int *)0x1000;" (assignment_expression "local_f8 = (int *)0x1000" identifier = (cast_expression "(int *)0x1000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001f288:\n    local_e0 = param_2;" statement_identifier : (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" identifier = identifier) ;)) (expression_statement "local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);" (assignment_expression "local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8)" identifier = (cast_expression "(uint *)(*(code *)PTR_malloc_00033378)(local_f8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00033378)(local_f8)" (parenthesized_expression "(*(code *)PTR_malloc_00033378)" ( (pointer_expression "*(code *)PTR_malloc_00033378" * (cast_expression "(code *)PTR_malloc_00033378" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f8)" ( identifier ))))) ;) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" identifier = identifier) ;) (if_statement "if (local_108 != (uint *)0x0) goto LAB_0001f2bc;" if (parenthesized_expression "(local_108 != (uint *)0x0)" ( (binary_expression "local_108 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f2bc;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" else (compound_statement "{\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" { (expression_statement "puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033338)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" ( (pointer_expression "*(code *)PTR___errno_location_00033338" * (cast_expression "(code *)PTR___errno_location_00033338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "local_108 = (uint *)0x0;" (assignment_expression "local_108 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar16 = 0x16;" (assignment_expression "*puVar16 = 0x16" (pointer_expression "*puVar16" * identifier) = number_literal) ;) (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" identifier = identifier) ;) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" identifier = identifier) ;) }))) (goto_statement "goto LAB_0001f65c;" goto statement_identifier ;) (labeled_statement "LAB_0001f838:\n  iVar13 = 0xc;" statement_identifier : (expression_statement "iVar13 = 0xc;" (assignment_expression "iVar13 = 0xc" identifier = number_literal) ;)) (expression_statement "*piVar14 = 0xc;" (assignment_expression "*piVar14 = 0xc" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (labeled_statement "LAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);" statement_identifier : (expression_statement "(*(code *)PTR_closedir_000332c0)(iVar11);" (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" ( (pointer_expression "*(code *)PTR_closedir_000332c0" * (cast_expression "(code *)PTR_closedir_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))) ;)) (labeled_statement "joined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" statement_identifier : (if_statement "if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" { (expression_statement "(*(code *)PTR_free_000333d4)(local_108);" (call_expression "(*(code *)PTR_free_000333d4)(local_108)" (parenthesized_expression "(*(code *)PTR_free_000333d4)" ( (pointer_expression "*(code *)PTR_free_000333d4" * (cast_expression "(code *)PTR_free_000333d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_108)" ( identifier ))) ;) }))) (expression_statement "*piVar14 = iVar13;" (assignment_expression "*piVar14 = iVar13" (pointer_expression "*piVar14" * identifier) = identifier) ;) (expression_statement "local_108 = (uint *)0x0;" (assignment_expression "local_108 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e0 = piVar22;" (assignment_expression "local_e0 = piVar22" identifier = identifier) ;) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" identifier = identifier) ;) (labeled_statement "LAB_0001f65c:\n  local_108 = puVar20;" statement_identifier : (expression_statement "local_108 = puVar20;" (assignment_expression "local_108 = puVar20" identifier = identifier) ;)) (if_statement "if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }" if (parenthesized_expression "(local_2c == *(uint **)puVar4)" ( (binary_expression "local_2c == *(uint **)puVar4" identifier == (pointer_expression "*(uint **)puVar4" * (cast_expression "(uint **)puVar4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return local_108;\n  }" { (return_statement "return local_108;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000333b0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000333b0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000333b0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000333b0" * (cast_expression "(code *)PTR___stack_chk_fail_000333b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar24 = (uint)local_e0 & 0xff;" (assignment_expression "uVar24 = (uint)local_e0 & 0xff" identifier = (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (uint *)0x0;\n  }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (while_statement "while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }" while (parenthesized_expression "(((uint)local_2c & 3) != 0)" ( (binary_expression "((uint)local_2c & 3) != 0" (parenthesized_expression "((uint)local_2c & 3)" ( (binary_expression "(uint)local_2c & 3" (cast_expression "(uint)local_2c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }" { (expression_statement "param_3 = (int *)((int)param_3 + -1);" (assignment_expression "param_3 = (int *)((int)param_3 + -1)" identifier = (cast_expression "(int *)((int)param_3 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + -1)" ( (binary_expression "(int)param_3 + -1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }" if (parenthesized_expression "(*(byte *)local_2c == uVar24)" ( (binary_expression "*(byte *)local_2c == uVar24" (pointer_expression "*(byte *)local_2c" * (cast_expression "(byte *)local_2c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n      return local_2c;\n    }" { (return_statement "return local_2c;" return identifier ;) })) (expression_statement "local_2c = (uint *)((int)local_2c + 1);" (assignment_expression "local_2c = (uint *)((int)local_2c + 1)" identifier = (cast_expression "(uint *)((int)local_2c + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + 1)" ( (binary_expression "(int)local_2c + 1" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (uint *)0x0;\n    }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) })) (expression_statement "uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;" (assignment_expression "uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff" identifier = (binary_expression "((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff" (binary_expression "((uint)local_e0 & 0xff) << 8" (parenthesized_expression "((uint)local_e0 & 0xff)" ( (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar23 = uVar23 << 0x10 | uVar23;" (assignment_expression "uVar23 = uVar23 << 0x10 | uVar23" identifier = (binary_expression "uVar23 << 0x10 | uVar23" (binary_expression "uVar23 << 0x10" identifier << number_literal) | identifier)) ;) (if_statement "if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }" if (parenthesized_expression "((int *)0x3 < param_3)" ( (binary_expression "(int *)0x3 < param_3" (cast_expression "(int *)0x3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }" { (expression_statement "uVar18 = uVar23 ^ *local_2c;" (assignment_expression "uVar18 = uVar23 ^ *local_2c" identifier = (binary_expression "uVar23 ^ *local_2c" identifier ^ (pointer_expression "*local_2c" * identifier))) ;) (if_statement "if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }" if (parenthesized_expression "((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0)" ( (binary_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0" (parenthesized_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080)" ( (binary_expression "uVar18 + 0xfefefeff & ~uVar18 & 0x80808080" (binary_expression "uVar18 + 0xfefefeff & ~uVar18" (binary_expression "uVar18 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar18" ~ identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }" { (expression_statement "bVar1 = *(byte *)local_2c;" (assignment_expression "bVar1 = *(byte *)local_2c" identifier = (pointer_expression "*(byte *)local_2c" * (cast_expression "(byte *)local_2c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (goto_statement "goto LAB_0001f934;" goto statement_identifier ;) })) (do_statement "do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);" do (compound_statement "{\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    }" { (expression_statement "param_3 = param_3 + -1;" (assignment_expression "param_3 = param_3 + -1" identifier = (binary_expression "param_3 + -1" identifier + number_literal)) ;) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (if_statement "if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }" if (parenthesized_expression "(param_3 < (int *)0x4)" ( (binary_expression "param_3 < (int *)0x4" identifier < (cast_expression "(int *)0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }" { (if_statement "if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (uint *)0x0;\n        }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (break_statement "break;" break ;) })) (expression_statement "uVar18 = uVar23 ^ *local_2c;" (assignment_expression "uVar18 = uVar23 ^ *local_2c" identifier = (binary_expression "uVar23 ^ *local_2c" identifier ^ (pointer_expression "*local_2c" * identifier))) ;) }) while (parenthesized_expression "((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0)" ( (binary_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0" (parenthesized_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080)" ( (binary_expression "uVar18 + 0xfefefeff & ~uVar18 & 0x80808080" (binary_expression "uVar18 + 0xfefefeff & ~uVar18" (binary_expression "uVar18 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar18" ~ identifier)) & number_literal) )) == number_literal) )) ;) })) (expression_statement "bVar1 = *(byte *)local_2c;" (assignment_expression "bVar1 = *(byte *)local_2c" identifier = (pointer_expression "*(byte *)local_2c" * (cast_expression "(byte *)local_2c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }" statement_identifier : (if_statement "if (bVar1 == uVar24) {\n    return local_2c;\n  }" if (parenthesized_expression "(bVar1 == uVar24)" ( (binary_expression "bVar1 == uVar24" identifier == identifier) )) (compound_statement "{\n    return local_2c;\n  }" { (return_statement "return local_2c;" return identifier ;) }))) (expression_statement "puVar20 = (uint *)((int)local_2c + (int)param_3);" (assignment_expression "puVar20 = (uint *)((int)local_2c + (int)param_3)" identifier = (cast_expression "(uint *)((int)local_2c + (int)param_3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (int)param_3)" ( (binary_expression "(int)local_2c + (int)param_3" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);" do (compound_statement "{\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  }" { (expression_statement "local_2c = (uint *)((int)local_2c + 1);" (assignment_expression "local_2c = (uint *)((int)local_2c + 1)" identifier = (cast_expression "(uint *)((int)local_2c + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + 1)" ( (binary_expression "(int)local_2c + 1" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }" if (parenthesized_expression "(puVar20 == local_2c)" ( (binary_expression "puVar20 == local_2c" identifier == identifier) )) (compound_statement "{\n      return (uint *)0x0;\n    }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) while (parenthesized_expression "(*(byte *)local_2c != uVar24)" ( (binary_expression "*(byte *)local_2c != uVar24" (pointer_expression "*(byte *)local_2c" * (cast_expression "(byte *)local_2c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) ;) (return_statement "return local_2c;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (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 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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) ;) (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 ;)) (labeled_statement statement_identifier : (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) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (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) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;))) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) != IDENT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) ))) )) && (parenthesized_expression ( (binary_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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT , IDENT , LIT )))) ;) }) 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 IDENT & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_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) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ;) (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 * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == IDENT) )) (compound_statement { (return_statement return 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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) & (unary_expression ~ IDENT)) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) & (unary_expression ~ IDENT)) & LIT) )) == LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != IDENT) )) ;) (return_statement return IDENT ;) })))
(function_definition "uint * rpl_getcwd(uint *param_1,int *param_2,int *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  uint *puVar20;\n  int *piVar21;\n  int *piVar22;\n  uint uVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  int *piVar26;\n  int *piVar27;\n  int *piVar28;\n  uint *local_108;\n  int local_104;\n  uint *local_100;\n  int local_fc;\n  int *local_f8;\n  int *local_e0;\n  int local_d0 [4];\n  int local_c0;\n  int local_bc;\n  uint local_b8;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }\n  if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar13 = 0xc;\n  *piVar14 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);\njoined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar14 = iVar13;\n  local_108 = (uint *)0x0;\n  local_e0 = piVar22;\n  puVar20 = local_108;\nLAB_0001f65c:\n  local_108 = puVar20;\n  if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar24 = (uint)local_e0 & 0xff;\n  if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }\n  while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar23 = uVar23 << 0x10 | uVar23;\n  if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)local_2c;\nLAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }\n  puVar20 = (uint *)((int)local_2c + (int)param_3);\n  do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);\n  return local_2c;\n}" (type_identifier "uint") (pointer_declarator "* rpl_getcwd(uint *param_1,int *param_2,int *param_3)" (* "*") (function_declarator "rpl_getcwd(uint *param_1,int *param_2,int *param_3)" (identifier "rpl_getcwd") (parameter_list "(uint *param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  int iVar17;\n  uint uVar18;\n  int *piVar19;\n  uint *puVar20;\n  int *piVar21;\n  int *piVar22;\n  uint uVar23;\n  uint uVar24;\n  undefined1 *puVar25;\n  int *piVar26;\n  int *piVar27;\n  int *piVar28;\n  uint *local_108;\n  int local_104;\n  uint *local_100;\n  int local_fc;\n  int *local_f8;\n  int *local_e0;\n  int local_d0 [4];\n  int local_c0;\n  int local_bc;\n  uint local_b8;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_000333cc;\n  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;\n  if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }\n  if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }\n  goto LAB_0001f65c;\nLAB_0001f838:\n  iVar13 = 0xc;\n  *piVar14 = 0xc;\nLAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);\njoined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }\n  *piVar14 = iVar13;\n  local_108 = (uint *)0x0;\n  local_e0 = piVar22;\n  puVar20 = local_108;\nLAB_0001f65c:\n  local_108 = puVar20;\n  if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }\n  (*(code *)PTR___stack_chk_fail_000333b0)();\n  uVar24 = (uint)local_e0 & 0xff;\n  if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }\n  while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;\n  uVar23 = uVar23 << 0x10 | uVar23;\n  if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)local_2c;\nLAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }\n  puVar20 = (uint *)((int)local_2c + (int)param_3);\n  do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);\n  return local_2c;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (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 *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "uint *puVar20;" (type_identifier "uint") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "undefined1 *puVar25;" (type_identifier "undefined1") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "int *piVar26;" (primitive_type "int") (pointer_declarator "*piVar26" (* "*") (identifier "piVar26")) (; ";")) (declaration "int *piVar27;" (primitive_type "int") (pointer_declarator "*piVar27" (* "*") (identifier "piVar27")) (; ";")) (declaration "int *piVar28;" (primitive_type "int") (pointer_declarator "*piVar28" (* "*") (identifier "piVar28")) (; ";")) (declaration "uint *local_108;" (type_identifier "uint") (pointer_declarator "*local_108" (* "*") (identifier "local_108")) (; ";")) (declaration "int local_104;" (primitive_type "int") (identifier "local_104") (; ";")) (declaration "uint *local_100;" (type_identifier "uint") (pointer_declarator "*local_100" (* "*") (identifier "local_100")) (; ";")) (declaration "int local_fc;" (primitive_type "int") (identifier "local_fc") (; ";")) (declaration "int *local_f8;" (primitive_type "int") (pointer_declarator "*local_f8" (* "*") (identifier "local_f8")) (; ";")) (declaration "int *local_e0;" (primitive_type "int") (pointer_declarator "*local_e0" (* "*") (identifier "local_e0")) (; ";")) (declaration "int local_d0 [4];" (primitive_type "int") (array_declarator "local_d0 [4]" (identifier "local_d0") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_c0;" (primitive_type "int") (identifier "local_c0") (; ";")) (declaration "int local_bc;" (primitive_type "int") (identifier "local_bc") (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "uint *local_2c;" (type_identifier "uint") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_000333cc;" (assignment_expression "puVar4 = PTR___stack_chk_guard_000333cc" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_000333cc")) (; ";")) (expression_statement "local_2c = *(uint **)PTR___stack_chk_guard_000333cc;" (assignment_expression "local_2c = *(uint **)PTR___stack_chk_guard_000333cc" (identifier "local_2c") (= "=") (pointer_expression "*(uint **)PTR___stack_chk_guard_000333cc" (* "*") (cast_expression "(uint **)PTR___stack_chk_guard_000333cc" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000333cc")))) (; ";")) (if_statement "if (param_2 != (int *)0x0) {\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_108 = param_1;\n    local_f8 = param_2;\n    if (param_1 == (uint *)0x0) goto LAB_0001f288;\nLAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;\n    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);\n    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);\n    puVar25[-1] = 0;\n    piVar15 = local_d0;\n    iVar10 = (*(code *)puVar3)(3);\n    iVar17 = local_c0;\n    if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }\n    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n    iVar13 = *piVar14;\n    piVar22 = piVar21;\n    param_3 = piVar15;\n    goto joined_r0x0001f71c;\n  }" ({ "{") (expression_statement "local_108 = param_1;" (assignment_expression "local_108 = param_1" (identifier "local_108") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_f8 = param_2;" (assignment_expression "local_f8 = param_2" (identifier "local_f8") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_1 == (uint *)0x0) goto LAB_0001f288;" (if "if") (parenthesized_expression "(param_1 == (uint *)0x0)" (( "(") (binary_expression "param_1 == (uint *)0x0" (identifier "param_1") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001f288;" (goto "goto") (statement_identifier "LAB_0001f288") (; ";"))) (labeled_statement "LAB_0001f2bc:\n    puVar3 = PTR___lxstat64_000332cc;" (statement_identifier "LAB_0001f2bc") (: ":") (expression_statement "puVar3 = PTR___lxstat64_000332cc;" (assignment_expression "puVar3 = PTR___lxstat64_000332cc" (identifier "puVar3") (= "=") (identifier "PTR___lxstat64_000332cc")) (; ";"))) (expression_statement "puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);" (assignment_expression "puVar25 = (undefined1 *)((int)local_108 + (int)local_f8)" (identifier "puVar25") (= "=") (cast_expression "(undefined1 *)((int)local_108 + (int)local_f8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_108 + (int)local_f8)" (( "(") (binary_expression "(int)local_108 + (int)local_f8" (cast_expression "(int)local_108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_108")) (+ "+") (cast_expression "(int)local_f8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f8"))) () ")")))) (; ";")) (expression_statement "piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);" (assignment_expression "piVar21 = (int *)(PTR_LAB_00033108 + 0x2744)" (identifier "piVar21") (= "=") (cast_expression "(int *)(PTR_LAB_00033108 + 0x2744)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00033108 + 0x2744)" (( "(") (binary_expression "PTR_LAB_00033108 + 0x2744" (identifier "PTR_LAB_00033108") (+ "+") (number_literal "0x2744")) () ")")))) (; ";")) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" (identifier "puVar25") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar15 = local_d0;" (assignment_expression "piVar15 = local_d0" (identifier "piVar15") (= "=") (identifier "local_d0")) (; ";")) (expression_statement "iVar10 = (*(code *)puVar3)(3);" (assignment_expression "iVar10 = (*(code *)puVar3)(3)" (identifier "iVar10") (= "=") (call_expression "(*(code *)puVar3)(3)" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "(3)" (( "(") (number_literal "3") () ")")))) (; ";")) (expression_statement "iVar17 = local_c0;" (assignment_expression "iVar17 = local_c0" (identifier "iVar17") (= "=") (identifier "local_c0")) (; ";")) (if_statement "if (-1 < iVar10) {\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }" (if "if") (parenthesized_expression "(-1 < iVar10)" (( "(") (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n      local_104 = local_d0[0];\n      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);\n      local_fc = local_bc;\n      piVar15 = local_d0;\n      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);\n      iVar8 = local_bc;\n      iVar6 = local_c0;\n      iVar10 = local_d0[0];\n      if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }\n    }" ({ "{") (expression_statement "local_104 = local_d0[0];" (assignment_expression "local_104 = local_d0[0]" (identifier "local_104") (= "=") (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);" (assignment_expression "piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec)" (identifier "piVar21") (= "=") (cast_expression "(int *)(PTR_LAB_00033108 + 0x28ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00033108 + 0x28ec)" (( "(") (binary_expression "PTR_LAB_00033108 + 0x28ec" (identifier "PTR_LAB_00033108") (+ "+") (number_literal "0x28ec")) () ")")))) (; ";")) (expression_statement "local_fc = local_bc;" (assignment_expression "local_fc = local_bc" (identifier "local_fc") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "piVar15 = local_d0;" (assignment_expression "piVar15 = local_d0" (identifier "piVar15") (= "=") (identifier "local_d0")) (; ";")) (expression_statement "iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);" (assignment_expression "iVar11 = (*(code *)PTR___lxstat64_000332cc)(3)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR___lxstat64_000332cc)(3)" (parenthesized_expression "(*(code *)PTR___lxstat64_000332cc)" (( "(") (pointer_expression "*(code *)PTR___lxstat64_000332cc" (* "*") (cast_expression "(code *)PTR___lxstat64_000332cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___lxstat64_000332cc"))) () ")")) (argument_list "(3)" (( "(") (number_literal "3") () ")")))) (; ";")) (expression_statement "iVar8 = local_bc;" (assignment_expression "iVar8 = local_bc" (identifier "iVar8") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "iVar6 = local_c0;" (assignment_expression "iVar6 = local_c0" (identifier "iVar6") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "iVar10 = local_d0[0];" (assignment_expression "iVar10 = local_d0[0]" (identifier "iVar10") (= "=") (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (-1 < iVar11) {\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(-1 < iVar11)" (( "(") (binary_expression "-1 < iVar11" (number_literal "-1") (< "<") (identifier "iVar11")) () ")")) (compound_statement "{\n        iVar11 = 0;\n        piVar28 = (int *)0xffffff9c;\n        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);\n        do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );\n      }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar28 = (int *)0xffffff9c;" (assignment_expression "piVar28 = (int *)0xffffff9c" (identifier "piVar28") (= "=") (cast_expression "(int *)0xffffff9c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffff9c"))) (; ";")) (expression_statement "piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);" (assignment_expression "piVar12 = (int *)(PTR_LAB_00033108 + 0x2740)" (identifier "piVar12") (= "=") (cast_expression "(int *)(PTR_LAB_00033108 + 0x2740)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00033108 + 0x2740)" (( "(") (binary_expression "PTR_LAB_00033108 + 0x2740" (identifier "PTR_LAB_00033108") (+ "+") (number_literal "0x2740")) () ")")))) (; ";")) (do_statement "do {\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        } while( true );" (do "do") (compound_statement "{\n          local_e0 = (int *)(puVar25 + -1);\n          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }\n          param_3 = (int *)0x0;\n          piVar22 = piVar12;\n          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);\n          if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }\n          piVar22 = piVar28;\n          param_3 = local_d0;\n          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);\n          if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }\n          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }\n          iVar9 = local_bc;\n          iVar7 = local_c0;\n          iVar5 = local_d0[0];\n          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);\n          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n          if (iVar11 == 0) goto LAB_0001f708;\n          bVar2 = true;\nLAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));\n          piVar27 = (int *)((int)local_e0 - (int)local_108);\n          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);\n          if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }\n          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);\n          puVar25[-1] = 0x2f;\n          local_fc = iVar9;\n          local_104 = iVar5;\n          iVar17 = iVar7;\n        }" ({ "{") (expression_statement "local_e0 = (int *)(puVar25 + -1);" (assignment_expression "local_e0 = (int *)(puVar25 + -1)" (identifier "local_e0") (= "=") (cast_expression "(int *)(puVar25 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + -1)" (( "(") (binary_expression "puVar25 + -1" (identifier "puVar25") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }" (if "if") (parenthesized_expression "(((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8))" (( "(") (binary_expression "((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)" (parenthesized_expression "((local_104 == iVar10) && (iVar17 == iVar6))" (( "(") (binary_expression "(local_104 == iVar10) && (iVar17 == iVar6)" (parenthesized_expression "(local_104 == iVar10)" (( "(") (binary_expression "local_104 == iVar10" (identifier "local_104") (== "==") (identifier "iVar10")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 == iVar6)" (( "(") (binary_expression "iVar17 == iVar6" (identifier "iVar17") (== "==") (identifier "iVar6")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_fc == iVar8)" (( "(") (binary_expression "local_fc == iVar8" (identifier "local_fc") (== "==") (identifier "iVar8")) () ")"))) () ")")) (compound_statement "{\n            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;\n            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }\n            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);\n            param_3 = piVar15;\n            (*(code *)PTR_memmove_000333d8)();\n            local_100 = param_1;\n            if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }\n            puVar20 = local_100;\n            if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }\n            goto LAB_0001f65c;\n          }" ({ "{") (if_statement "if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))\n            break;" (if "if") (parenthesized_expression "((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))" (( "(") (binary_expression "(iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0)" (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0)" (( "(") (comma_expression "iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0" (assignment_expression "iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11)" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" (( "(") (pointer_expression "*(code *)PTR_closedir_000332c0" (* "*") (cast_expression "(code *)PTR_closedir_000332c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_000332c0"))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (, ",") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }" (if "if") (parenthesized_expression "(local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1)))" (( "(") (binary_expression "local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))" (identifier "local_e0") (== "==") (cast_expression "(int *)((int)local_108 + (int)((int)local_f8 + -1))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_108 + (int)((int)local_f8 + -1))" (( "(") (binary_expression "(int)local_108 + (int)((int)local_f8 + -1)" (cast_expression "(int)local_108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_108")) (+ "+") (cast_expression "(int)((int)local_f8 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_f8 + -1)" (( "(") (binary_expression "(int)local_f8 + -1" (cast_expression "(int)local_f8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f8")) (+ "+") (number_literal "-1")) () ")")))) () ")")))) () ")")) (compound_statement "{\n              local_e0 = (int *)(puVar25 + -2);\n              *(undefined1 *)local_e0 = 0x2f;\n            }" ({ "{") (expression_statement "local_e0 = (int *)(puVar25 + -2);" (assignment_expression "local_e0 = (int *)(puVar25 + -2)" (identifier "local_e0") (= "=") (cast_expression "(int *)(puVar25 + -2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + -2)" (( "(") (binary_expression "puVar25 + -2" (identifier "puVar25") (+ "+") (number_literal "-2")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)local_e0 = 0x2f;" (assignment_expression "*(undefined1 *)local_e0 = 0x2f" (pointer_expression "*(undefined1 *)local_e0" (* "*") (cast_expression "(undefined1 *)local_e0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e0"))) (= "=") (number_literal "0x2f")) (; ";")) (} "}"))) (expression_statement "piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);" (assignment_expression "piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" (identifier "piVar15") (= "=") (cast_expression "(int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0)" (( "(") (binary_expression "(undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0" (cast_expression "(undefined1 *)((int)local_108 + (int)local_f8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_108 + (int)local_f8)" (( "(") (binary_expression "(int)local_108 + (int)local_f8" (cast_expression "(int)local_108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_108")) (+ "+") (cast_expression "(int)local_f8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f8"))) () ")"))) (+ "+") (unary_expression "-(int)local_e0" (- "-") (cast_expression "(int)local_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e0")))) () ")")))) (; ";")) (expression_statement "param_3 = piVar15;" (assignment_expression "param_3 = piVar15" (identifier "param_3") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "(*(code *)PTR_memmove_000333d8)();" (call_expression "(*(code *)PTR_memmove_000333d8)()" (parenthesized_expression "(*(code *)PTR_memmove_000333d8)" (( "(") (pointer_expression "*(code *)PTR_memmove_000333d8" (* "*") (cast_expression "(code *)PTR_memmove_000333d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_000333d8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_100 = param_1;" (assignment_expression "local_100 = param_1" (identifier "local_100") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (param_2 == (int *)0x0) {\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }" (if "if") (parenthesized_expression "(param_2 == (int *)0x0)" (( "(") (binary_expression "param_2 == (int *)0x0" (identifier "param_2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);\n              local_e0 = piVar15;\n            }" ({ "{") (expression_statement "local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);" (assignment_expression "local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108)" (identifier "local_100") (= "=") (cast_expression "(uint *)(*(code *)PTR_realloc_0003337c)(local_108)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_realloc_0003337c)(local_108)" (parenthesized_expression "(*(code *)PTR_realloc_0003337c)" (( "(") (pointer_expression "*(code *)PTR_realloc_0003337c" (* "*") (cast_expression "(code *)PTR_realloc_0003337c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_realloc_0003337c"))) () ")")) (argument_list "(local_108)" (( "(") (identifier "local_108") () ")"))))) (; ";")) (expression_statement "local_e0 = piVar15;" (assignment_expression "local_e0 = piVar15" (identifier "local_e0") (= "=") (identifier "piVar15")) (; ";")) (} "}"))) (expression_statement "puVar20 = local_100;" (assignment_expression "puVar20 = local_100" (identifier "puVar20") (= "=") (identifier "local_100")) (; ";")) (if_statement "if (local_100 == (uint *)0x0) {\n              puVar20 = local_108;\n            }" (if "if") (parenthesized_expression "(local_100 == (uint *)0x0)" (( "(") (binary_expression "local_100 == (uint *)0x0" (identifier "local_100") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              puVar20 = local_108;\n            }" ({ "{") (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" (identifier "puVar20") (= "=") (identifier "local_108")) (; ";")) (} "}"))) (goto_statement "goto LAB_0001f65c;" (goto "goto") (statement_identifier "LAB_0001f65c") (; ";")) (} "}"))) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar22 = piVar12;" (assignment_expression "piVar22 = piVar12" (identifier "piVar22") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);" (assignment_expression "piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28)" (identifier "piVar28") (= "=") (cast_expression "(int *)(*(code *)PTR_openat64_00033358)(piVar28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_openat64_00033358)(piVar28)" (parenthesized_expression "(*(code *)PTR_openat64_00033358)" (( "(") (pointer_expression "*(code *)PTR_openat64_00033358" (* "*") (cast_expression "(code *)PTR_openat64_00033358" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_openat64_00033358"))) () ")")) (argument_list "(piVar28)" (( "(") (identifier "piVar28") () ")"))))) (; ";")) (if_statement "if ((int)piVar28 < 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }" (if "if") (parenthesized_expression "((int)piVar28 < 0)" (( "(") (binary_expression "(int)piVar28 < 0" (cast_expression "(int)piVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar28")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 == 0) goto joined_r0x0001f71c;\n            goto LAB_0001f638;\n          }" ({ "{") (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" (identifier "piVar14") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033338" (* "*") (cast_expression "(code *)PTR___errno_location_00033338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033338"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" (identifier "iVar13") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (if_statement "if (iVar11 == 0) goto joined_r0x0001f71c;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x0001f71c;" (goto "goto") (statement_identifier "joined_r0x0001f71c") (; ";"))) (goto_statement "goto LAB_0001f638;" (goto "goto") (statement_identifier "LAB_0001f638") (; ";")) (} "}"))) (expression_statement "piVar22 = piVar28;" (assignment_expression "piVar22 = piVar28" (identifier "piVar22") (= "=") (identifier "piVar28")) (; ";")) (expression_statement "param_3 = local_d0;" (assignment_expression "param_3 = local_d0" (identifier "param_3") (= "=") (identifier "local_d0")) (; ";")) (expression_statement "iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);" (assignment_expression "iVar13 = (*(code *)PTR___fxstat64_0003339c)(3)" (identifier "iVar13") (= "=") (call_expression "(*(code *)PTR___fxstat64_0003339c)(3)" (parenthesized_expression "(*(code *)PTR___fxstat64_0003339c)" (( "(") (pointer_expression "*(code *)PTR___fxstat64_0003339c" (* "*") (cast_expression "(code *)PTR___fxstat64_0003339c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fxstat64_0003339c"))) () ")")) (argument_list "(3)" (( "(") (number_literal "3") () ")")))) (; ";")) (if_statement "if (iVar13 != 0) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\n            iVar13 = *piVar14;\n            if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }\nLAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);\n            goto joined_r0x0001f71c;\n          }" ({ "{") (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" (identifier "piVar14") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033338" (* "*") (cast_expression "(code *)PTR___errno_location_00033338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033338"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" (identifier "iVar13") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (if_statement "if (iVar11 != 0) {\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)PTR_closedir_000332c0)(iVar11);\n            }" ({ "{") (expression_statement "(*(code *)PTR_closedir_000332c0)(iVar11);" (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" (( "(") (pointer_expression "*(code *)PTR_closedir_000332c0" (* "*") (cast_expression "(code *)PTR_closedir_000332c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_000332c0"))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001f70c:\n            (*(code *)PTR_close_000332c4)(piVar28);" (statement_identifier "LAB_0001f70c") (: ":") (expression_statement "(*(code *)PTR_close_000332c4)(piVar28);" (call_expression "(*(code *)PTR_close_000332c4)(piVar28)" (parenthesized_expression "(*(code *)PTR_close_000332c4)" (( "(") (pointer_expression "*(code *)PTR_close_000332c4" (* "*") (cast_expression "(code *)PTR_close_000332c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000332c4"))) () ")")) (argument_list "(piVar28)" (( "(") (identifier "piVar28") () ")"))) (; ";"))) (goto_statement "goto joined_r0x0001f71c;" (goto "goto") (statement_identifier "joined_r0x0001f71c") (; ";")) (} "}"))) (if_statement "if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }" (if "if") (parenthesized_expression "((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0))" (( "(") (binary_expression "(iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)" (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)" (( "(") (comma_expression "iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0" (assignment_expression "iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" (( "(") (pointer_expression "*(code *)PTR_closedir_000332c0" (* "*") (cast_expression "(code *)PTR_closedir_000332c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_000332c0"))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (, ",") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();\nLAB_0001f708:\n            iVar13 = *piVar14;\n            goto LAB_0001f70c;\n          }" ({ "{") (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" (identifier "piVar14") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033338" (* "*") (cast_expression "(code *)PTR___errno_location_00033338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033338"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (labeled_statement "LAB_0001f708:\n            iVar13 = *piVar14;" (statement_identifier "LAB_0001f708") (: ":") (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" (identifier "iVar13") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";"))) (goto_statement "goto LAB_0001f70c;" (goto "goto") (statement_identifier "LAB_0001f70c") (; ";")) (} "}"))) (expression_statement "iVar9 = local_bc;" (assignment_expression "iVar9 = local_bc" (identifier "iVar9") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "iVar7 = local_c0;" (assignment_expression "iVar7 = local_c0" (identifier "iVar7") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "iVar5 = local_d0[0];" (assignment_expression "iVar5 = local_d0[0]" (identifier "iVar5") (= "=") (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);" (assignment_expression "iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_fdopendir_00033300)(piVar28)" (parenthesized_expression "(*(code *)PTR_fdopendir_00033300)" (( "(") (pointer_expression "*(code *)PTR_fdopendir_00033300" (* "*") (cast_expression "(code *)PTR_fdopendir_00033300" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fdopendir_00033300"))) () ")")) (argument_list "(piVar28)" (( "(") (identifier "piVar28") () ")")))) (; ";")) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" (identifier "piVar14") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033338" (* "*") (cast_expression "(code *)PTR___errno_location_00033338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033338"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_0001f708;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f708;" (goto "goto") (statement_identifier "LAB_0001f708") (; ";"))) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_0001f418:\n          do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));" (statement_identifier "LAB_0001f418") (: ":") (do_statement "do {\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));" (do "do") (compound_statement "{\n            do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));\n            piVar21 = (int *)((int)piVar21 + 0x13);\n            piVar22 = piVar28;\n            param_3 = piVar21;\n            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);\n          }" ({ "{") (do_statement "do {\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            } while ((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));" (do "do") (compound_statement "{\n              puVar3 = PTR_readdir64_000332f0;\n              *piVar14 = 0;\n              piVar21 = (int *)(*(code *)puVar3)(iVar11);\n              if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }\n              if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }\n            }" ({ "{") (expression_statement "puVar3 = PTR_readdir64_000332f0;" (assignment_expression "puVar3 = PTR_readdir64_000332f0" (identifier "puVar3") (= "=") (identifier "PTR_readdir64_000332f0")) (; ";")) (expression_statement "*piVar14 = 0;" (assignment_expression "*piVar14 = 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar21 = (int *)(*(code *)puVar3)(iVar11);" (assignment_expression "piVar21 = (int *)(*(code *)puVar3)(iVar11)" (identifier "piVar21") (= "=") (cast_expression "(int *)(*(code *)puVar3)(iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar3)(iVar11)" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))))) (; ";")) (if_statement "if (piVar21 == (int *)0x0) {\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }" (if "if") (parenthesized_expression "(piVar21 == (int *)0x0)" (( "(") (binary_expression "piVar21 == (int *)0x0" (identifier "piVar21") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                iVar13 = *piVar14;\n                if (iVar13 != 0) goto LAB_0001f638;\n                if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }\n                iVar13 = 2;\n                *piVar14 = 2;\n                goto LAB_0001f638;\n              }" ({ "{") (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" (identifier "iVar13") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (if_statement "if (iVar13 != 0) goto LAB_0001f638;" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f638;" (goto "goto") (statement_identifier "LAB_0001f638") (; ";"))) (if_statement "if (bVar2) {\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n                  (*(code *)PTR_rewinddir_000332a4)(iVar11);\n                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);\n                  if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }\n                  iVar13 = *piVar14;\n                  if (iVar13 != 0) goto LAB_0001f638;\n                }" ({ "{") (expression_statement "(*(code *)PTR_rewinddir_000332a4)(iVar11);" (call_expression "(*(code *)PTR_rewinddir_000332a4)(iVar11)" (parenthesized_expression "(*(code *)PTR_rewinddir_000332a4)" (( "(") (pointer_expression "*(code *)PTR_rewinddir_000332a4" (* "*") (cast_expression "(code *)PTR_rewinddir_000332a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_rewinddir_000332a4"))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);" (assignment_expression "piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11)" (identifier "piVar21") (= "=") (cast_expression "(int *)(*(code *)PTR_readdir64_000332f0)(iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_readdir64_000332f0)(iVar11)" (parenthesized_expression "(*(code *)PTR_readdir64_000332f0)" (( "(") (pointer_expression "*(code *)PTR_readdir64_000332f0" (* "*") (cast_expression "(code *)PTR_readdir64_000332f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_readdir64_000332f0"))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))))) (; ";")) (if_statement "if (piVar21 != (int *)0x0) {\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }" (if "if") (parenthesized_expression "(piVar21 != (int *)0x0)" (( "(") (binary_expression "piVar21 != (int *)0x0" (identifier "piVar21") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    bVar2 = false;\n                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;\n                    break;\n                  }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (if_statement "if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;" (if "if") (parenthesized_expression "(*(char *)((int)piVar21 + 0x13) == '.')" (( "(") (binary_expression "*(char *)((int)piVar21 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar21 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar21 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar21 + 0x13)" (( "(") (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar21")) (+ "+") (number_literal "0x13")) () ")")))) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_0001f5e0;" (goto "goto") (statement_identifier "LAB_0001f5e0") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" (identifier "iVar13") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (if_statement "if (iVar13 != 0) goto LAB_0001f638;" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f638;" (goto "goto") (statement_identifier "LAB_0001f638") (; ";"))) (} "}"))) (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" (identifier "iVar13") (= "=") (number_literal "2")) (; ";")) (expression_statement "*piVar14 = 2;" (assignment_expression "*piVar14 = 2" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0001f638;" (goto "goto") (statement_identifier "LAB_0001f638") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)piVar21 + 0x13) == '.') {\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }" (if "if") (parenthesized_expression "(*(char *)((int)piVar21 + 0x13) == '.')" (( "(") (binary_expression "*(char *)((int)piVar21 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar21 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar21 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar21 + 0x13)" (( "(") (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar21")) (+ "+") (number_literal "0x13")) () ")")))) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\nLAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;\n              }" ({ "{") (labeled_statement "LAB_0001f5e0:\n                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;" (statement_identifier "LAB_0001f5e0") (: ":") (if_statement "if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))\n                goto LAB_0001f418;" (if "if") (parenthesized_expression "((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))" (( "(") (binary_expression "(*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000)" (parenthesized_expression "(*(char *)(piVar21 + 5) == '\0')" (( "(") (binary_expression "*(char *)(piVar21 + 5) == '\0'" (pointer_expression "*(char *)(piVar21 + 5)" (* "*") (cast_expression "(char *)(piVar21 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar21 + 5)" (( "(") (binary_expression "piVar21 + 5" (identifier "piVar21") (+ "+") (number_literal "5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((piVar21[5] & 0xffff0000U) == 0x2e000000)" (( "(") (binary_expression "(piVar21[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar21[5] & 0xffff0000U)" (( "(") (binary_expression "piVar21[5] & 0xffff0000U" (subscript_expression "piVar21[5]" (identifier "piVar21") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0xffff0000U")) () ")")) (== "==") (number_literal "0x2e000000")) () ")"))) () ")")) (goto_statement "goto LAB_0001f418;" (goto "goto") (statement_identifier "LAB_0001f418") (; ";")))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))))" (( "(") (binary_expression "(bVar2) &&\n                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)))" (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (&& "&&") (parenthesized_expression "(((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)))" (( "(") (parenthesized_expression "((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))" (( "(") (binary_expression "(*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5)" (parenthesized_expression "(*piVar21 != iVar17 || (piVar21[1] != local_fc))" (( "(") (binary_expression "*piVar21 != iVar17 || (piVar21[1] != local_fc)" (binary_expression "*piVar21 != iVar17" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (!= "!=") (identifier "iVar17")) (|| "||") (parenthesized_expression "(piVar21[1] != local_fc)" (( "(") (binary_expression "piVar21[1] != local_fc" (subscript_expression "piVar21[1]" (identifier "piVar21") ([ "[") (number_literal "1") (] "]")) (!= "!=") (identifier "local_fc")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_104 == iVar5)" (( "(") (binary_expression "local_104 == iVar5" (identifier "local_104") (== "==") (identifier "iVar5")) () ")"))) () ")")) () ")"))) () ")")) (; ";")) (expression_statement "piVar21 = (int *)((int)piVar21 + 0x13);" (assignment_expression "piVar21 = (int *)((int)piVar21 + 0x13)" (identifier "piVar21") (= "=") (cast_expression "(int *)((int)piVar21 + 0x13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar21 + 0x13)" (( "(") (binary_expression "(int)piVar21 + 0x13" (cast_expression "(int)piVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar21")) (+ "+") (number_literal "0x13")) () ")")))) (; ";")) (expression_statement "piVar22 = piVar28;" (assignment_expression "piVar22 = piVar28" (identifier "piVar22") (= "=") (identifier "piVar28")) (; ";")) (expression_statement "param_3 = piVar21;" (assignment_expression "param_3 = piVar21" (identifier "param_3") (= "=") (identifier "piVar21")) (; ";")) (expression_statement "iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);" (assignment_expression "iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100)" (identifier "iVar13") (= "=") (call_expression "(*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100)" (parenthesized_expression "(*(code *)PTR___fxstatat64_000333a8)" (( "(") (pointer_expression "*(code *)PTR___fxstatat64_000333a8" (* "*") (cast_expression "(code *)PTR___fxstatat64_000333a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fxstatat64_000333a8"))) () ")")) (argument_list "(3,piVar28,piVar21,local_d0,0x100)" (( "(") (number_literal "3") (, ",") (identifier "piVar28") (, ",") (identifier "piVar21") (, ",") (identifier "local_d0") (, ",") (number_literal "0x100") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))))" (( "(") (binary_expression "(((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   ) || ((local_c0 != iVar17 || (local_bc != local_fc)))" (parenthesized_expression "(((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)\n                   )" (( "(") (binary_expression "((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)" (parenthesized_expression "((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000))" (( "(") (binary_expression "(iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((local_b8 & 0xf000) != 0x4000)" (( "(") (binary_expression "(local_b8 & 0xf000) != 0x4000" (parenthesized_expression "(local_b8 & 0xf000)" (( "(") (binary_expression "local_b8 & 0xf000" (identifier "local_b8") (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_d0[0] != local_104)" (( "(") (binary_expression "local_d0[0] != local_104" (subscript_expression "local_d0[0]" (identifier "local_d0") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_104")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_c0 != iVar17 || (local_bc != local_fc)))" (( "(") (parenthesized_expression "(local_c0 != iVar17 || (local_bc != local_fc))" (( "(") (binary_expression "local_c0 != iVar17 || (local_bc != local_fc)" (binary_expression "local_c0 != iVar17" (identifier "local_c0") (!= "!=") (identifier "iVar17")) (|| "||") (parenthesized_expression "(local_bc != local_fc)" (( "(") (binary_expression "local_bc != local_fc" (identifier "local_bc") (!= "!=") (identifier "local_fc")) () ")"))) () ")")) () ")"))) () ")")) (; ";"))) (expression_statement "piVar27 = (int *)((int)local_e0 - (int)local_108);" (assignment_expression "piVar27 = (int *)((int)local_e0 - (int)local_108)" (identifier "piVar27") (= "=") (cast_expression "(int *)((int)local_e0 - (int)local_108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_e0 - (int)local_108)" (( "(") (binary_expression "(int)local_e0 - (int)local_108" (cast_expression "(int)local_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e0")) (- "-") (cast_expression "(int)local_108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_108"))) () ")")))) (; ";")) (expression_statement "piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);" (assignment_expression "piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21)" (identifier "piVar15") (= "=") (cast_expression "(int *)(*(code *)PTR_strlen_0003335c)(piVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_0003335c)(piVar21)" (parenthesized_expression "(*(code *)PTR_strlen_0003335c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003335c" (* "*") (cast_expression "(code *)PTR_strlen_0003335c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003335c"))) () ")")) (argument_list "(piVar21)" (( "(") (identifier "piVar21") () ")"))))) (; ";")) (if_statement "if (piVar27 <= piVar15) {\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }" (if "if") (parenthesized_expression "(piVar27 <= piVar15)" (( "(") (binary_expression "piVar27 <= piVar15" (identifier "piVar27") (<= "<=") (identifier "piVar15")) () ")")) (compound_statement "{\n            if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }\n            piVar19 = local_f8;\n            if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }\n            piVar26 = (int *)((int)piVar19 + (int)local_f8);\n            if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;\n            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);\n            local_108 = puVar20;\n            local_f8 = piVar26;\n          }" ({ "{") (if_statement "if (param_2 != (int *)0x0) {\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar13 = 0x22;\n              *piVar14 = 0x22;\n              goto LAB_0001f638;\n            }" ({ "{") (expression_statement "iVar13 = 0x22;" (assignment_expression "iVar13 = 0x22" (identifier "iVar13") (= "=") (number_literal "0x22")) (; ";")) (expression_statement "*piVar14 = 0x22;" (assignment_expression "*piVar14 = 0x22" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (number_literal "0x22")) (; ";")) (goto_statement "goto LAB_0001f638;" (goto "goto") (statement_identifier "LAB_0001f638") (; ";")) (} "}"))) (expression_statement "piVar19 = local_f8;" (assignment_expression "piVar19 = local_f8" (identifier "piVar19") (= "=") (identifier "local_f8")) (; ";")) (if_statement "if (local_f8 < piVar15) {\n              piVar19 = piVar15;\n            }" (if "if") (parenthesized_expression "(local_f8 < piVar15)" (( "(") (binary_expression "local_f8 < piVar15" (identifier "local_f8") (< "<") (identifier "piVar15")) () ")")) (compound_statement "{\n              piVar19 = piVar15;\n            }" ({ "{") (expression_statement "piVar19 = piVar15;" (assignment_expression "piVar19 = piVar15" (identifier "piVar19") (= "=") (identifier "piVar15")) (; ";")) (} "}"))) (expression_statement "piVar26 = (int *)((int)piVar19 + (int)local_f8);" (assignment_expression "piVar26 = (int *)((int)piVar19 + (int)local_f8)" (identifier "piVar26") (= "=") (cast_expression "(int *)((int)piVar19 + (int)local_f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar19 + (int)local_f8)" (( "(") (binary_expression "(int)piVar19 + (int)local_f8" (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19")) (+ "+") (cast_expression "(int)local_f8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f8"))) () ")")))) (; ";")) (if_statement "if ((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)) goto LAB_0001f838;" (if "if") (parenthesized_expression "((piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0))" (( "(") (binary_expression "(piVar26 < local_f8) ||\n               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)" (parenthesized_expression "(piVar26 < local_f8)" (( "(") (binary_expression "piVar26 < local_f8" (identifier "piVar26") (< "<") (identifier "local_f8")) () ")")) (|| "||") (parenthesized_expression "(piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0)" (( "(") (comma_expression "piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0" (assignment_expression "piVar22 = piVar26" (identifier "piVar22") (= "=") (identifier "piVar26")) (, ",") (comma_expression "puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),\n               puVar20 == (uint *)0x0" (assignment_expression "puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108)" (identifier "puVar20") (= "=") (cast_expression "(uint *)(*(code *)PTR_realloc_0003337c)(local_108)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_realloc_0003337c)(local_108)" (parenthesized_expression "(*(code *)PTR_realloc_0003337c)" (( "(") (pointer_expression "*(code *)PTR_realloc_0003337c" (* "*") (cast_expression "(code *)PTR_realloc_0003337c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_realloc_0003337c"))) () ")")) (argument_list "(local_108)" (( "(") (identifier "local_108") () ")"))))) (, ",") (binary_expression "puVar20 == (uint *)0x0" (identifier "puVar20") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (goto_statement "goto LAB_0001f838;" (goto "goto") (statement_identifier "LAB_0001f838") (; ";"))) (expression_statement "local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27);" (assignment_expression "local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" (identifier "local_e0") (= "=") (cast_expression "(int *)(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_memcpy_000333d0)\n                                        ((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" (parenthesized_expression "(*(code *)PTR_memcpy_000333d0)" (( "(") (pointer_expression "*(code *)PTR_memcpy_000333d0" (* "*") (cast_expression "(code *)PTR_memcpy_000333d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_000333d0"))) () ")")) (argument_list "((undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),\n                                         (undefined1 *)((int)puVar20 + (int)piVar27),\n                                         (int)local_f8 - (int)piVar27)" (( "(") (cast_expression "(undefined1 *)\n                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar20 + (int)((int)piVar19 + (int)piVar27))" (( "(") (binary_expression "(int)puVar20 + (int)((int)piVar19 + (int)piVar27)" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (+ "+") (cast_expression "(int)((int)piVar19 + (int)piVar27)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)piVar19 + (int)piVar27)" (( "(") (binary_expression "(int)piVar19 + (int)piVar27" (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19")) (+ "+") (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27"))) () ")")))) () ")"))) (, ",") (cast_expression "(undefined1 *)((int)puVar20 + (int)piVar27)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar20 + (int)piVar27)" (( "(") (binary_expression "(int)puVar20 + (int)piVar27" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (+ "+") (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27"))) () ")"))) (, ",") (binary_expression "(int)local_f8 - (int)piVar27" (cast_expression "(int)local_f8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f8")) (- "-") (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27"))) () ")"))))) (; ";")) (expression_statement "local_108 = puVar20;" (assignment_expression "local_108 = puVar20" (identifier "local_108") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "local_f8 = piVar26;" (assignment_expression "local_f8 = piVar26" (identifier "local_f8") (= "=") (identifier "piVar26")) (; ";")) (} "}"))) (expression_statement "puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);" (assignment_expression "puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" (identifier "puVar25") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15)" (parenthesized_expression "(*(code *)PTR_memcpy_000333d0)" (( "(") (pointer_expression "*(code *)PTR_memcpy_000333d0" (* "*") (cast_expression "(code *)PTR_memcpy_000333d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_000333d0"))) () ")")) (argument_list "((int)local_e0 - (int)piVar15)" (( "(") (binary_expression "(int)local_e0 - (int)piVar15" (cast_expression "(int)local_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e0")) (- "-") (cast_expression "(int)piVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar15"))) () ")"))))) (; ";")) (expression_statement "puVar25[-1] = 0x2f;" (assignment_expression "puVar25[-1] = 0x2f" (subscript_expression "puVar25[-1]" (identifier "puVar25") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "local_fc = iVar9;" (assignment_expression "local_fc = iVar9" (identifier "local_fc") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "local_104 = iVar5;" (assignment_expression "local_104 = iVar5" (identifier "local_104") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar17 = iVar7;" (assignment_expression "iVar17 = iVar7" (identifier "iVar17") (= "=") (identifier "iVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_00033338)()" (identifier "piVar14") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00033338)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033338" (* "*") (cast_expression "(code *)PTR___errno_location_00033338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033338"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" (identifier "iVar13") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "piVar22 = piVar21;" (assignment_expression "piVar22 = piVar21" (identifier "piVar22") (= "=") (identifier "piVar21")) (; ";")) (expression_statement "param_3 = piVar15;" (assignment_expression "param_3 = piVar15" (identifier "param_3") (= "=") (identifier "piVar15")) (; ";")) (goto_statement "goto joined_r0x0001f71c;" (goto "goto") (statement_identifier "joined_r0x0001f71c") (; ";")) (} "}"))) (if_statement "if (param_1 == (uint *)0x0) {\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }\n  else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" (if "if") (parenthesized_expression "(param_1 == (uint *)0x0)" (( "(") (binary_expression "param_1 == (uint *)0x0" (identifier "param_1") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_f8 = (int *)0x1000;\nLAB_0001f288:\n    local_e0 = param_2;\n    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);\n    puVar20 = local_108;\n    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;\n  }" ({ "{") (expression_statement "local_f8 = (int *)0x1000;" (assignment_expression "local_f8 = (int *)0x1000" (identifier "local_f8") (= "=") (cast_expression "(int *)0x1000" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1000"))) (; ";")) (labeled_statement "LAB_0001f288:\n    local_e0 = param_2;" (statement_identifier "LAB_0001f288") (: ":") (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" (identifier "local_e0") (= "=") (identifier "param_2")) (; ";"))) (expression_statement "local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);" (assignment_expression "local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8)" (identifier "local_108") (= "=") (cast_expression "(uint *)(*(code *)PTR_malloc_00033378)(local_f8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_00033378)(local_f8)" (parenthesized_expression "(*(code *)PTR_malloc_00033378)" (( "(") (pointer_expression "*(code *)PTR_malloc_00033378" (* "*") (cast_expression "(code *)PTR_malloc_00033378" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00033378"))) () ")")) (argument_list "(local_f8)" (( "(") (identifier "local_f8") () ")"))))) (; ";")) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" (identifier "puVar20") (= "=") (identifier "local_108")) (; ";")) (if_statement "if (local_108 != (uint *)0x0) goto LAB_0001f2bc;" (if "if") (parenthesized_expression "(local_108 != (uint *)0x0)" (( "(") (binary_expression "local_108 != (uint *)0x0" (identifier "local_108") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001f2bc;" (goto "goto") (statement_identifier "LAB_0001f2bc") (; ";"))) (} "}")) (else_clause "else {\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" (else "else") (compound_statement "{\n    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();\n    local_108 = (uint *)0x0;\n    *puVar16 = 0x16;\n    local_e0 = param_2;\n    puVar20 = local_108;\n  }" ({ "{") (expression_statement "puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();" (assignment_expression "puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)()" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033338)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033338)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033338)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033338" (* "*") (cast_expression "(code *)PTR___errno_location_00033338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033338"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_108 = (uint *)0x0;" (assignment_expression "local_108 = (uint *)0x0" (identifier "local_108") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*puVar16 = 0x16;" (assignment_expression "*puVar16 = 0x16" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" (identifier "local_e0") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" (identifier "puVar20") (= "=") (identifier "local_108")) (; ";")) (} "}")))) (goto_statement "goto LAB_0001f65c;" (goto "goto") (statement_identifier "LAB_0001f65c") (; ";")) (labeled_statement "LAB_0001f838:\n  iVar13 = 0xc;" (statement_identifier "LAB_0001f838") (: ":") (expression_statement "iVar13 = 0xc;" (assignment_expression "iVar13 = 0xc" (identifier "iVar13") (= "=") (number_literal "0xc")) (; ";"))) (expression_statement "*piVar14 = 0xc;" (assignment_expression "*piVar14 = 0xc" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (number_literal "0xc")) (; ";")) (labeled_statement "LAB_0001f638:\n  (*(code *)PTR_closedir_000332c0)(iVar11);" (statement_identifier "LAB_0001f638") (: ":") (expression_statement "(*(code *)PTR_closedir_000332c0)(iVar11);" (call_expression "(*(code *)PTR_closedir_000332c0)(iVar11)" (parenthesized_expression "(*(code *)PTR_closedir_000332c0)" (( "(") (pointer_expression "*(code *)PTR_closedir_000332c0" (* "*") (cast_expression "(code *)PTR_closedir_000332c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_000332c0"))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";"))) (labeled_statement "joined_r0x0001f71c:\n  if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" (statement_identifier "joined_r0x0001f71c") (: ":") (if_statement "if (param_1 == (uint *)0x0) {\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" (if "if") (parenthesized_expression "(param_1 == (uint *)0x0)" (( "(") (binary_expression "param_1 == (uint *)0x0" (identifier "param_1") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)PTR_free_000333d4)(local_108);\n  }" ({ "{") (expression_statement "(*(code *)PTR_free_000333d4)(local_108);" (call_expression "(*(code *)PTR_free_000333d4)(local_108)" (parenthesized_expression "(*(code *)PTR_free_000333d4)" (( "(") (pointer_expression "*(code *)PTR_free_000333d4" (* "*") (cast_expression "(code *)PTR_free_000333d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000333d4"))) () ")")) (argument_list "(local_108)" (( "(") (identifier "local_108") () ")"))) (; ";")) (} "}")))) (expression_statement "*piVar14 = iVar13;" (assignment_expression "*piVar14 = iVar13" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "local_108 = (uint *)0x0;" (assignment_expression "local_108 = (uint *)0x0" (identifier "local_108") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e0 = piVar22;" (assignment_expression "local_e0 = piVar22" (identifier "local_e0") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "puVar20 = local_108;" (assignment_expression "puVar20 = local_108" (identifier "puVar20") (= "=") (identifier "local_108")) (; ";")) (labeled_statement "LAB_0001f65c:\n  local_108 = puVar20;" (statement_identifier "LAB_0001f65c") (: ":") (expression_statement "local_108 = puVar20;" (assignment_expression "local_108 = puVar20" (identifier "local_108") (= "=") (identifier "puVar20")) (; ";"))) (if_statement "if (local_2c == *(uint **)puVar4) {\n    return local_108;\n  }" (if "if") (parenthesized_expression "(local_2c == *(uint **)puVar4)" (( "(") (binary_expression "local_2c == *(uint **)puVar4" (identifier "local_2c") (== "==") (pointer_expression "*(uint **)puVar4" (* "*") (cast_expression "(uint **)puVar4" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n    return local_108;\n  }" ({ "{") (return_statement "return local_108;" (return "return") (identifier "local_108") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000333b0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000333b0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000333b0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000333b0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000333b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000333b0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar24 = (uint)local_e0 & 0xff;" (assignment_expression "uVar24 = (uint)local_e0 & 0xff" (identifier "uVar24") (= "=") (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e0")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (param_3 == (int *)0x0) {\n    return (uint *)0x0;\n  }" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return (uint *)0x0;\n  }" ({ "{") (return_statement "return (uint *)0x0;" (return "return") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (while_statement "while (((uint)local_2c & 3) != 0) {\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }" (while "while") (parenthesized_expression "(((uint)local_2c & 3) != 0)" (( "(") (binary_expression "((uint)local_2c & 3) != 0" (parenthesized_expression "((uint)local_2c & 3)" (( "(") (binary_expression "(uint)local_2c & 3" (cast_expression "(uint)local_2c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_2c")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    param_3 = (int *)((int)param_3 + -1);\n    if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }\n    local_2c = (uint *)((int)local_2c + 1);\n    if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }\n  }" ({ "{") (expression_statement "param_3 = (int *)((int)param_3 + -1);" (assignment_expression "param_3 = (int *)((int)param_3 + -1)" (identifier "param_3") (= "=") (cast_expression "(int *)((int)param_3 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + -1)" (( "(") (binary_expression "(int)param_3 + -1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (*(byte *)local_2c == uVar24) {\n      return local_2c;\n    }" (if "if") (parenthesized_expression "(*(byte *)local_2c == uVar24)" (( "(") (binary_expression "*(byte *)local_2c == uVar24" (pointer_expression "*(byte *)local_2c" (* "*") (cast_expression "(byte *)local_2c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_2c"))) (== "==") (identifier "uVar24")) () ")")) (compound_statement "{\n      return local_2c;\n    }" ({ "{") (return_statement "return local_2c;" (return "return") (identifier "local_2c") (; ";")) (} "}"))) (expression_statement "local_2c = (uint *)((int)local_2c + 1);" (assignment_expression "local_2c = (uint *)((int)local_2c + 1)" (identifier "local_2c") (= "=") (cast_expression "(uint *)((int)local_2c + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_2c + 1)" (( "(") (binary_expression "(int)local_2c + 1" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_3 == (int *)0x0) {\n      return (uint *)0x0;\n    }" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return (uint *)0x0;\n    }" ({ "{") (return_statement "return (uint *)0x0;" (return "return") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;" (assignment_expression "uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff" (identifier "uVar23") (= "=") (binary_expression "((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff" (binary_expression "((uint)local_e0 & 0xff) << 8" (parenthesized_expression "((uint)local_e0 & 0xff)" (( "(") (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e0")) (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uint)local_e0 & 0xff" (cast_expression "(uint)local_e0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e0")) (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "uVar23 = uVar23 << 0x10 | uVar23;" (assignment_expression "uVar23 = uVar23 << 0x10 | uVar23" (identifier "uVar23") (= "=") (binary_expression "uVar23 << 0x10 | uVar23" (binary_expression "uVar23 << 0x10" (identifier "uVar23") (<< "<<") (number_literal "0x10")) (| "|") (identifier "uVar23"))) (; ";")) (if_statement "if ((int *)0x3 < param_3) {\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }" (if "if") (parenthesized_expression "((int *)0x3 < param_3)" (( "(") (binary_expression "(int *)0x3 < param_3" (cast_expression "(int *)0x3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3")) (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n    uVar18 = uVar23 ^ *local_2c;\n    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }\n    do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);\n  }" ({ "{") (expression_statement "uVar18 = uVar23 ^ *local_2c;" (assignment_expression "uVar18 = uVar23 ^ *local_2c" (identifier "uVar18") (= "=") (binary_expression "uVar23 ^ *local_2c" (identifier "uVar23") (^ "^") (pointer_expression "*local_2c" (* "*") (identifier "local_2c")))) (; ";")) (if_statement "if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }" (if "if") (parenthesized_expression "((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0)" (( "(") (binary_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0" (parenthesized_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080)" (( "(") (binary_expression "uVar18 + 0xfefefeff & ~uVar18 & 0x80808080" (binary_expression "uVar18 + 0xfefefeff & ~uVar18" (binary_expression "uVar18 + 0xfefefeff" (identifier "uVar18") (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~uVar18" (~ "~") (identifier "uVar18"))) (& "&") (number_literal "0x80808080")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar1 = *(byte *)local_2c;\n      goto LAB_0001f934;\n    }" ({ "{") (expression_statement "bVar1 = *(byte *)local_2c;" (assignment_expression "bVar1 = *(byte *)local_2c" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)local_2c" (* "*") (cast_expression "(byte *)local_2c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_2c")))) (; ";")) (goto_statement "goto LAB_0001f934;" (goto "goto") (statement_identifier "LAB_0001f934") (; ";")) (} "}"))) (do_statement "do {\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);" (do "do") (compound_statement "{\n      param_3 = param_3 + -1;\n      local_2c = local_2c + 1;\n      if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }\n      uVar18 = uVar23 ^ *local_2c;\n    }" ({ "{") (expression_statement "param_3 = param_3 + -1;" (assignment_expression "param_3 = param_3 + -1" (identifier "param_3") (= "=") (binary_expression "param_3 + -1" (identifier "param_3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" (identifier "local_2c") (= "=") (binary_expression "local_2c + 1" (identifier "local_2c") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_3 < (int *)0x4) {\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }" (if "if") (parenthesized_expression "(param_3 < (int *)0x4)" (( "(") (binary_expression "param_3 < (int *)0x4" (identifier "param_3") (< "<") (cast_expression "(int *)0x4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n        if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }\n        break;\n      }" ({ "{") (if_statement "if (param_3 == (int *)0x0) {\n          return (uint *)0x0;\n        }" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return (uint *)0x0;\n        }" ({ "{") (return_statement "return (uint *)0x0;" (return "return") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar18 = uVar23 ^ *local_2c;" (assignment_expression "uVar18 = uVar23 ^ *local_2c" (identifier "uVar18") (= "=") (binary_expression "uVar23 ^ *local_2c" (identifier "uVar23") (^ "^") (pointer_expression "*local_2c" (* "*") (identifier "local_2c")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0)" (( "(") (binary_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0" (parenthesized_expression "(uVar18 + 0xfefefeff & ~uVar18 & 0x80808080)" (( "(") (binary_expression "uVar18 + 0xfefefeff & ~uVar18 & 0x80808080" (binary_expression "uVar18 + 0xfefefeff & ~uVar18" (binary_expression "uVar18 + 0xfefefeff" (identifier "uVar18") (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~uVar18" (~ "~") (identifier "uVar18"))) (& "&") (number_literal "0x80808080")) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "bVar1 = *(byte *)local_2c;" (assignment_expression "bVar1 = *(byte *)local_2c" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)local_2c" (* "*") (cast_expression "(byte *)local_2c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_2c")))) (; ";")) (labeled_statement "LAB_0001f934:\n  if (bVar1 == uVar24) {\n    return local_2c;\n  }" (statement_identifier "LAB_0001f934") (: ":") (if_statement "if (bVar1 == uVar24) {\n    return local_2c;\n  }" (if "if") (parenthesized_expression "(bVar1 == uVar24)" (( "(") (binary_expression "bVar1 == uVar24" (identifier "bVar1") (== "==") (identifier "uVar24")) () ")")) (compound_statement "{\n    return local_2c;\n  }" ({ "{") (return_statement "return local_2c;" (return "return") (identifier "local_2c") (; ";")) (} "}")))) (expression_statement "puVar20 = (uint *)((int)local_2c + (int)param_3);" (assignment_expression "puVar20 = (uint *)((int)local_2c + (int)param_3)" (identifier "puVar20") (= "=") (cast_expression "(uint *)((int)local_2c + (int)param_3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_2c + (int)param_3)" (( "(") (binary_expression "(int)local_2c + (int)param_3" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (+ "+") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")))) (; ";")) (do_statement "do {\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  } while (*(byte *)local_2c != uVar24);" (do "do") (compound_statement "{\n    local_2c = (uint *)((int)local_2c + 1);\n    if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }\n  }" ({ "{") (expression_statement "local_2c = (uint *)((int)local_2c + 1);" (assignment_expression "local_2c = (uint *)((int)local_2c + 1)" (identifier "local_2c") (= "=") (cast_expression "(uint *)((int)local_2c + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_2c + 1)" (( "(") (binary_expression "(int)local_2c + 1" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (puVar20 == local_2c) {\n      return (uint *)0x0;\n    }" (if "if") (parenthesized_expression "(puVar20 == local_2c)" (( "(") (binary_expression "puVar20 == local_2c" (identifier "puVar20") (== "==") (identifier "local_2c")) () ")")) (compound_statement "{\n      return (uint *)0x0;\n    }" ({ "{") (return_statement "return (uint *)0x0;" (return "return") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(*(byte *)local_2c != uVar24)" (( "(") (binary_expression "*(byte *)local_2c != uVar24" (pointer_expression "*(byte *)local_2c" (* "*") (cast_expression "(byte *)local_2c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_2c"))) (!= "!=") (identifier "uVar24")) () ")")) (; ";")) (return_statement "return local_2c;" (return "return") (identifier "local_2c") (; ";")) (} "}")))

char * function_1(char *var_2,size_t var_1)

{
  type_1 var_27;
  bool bVar2;
  type_2 *puVar3;
  type_2 *puVar4;
  type_3 var_9;
  type_3 var_17;
  int iVar7;
  int var_12;
  int iVar9;
  type_4 *var_22;
  int var_5;
  int var_6;
  type_5 *psVar13;
  int var_15;
  int *piVar15;
  int *var_16;
  type_5 *var_19;
  type_6 *puVar18;
  int var_10;
  type_4 var_26;
  type_5 *psVar21;
  type_4 *var_28;
  type_5 *psVar23;
  type_5 *psVar24;
  type_4 var_25;
  type_5 *var_23;
  type_4 var_24;
  char *var_7;
  type_5 *var_21;
  type_5 *var_18;
  type_5 *psVar30;
  char *var_3;
  type_3 var_8;
  char *var_14;
  int var_11;
  type_5 *var_20;
  type_5 *var_13;
  type_5 st;
  
  puVar4 = PTR___stack_chk_guard_000333cc;
  var_22 = *(type_4 **)PTR___stack_chk_guard_000333cc;
  if (var_1 != 0) {
    var_3 = var_2;
    var_20 = (type_5 *)var_1;
    if (var_2 == (char *)0x0) goto LAB_0001f288;
LAB_0001f2bc:
    puVar3 = PTR___lxstat64_000332cc;
    var_7 = var_3 + (int)var_20;
    psVar23 = (type_5 *)(var_4 + 0x2744);
    var_7[-1] = '\0';
    var_19 = &st;
    var_5 = (*(type_7 *)puVar3)(3);
    var_10 = st.st_ino._0_4_;
    if (-1 < var_5) {
      var_8 = st.st_dev;
      psVar23 = (type_5 *)(var_4 + 0x28ec);
      var_11 = st.st_ino._4_4_;
      var_19 = &st;
      var_6 = (*(type_7 *)PTR___lxstat64_000332cc)(3);
      var_12 = st.st_ino._4_4_;
      var_5 = st.st_ino._0_4_;
      var_9 = st.st_dev;
      if (-1 < var_6) {
        var_6 = 0;
        psVar30 = (type_5 *)0xffffff9c;
        psVar13 = (type_5 *)(var_4 + 0x2740);
        do {
          var_13 = (type_5 *)(var_7 + -1);
          if (((var_8 == var_9) && (var_10 == var_5)) && (var_11 == var_12)) {
            if ((var_6 != 0) && (var_10 = (*(type_7 *)PTR_closedir_000332c0)(var_6), var_10 != 0))
            break;
            if (var_13 == (type_5 *)(var_3 + (int)((int)var_20[-1].st_pad5 + 0x37))) {
              var_13 = (type_5 *)(var_7 + -2);
              *(char *)&var_13->st_dev = '/';
            }
            var_19 = (type_5 *)(var_3 + (int)var_20 + -(int)var_13);
            var_23 = var_19;
            (*(type_7 *)PTR_memmove_000333d8)();
            var_14 = var_2;
            if (var_1 == 0) {
              var_14 = (char *)(*(type_7 *)PTR_realloc_0003337c)(var_3);
              var_13 = var_19;
            }
            var_7 = var_14;
            if (var_14 == (char *)0x0) {
              var_7 = var_3;
            }
            goto LAB_0001f65c;
          }
          var_23 = (type_5 *)0x0;
          psVar24 = psVar13;
          psVar30 = (type_5 *)(*(type_7 *)PTR_openat64_00033358)(psVar30);
          if ((int)psVar30 < 0) {
            piVar15 = (int *)(*(type_7 *)PTR___errno_location_00033338)();
            var_15 = *piVar15;
            if (var_6 == 0) goto joined_r0x0001f71c;
            goto LAB_0001f638;
          }
          psVar24 = psVar30;
          var_23 = &st;
          var_15 = (*(type_7 *)PTR___fxstat64_0003339c)(3);
          if (var_15 != 0) {
            piVar15 = (int *)(*(type_7 *)PTR___errno_location_00033338)();
            var_15 = *piVar15;
            if (var_6 != 0) {
              (*(type_7 *)PTR_closedir_000332c0)(var_6);
            }
LAB_0001f70c:
            (*(type_7 *)PTR_close_000332c4)(psVar30);
            goto joined_r0x0001f71c;
          }
          if ((var_6 != 0) && (var_6 = (*(type_7 *)PTR_closedir_000332c0)(var_6), var_6 != 0)) {
            piVar15 = (int *)(*(type_7 *)PTR___errno_location_00033338)();
LAB_0001f708:
            var_15 = *piVar15;
            goto LAB_0001f70c;
          }
          iVar9 = st.st_ino._4_4_;
          iVar7 = st.st_ino._0_4_;
          var_17 = st.st_dev;
          var_6 = (*(type_7 *)PTR_fdopendir_00033300)(psVar30);
          piVar15 = (int *)(*(type_7 *)PTR___errno_location_00033338)();
          if (var_6 == 0) goto LAB_0001f708;
          bVar2 = true;
LAB_0001f418:
          do {
            do {
              puVar3 = PTR_readdir64_000332f0;
              *piVar15 = 0;
              var_16 = (int *)(*(type_7 *)puVar3)(var_6);
              if (var_16 == (int *)0x0) {
                var_15 = *piVar15;
                if (var_15 != 0) goto LAB_0001f638;
                if (bVar2) {
                  (*(type_7 *)PTR_rewinddir_000332a4)(var_6);
                  var_16 = (int *)(*(type_7 *)PTR_readdir64_000332f0)(var_6);
                  if (var_16 != (int *)0x0) {
                    bVar2 = false;
                    if (*(char *)((int)var_16 + 0x13) == '.') goto LAB_0001f5e0;
                    break;
                  }
                  var_15 = *piVar15;
                  if (var_15 != 0) goto LAB_0001f638;
                }
                var_15 = 2;
                *piVar15 = 2;
                goto LAB_0001f638;
              }
              if (*(char *)((int)var_16 + 0x13) == '.') {
LAB_0001f5e0:
                if ((*(char *)(var_16 + 5) == '\0') || ((var_16[5] & 0xffff0000U) == 0x2e000000))
                goto LAB_0001f418;
              }
            } while ((bVar2) &&
                    (((*var_16 != var_10 || (var_16[1] != var_11)) && (var_8 == var_17))));
            psVar23 = (type_5 *)((int)var_16 + 0x13);
            psVar24 = psVar30;
            var_23 = psVar23;
            var_15 = (*(type_7 *)PTR___fxstatat64_000333a8)(3,psVar30,psVar23,&st,0x100);
          } while ((((var_15 != 0) || ((st.st_mode & 0xf000) != 0x4000)) || (st.st_dev != var_8)
                   ) || ((st.st_ino._0_4_ != var_10 || (st.st_ino._4_4_ != var_11))));
          var_18 = (type_5 *)((int)var_13 - (int)var_3);
          var_19 = (type_5 *)(*(type_7 *)PTR_strlen_0003335c)(psVar23);
          if (var_18 <= var_19) {
            if (var_1 != 0) {
              var_15 = 0x22;
              *piVar15 = 0x22;
              goto LAB_0001f638;
            }
            psVar21 = var_20;
            if (var_20 < var_19) {
              psVar21 = var_19;
            }
            var_21 = (type_5 *)((int)var_20->st_pad1 + (int)(psVar21->st_pad1 + -2));
            if ((var_21 < var_20) ||
               (psVar24 = var_21, var_7 = (char *)(*(type_7 *)PTR_realloc_0003337c)(var_3),
               var_7 == (char *)0x0)) goto LAB_0001f838;
            var_13 = (type_5 *)(*(type_7 *)PTR_memcpy_000333d0)
                                         (var_7 + (int)((int)psVar21 + (int)var_18),
                                          var_7 + (int)var_18,(int)var_20 - (int)var_18);
            var_3 = var_7;
            var_20 = var_21;
          }
          var_7 = (char *)(*(type_7 *)PTR_memcpy_000333d0)((int)var_13 - (int)var_19);
          var_7[-1] = '/';
          var_11 = iVar9;
          var_8 = var_17;
          var_10 = iVar7;
        } while( true );
      }
    }
    piVar15 = (int *)(*(type_7 *)PTR___errno_location_00033338)();
    var_15 = *piVar15;
    psVar24 = psVar23;
    var_23 = var_19;
    goto joined_r0x0001f71c;
  }
  if (var_2 == (char *)0x0) {
    var_20 = (type_5 *)0x1000;
LAB_0001f288:
    var_13 = (type_5 *)var_1;
    var_3 = (char *)(*(type_7 *)PTR_malloc_00033378)(var_20);
    var_7 = var_3;
    if (var_3 != (char *)0x0) goto LAB_0001f2bc;
  }
  else {
    puVar18 = (type_6 *)(*(type_7 *)PTR___errno_location_00033338)();
    var_3 = (char *)0x0;
    *puVar18 = 0x16;
    var_13 = (type_5 *)var_1;
    var_7 = var_3;
  }
  goto LAB_0001f65c;
LAB_0001f838:
  var_15 = 0xc;
  *piVar15 = 0xc;
LAB_0001f638:
  (*(type_7 *)PTR_closedir_000332c0)(var_6);
joined_r0x0001f71c:
  if (var_2 == (char *)0x0) {
    (*(type_7 *)PTR_free_000333d4)(var_3);
  }
  *piVar15 = var_15;
  var_3 = (char *)0x0;
  var_13 = psVar24;
  var_7 = var_3;
LAB_0001f65c:
  var_3 = var_7;
  if (var_22 == *(type_4 **)puVar4) {
    return var_3;
  }
  (*(type_7 *)PTR___stack_chk_fail_000333b0)();
  var_24 = (type_4)var_13 & 0xff;
  if (var_23 == (type_5 *)0x0) {
    return (char *)0x0;
  }
  while (((type_4)var_22 & 3) != 0) {
    var_23 = (type_5 *)((int)var_23[-1].st_pad5 + 0x37);
    if (*(type_1 *)var_22 == var_24) {
      return (char *)var_22;
    }
    var_22 = (type_4 *)((int)var_22 + 1);
    if (var_23 == (type_5 *)0x0) {
      return (char *)0x0;
    }
  }
  var_25 = ((type_4)var_13 & 0xff) << 8 | (type_4)var_13 & 0xff;
  var_25 = var_25 << 0x10 | var_25;
  if ((type_5 *)0x3 < var_23) {
    var_26 = var_25 ^ *var_22;
    if ((var_26 + 0xfefefeff & ~var_26 & 0x80808080) != 0) {
      var_27 = *(type_1 *)var_22;
      goto LAB_0001f934;
    }
    do {
      var_23 = (type_5 *)(var_23[-1].st_pad5 + 0xd);
      var_22 = var_22 + 1;
      if (var_23 < (type_5 *)0x4) {
        if (var_23 == (type_5 *)0x0) {
          return (char *)0x0;
        }
        break;
      }
      var_26 = var_25 ^ *var_22;
    } while ((var_26 + 0xfefefeff & ~var_26 & 0x80808080) == 0);
  }
  var_27 = *(type_1 *)var_22;
LAB_0001f934:
  if (var_27 == var_24) {
    return (char *)var_22;
  }
  var_28 = (type_4 *)((int)var_22 + (int)var_23);
  do {
    var_22 = (type_4 *)((int)var_22 + 1);
    if (var_28 == var_22) {
      return (char *)0x0;
    }
  } while (*(type_1 *)var_22 != var_24);
  return (char *)var_22;
}


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

uint * MASKED(uint *param_1,int *param_2,int *param_3)

{
  byte bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int *piVar12;
  int iVar13;
  int *piVar14;
  int *piVar15;
  undefined4 *puVar16;
  int iVar17;
  uint uVar18;
  int *piVar19;
  uint *puVar20;
  int *piVar21;
  int *piVar22;
  uint uVar23;
  uint uVar24;
  undefined1 *puVar25;
  int *piVar26;
  int *piVar27;
  int *piVar28;
  uint *local_108;
  int local_104;
  uint *local_100;
  int local_fc;
  int *local_f8;
  int *local_e0;
  int local_d0 [4];
  int local_c0;
  int local_bc;
  uint local_b8;
  uint *local_2c;
  
  puVar4 = PTR___stack_chk_guard_000333cc;
  local_2c = *(uint **)PTR___stack_chk_guard_000333cc;
  if (param_2 != (int *)0x0) {
    local_108 = param_1;
    local_f8 = param_2;
    if (param_1 == (uint *)0x0) goto LAB_0001f288;
LAB_0001f2bc:
    puVar3 = PTR___lxstat64_000332cc;
    puVar25 = (undefined1 *)((int)local_108 + (int)local_f8);
    piVar21 = (int *)(PTR_LAB_00033108 + 0x2744);
    puVar25[-1] = 0;
    piVar15 = local_d0;
    iVar10 = (*(code *)puVar3)(3);
    iVar17 = local_c0;
    if (-1 < iVar10) {
      local_104 = local_d0[0];
      piVar21 = (int *)(PTR_LAB_00033108 + 0x28ec);
      local_fc = local_bc;
      piVar15 = local_d0;
      iVar11 = (*(code *)PTR___lxstat64_000332cc)(3);
      iVar8 = local_bc;
      iVar6 = local_c0;
      iVar10 = local_d0[0];
      if (-1 < iVar11) {
        iVar11 = 0;
        piVar28 = (int *)0xffffff9c;
        piVar12 = (int *)(PTR_LAB_00033108 + 0x2740);
        do {
          local_e0 = (int *)(puVar25 + -1);
          if (((local_104 == iVar10) && (iVar17 == iVar6)) && (local_fc == iVar8)) {
            if ((iVar11 != 0) && (iVar17 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar17 != 0))
            break;
            if (local_e0 == (int *)((int)local_108 + (int)((int)local_f8 + -1))) {
              local_e0 = (int *)(puVar25 + -2);
              *(undefined1 *)local_e0 = 0x2f;
            }
            piVar15 = (int *)((undefined1 *)((int)local_108 + (int)local_f8) + -(int)local_e0);
            param_3 = piVar15;
            (*(code *)PTR_memmove_000333d8)();
            local_100 = param_1;
            if (param_2 == (int *)0x0) {
              local_100 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108);
              local_e0 = piVar15;
            }
            puVar20 = local_100;
            if (local_100 == (uint *)0x0) {
              puVar20 = local_108;
            }
            goto LAB_0001f65c;
          }
          param_3 = (int *)0x0;
          piVar22 = piVar12;
          piVar28 = (int *)(*(code *)PTR_openat64_00033358)(piVar28);
          if ((int)piVar28 < 0) {
            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
            iVar13 = *piVar14;
            if (iVar11 == 0) goto joined_r0x0001f71c;
            goto LAB_0001f638;
          }
          piVar22 = piVar28;
          param_3 = local_d0;
          iVar13 = (*(code *)PTR___fxstat64_0003339c)(3);
          if (iVar13 != 0) {
            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
            iVar13 = *piVar14;
            if (iVar11 != 0) {
              (*(code *)PTR_closedir_000332c0)(iVar11);
            }
LAB_0001f70c:
            (*(code *)PTR_close_000332c4)(piVar28);
            goto joined_r0x0001f71c;
          }
          if ((iVar11 != 0) && (iVar11 = (*(code *)PTR_closedir_000332c0)(iVar11), iVar11 != 0)) {
            piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
LAB_0001f708:
            iVar13 = *piVar14;
            goto LAB_0001f70c;
          }
          iVar9 = local_bc;
          iVar7 = local_c0;
          iVar5 = local_d0[0];
          iVar11 = (*(code *)PTR_fdopendir_00033300)(piVar28);
          piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
          if (iVar11 == 0) goto LAB_0001f708;
          bVar2 = true;
LAB_0001f418:
          do {
            do {
              puVar3 = PTR_readdir64_000332f0;
              *piVar14 = 0;
              piVar21 = (int *)(*(code *)puVar3)(iVar11);
              if (piVar21 == (int *)0x0) {
                iVar13 = *piVar14;
                if (iVar13 != 0) goto LAB_0001f638;
                if (bVar2) {
                  (*(code *)PTR_rewinddir_000332a4)(iVar11);
                  piVar21 = (int *)(*(code *)PTR_readdir64_000332f0)(iVar11);
                  if (piVar21 != (int *)0x0) {
                    bVar2 = false;
                    if (*(char *)((int)piVar21 + 0x13) == '.') goto LAB_0001f5e0;
                    break;
                  }
                  iVar13 = *piVar14;
                  if (iVar13 != 0) goto LAB_0001f638;
                }
                iVar13 = 2;
                *piVar14 = 2;
                goto LAB_0001f638;
              }
              if (*(char *)((int)piVar21 + 0x13) == '.') {
LAB_0001f5e0:
                if ((*(char *)(piVar21 + 5) == '\0') || ((piVar21[5] & 0xffff0000U) == 0x2e000000))
                goto LAB_0001f418;
              }
            } while ((bVar2) &&
                    (((*piVar21 != iVar17 || (piVar21[1] != local_fc)) && (local_104 == iVar5))));
            piVar21 = (int *)((int)piVar21 + 0x13);
            piVar22 = piVar28;
            param_3 = piVar21;
            iVar13 = (*(code *)PTR___fxstatat64_000333a8)(3,piVar28,piVar21,local_d0,0x100);
          } while ((((iVar13 != 0) || ((local_b8 & 0xf000) != 0x4000)) || (local_d0[0] != local_104)
                   ) || ((local_c0 != iVar17 || (local_bc != local_fc))));
          piVar27 = (int *)((int)local_e0 - (int)local_108);
          piVar15 = (int *)(*(code *)PTR_strlen_0003335c)(piVar21);
          if (piVar27 <= piVar15) {
            if (param_2 != (int *)0x0) {
              iVar13 = 0x22;
              *piVar14 = 0x22;
              goto LAB_0001f638;
            }
            piVar19 = local_f8;
            if (local_f8 < piVar15) {
              piVar19 = piVar15;
            }
            piVar26 = (int *)((int)piVar19 + (int)local_f8);
            if ((piVar26 < local_f8) ||
               (piVar22 = piVar26, puVar20 = (uint *)(*(code *)PTR_realloc_0003337c)(local_108),
               puVar20 == (uint *)0x0)) goto LAB_0001f838;
            local_e0 = (int *)(*(code *)PTR_memcpy_000333d0)
                                        ((undefined1 *)
                                         ((int)puVar20 + (int)((int)piVar19 + (int)piVar27)),
                                         (undefined1 *)((int)puVar20 + (int)piVar27),
                                         (int)local_f8 - (int)piVar27);
            local_108 = puVar20;
            local_f8 = piVar26;
          }
          puVar25 = (undefined1 *)(*(code *)PTR_memcpy_000333d0)((int)local_e0 - (int)piVar15);
          puVar25[-1] = 0x2f;
          local_fc = iVar9;
          local_104 = iVar5;
          iVar17 = iVar7;
        } while( true );
      }
    }
    piVar14 = (int *)(*(code *)PTR___errno_location_00033338)();
    iVar13 = *piVar14;
    piVar22 = piVar21;
    param_3 = piVar15;
    goto joined_r0x0001f71c;
  }
  if (param_1 == (uint *)0x0) {
    local_f8 = (int *)0x1000;
LAB_0001f288:
    local_e0 = param_2;
    local_108 = (uint *)(*(code *)PTR_malloc_00033378)(local_f8);
    puVar20 = local_108;
    if (local_108 != (uint *)0x0) goto LAB_0001f2bc;
  }
  else {
    puVar16 = (undefined4 *)(*(code *)PTR___errno_location_00033338)();
    local_108 = (uint *)0x0;
    *puVar16 = 0x16;
    local_e0 = param_2;
    puVar20 = local_108;
  }
  goto LAB_0001f65c;
LAB_0001f838:
  iVar13 = 0xc;
  *piVar14 = 0xc;
LAB_0001f638:
  (*(code *)PTR_closedir_000332c0)(iVar11);
joined_r0x0001f71c:
  if (param_1 == (uint *)0x0) {
    (*(code *)PTR_free_000333d4)(local_108);
  }
  *piVar14 = iVar13;
  local_108 = (uint *)0x0;
  local_e0 = piVar22;
  puVar20 = local_108;
LAB_0001f65c:
  local_108 = puVar20;
  if (local_2c == *(uint **)puVar4) {
    return local_108;
  }
  (*(code *)PTR___stack_chk_fail_000333b0)();
  uVar24 = (uint)local_e0 & 0xff;
  if (param_3 == (int *)0x0) {
    return (uint *)0x0;
  }
  while (((uint)local_2c & 3) != 0) {
    param_3 = (int *)((int)param_3 + -1);
    if (*(byte *)local_2c == uVar24) {
      return local_2c;
    }
    local_2c = (uint *)((int)local_2c + 1);
    if (param_3 == (int *)0x0) {
      return (uint *)0x0;
    }
  }
  uVar23 = ((uint)local_e0 & 0xff) << 8 | (uint)local_e0 & 0xff;
  uVar23 = uVar23 << 0x10 | uVar23;
  if ((int *)0x3 < param_3) {
    uVar18 = uVar23 ^ *local_2c;
    if ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) != 0) {
      bVar1 = *(byte *)local_2c;
      goto LAB_0001f934;
    }
    do {
      param_3 = param_3 + -1;
      local_2c = local_2c + 1;
      if (param_3 < (int *)0x4) {
        if (param_3 == (int *)0x0) {
          return (uint *)0x0;
        }
        break;
      }
      uVar18 = uVar23 ^ *local_2c;
    } while ((uVar18 + 0xfefefeff & ~uVar18 & 0x80808080) == 0);
  }
  bVar1 = *(byte *)local_2c;
LAB_0001f934:
  if (bVar1 == uVar24) {
    return local_2c;
  }
  puVar20 = (uint *)((int)local_2c + (int)param_3);
  do {
    local_2c = (uint *)((int)local_2c + 1);
    if (puVar20 == local_2c) {
      return (uint *)0x0;
    }
  } while (*(byte *)local_2c != uVar24);
  return local_2c;
}

