
int gnu_fnmatch(char *pattern,char *string,int flags)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  wchar_t ****ppppwVar4;
  int *piVar5;
  int *piVar6;
  undefined4 *puVar7;
  int iVar8;
  wchar_t ****ppppwVar9;
  uint uVar10;
  wchar_t ****ppppwVar11;
  wchar_t ****string_00;
  uint uVar12;
  wchar_t ****unaff_s2;
  wchar_t ***pppwVar13;
  int unaff_s3;
  wchar_t ****unaff_s4;
  wchar_t ****unaff_s5;
  int iVar14;
  wchar_t ****ppppwVar15;
  mbstate_t *unaff_s6;
  wchar_t ****ppppwVar16;
  undefined4 unaff_s7;
  undefined *puVar17;
  code *pcVar18;
  undefined *puVar19;
  int iVar20;
  undefined1 *puVar21;
  undefined4 uVar22;
  undefined1 auStackY_60 [16];
  wchar_t ***local_40;
  char *local_3c [2];
  mbstate_t ps;
  
  puVar21 = auStackY_60;
  iVar2 = *(int *)PTR___stack_chk_guard_0004a5fc;
  local_40 = (wchar_t ***)string;
  local_3c[0] = pattern;
  iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();
  if (iVar3 == 1) {
LAB_0002e288:
    string_00 = (wchar_t ****)local_40;
    iVar3 = (*(code *)PTR_strlen_0004a53c)(local_40);
    ppppwVar4 = (wchar_t ****)
                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),
                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);
    puVar21 = auStackY_60;
  }
  else {
    ps.__count = 0;
    ps.__value.__wch = 0;
    iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);
    uVar12 = iVar3 + 1;
    if (uVar12 == 0) goto LAB_0002e288;
    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);
    if (iVar3 == 0) {
      iVar2 = (*(code *)PTR___assert_fail_0004a460)
                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,
                         PTR_DAT_0004a224 + -0x6918);
      return iVar2;
    }
    string_00 = &local_40;
    unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps);
    unaff_s3 = (int)unaff_s2 + 1;
    if (unaff_s3 == 0) goto LAB_0002e288;
    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);
    uVar10 = uVar12 + unaff_s3;
    if (iVar3 == 0) {
      iVar2 = (*(code *)PTR___assert_fail_0004a460)
                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,
                         PTR_DAT_0004a224 + -0x6918);
      return iVar2;
    }
    if ((uVar10 < uVar12) || (0x3fffffff < uVar10)) {
      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();
      *puVar7 = 0xc;
      ppppwVar4 = (wchar_t ****)0xffffffff;
    }
    else if (uVar10 < 2000) {
      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);
      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);
      unaff_s6 = &ps;
      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);
      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);
      unaff_s4 = unaff_s5 + uVar12;
      if (iVar8 == 0) {
LAB_0002e5c4:
        iVar2 = (*(code *)PTR___assert_fail_0004a460)
                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,
                           PTR_DAT_0004a224 + -0x6918);
        return iVar2;
      }
      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);
      *(int *)(&stack0xffffffb0 + iVar3) = flags;
      string_00 = unaff_s4;
      ppppwVar4 = (wchar_t ****)
                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,
                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),
                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),
                                    *(int *)(&stack0xffffffb0 + iVar3));
      puVar21 = auStackY_60 + iVar3;
    }
    else {
      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);
      if (unaff_s4 == (wchar_t ****)0x0) {
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();
        *puVar7 = 0xc;
        ppppwVar4 = (wchar_t ****)0xffffffff;
        puVar21 = auStackY_60;
      }
      else {
        unaff_s5 = unaff_s4 + uVar12;
        unaff_s6 = &ps;
        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);
        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);
        if (iVar3 == 0) goto LAB_0002e5c4;
        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);
        string_00 = unaff_s5;
        ppppwVar4 = (wchar_t ****)
                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,
                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),
                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);
        (*(code *)PTR_free_0004a608)(unaff_s4);
        puVar21 = auStackY_60;
      }
    }
  }
  if (iVar2 == *(int *)PTR___stack_chk_guard_0004a5fc) {
    return (int)ppppwVar4;
  }
  uVar22 = 0x2e5f8;
  puVar17 = PTR___stack_chk_fail_0004a5d0;
  (*(code *)PTR___stack_chk_fail_0004a5d0)();
  puVar19 = puVar17 + 0x23be0;
  *(undefined4 *)(puVar21 + -4) = uVar22;
  *(undefined1 **)(puVar21 + -8) = auStackY_60;
  *(undefined4 *)(puVar21 + -0xc) = unaff_s7;
  *(mbstate_t **)(puVar21 + -0x10) = unaff_s6;
  *(wchar_t *****)(puVar21 + -0x14) = unaff_s5;
  *(wchar_t *****)(puVar21 + -0x18) = unaff_s4;
  *(int *)(puVar21 + -0x1c) = unaff_s3;
  *(wchar_t *****)(puVar21 + -0x20) = unaff_s2;
  *(int *)(puVar21 + -0x24) = flags;
  *(wchar_t *****)(puVar21 + -0x28) = ppppwVar4;
  *(undefined **)(puVar21 + -0x110) = puVar19;
  *(int *)(puVar21 + -0x100) = iVar2;
  *(wchar_t *****)(puVar21 + 4) = string_00;
  *(undefined4 *)(puVar21 + -0x2c) = **(undefined4 **)(puVar17 + 0x1bffc);
  if (string_00 != (wchar_t ****)0x0) {
    if (*(int *)(puVar21 + -0x100) == 0) {
      *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);
      goto LAB_0002e664;
    }
    *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);
    *(undefined4 *)(puVar21 + -0x104) = *(undefined4 *)(puVar21 + -0x100);
LAB_0002e6bc:
    iVar2 = *(int *)(puVar21 + -0x104);
    iVar8 = *(int *)(puVar21 + -0xf0);
    *(undefined1 *)(iVar2 + iVar8 + -1) = 0;
    ppppwVar11 = (wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c);
    iVar3 = (**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);
    iVar20 = *(int *)(puVar21 + -0x110);
    if (iVar3 < 0) {
      flags = 0;
      ppppwVar16 = (wchar_t ****)0xffffff9c;
    }
    else {
      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);
      iVar14 = *(int *)(puVar21 + -0xc0);
      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);
      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);
      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);
      iVar20 = *(int *)(puVar21 + -0x110);
      if (-1 < iVar3) {
        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;
        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);
        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);
        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);
        iVar2 = 0;
        ppppwVar16 = (wchar_t ****)0xffffff9c;
        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;
        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);
        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;
LAB_0002e768:
        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||
            (iVar14 != *(int *)(puVar21 + -0xe4))) ||
           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {
          string_00 = *(wchar_t *****)(puVar21 + -0xec);
          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);
          if ((int)ppppwVar16 < 0) {
            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();
            puVar19 = *(undefined **)(puVar21 + -0x110);
            ppppwVar4 = (wchar_t ****)*piVar5;
            if (iVar2 == 0) goto LAB_0002e888;
            flags = 0;
          }
          else {
            string_00 = ppppwVar16;
            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))
                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));
            iVar20 = *(int *)(puVar21 + -0x110);
            if (iVar3 == 0) {
              if (iVar2 != 0) {
                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);
                iVar20 = *(int *)(puVar21 + -0x110);
                flags = 1;
                ppppwVar11 = string_00;
                if (iVar2 != 0) goto LAB_0002ec18;
              }
              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);
              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);
              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);
              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);
              iVar20 = *(int *)(puVar21 + -0x110);
              if (iVar2 != 0) {
                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();
                puVar19 = *(undefined **)(puVar21 + -0x110);
                bVar1 = true;
                unaff_s2 = (wchar_t ****)0x100;
LAB_0002e958:
                *piVar5 = 0;
                do {
                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);
                  puVar19 = *(undefined **)(puVar21 + -0x110);
                  if (piVar6 == (int *)0x0) {
                    if (*piVar5 != 0) goto LAB_0002e864;
                    if (!bVar1) {
                      *piVar5 = 2;
                      goto LAB_0002e864;
                    }
                    (**(code **)(puVar19 + -0x7d90))(iVar2);
                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);
                    puVar19 = *(undefined **)(puVar21 + -0x110);
                    if (piVar6 == (int *)0x0) {
                      if (*piVar5 == 0) {
                        *piVar5 = 2;
                      }
                      goto LAB_0002e864;
                    }
                    bVar1 = false;
                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;
                  }
                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;
                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;
                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;
                  *piVar5 = 0;
                } while( true );
              }
              flags = 1;
              ppppwVar11 = string_00;
              goto LAB_0002ec18;
            }
            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();
            puVar19 = *(undefined **)(puVar21 + -0x110);
            ppppwVar4 = (wchar_t ****)*piVar5;
            if (iVar2 == 0) goto LAB_0002ec64;
            flags = 1;
          }
          goto LAB_0002e86c;
        }
        if (iVar2 != 0) {
          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);
          iVar20 = *(int *)(puVar21 + -0x110);
          flags = 0;
          if (iVar2 != 0) goto LAB_0002ec18;
        }
        iVar2 = *(int *)(puVar21 + -0xe0);
        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {
          *(undefined1 *)(iVar2 + -1) = 0x2f;
          *(int *)(puVar21 + -0xe0) = iVar2 + -1;
        }
        ppppwVar4 = (wchar_t ****)
                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -
                    *(int *)(puVar21 + -0xe0));
        (**(code **)(iVar20 + -0x7bd0))
                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);
        puVar19 = *(undefined **)(puVar21 + -0x110);
        string_00 = ppppwVar4;
        if (*(int *)(puVar21 + 4) == 0) {
          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));
          puVar19 = *(undefined **)(puVar21 + -0x110);
          *(undefined4 *)(puVar21 + -0x100) = uVar22;
        }
        iVar2 = *(int *)(puVar21 + -0x100);
        if (*(int *)(puVar21 + -0x100) == 0) {
          iVar2 = *(int *)(puVar21 + -0x104);
        }
        *(int *)(puVar21 + -0x104) = iVar2;
        goto LAB_0002e89c;
      }
      flags = 0;
      ppppwVar16 = (wchar_t ****)0xffffff9c;
    }
LAB_0002ec18:
    piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();
    puVar19 = *(undefined **)(puVar21 + -0x110);
    ppppwVar4 = (wchar_t ****)*piVar5;
    string_00 = ppppwVar11;
    goto LAB_0002e880;
  }
  if (iVar2 == 0) {
    *(undefined4 *)(puVar21 + -0xf0) = 0x1000;
LAB_0002e664:
    iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0));
    puVar19 = *(undefined **)(puVar21 + -0x110);
    *(int *)(puVar21 + -0x104) = iVar2;
    if (iVar2 == 0) {
      iVar2 = *(int *)(puVar21 + -0x104);
      goto LAB_0002e8a0;
    }
    goto LAB_0002e6bc;
  }
  puVar7 = (undefined4 *)(**(code **)(puVar17 + 0x1bf18))();
  puVar19 = *(undefined **)(puVar21 + -0x110);
  *puVar7 = 0x16;
  *(undefined4 *)(puVar21 + -0x104) = 0;
  goto LAB_0002e89c;
LAB_0002e984:
  if (bVar1) {
    if ((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))) {
      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);
    }
    else {
      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;
      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);
    }
  }
  else {
LAB_0002e91c:
    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);
  }
  *(undefined4 *)(puVar21 + -0x118) = 0x100;
  string_00 = ppppwVar16;
  iVar3 = (**(code **)(puVar19 + -0x7c30))
                    (3,ppppwVar16,ppppwVar11,*(undefined4 *)(puVar21 + -0x108));
  puVar19 = *(undefined **)(puVar21 + -0x110);
  if (((iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)) ||
     ((*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||
      ((*(int *)(puVar21 + -0xc0) != iVar14 ||
       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))))) goto LAB_0002e958;
  unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104));
  flags = (**(code **)(puVar19 + -0x7ca4))(ppppwVar11);
  puVar19 = *(undefined **)(puVar21 + -0x110);
  if (unaff_s2 <= (uint)flags) {
    ppppwVar4 = *(wchar_t *****)(puVar21 + -0xf0);
    if (*(int *)(puVar21 + 4) != 0) {
      *piVar5 = 0x22;
      goto LAB_0002e864;
    }
    ppppwVar9 = ppppwVar4;
    if (ppppwVar4 < (uint)flags) {
      ppppwVar9 = (wchar_t ****)flags;
    }
    ppppwVar15 = (wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4);
    if (ppppwVar15 < ppppwVar4) goto LAB_0002eb28;
    string_00 = ppppwVar15;
    iVar3 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));
    puVar19 = *(undefined **)(puVar21 + -0x110);
    if (iVar3 == 0) goto LAB_0002eb28;
    uVar22 = (**(code **)(puVar19 + -0x7be0))
                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,
                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2);
    puVar19 = *(undefined **)(puVar21 + -0x110);
    *(undefined4 *)(puVar21 + -0xe0) = uVar22;
    *(wchar_t *****)(puVar21 + -0xf0) = ppppwVar15;
    *(int *)(puVar21 + -0x104) = iVar3;
  }
  unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - flags);
  (**(code **)(puVar19 + -0x7be0))(unaff_s2,ppppwVar11,flags);
  iVar20 = *(int *)(puVar21 + -0x110);
  *(int *)(puVar21 + -0xe0) = (int)unaff_s2 + -1;
  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;
  iVar14 = *(int *)(puVar21 + -0xd8);
  *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xd4);
  *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xf4);
  goto LAB_0002e768;
LAB_0002eb28:
  *piVar5 = 0xc;
LAB_0002e864:
  ppppwVar4 = (wchar_t ****)*piVar5;
  flags = 0;
LAB_0002e86c:
  (**(code **)(puVar19 + -0x7d6c))(iVar2);
  puVar19 = *(undefined **)(puVar21 + -0x110);
LAB_0002e880:
  if ((wchar_t ****)flags == (wchar_t ****)0x0) {
LAB_0002e888:
    iVar2 = *(int *)(puVar21 + -0x100);
  }
  else {
LAB_0002ec64:
    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);
    puVar19 = *(undefined **)(puVar21 + -0x110);
    iVar2 = *(int *)(puVar21 + -0x100);
  }
  if (iVar2 == 0) {
    (**(code **)(puVar19 + -0x7bd8))(*(undefined4 *)(puVar21 + -0x104));
    puVar19 = *(undefined **)(puVar21 + -0x110);
    *piVar5 = (int)ppppwVar4;
  }
  else {
    *piVar5 = (int)ppppwVar4;
  }
  *(undefined4 *)(puVar21 + -0x104) = 0;
LAB_0002e89c:
  iVar2 = *(int *)(puVar21 + -0x104);
LAB_0002e8a0:
  iVar3 = *(int *)(puVar21 + -0x2c);
  if (iVar3 != **(int **)(puVar19 + -0x7be4)) {
    pcVar18 = *(code **)(puVar19 + -0x7c10);
    uVar22 = 0x2ecac;
    (*pcVar18)();
    *(undefined4 *)(puVar21 + -300) = uVar22;
    *(wchar_t *****)(puVar21 + -0x130) = unaff_s2;
    *(int *)(puVar21 + -0x134) = flags;
    *(wchar_t *****)(puVar21 + -0x138) = ppppwVar4;
    *(code **)(puVar21 + -0x140) = pcVar18 + 0x23530;
    if (iVar3 == 0) {
      puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();
      *puVar7 = 0x7a;
      iVar3 = -1;
    }
    else if (iVar3 == 10) {
      pppwVar13 = *string_00;
      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);
      if (iVar2 == 0) {
        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);
        iVar2 = *(int *)(puVar21 + -0x140);
        *string_00 = (wchar_t ***)0x0;
        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();
        *puVar7 = 0x3d;
        iVar3 = -1;
      }
    }
    return iVar3;
  }
  return iVar2;
}



undefined4 **** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)

{
  bool bVar1;
  int iVar2;
  undefined4 ****ppppuVar3;
  undefined4 ****ppppuVar4;
  int iVar5;
  int *piVar6;
  int *piVar7;
  undefined4 *puVar8;
  int iVar9;
  undefined4 ****ppppuVar10;
  uint uVar11;
  undefined4 ****ppppuVar12;
  undefined4 ****ppppuVar13;
  uint uVar14;
  undefined4 ****unaff_s2;
  undefined4 ***pppuVar15;
  int unaff_s3;
  undefined4 ****unaff_s4;
  undefined4 ****unaff_s5;
  int iVar16;
  undefined4 ****ppppuVar17;
  undefined4 *unaff_s6;
  undefined4 unaff_s7;
  undefined *puVar18;
  code *pcVar19;
  undefined *puVar20;
  int iVar21;
  undefined1 *puVar22;
  undefined4 uVar23;
  undefined1 auStack_60 [16];
  undefined4 ***local_50 [2];
  undefined4 ***local_40;
  undefined4 local_3c [2];
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  
  puVar22 = auStack_60;
  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;
  local_40 = param_2;
  local_3c[0] = param_1;
  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();
  if (iVar2 == 1) {
LAB_0002e288:
    ppppuVar13 = (undefined4 ****)local_40;
    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);
    local_50[0] = param_3;
    ppppuVar3 = (undefined4 ****)
                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,
                             (uint)((int)param_3 << 0x1d) >> 0x1f);
    puVar22 = auStack_60;
  }
  else {
    local_34 = 0;
    local_30 = 0;
    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);
    uVar14 = iVar2 + 1;
    if (uVar14 == 0) goto LAB_0002e288;
    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);
    if (iVar2 == 0) {
      ppppuVar13 = (undefined4 ****)
                   (*(code *)PTR___assert_fail_0004a460)
                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,
                              PTR_DAT_0004a224 + -0x6918);
      return ppppuVar13;
    }
    ppppuVar13 = &local_40;
    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);
    unaff_s3 = (int)unaff_s2 + 1;
    if (unaff_s3 == 0) goto LAB_0002e288;
    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);
    uVar11 = uVar14 + unaff_s3;
    if (iVar2 == 0) {
      ppppuVar13 = (undefined4 ****)
                   (*(code *)PTR___assert_fail_0004a460)
                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,
                              PTR_DAT_0004a224 + -0x6918);
      return ppppuVar13;
    }
    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {
      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();
      *puVar8 = 0xc;
      ppppuVar3 = (undefined4 ****)0xffffffff;
    }
    else if (uVar11 < 2000) {
      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);
      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);
      unaff_s6 = &local_34;
      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);
      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);
      unaff_s4 = unaff_s5 + uVar14;
      if (iVar5 == 0) {
LAB_0002e5c4:
        ppppuVar13 = (undefined4 ****)
                     (*(code *)PTR___assert_fail_0004a460)
                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,
                                PTR_DAT_0004a224 + -0x6918);
        return ppppuVar13;
      }
      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);
      *(undefined4 *****)((int)local_50 + iVar2) = param_3;
      ppppuVar13 = unaff_s4;
      ppppuVar3 = (undefined4 ****)
                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,
                               (uint)((int)param_3 << 0x1d) >> 0x1f);
      puVar22 = auStack_60 + iVar2;
    }
    else {
      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);
      if (unaff_s4 == (undefined4 ****)0x0) {
        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();
        *puVar8 = 0xc;
        ppppuVar3 = (undefined4 ****)0xffffffff;
        puVar22 = auStack_60;
      }
      else {
        unaff_s5 = unaff_s4 + uVar14;
        unaff_s6 = &local_34;
        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);
        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);
        if (iVar2 == 0) goto LAB_0002e5c4;
        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);
        ppppuVar13 = unaff_s5;
        local_50[0] = param_3;
        ppppuVar3 = (undefined4 ****)
                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,
                                 (uint)((int)param_3 << 0x1d) >> 0x1f);
        (*(code *)PTR_free_0004a608)(unaff_s4);
        puVar22 = auStack_60;
      }
    }
  }
  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {
    return ppppuVar3;
  }
  uVar23 = 0x2e5f8;
  iVar2 = local_2c;
  puVar18 = PTR___stack_chk_fail_0004a5d0;
  (*(code *)PTR___stack_chk_fail_0004a5d0)();
  puVar20 = puVar18 + 0x23be0;
  *(undefined4 *)(puVar22 + -4) = uVar23;
  *(undefined1 **)(puVar22 + -8) = auStack_60;
  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;
  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;
  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;
  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;
  *(int *)(puVar22 + -0x1c) = unaff_s3;
  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;
  *(undefined4 *****)(puVar22 + -0x24) = param_3;
  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;
  *(undefined **)(puVar22 + -0x110) = puVar20;
  *(int *)(puVar22 + -0x100) = iVar2;
  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;
  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);
  if (ppppuVar13 != (undefined4 ****)0x0) {
    if (*(int *)(puVar22 + -0x100) == 0) {
      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);
      goto LAB_0002e664;
    }
    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);
    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);
LAB_0002e6bc:
    iVar2 = *(int *)(puVar22 + -0x104);
    iVar9 = *(int *)(puVar22 + -0xf0);
    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;
    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);
    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);
    iVar21 = *(int *)(puVar22 + -0x110);
    if (iVar5 < 0) {
      param_3 = (undefined4 ****)0x0;
      ppppuVar12 = (undefined4 ****)0xffffff9c;
    }
    else {
      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);
      iVar16 = *(int *)(puVar22 + -0xc0);
      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);
      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);
      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);
      iVar21 = *(int *)(puVar22 + -0x110);
      if (-1 < iVar5) {
        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;
        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);
        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);
        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);
        iVar2 = 0;
        ppppuVar12 = (undefined4 ****)0xffffff9c;
        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;
        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);
        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;
LAB_0002e768:
        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||
            (iVar16 != *(int *)(puVar22 + -0xe4))) ||
           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {
          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);
          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);
          if ((int)ppppuVar12 < 0) {
            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();
            puVar20 = *(undefined **)(puVar22 + -0x110);
            ppppuVar3 = (undefined4 ****)*piVar6;
            if (iVar2 == 0) goto LAB_0002e888;
            param_3 = (undefined4 ****)0x0;
          }
          else {
            ppppuVar13 = ppppuVar12;
            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))
                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));
            iVar21 = *(int *)(puVar22 + -0x110);
            if (iVar5 == 0) {
              if (iVar2 != 0) {
                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);
                iVar21 = *(int *)(puVar22 + -0x110);
                param_3 = (undefined4 ****)0x1;
                ppppuVar4 = ppppuVar13;
                if (iVar2 != 0) goto LAB_0002ec18;
              }
              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);
              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);
              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);
              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);
              iVar21 = *(int *)(puVar22 + -0x110);
              if (iVar2 != 0) {
                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();
                puVar20 = *(undefined **)(puVar22 + -0x110);
                bVar1 = true;
                unaff_s2 = (undefined4 ****)0x100;
LAB_0002e958:
                *piVar6 = 0;
                do {
                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);
                  puVar20 = *(undefined **)(puVar22 + -0x110);
                  if (piVar7 == (int *)0x0) {
                    if (*piVar6 != 0) goto LAB_0002e864;
                    if (!bVar1) {
                      *piVar6 = 2;
                      goto LAB_0002e864;
                    }
                    (**(code **)(puVar20 + -0x7d90))(iVar2);
                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);
                    puVar20 = *(undefined **)(puVar22 + -0x110);
                    if (piVar7 == (int *)0x0) {
                      if (*piVar6 == 0) {
                        *piVar6 = 2;
                      }
                      goto LAB_0002e864;
                    }
                    bVar1 = false;
                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;
                  }
                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;
                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;
                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;
                  *piVar6 = 0;
                } while( true );
              }
              param_3 = (undefined4 ****)0x1;
              ppppuVar4 = ppppuVar13;
              goto LAB_0002ec18;
            }
            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();
            puVar20 = *(undefined **)(puVar22 + -0x110);
            ppppuVar3 = (undefined4 ****)*piVar6;
            if (iVar2 == 0) goto LAB_0002ec64;
            param_3 = (undefined4 ****)0x1;
          }
          goto LAB_0002e86c;
        }
        if (iVar2 != 0) {
          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);
          iVar21 = *(int *)(puVar22 + -0x110);
          param_3 = (undefined4 ****)0x0;
          if (iVar2 != 0) goto LAB_0002ec18;
        }
        iVar2 = *(int *)(puVar22 + -0xe0);
        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {
          *(undefined1 *)(iVar2 + -1) = 0x2f;
          *(int *)(puVar22 + -0xe0) = iVar2 + -1;
        }
        ppppuVar3 = (undefined4 ****)
                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -
                    *(int *)(puVar22 + -0xe0));
        (**(code **)(iVar21 + -0x7bd0))
                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);
        puVar20 = *(undefined **)(puVar22 + -0x110);
        ppppuVar13 = ppppuVar3;
        if (*(int *)(puVar22 + 4) == 0) {
          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));
          puVar20 = *(undefined **)(puVar22 + -0x110);
          *(undefined4 *)(puVar22 + -0x100) = uVar23;
        }
        iVar2 = *(int *)(puVar22 + -0x100);
        if (*(int *)(puVar22 + -0x100) == 0) {
          iVar2 = *(int *)(puVar22 + -0x104);
        }
        *(int *)(puVar22 + -0x104) = iVar2;
        goto LAB_0002e89c;
      }
      param_3 = (undefined4 ****)0x0;
      ppppuVar12 = (undefined4 ****)0xffffff9c;
    }
LAB_0002ec18:
    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();
    puVar20 = *(undefined **)(puVar22 + -0x110);
    ppppuVar3 = (undefined4 ****)*piVar6;
    ppppuVar13 = ppppuVar4;
    goto LAB_0002e880;
  }
  if (iVar2 == 0) {
    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;
LAB_0002e664:
    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));
    puVar20 = *(undefined **)(puVar22 + -0x110);
    *(int *)(puVar22 + -0x104) = iVar2;
    if (iVar2 == 0) {
      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);
      goto LAB_0002e8a0;
    }
    goto LAB_0002e6bc;
  }
  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();
  puVar20 = *(undefined **)(puVar22 + -0x110);
  *puVar8 = 0x16;
  *(undefined4 *)(puVar22 + -0x104) = 0;
  goto LAB_0002e89c;
LAB_0002e984:
  if (bVar1) {
    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {
      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);
    }
    else {
      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;
      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);
    }
  }
  else {
LAB_0002e91c:
    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);
  }
  *(undefined4 *)(puVar22 + -0x118) = 0x100;
  ppppuVar13 = ppppuVar12;
  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))
  ;
  puVar20 = *(undefined **)(puVar22 + -0x110);
  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||
     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||
      ((*(int *)(puVar22 + -0xc0) != iVar16 ||
       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;
  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));
  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);
  puVar20 = *(undefined **)(puVar22 + -0x110);
  if (unaff_s2 <= param_3) {
    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);
    if (*(int *)(puVar22 + 4) != 0) {
      *piVar6 = 0x22;
      goto LAB_0002e864;
    }
    ppppuVar10 = ppppuVar3;
    if (ppppuVar3 < param_3) {
      ppppuVar10 = param_3;
    }
    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);
    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;
    ppppuVar13 = ppppuVar17;
    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));
    puVar20 = *(undefined **)(puVar22 + -0x110);
    if (iVar5 == 0) goto LAB_0002eb28;
    uVar23 = (**(code **)(puVar20 + -0x7be0))
                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,
                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);
    puVar20 = *(undefined **)(puVar22 + -0x110);
    *(undefined4 *)(puVar22 + -0xe0) = uVar23;
    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;
    *(int *)(puVar22 + -0x104) = iVar5;
  }
  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);
  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);
  iVar21 = *(int *)(puVar22 + -0x110);
  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;
  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;
  iVar16 = *(int *)(puVar22 + -0xd8);
  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);
  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);
  goto LAB_0002e768;
LAB_0002eb28:
  *piVar6 = 0xc;
LAB_0002e864:
  ppppuVar3 = (undefined4 ****)*piVar6;
  param_3 = (undefined4 ****)0x0;
LAB_0002e86c:
  (**(code **)(puVar20 + -0x7d6c))(iVar2);
  puVar20 = *(undefined **)(puVar22 + -0x110);
LAB_0002e880:
  if (param_3 == (undefined4 ****)0x0) {
LAB_0002e888:
    iVar2 = *(int *)(puVar22 + -0x100);
  }
  else {
LAB_0002ec64:
    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);
    puVar20 = *(undefined **)(puVar22 + -0x110);
    iVar2 = *(int *)(puVar22 + -0x100);
  }
  if (iVar2 == 0) {
    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));
    puVar20 = *(undefined **)(puVar22 + -0x110);
    *piVar6 = (int)ppppuVar3;
  }
  else {
    *piVar6 = (int)ppppuVar3;
  }
  *(undefined4 *)(puVar22 + -0x104) = 0;
LAB_0002e89c:
  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);
LAB_0002e8a0:
  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);
  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {
    pcVar19 = *(code **)(puVar20 + -0x7c10);
    uVar23 = 0x2ecac;
    (*pcVar19)();
    *(undefined4 *)(puVar22 + -300) = uVar23;
    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;
    *(undefined4 *****)(puVar22 + -0x134) = param_3;
    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;
    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;
    if (ppppuVar12 == (undefined4 ****)0x0) {
      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();
      *puVar8 = 0x7a;
      ppppuVar12 = (undefined4 ****)0xffffffff;
    }
    else if (ppppuVar12 == (undefined4 ****)0xa) {
      pppuVar15 = *ppppuVar13;
      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);
      if (iVar2 == 0) {
        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);
        iVar2 = *(int *)(puVar22 + -0x140);
        *ppppuVar13 = (undefined4 ***)0x0;
        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();
        *puVar8 = 0x3d;
        ppppuVar12 = (undefined4 ****)0xffffffff;
      }
    }
    return ppppuVar12;
  }
  return ppppuVar4;
}


lui gp,0x2
addiu gp,gp,0x3fc8
addu gp,gp,t9
addiu sp,sp,-0x60
sw ra,0x5c(sp)
sw s8,0x58(sp)
sw s6,0x54(sp)
sw s5,0x50(sp)
sw s4,0x4c(sp)
sw s3,0x48(sp)
sw s2,0x44(sp)
sw s1,0x40(sp)
sw s0,0x3c(sp)
or s8,sp,zero
sw gp,0x18(sp)
sw a0,0x24(s8)
sw a1,0x20(s8)
or s1,a2,zero
lw v0,-0x7be4(gp)
lw v0,0x0(v0)
sw v0,0x34(s8)
lw t9,-0x7c48(gp)
jalr t9
_nop
lw gp,0x18(s8)
li v1,0x1
bne v0,v1,0x0002e310
_addiu a3,s8,0x2c
lw s0,0x20(s8)
or a0,s0,zero
lw t9,-0x7ca4(gp)
jalr t9
_nop
lw gp,0x18(s8)
sw s1,0x10(sp)
ext a3,s1,0x2,0x1
addu a2,s0,v0
or a1,s0,zero
lw a0,0x24(s8)
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ae4
bal 0x0002d51c
_nop
lw gp,0x18(s8)
or s0,v0,zero
or v0,s0,zero
lw a0,0x34(s8)
lw v1,-0x7be4(gp)
lw v1,0x0(v1)
bne a0,v1,0x0002e5ec
_lw ra,0x5c(s8)
or sp,s8,zero
lw s8,0x58(sp)
lw s6,0x54(sp)
lw s5,0x50(sp)
lw s4,0x4c(sp)
lw s3,0x48(sp)
lw s2,0x44(sp)
lw s1,0x40(sp)
lw s0,0x3c(sp)
jr ra
_addiu sp,sp,0x60
sw zero,0x2c(s8)
sw zero,0x4(a3)
or a2,zero,zero
addiu a1,s8,0x24
or a0,zero,zero
lw t9,-0x7ba4(gp)
jalr t9
_nop
lw gp,0x18(s8)
addiu s0,v0,0x1
beq s0,zero,0x0002e288
_addiu a0,s8,0x2c
lw t9,-0x7be8(gp)
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x0002e468
_addiu a3,s8,0x2c
or a2,zero,zero
addiu a1,s8,0x20
or a0,zero,zero
lw t9,-0x7ba4(gp)
jalr t9
_nop
lw gp,0x18(s8)
addiu s3,v0,0x1
beq s3,zero,0x0002e288
_or s2,v0,zero
addiu a0,s8,0x2c
lw t9,-0x7be8(gp)
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x0002e490
_addu a0,s0,s3
sltu v0,a0,s0
bne v0,zero,0x0002e4b8
_lui v0,0x4000
sltu v0,a0,v0
beq v0,zero,0x0002e4b8
_sltiu v0,a0,0x7d0
beq v0,zero,0x0002e4d8
_sll v0,a0,0x2
addiu v0,v0,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s5,sp,0x18
sll s4,s0,0x2
addiu s6,s8,0x2c
or a3,s6,zero
or a2,s0,zero
addiu a1,s8,0x24
or a0,s5,zero
lw t9,-0x7ba4(gp)
jalr t9
_nop
lw gp,0x18(s8)
or a0,s6,zero
lw t9,-0x7be8(gp)
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x0002e5c4
_addu s4,s5,s4
addiu a3,s8,0x2c
or a2,s3,zero
addiu a1,s8,0x20
or a0,s4,zero
lw t9,-0x7ba4(gp)
jalr t9
_nop
lw gp,0x18(s8)
sll a2,s2,0x2
sw s1,0x10(sp)
ext a3,s1,0x2,0x1
addu a2,s4,a2
or a1,s4,zero
or a0,s5,zero
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x3f1c
bal 0x0002c0e4
_nop
lw gp,0x18(s8)
b 0x0002e2cc
_or s0,v0,zero
lw a3,-0x7fbc(gp)
addiu a3,a3,-0x6918
li a2,0x129
lw a1,-0x7fbc(gp)
addiu a1,a1,-0x6c30
lw a0,-0x7fbc(gp)
addiu a0,a0,-0x6c20
lw t9,-0x7d80(gp)
jalr t9
_nop
lw a3,-0x7fbc(gp)
addiu a3,a3,-0x6918
li a2,0x12d
lw a1,-0x7fbc(gp)
addiu a1,a1,-0x6c30
lw a0,-0x7fbc(gp)
addiu a0,a0,-0x6c20
lw t9,-0x7d80(gp)
jalr t9
_nop
lw t9,-0x7cc8(gp)
jalr t9
_nop
lw gp,0x18(s8)
li v1,0xc
sw v1,0x0(v0)
b 0x0002e2cc
_li s0,-0x1
sll a0,a0,0x2
lw t9,-0x7c80(gp)
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x0002e5a4
_or s4,v0,zero
sll s5,s0,0x2
addu s5,v0,s5
addiu s6,s8,0x2c
or a3,s6,zero
or a2,s0,zero
addiu a1,s8,0x24
or a0,v0,zero
lw t9,-0x7ba4(gp)
jalr t9
_nop
lw gp,0x18(s8)
or a0,s6,zero
lw t9,-0x7be8(gp)
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x0002e5c4
_addiu a3,s8,0x2c
or a2,s3,zero
addiu a1,s8,0x20
or a0,s5,zero
lw t9,-0x7ba4(gp)
jalr t9
_nop
lw gp,0x18(s8)
sll a2,s2,0x2
sw s1,0x10(sp)
ext a3,s1,0x2,0x1
addu a2,s5,a2
or a1,s5,zero
or a0,s4,zero
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x3f1c
bal 0x0002c0e4
_nop
lw gp,0x18(s8)
or s0,v0,zero
or a0,s4,zero
lw t9,-0x7bd8(gp)
jalr t9
_nop
lw gp,0x18(s8)
b 0x0002e2d0
_or v0,s0,zero
lw t9,-0x7cc8(gp)
jalr t9
_nop
lw gp,0x18(s8)
li v1,0xc
sw v1,0x0(v0)
b 0x0002e2cc
_li s0,-0x1
lw a3,-0x7fbc(gp)
addiu a3,a3,-0x6918
li a2,0x147
lw a1,-0x7fbc(gp)
addiu a1,a1,-0x6c30
lw a0,-0x7fbc(gp)
addiu a0,a0,-0x6c20
lw t9,-0x7d80(gp)
jalr t9
_nop
lw t9,-0x7c10(gp)
jalr t9
_nop
nop
nop
(translation_unit "undefined4 **** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 ****ppppuVar3;\n  undefined4 ****ppppuVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 ****ppppuVar10;\n  uint uVar11;\n  undefined4 ****ppppuVar12;\n  undefined4 ****ppppuVar13;\n  uint uVar14;\n  undefined4 ****unaff_s2;\n  undefined4 ***pppuVar15;\n  int unaff_s3;\n  undefined4 ****unaff_s4;\n  undefined4 ****unaff_s5;\n  int iVar16;\n  undefined4 ****ppppuVar17;\n  undefined4 *unaff_s6;\n  undefined4 unaff_s7;\n  undefined *puVar18;\n  code *pcVar19;\n  undefined *puVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined4 uVar23;\n  undefined1 auStack_60 [16];\n  undefined4 ***local_50 [2];\n  undefined4 ***local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }\n  uVar23 = 0x2e5f8;\n  iVar2 = local_2c;\n  puVar18 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar20 = puVar18 + 0x23be0;\n  *(undefined4 *)(puVar22 + -4) = uVar23;\n  *(undefined1 **)(puVar22 + -8) = auStack_60;\n  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;\n  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;\n  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;\n  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;\n  *(int *)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;\n  *(undefined4 *****)(puVar22 + -0x24) = param_3;\n  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;\n  *(undefined **)(puVar22 + -0x110) = puVar20;\n  *(int *)(puVar22 + -0x100) = iVar2;\n  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;\n  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);\n  if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  *puVar8 = 0x16;\n  *(undefined4 *)(puVar22 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }\n  *(undefined4 *)(puVar22 + -0x118) = 0x100;\n  ppppuVar13 = ppppuVar12;\n  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));\n  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);\n  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);\n  iVar21 = *(int *)(puVar22 + -0x110);\n  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar16 = *(int *)(puVar22 + -0xd8);\n  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);\n  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar6 = 0xc;\nLAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;\n  param_3 = (undefined4 ****)0x0;\nLAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\nLAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }\n  *(undefined4 *)(puVar22 + -0x104) = 0;\nLAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\nLAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);\n  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }\n  return ppppuVar4;\n}\n\n" (function_definition "undefined4 **** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 ****ppppuVar3;\n  undefined4 ****ppppuVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 ****ppppuVar10;\n  uint uVar11;\n  undefined4 ****ppppuVar12;\n  undefined4 ****ppppuVar13;\n  uint uVar14;\n  undefined4 ****unaff_s2;\n  undefined4 ***pppuVar15;\n  int unaff_s3;\n  undefined4 ****unaff_s4;\n  undefined4 ****unaff_s5;\n  int iVar16;\n  undefined4 ****ppppuVar17;\n  undefined4 *unaff_s6;\n  undefined4 unaff_s7;\n  undefined *puVar18;\n  code *pcVar19;\n  undefined *puVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined4 uVar23;\n  undefined1 auStack_60 [16];\n  undefined4 ***local_50 [2];\n  undefined4 ***local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }\n  uVar23 = 0x2e5f8;\n  iVar2 = local_2c;\n  puVar18 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar20 = puVar18 + 0x23be0;\n  *(undefined4 *)(puVar22 + -4) = uVar23;\n  *(undefined1 **)(puVar22 + -8) = auStack_60;\n  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;\n  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;\n  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;\n  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;\n  *(int *)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;\n  *(undefined4 *****)(puVar22 + -0x24) = param_3;\n  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;\n  *(undefined **)(puVar22 + -0x110) = puVar20;\n  *(int *)(puVar22 + -0x100) = iVar2;\n  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;\n  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);\n  if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  *puVar8 = 0x16;\n  *(undefined4 *)(puVar22 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }\n  *(undefined4 *)(puVar22 + -0x118) = 0x100;\n  ppppuVar13 = ppppuVar12;\n  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));\n  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);\n  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);\n  iVar21 = *(int *)(puVar22 + -0x110);\n  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar16 = *(int *)(puVar22 + -0xd8);\n  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);\n  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar6 = 0xc;\nLAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;\n  param_3 = (undefined4 ****)0x0;\nLAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\nLAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }\n  *(undefined4 *)(puVar22 + -0x104) = 0;\nLAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\nLAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);\n  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }\n  return ppppuVar4;\n}" type_identifier (pointer_declarator "**** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" * (pointer_declarator "*** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" * (pointer_declarator "** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" * (pointer_declarator "* gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" * (function_declarator "gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 ****param_2" type_identifier (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))))) , (parameter_declaration "undefined4 ****param_3" type_identifier (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier))))) ))))))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 ****ppppuVar3;\n  undefined4 ****ppppuVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 ****ppppuVar10;\n  uint uVar11;\n  undefined4 ****ppppuVar12;\n  undefined4 ****ppppuVar13;\n  uint uVar14;\n  undefined4 ****unaff_s2;\n  undefined4 ***pppuVar15;\n  int unaff_s3;\n  undefined4 ****unaff_s4;\n  undefined4 ****unaff_s5;\n  int iVar16;\n  undefined4 ****ppppuVar17;\n  undefined4 *unaff_s6;\n  undefined4 unaff_s7;\n  undefined *puVar18;\n  code *pcVar19;\n  undefined *puVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined4 uVar23;\n  undefined1 auStack_60 [16];\n  undefined4 ***local_50 [2];\n  undefined4 ***local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }\n  uVar23 = 0x2e5f8;\n  iVar2 = local_2c;\n  puVar18 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar20 = puVar18 + 0x23be0;\n  *(undefined4 *)(puVar22 + -4) = uVar23;\n  *(undefined1 **)(puVar22 + -8) = auStack_60;\n  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;\n  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;\n  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;\n  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;\n  *(int *)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;\n  *(undefined4 *****)(puVar22 + -0x24) = param_3;\n  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;\n  *(undefined **)(puVar22 + -0x110) = puVar20;\n  *(int *)(puVar22 + -0x100) = iVar2;\n  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;\n  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);\n  if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  *puVar8 = 0x16;\n  *(undefined4 *)(puVar22 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }\n  *(undefined4 *)(puVar22 + -0x118) = 0x100;\n  ppppuVar13 = ppppuVar12;\n  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));\n  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);\n  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);\n  iVar21 = *(int *)(puVar22 + -0x110);\n  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar16 = *(int *)(puVar22 + -0xd8);\n  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);\n  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar6 = 0xc;\nLAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;\n  param_3 = (undefined4 ****)0x0;\nLAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\nLAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }\n  *(undefined4 *)(puVar22 + -0x104) = 0;\nLAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\nLAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);\n  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }\n  return ppppuVar4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 ****ppppuVar3;" type_identifier (pointer_declarator "****ppppuVar3" * (pointer_declarator "***ppppuVar3" * (pointer_declarator "**ppppuVar3" * (pointer_declarator "*ppppuVar3" * identifier)))) ;) (declaration "undefined4 ****ppppuVar4;" type_identifier (pointer_declarator "****ppppuVar4" * (pointer_declarator "***ppppuVar4" * (pointer_declarator "**ppppuVar4" * (pointer_declarator "*ppppuVar4" * identifier)))) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 ****ppppuVar10;" type_identifier (pointer_declarator "****ppppuVar10" * (pointer_declarator "***ppppuVar10" * (pointer_declarator "**ppppuVar10" * (pointer_declarator "*ppppuVar10" * identifier)))) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 ****ppppuVar12;" type_identifier (pointer_declarator "****ppppuVar12" * (pointer_declarator "***ppppuVar12" * (pointer_declarator "**ppppuVar12" * (pointer_declarator "*ppppuVar12" * identifier)))) ;) (declaration "undefined4 ****ppppuVar13;" type_identifier (pointer_declarator "****ppppuVar13" * (pointer_declarator "***ppppuVar13" * (pointer_declarator "**ppppuVar13" * (pointer_declarator "*ppppuVar13" * identifier)))) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 ****unaff_s2;" type_identifier (pointer_declarator "****unaff_s2" * (pointer_declarator "***unaff_s2" * (pointer_declarator "**unaff_s2" * (pointer_declarator "*unaff_s2" * identifier)))) ;) (declaration "undefined4 ***pppuVar15;" type_identifier (pointer_declarator "***pppuVar15" * (pointer_declarator "**pppuVar15" * (pointer_declarator "*pppuVar15" * identifier))) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "undefined4 ****unaff_s4;" type_identifier (pointer_declarator "****unaff_s4" * (pointer_declarator "***unaff_s4" * (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier)))) ;) (declaration "undefined4 ****unaff_s5;" type_identifier (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier)))) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 ****ppppuVar17;" type_identifier (pointer_declarator "****ppppuVar17" * (pointer_declarator "***ppppuVar17" * (pointer_declarator "**ppppuVar17" * (pointer_declarator "*ppppuVar17" * identifier)))) ;) (declaration "undefined4 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "undefined1 auStack_60 [16];" type_identifier (array_declarator "auStack_60 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 ***local_50 [2];" type_identifier (pointer_declarator "***local_50 [2]" * (pointer_declarator "**local_50 [2]" * (pointer_declarator "*local_50 [2]" * (array_declarator "local_50 [2]" identifier [ number_literal ])))) ;) (declaration "undefined4 ***local_40;" type_identifier (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))) ;) (declaration "undefined4 local_3c [2];" type_identifier (array_declarator "local_3c [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0004a5fc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004a5fc" * (cast_expression "(int *)PTR___stack_chk_guard_0004a5fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" identifier = identifier) ;) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004a598)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004a598)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0004a598" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0004a598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }" { (labeled_statement "LAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;" statement_identifier : (expression_statement "ppppuVar13 = (undefined4 ****)local_40;" (assignment_expression "ppppuVar13 = (undefined4 ****)local_40" identifier = (cast_expression "(undefined4 ****)local_40" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_0004a53c)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_0004a53c)" ( (pointer_expression "*(code *)PTR_strlen_0004a53c" * (cast_expression "(code *)PTR_strlen_0004a53c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "local_50[0] = param_3;" (assignment_expression "local_50[0] = param_3" (subscript_expression "local_50[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier = (cast_expression "(undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , identifier , (binary_expression "(int)ppppuVar13 + iVar2" (cast_expression "(int)ppppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_3 << 0x1d)" ( (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" else (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_3c,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "uVar14 = iVar2 + 1;" (assignment_expression "uVar14 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar14 == 0) goto LAB_0002e288;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e288;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" { (expression_statement "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" identifier = (cast_expression "(undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) ))))) ;) (return_statement "return ppppuVar13;" return identifier ;) })) (expression_statement "ppppuVar13 = &local_40;" (assignment_expression "ppppuVar13 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);" (assignment_expression "unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" identifier = (cast_expression "(undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,ppppuVar13,0,&local_34)" ( number_literal , identifier , number_literal , (pointer_expression "&local_34" & identifier) ))))) ;) (expression_statement "unaff_s3 = (int)unaff_s2 + 1;" (assignment_expression "unaff_s3 = (int)unaff_s2 + 1" identifier = (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (unaff_s3 == 0) goto LAB_0002e288;" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e288;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "uVar11 = uVar14 + unaff_s3;" (assignment_expression "uVar11 = uVar14 + unaff_s3" identifier = (binary_expression "uVar14 + unaff_s3" identifier + identifier)) ;) (if_statement "if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" { (expression_statement "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" identifier = (cast_expression "(undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) ))))) ;) (return_statement "return ppppuVar13;" return identifier ;) })) (if_statement "if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" if (parenthesized_expression "((uVar11 < uVar14) || (0x3fffffff < uVar11))" ( (binary_expression "(uVar11 < uVar14) || (0x3fffffff < uVar11)" (parenthesized_expression "(uVar11 < uVar14)" ( (binary_expression "uVar11 < uVar14" identifier < identifier) )) || (parenthesized_expression "(0x3fffffff < uVar11)" ( (binary_expression "0x3fffffff < uVar11" number_literal < identifier) ))) )) (compound_statement "{\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }" { (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004a518)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0004a518)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004a518)" ( (pointer_expression "*(code *)PTR___errno_location_0004a518" * (cast_expression "(code *)PTR___errno_location_0004a518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar8 = 0xc;" (assignment_expression "*puVar8 = 0xc" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "ppppuVar3 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar3 = (undefined4 ****)0xffffffff" identifier = (cast_expression "(undefined4 ****)0xffffffff" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" else (if_statement "if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" if (parenthesized_expression "(uVar11 < 2000)" ( (binary_expression "uVar11 < 2000" identifier < number_literal) )) (compound_statement "{\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }" { (expression_statement "iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar11 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar11 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar11 * 4 + 7 & 0xfffffff8" (binary_expression "uVar11 * 4 + 7" (binary_expression "uVar11 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);" (assignment_expression "unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2)" identifier = (cast_expression "(undefined4 ****)(&stack0xffffffb8 + iVar2)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(&stack0xffffffb8 + iVar2)" ( (binary_expression "&stack0xffffffb8 + iVar2" (pointer_expression "&stack0xffffffb8" & identifier) + identifier) )))) ;) (expression_statement "unaff_s6 = &local_34;" (assignment_expression "unaff_s6 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,local_3c,uVar14,unaff_s6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "unaff_s4 = unaff_s5 + uVar14;" (assignment_expression "unaff_s4 = unaff_s5 + uVar14" identifier = (binary_expression "unaff_s5 + uVar14" identifier + identifier)) ;) (if_statement "if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }" { (labeled_statement "LAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);" statement_identifier : (expression_statement "ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" identifier = (cast_expression "(undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) ))))) ;)) (return_statement "return ppppuVar13;" return identifier ;) })) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4,&local_40,unaff_s3,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "*(undefined4 *****)((int)local_50 + iVar2) = param_3;" (assignment_expression "*(undefined4 *****)((int)local_50 + iVar2) = param_3" (pointer_expression "*(undefined4 *****)((int)local_50 + iVar2)" * (cast_expression "(undefined4 *****)((int)local_50 + iVar2)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_50 + iVar2)" ( (binary_expression "(int)local_50 + iVar2" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "ppppuVar13 = unaff_s4;" (assignment_expression "ppppuVar13 = unaff_s4" identifier = identifier) ;) (expression_statement "ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier = (cast_expression "(undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "unaff_s4 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_3 << 0x1d)" ( (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "puVar22 = auStack_60 + iVar2;" (assignment_expression "puVar22 = auStack_60 + iVar2" identifier = (binary_expression "auStack_60 + iVar2" identifier + identifier)) ;) }) (else_clause "else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" else (compound_statement "{\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" { (expression_statement "unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);" (assignment_expression "unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" identifier = (cast_expression "(undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" (parenthesized_expression "(*(code *)PTR_malloc_0004a560)" ( (pointer_expression "*(code *)PTR_malloc_0004a560" * (cast_expression "(code *)PTR_malloc_0004a560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11 * 4)" ( (binary_expression "uVar11 * 4" identifier * number_literal) ))))) ;) (if_statement "if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" if (parenthesized_expression "(unaff_s4 == (undefined4 ****)0x0)" ( (binary_expression "unaff_s4 == (undefined4 ****)0x0" identifier == (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }" { (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004a518)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0004a518)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004a518)" ( (pointer_expression "*(code *)PTR___errno_location_0004a518" * (cast_expression "(code *)PTR___errno_location_0004a518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar8 = 0xc;" (assignment_expression "*puVar8 = 0xc" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "ppppuVar3 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar3 = (undefined4 ****)0xffffffff" identifier = (cast_expression "(undefined4 ****)0xffffffff" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" else (compound_statement "{\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" { (expression_statement "unaff_s5 = unaff_s4 + uVar14;" (assignment_expression "unaff_s5 = unaff_s4 + uVar14" identifier = (binary_expression "unaff_s4 + uVar14" identifier + identifier)) ;) (expression_statement "unaff_s6 = &local_34;" (assignment_expression "unaff_s6 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4,local_3c,uVar14,unaff_s6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0002e5c4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e5c4;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,&local_40,unaff_s3,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "ppppuVar13 = unaff_s5;" (assignment_expression "ppppuVar13 = unaff_s5" identifier = identifier) ;) (expression_statement "local_50[0] = param_3;" (assignment_expression "local_50[0] = param_3" (subscript_expression "local_50[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier = (cast_expression "(undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "unaff_s5 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_3 << 0x1d)" ( (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "(*(code *)PTR_free_0004a608)(unaff_s4);" (call_expression "(*(code *)PTR_free_0004a608)(unaff_s4)" (parenthesized_expression "(*(code *)PTR_free_0004a608)" ( (pointer_expression "*(code *)PTR_free_0004a608" * (cast_expression "(code *)PTR_free_0004a608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) }))) }))))) }))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_0004a5fc)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_0004a5fc" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_0004a5fc" * (cast_expression "(int *)PTR___stack_chk_guard_0004a5fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return ppppuVar3;\n  }" { (return_statement "return ppppuVar3;" return identifier ;) })) (expression_statement "uVar23 = 0x2e5f8;" (assignment_expression "uVar23 = 0x2e5f8" identifier = number_literal) ;) (expression_statement "iVar2 = local_2c;" (assignment_expression "iVar2 = local_2c" identifier = identifier) ;) (expression_statement "puVar18 = PTR___stack_chk_fail_0004a5d0;" (assignment_expression "puVar18 = PTR___stack_chk_fail_0004a5d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0004a5d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004a5d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004a5d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004a5d0" * (cast_expression "(code *)PTR___stack_chk_fail_0004a5d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar18 + 0x23be0;" (assignment_expression "puVar20 = puVar18 + 0x23be0" identifier = (binary_expression "puVar18 + 0x23be0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar22 + -4) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -4) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -4)" * (cast_expression "(undefined4 *)(puVar22 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -4)" ( (binary_expression "puVar22 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar22 + -8) = auStack_60;" (assignment_expression "*(undefined1 **)(puVar22 + -8) = auStack_60" (pointer_expression "*(undefined1 **)(puVar22 + -8)" * (cast_expression "(undefined1 **)(puVar22 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -8)" ( (binary_expression "puVar22 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xc) = unaff_s7;" (assignment_expression "*(undefined4 *)(puVar22 + -0xc) = unaff_s7" (pointer_expression "*(undefined4 *)(puVar22 + -0xc)" * (cast_expression "(undefined4 *)(puVar22 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc)" ( (binary_expression "puVar22 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar22 + -0x10) = unaff_s6;" (assignment_expression "*(undefined4 **)(puVar22 + -0x10) = unaff_s6" (pointer_expression "*(undefined4 **)(puVar22 + -0x10)" * (cast_expression "(undefined4 **)(puVar22 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x10)" ( (binary_expression "puVar22 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x14) = unaff_s5;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x14) = unaff_s5" (pointer_expression "*(undefined4 *****)(puVar22 + -0x14)" * (cast_expression "(undefined4 *****)(puVar22 + -0x14)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x14)" ( (binary_expression "puVar22 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x18) = unaff_s4;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x18) = unaff_s4" (pointer_expression "*(undefined4 *****)(puVar22 + -0x18)" * (cast_expression "(undefined4 *****)(puVar22 + -0x18)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x18)" ( (binary_expression "puVar22 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x1c) = unaff_s3;" (assignment_expression "*(int *)(puVar22 + -0x1c) = unaff_s3" (pointer_expression "*(int *)(puVar22 + -0x1c)" * (cast_expression "(int *)(puVar22 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c)" ( (binary_expression "puVar22 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x20) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x20) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x20)" * (cast_expression "(undefined4 *****)(puVar22 + -0x20)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x20)" ( (binary_expression "puVar22 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x24) = param_3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x24) = param_3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x24)" * (cast_expression "(undefined4 *****)(puVar22 + -0x24)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x24)" ( (binary_expression "puVar22 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x28) = ppppuVar3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x28)" * (cast_expression "(undefined4 *****)(puVar22 + -0x28)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x28)" ( (binary_expression "puVar22 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar22 + -0x110) = puVar20;" (assignment_expression "*(undefined **)(puVar22 + -0x110) = puVar20" (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x100) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x100) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + 4) = ppppuVar13;" (assignment_expression "*(undefined4 *****)(puVar22 + 4) = ppppuVar13" (pointer_expression "*(undefined4 *****)(puVar22 + 4)" * (cast_expression "(undefined4 *****)(puVar22 + 4)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);" (assignment_expression "*(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc)" (pointer_expression "*(undefined4 *)(puVar22 + -0x2c)" * (cast_expression "(undefined4 *)(puVar22 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x2c)" ( (binary_expression "puVar22 + -0x2c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(puVar18 + 0x1bffc)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1bffc)" * (cast_expression "(undefined4 **)(puVar18 + 0x1bffc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1bffc)" ( (binary_expression "puVar18 + 0x1bffc" identifier + number_literal) )))))) ;) (if_statement "if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }" if (parenthesized_expression "(ppppuVar13 != (undefined4 ****)0x0)" ( (binary_expression "ppppuVar13 != (undefined4 ****)0x0" identifier != (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }" { (if_statement "if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }" if (parenthesized_expression "(*(int *)(puVar22 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar22 + -0x100) == 0" (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }" { (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + 4)" * (cast_expression "(undefined4 *)(puVar22 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e664;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + 4)" * (cast_expression "(undefined4 *)(puVar22 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100)" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0x100)" * (cast_expression "(undefined4 *)(puVar22 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar22 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x104)" identifier = (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) ;)) (expression_statement "iVar9 = *(int *)(puVar22 + -0xf0);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0xf0)" identifier = (pointer_expression "*(int *)(puVar22 + -0xf0)" * (cast_expression "(int *)(puVar22 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar2 + iVar9 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar2 + iVar9 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar2 + iVar9 + -1)" * (cast_expression "(undefined1 *)(iVar2 + iVar9 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + iVar9 + -1)" ( (binary_expression "iVar2 + iVar9 + -1" (binary_expression "iVar2 + iVar9" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);" (assignment_expression "ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" identifier = (cast_expression "(undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" ( (binary_expression "*(int *)(puVar20 + -0x7fc8) + 0x7b9c" (pointer_expression "*(int *)(puVar20 + -0x7fc8)" * (cast_expression "(int *)(puVar20 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x7fc8)" ( (binary_expression "puVar20 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" identifier = (call_expression "(**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d60))" ( (pointer_expression "**(code **)(puVar20 + -0x7d60)" * (pointer_expression "*(code **)(puVar20 + -0x7d60)" * (cast_expression "(code **)(puVar20 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d60)" ( (binary_expression "puVar20 + -0x7d60" identifier + number_literal) ))))) )) (argument_list "(3,ppppuVar4,puVar22 + -0xd0)" ( number_literal , identifier , (binary_expression "puVar22 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" { (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" identifier = (cast_expression "(undefined4 ****)0xffffff9c" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" { (expression_statement "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xfc)" * (cast_expression "(undefined4 *)(puVar22 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" * (cast_expression "(undefined4 *)(puVar22 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(puVar22 + -0xc0);" (assignment_expression "iVar16 = *(int *)(puVar22 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar22 + -0xc0)" * (cast_expression "(int *)(puVar22 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc0)" ( (binary_expression "puVar22 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf8)" * (cast_expression "(undefined4 *)(puVar22 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" * (cast_expression "(undefined4 *)(puVar22 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xbc)" ( (binary_expression "puVar22 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);" (assignment_expression "ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" identifier = (cast_expression "(undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" ( (binary_expression "*(int *)(iVar21 + -0x7fc8) + 0x7bec" (pointer_expression "*(int *)(iVar21 + -0x7fc8)" * (cast_expression "(int *)(iVar21 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + -0x7fc8)" ( (binary_expression "iVar21 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);" (assignment_expression "iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d60))" ( (pointer_expression "**(code **)(iVar21 + -0x7d60)" * (pointer_expression "*(code **)(iVar21 + -0x7d60)" * (cast_expression "(code **)(iVar21 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d60)" ( (binary_expression "iVar21 + -0x7d60" identifier + number_literal) ))))) )) (argument_list "(3,ppppuVar4,puVar22 + -0xd0)" ( number_literal , identifier , (binary_expression "puVar22 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }" { (expression_statement "*(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar2 + iVar9 + -1" (binary_expression "iVar2 + iVar9" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xe8)" * (cast_expression "(undefined4 *)(puVar22 + -0xe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe8)" ( (binary_expression "puVar22 + -0xe8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" * (cast_expression "(undefined4 *)(puVar22 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xe4)" * (cast_expression "(undefined4 *)(puVar22 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe4)" ( (binary_expression "puVar22 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xc0)" * (cast_expression "(undefined4 *)(puVar22 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc0)" ( (binary_expression "puVar22 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xdc)" * (cast_expression "(undefined4 *)(puVar22 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xdc)" ( (binary_expression "puVar22 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" * (cast_expression "(undefined4 *)(puVar22 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xbc)" ( (binary_expression "puVar22 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" identifier = (cast_expression "(undefined4 ****)0xffffff9c" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;" (assignment_expression "*(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c" (pointer_expression "*(int *)(puVar22 + -0xec)" * (cast_expression "(int *)(puVar22 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xec)" ( (binary_expression "puVar22 + -0xec" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar21 + -0x7fbc) + -0x7f6c" (pointer_expression "*(int *)(iVar21 + -0x7fbc)" * (cast_expression "(int *)(iVar21 + -0x7fbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + -0x7fbc)" ( (binary_expression "iVar21 + -0x7fbc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);" (assignment_expression "unaff_s2 = (undefined4 ****)(puVar22 + -0xd0)" identifier = (cast_expression "(undefined4 ****)(puVar22 + -0xd0)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x108) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x108) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x108)" * (cast_expression "(undefined4 *****)(puVar22 + -0x108)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x108)" ( (binary_expression "puVar22 + -0x108" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" statement_identifier : (if_statement "if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" if (parenthesized_expression "(((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc)))" ( (binary_expression "((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))" (parenthesized_expression "((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4)))" ( (binary_expression "(*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))" (parenthesized_expression "(*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8))" ( (binary_expression "*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)" (pointer_expression "*(int *)(puVar22 + -0xfc)" * (cast_expression "(int *)(puVar22 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar22 + -0xe8)" * (cast_expression "(int *)(puVar22 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe8)" ( (binary_expression "puVar22 + -0xe8" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar16 != *(int *)(puVar22 + -0xe4))" ( (binary_expression "iVar16 != *(int *)(puVar22 + -0xe4)" identifier != (pointer_expression "*(int *)(puVar22 + -0xe4)" * (cast_expression "(int *)(puVar22 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe4)" ( (binary_expression "puVar22 + -0xe4" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))" ( (binary_expression "*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc)" (pointer_expression "*(int *)(puVar22 + -0xf8)" * (cast_expression "(int *)(puVar22 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar22 + -0xdc)" * (cast_expression "(int *)(puVar22 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xdc)" ( (binary_expression "puVar22 + -0xdc" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" { (expression_statement "ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);" (assignment_expression "ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0xec)" * (cast_expression "(undefined4 *****)(puVar22 + -0xec)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0xec)" ( (binary_expression "puVar22 + -0xec" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);" (assignment_expression "ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" identifier = (cast_expression "(undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" (parenthesized_expression "(**(code **)(iVar21 + -0x7cac))" ( (pointer_expression "**(code **)(iVar21 + -0x7cac)" * (pointer_expression "*(code **)(iVar21 + -0x7cac)" * (cast_expression "(code **)(iVar21 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cac)" ( (binary_expression "iVar21 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(ppppuVar12,ppppuVar13,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" if (parenthesized_expression "((int)ppppuVar12 < 0)" ( (binary_expression "(int)ppppuVar12 < 0" (cast_expression "(int)ppppuVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }" { (expression_statement "piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar22 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" identifier = (cast_expression "(undefined4 ****)*piVar6" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar6" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_0002e888;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e888;" goto statement_identifier ;)) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" else (compound_statement "{\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" { (expression_statement "ppppuVar13 = ppppuVar12;" (assignment_expression "ppppuVar13 = ppppuVar12" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));" (assignment_expression "iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" identifier = (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar22 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" ( number_literal , identifier , (pointer_expression "*(undefined4 *)(puVar22 + -0x108)" * (cast_expression "(undefined4 *)(puVar22 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x108)" ( (binary_expression "puVar22 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }" { (if_statement "if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }" { (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar21 + -0x7d6c)" * (pointer_expression "*(code **)(iVar21 + -0x7d6c)" * (cast_expression "(code **)(iVar21 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d6c)" ( (binary_expression "iVar21 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" identifier = (cast_expression "(undefined4 ****)0x1" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppuVar4 = ppppuVar13;" (assignment_expression "ppppuVar4 = ppppuVar13" identifier = identifier) ;) (if_statement "if (iVar2 != 0) goto LAB_0002ec18;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf4)" * (cast_expression "(undefined4 *)(puVar22 + -0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf4)" ( (binary_expression "puVar22 + -0xf4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" * (cast_expression "(undefined4 *)(puVar22 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xd8)" * (cast_expression "(undefined4 *)(puVar22 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd8)" ( (binary_expression "puVar22 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xc0)" * (cast_expression "(undefined4 *)(puVar22 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc0)" ( (binary_expression "puVar22 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xd4)" * (cast_expression "(undefined4 *)(puVar22 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd4)" ( (binary_expression "puVar22 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" * (cast_expression "(undefined4 *)(puVar22 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xbc)" ( (binary_expression "puVar22 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d1c))(ppppuVar12)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d1c))" ( (pointer_expression "**(code **)(iVar21 + -0x7d1c)" * (pointer_expression "*(code **)(iVar21 + -0x7d1c)" * (cast_expression "(code **)(iVar21 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d1c)" ( (binary_expression "iVar21 + -0x7d1c" identifier + number_literal) ))))) )) (argument_list "(ppppuVar12)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }" { (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "unaff_s2 = (undefined4 ****)0x100;" (assignment_expression "unaff_s2 = (undefined4 ****)0x100" identifier = (cast_expression "(undefined4 ****)0x100" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_0002e958:\n                *piVar6 = 0;" statement_identifier : (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;)) (do_statement "do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );" do (compound_statement "{\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                }" { (expression_statement "piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);" (assignment_expression "piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + -0x7d38))(iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + -0x7d38))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d38))" ( (pointer_expression "**(code **)(puVar20 + -0x7d38)" * (pointer_expression "*(code **)(puVar20 + -0x7d38)" * (cast_expression "(code **)(puVar20 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d38)" ( (binary_expression "puVar20 + -0x7d38" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }" { (if_statement "if (*piVar6 != 0) goto LAB_0002e864;" if (parenthesized_expression "(*piVar6 != 0)" ( (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) )) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;)) (if_statement "if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }" { (expression_statement "*piVar6 = 2;" (assignment_expression "*piVar6 = 2" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar20 + -0x7d90))(iVar2);" (call_expression "(**(code **)(puVar20 + -0x7d90))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d90))" ( (pointer_expression "**(code **)(puVar20 + -0x7d90)" * (pointer_expression "*(code **)(puVar20 + -0x7d90)" * (cast_expression "(code **)(puVar20 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d90)" ( (binary_expression "puVar20 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);" (assignment_expression "piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar22 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }" { (if_statement "if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }" if (parenthesized_expression "(*piVar6 == 0)" ( (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" * identifier) == number_literal) )) (compound_statement "{\n                        *piVar6 = 2;\n                      }" { (expression_statement "*piVar6 = 2;" (assignment_expression "*piVar6 = 2" (pointer_expression "*piVar6" * identifier) = number_literal) ;) })) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;" if (parenthesized_expression "(*(char *)((int)piVar7 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar7 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar7 + 0x13)" * (cast_expression "(char *)((int)piVar7 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002e91c;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" else (if_statement "if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" if (parenthesized_expression "(*(char *)((int)piVar7 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar7 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar7 + 0x13)" * (cast_expression "(char *)((int)piVar7 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002e984;" goto statement_identifier ;)))) (if_statement "if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;" if (parenthesized_expression "(*(char *)(piVar7 + 5) == '\0')" ( (binary_expression "*(char *)(piVar7 + 5) == '\0'" (pointer_expression "*(char *)(piVar7 + 5)" * (cast_expression "(char *)(piVar7 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 5)" ( (binary_expression "piVar7 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (if_statement "if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;" if (parenthesized_expression "((piVar7[5] & 0xffff0000U) != 0x2e000000)" ( (binary_expression "(piVar7[5] & 0xffff0000U) != 0x2e000000" (parenthesized_expression "(piVar7[5] & 0xffff0000U)" ( (binary_expression "piVar7[5] & 0xffff0000U" (subscript_expression "piVar7[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002e984;" goto statement_identifier ;)) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" identifier = (cast_expression "(undefined4 ****)0x1" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppuVar4 = ppppuVar13;" (assignment_expression "ppppuVar4 = ppppuVar13" identifier = identifier) ;) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" identifier = (cast_expression "(undefined4 ****)*piVar6" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar6" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_0002ec64;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ec64;" goto statement_identifier ;)) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" identifier = (cast_expression "(undefined4 ****)0x1" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }))) (goto_statement "goto LAB_0002e86c;" goto statement_identifier ;) }))) (if_statement "if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }" { (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar21 + -0x7d6c)" * (pointer_expression "*(code **)(iVar21 + -0x7d6c)" * (cast_expression "(code **)(iVar21 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d6c)" ( (binary_expression "iVar21 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (if_statement "if (iVar2 != 0) goto LAB_0002ec18;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;)) })) (expression_statement "iVar2 = *(int *)(puVar22 + -0xe0);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }" if (parenthesized_expression "(iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1)" ( (binary_expression "iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1" identifier == (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1" (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar22 + -0xf0)" * (cast_expression "(int *)(puVar22 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }" { (expression_statement "*(undefined1 *)(iVar2 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar2 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar2 + -1)" * (cast_expression "(undefined1 *)(iVar2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -1)" ( (binary_expression "iVar2 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar22 + -0xe0) = iVar2 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = iVar2 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) })) (expression_statement "ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" identifier = (cast_expression "(undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" ( (binary_expression "(*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0)" (parenthesized_expression "(*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0))" ( (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar22 + -0xf0)" * (cast_expression "(int *)(puVar22 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) ))))) )) - (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) ))))) )))) ;) (expression_statement "(**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);" (call_expression "(**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3)" (parenthesized_expression "(**(code **)(iVar21 + -0x7bd0))" ( (pointer_expression "**(code **)(iVar21 + -0x7bd0)" * (pointer_expression "*(code **)(iVar21 + -0x7bd0)" * (cast_expression "(code **)(iVar21 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7bd0)" ( (binary_expression "iVar21 + -0x7bd0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3)" ( (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar13 = ppppuVar3;" (assignment_expression "ppppuVar13 = ppppuVar3" identifier = identifier) ;) (if_statement "if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }" if (parenthesized_expression "(*(int *)(puVar22 + 4) == 0)" ( (binary_expression "*(int *)(puVar22 + 4) == 0" (pointer_expression "*(int *)(puVar22 + 4)" * (cast_expression "(int *)(puVar22 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }" { (expression_statement "uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));" (assignment_expression "uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" identifier = (call_expression "(**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c78))" ( (pointer_expression "**(code **)(puVar20 + -0x7c78)" * (pointer_expression "*(code **)(puVar20 + -0x7c78)" * (cast_expression "(code **)(puVar20 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7c78)" ( (binary_expression "puVar20 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x100) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -0x100) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -0x100)" * (cast_expression "(undefined4 *)(puVar22 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" identifier = (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }" if (parenthesized_expression "(*(int *)(puVar22 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar22 + -0x100) == 0" (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }" { (expression_statement "iVar2 = *(int *)(puVar22 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x104)" identifier = (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar22 + -0x104) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002e89c;" goto statement_identifier ;) })) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" identifier = (cast_expression "(undefined4 ****)0xffffff9c" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }))) (labeled_statement "LAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" statement_identifier : (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" identifier = (cast_expression "(undefined4 ****)*piVar6" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "ppppuVar13 = ppppuVar4;" (assignment_expression "ppppuVar13 = ppppuVar4" identifier = identifier) ;) (goto_statement "goto LAB_0002e880;" goto statement_identifier ;) })) (if_statement "if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }" { (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = 0x1000" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));" statement_identifier : (expression_statement "iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));" (assignment_expression "iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0))" identifier = (call_expression "(**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0))" (parenthesized_expression "(**(code **)(puVar18 + 0x1bf60))" ( (pointer_expression "**(code **)(puVar18 + 0x1bf60)" * (pointer_expression "*(code **)(puVar18 + 0x1bf60)" * (cast_expression "(code **)(puVar18 + 0x1bf60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1bf60)" ( (binary_expression "puVar18 + 0x1bf60" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0xf0))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) )))) ;)) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0x104) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }" { (expression_statement "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" (assignment_expression "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0x104)" * (cast_expression "(undefined4 *****)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e8a0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e6bc;" goto statement_identifier ;) })) (expression_statement "puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar18 + 0x1bf18))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar18 + 0x1bf18))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1bf18))" ( (pointer_expression "**(code **)(puVar18 + 0x1bf18)" * (pointer_expression "*(code **)(puVar18 + 0x1bf18)" * (cast_expression "(code **)(puVar18 + 0x1bf18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1bf18)" ( (binary_expression "puVar18 + 0x1bf18" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = 0x16;" (assignment_expression "*puVar8 = 0x16" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e89c;" goto statement_identifier ;) (labeled_statement "LAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" statement_identifier : (if_statement "if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }" { (if_statement "if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" if (parenthesized_expression "((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8)))" ( (binary_expression "(*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))" (parenthesized_expression "(*piVar7 == iVar16)" ( (binary_expression "*piVar7 == iVar16" (pointer_expression "*piVar7" * identifier) == identifier) )) && (parenthesized_expression "(piVar7[1] == *(int *)(puVar22 + -0xf8))" ( (binary_expression "piVar7[1] == *(int *)(puVar22 + -0xf8)" (subscript_expression "piVar7[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar22 + -0xf8)" * (cast_expression "(int *)(puVar22 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" { (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" identifier = (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" else (compound_statement "{\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" { (if_statement "if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;" if (parenthesized_expression "(*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4))" ( (binary_expression "*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)" (pointer_expression "*(int *)(puVar22 + -0xfc)" * (cast_expression "(int *)(puVar22 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar22 + -0xf4)" * (cast_expression "(int *)(puVar22 + -0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf4)" ( (binary_expression "puVar22 + -0xf4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" identifier = (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }) (else_clause "else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" else (compound_statement "{\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" { (labeled_statement "LAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" statement_identifier : (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" identifier = (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) })))) (expression_statement "*(undefined4 *)(puVar22 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar22 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar22 + -0x118)" * (cast_expression "(undefined4 *)(puVar22 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x118)" ( (binary_expression "puVar22 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "ppppuVar13 = ppppuVar12;" (assignment_expression "ppppuVar13 = ppppuVar12" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" identifier = (call_expression "(**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c30))" ( (pointer_expression "**(code **)(puVar20 + -0x7c30)" * (pointer_expression "*(code **)(puVar20 + -0x7c30)" * (cast_expression "(code **)(puVar20 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7c30)" ( (binary_expression "puVar20 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" ( number_literal , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar22 + -0x108)" * (cast_expression "(undefined4 *)(puVar22 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x108)" ( (binary_expression "puVar22 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;" if (parenthesized_expression "(((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))))))" ( (binary_expression "((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))" (parenthesized_expression "((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000))" ( (binary_expression "(iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar22 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar22 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar22 + -0xb8)" * (cast_expression "(uint *)(puVar22 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xb8)" ( (binary_expression "puVar22 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))" ( (parenthesized_expression "(*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))))" ( (binary_expression "*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))" (binary_expression "*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc)" (pointer_expression "*(int *)(puVar22 + -0xd0)" * (cast_expression "(int *)(puVar22 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar22 + -0xfc)" * (cast_expression "(int *)(puVar22 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) ))))) || (parenthesized_expression "((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))" ( (parenthesized_expression "(*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))" ( (binary_expression "*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))" (binary_expression "*(int *)(puVar22 + -0xc0) != iVar16" (pointer_expression "*(int *)(puVar22 + -0xc0)" * (cast_expression "(int *)(puVar22 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc0)" ( (binary_expression "puVar22 + -0xc0" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))" ( (binary_expression "*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)" (pointer_expression "*(int *)(puVar22 + -0xbc)" * (cast_expression "(int *)(puVar22 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xbc)" ( (binary_expression "puVar22 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar22 + -0xf8)" * (cast_expression "(int *)(puVar22 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) ))))) ))) )) ))) )) ))) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (expression_statement "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));" (assignment_expression "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" identifier = (cast_expression "(undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" ( (binary_expression "*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104)" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) )))) ;) (expression_statement "param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);" (assignment_expression "param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" identifier = (cast_expression "(undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" (parenthesized_expression "(**(code **)(puVar20 + -0x7ca4))" ( (pointer_expression "**(code **)(puVar20 + -0x7ca4)" * (pointer_expression "*(code **)(puVar20 + -0x7ca4)" * (cast_expression "(code **)(puVar20 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7ca4)" ( (binary_expression "puVar20 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(ppppuVar4)" ( identifier ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }" if (parenthesized_expression "(unaff_s2 <= param_3)" ( (binary_expression "unaff_s2 <= param_3" identifier <= identifier) )) (compound_statement "{\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }" { (expression_statement "ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);" (assignment_expression "ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *****)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }" if (parenthesized_expression "(*(int *)(puVar22 + 4) != 0)" ( (binary_expression "*(int *)(puVar22 + 4) != 0" (pointer_expression "*(int *)(puVar22 + 4)" * (cast_expression "(int *)(puVar22 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }" { (expression_statement "*piVar6 = 0x22;" (assignment_expression "*piVar6 = 0x22" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "ppppuVar10 = ppppuVar3;" (assignment_expression "ppppuVar10 = ppppuVar3" identifier = identifier) ;) (if_statement "if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }" if (parenthesized_expression "(ppppuVar3 < param_3)" ( (binary_expression "ppppuVar3 < param_3" identifier < identifier) )) (compound_statement "{\n      ppppuVar10 = param_3;\n    }" { (expression_statement "ppppuVar10 = param_3;" (assignment_expression "ppppuVar10 = param_3" identifier = identifier) ;) })) (expression_statement "ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);" (assignment_expression "ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3)" identifier = (cast_expression "(undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppuVar10 + (int)ppppuVar3)" ( (binary_expression "(int)ppppuVar10 + (int)ppppuVar3" (cast_expression "(int)ppppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;" if (parenthesized_expression "(ppppuVar17 < ppppuVar3)" ( (binary_expression "ppppuVar17 < ppppuVar3" identifier < identifier) )) (goto_statement "goto LAB_0002eb28;" goto statement_identifier ;)) (expression_statement "ppppuVar13 = ppppuVar17;" (assignment_expression "ppppuVar13 = ppppuVar17" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" identifier = (call_expression "(**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c78))" ( (pointer_expression "**(code **)(puVar20 + -0x7c78)" * (pointer_expression "*(code **)(puVar20 + -0x7c78)" * (cast_expression "(code **)(puVar20 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7c78)" ( (binary_expression "puVar20 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_0002eb28;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002eb28;" goto statement_identifier ;)) (expression_statement "uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);" (assignment_expression "uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" identifier = (call_expression "(**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7be0))" ( (pointer_expression "**(code **)(puVar20 + -0x7be0)" * (pointer_expression "*(code **)(puVar20 + -0x7be0)" * (cast_expression "(code **)(puVar20 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7be0)" ( (binary_expression "puVar20 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" ( (binary_expression "iVar5 + (int)ppppuVar10 + (int)unaff_s2" (binary_expression "iVar5 + (int)ppppuVar10" identifier + (cast_expression "(int)ppppuVar10" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "iVar5 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "*(int *)(puVar22 + -0xf0) - (int)unaff_s2" (pointer_expression "*(int *)(puVar22 + -0xf0)" * (cast_expression "(int *)(puVar22 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xe0) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -0xe0) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -0xe0)" * (cast_expression "(undefined4 *)(puVar22 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;" (assignment_expression "*(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17" (pointer_expression "*(undefined4 *****)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *****)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x104) = iVar5;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar5" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);" (assignment_expression "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3)" identifier = (cast_expression "(undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar22 + -0xe0) - (int)param_3)" ( (binary_expression "*(int *)(puVar22 + -0xe0) - (int)param_3" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);" (call_expression "(**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3)" (parenthesized_expression "(**(code **)(puVar20 + -0x7be0))" ( (pointer_expression "**(code **)(puVar20 + -0x7be0)" * (pointer_expression "*(code **)(puVar20 + -0x7be0)" * (cast_expression "(code **)(puVar20 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7be0)" ( (binary_expression "puVar20 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,ppppuVar4,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) = (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 *)((int)unaff_s2 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)unaff_s2 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)unaff_s2 + -1)" * (cast_expression "(undefined1 *)((int)unaff_s2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + -1)" ( (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar16 = *(int *)(puVar22 + -0xd8);" (assignment_expression "iVar16 = *(int *)(puVar22 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar22 + -0xd8)" * (cast_expression "(int *)(puVar22 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd8)" ( (binary_expression "puVar22 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf8)" * (cast_expression "(undefined4 *)(puVar22 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xd4)" * (cast_expression "(undefined4 *)(puVar22 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd4)" ( (binary_expression "puVar22 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xfc)" * (cast_expression "(undefined4 *)(puVar22 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xf4)" * (cast_expression "(undefined4 *)(puVar22 + -0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf4)" ( (binary_expression "puVar22 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e768;" goto statement_identifier ;) (labeled_statement "LAB_0002eb28:\n  *piVar6 = 0xc;" statement_identifier : (expression_statement "*piVar6 = 0xc;" (assignment_expression "*piVar6 = 0xc" (pointer_expression "*piVar6" * identifier) = number_literal) ;)) (labeled_statement "LAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;" statement_identifier : (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" identifier = (cast_expression "(undefined4 ****)*piVar6" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar6" * identifier))) ;)) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);" statement_identifier : (expression_statement "(**(code **)(puVar20 + -0x7d6c))(iVar2);" (call_expression "(**(code **)(puVar20 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d6c))" ( (pointer_expression "**(code **)(puVar20 + -0x7d6c)" * (pointer_expression "*(code **)(puVar20 + -0x7d6c)" * (cast_expression "(code **)(puVar20 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d6c)" ( (binary_expression "puVar20 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))) ;)) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" statement_identifier : (if_statement "if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" if (parenthesized_expression "(param_3 == (undefined4 ****)0x0)" ( (binary_expression "param_3 == (undefined4 ****)0x0" identifier == (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" { (labeled_statement "LAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" identifier = (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) ))))) ;)) }) (else_clause "else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" else (compound_statement "{\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" { (labeled_statement "LAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);" statement_identifier : (expression_statement "(**(code **)(puVar20 + -0x7d68))(ppppuVar12);" (call_expression "(**(code **)(puVar20 + -0x7d68))(ppppuVar12)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d68))" ( (pointer_expression "**(code **)(puVar20 + -0x7d68)" * (pointer_expression "*(code **)(puVar20 + -0x7d68)" * (cast_expression "(code **)(puVar20 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d68)" ( (binary_expression "puVar20 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(ppppuVar12)" ( identifier ))) ;)) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" identifier = (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) ))))) ;) })))) (if_statement "if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }" { (expression_statement "(**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));" (call_expression "(**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7bd8))" ( (pointer_expression "**(code **)(puVar20 + -0x7bd8)" * (pointer_expression "*(code **)(puVar20 + -0x7bd8)" * (cast_expression "(code **)(puVar20 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7bd8)" ( (binary_expression "puVar20 + -0x7bd8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) ))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*piVar6 = (int)ppppuVar3;" (assignment_expression "*piVar6 = (int)ppppuVar3" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)ppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n    *piVar6 = (int)ppppuVar3;\n  }" else (compound_statement "{\n    *piVar6 = (int)ppppuVar3;\n  }" { (expression_statement "*piVar6 = (int)ppppuVar3;" (assignment_expression "*piVar6 = (int)ppppuVar3" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)ppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" statement_identifier : (expression_statement "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" (assignment_expression "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0x104)" * (cast_expression "(undefined4 *****)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);" statement_identifier : (expression_statement "ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);" (assignment_expression "ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0x2c)" * (cast_expression "(undefined4 *****)(puVar22 + -0x2c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x2c)" ( (binary_expression "puVar22 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }" if (parenthesized_expression "(ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4))" ( (binary_expression "ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)" identifier != (cast_expression "(undefined4 ****)**(int **)(puVar20 + -0x7be4)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "**(int **)(puVar20 + -0x7be4)" * (pointer_expression "*(int **)(puVar20 + -0x7be4)" * (cast_expression "(int **)(puVar20 + -0x7be4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7be4)" ( (binary_expression "puVar20 + -0x7be4" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }" { (expression_statement "pcVar19 = *(code **)(puVar20 + -0x7c10);" (assignment_expression "pcVar19 = *(code **)(puVar20 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar20 + -0x7c10)" * (cast_expression "(code **)(puVar20 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7c10)" ( (binary_expression "puVar20 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = 0x2ecac;" (assignment_expression "uVar23 = 0x2ecac" identifier = number_literal) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar22 + -300) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -300) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -300)" * (cast_expression "(undefined4 *)(puVar22 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -300)" ( (binary_expression "puVar22 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x130) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x130) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x130)" * (cast_expression "(undefined4 *****)(puVar22 + -0x130)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x130)" ( (binary_expression "puVar22 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x134) = param_3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x134) = param_3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x134)" * (cast_expression "(undefined4 *****)(puVar22 + -0x134)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x134)" ( (binary_expression "puVar22 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x138) = ppppuVar3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x138)" * (cast_expression "(undefined4 *****)(puVar22 + -0x138)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x138)" ( (binary_expression "puVar22 + -0x138" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;" (assignment_expression "*(code **)(puVar22 + -0x140) = pcVar19 + 0x23530" (pointer_expression "*(code **)(puVar22 + -0x140)" * (cast_expression "(code **)(puVar22 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x140)" ( (binary_expression "puVar22 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar19 + 0x23530" identifier + number_literal)) ;) (if_statement "if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" if (parenthesized_expression "(ppppuVar12 == (undefined4 ****)0x0)" ( (binary_expression "ppppuVar12 == (undefined4 ****)0x0" identifier == (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }" { (expression_statement "puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar19 + 0x1b868))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x1b868))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b868))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b868)" * (pointer_expression "*(code **)(pcVar19 + 0x1b868)" * (cast_expression "(code **)(pcVar19 + 0x1b868)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b868)" ( (binary_expression "pcVar19 + 0x1b868" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar8 = 0x7a;" (assignment_expression "*puVar8 = 0x7a" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffffff" identifier = (cast_expression "(undefined4 ****)0xffffffff" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" else (if_statement "if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" if (parenthesized_expression "(ppppuVar12 == (undefined4 ****)0xa)" ( (binary_expression "ppppuVar12 == (undefined4 ****)0xa" identifier == (cast_expression "(undefined4 ****)0xa" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" { (expression_statement "pppuVar15 = *ppppuVar13;" (assignment_expression "pppuVar15 = *ppppuVar13" identifier = (pointer_expression "*ppppuVar13" * identifier)) ;) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b988))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b988)" * (pointer_expression "*(code **)(pcVar19 + 0x1b988)" * (cast_expression "(code **)(pcVar19 + 0x1b988)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b988)" ( (binary_expression "pcVar19 + 0x1b988" identifier + number_literal) ))))) )) (argument_list "(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" ( identifier , (binary_expression "*(int *)(pcVar19 + 0x1b568) + 0x58ac" (pointer_expression "*(int *)(pcVar19 + 0x1b568)" * (cast_expression "(int *)(pcVar19 + 0x1b568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b568)" ( (binary_expression "pcVar19 + 0x1b568" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }" { (expression_statement "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);" (call_expression "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar22 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar22 + -0x140)" * (cast_expression "(int *)(puVar22 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x140)" ( (binary_expression "puVar22 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pppuVar15)" ( identifier ))) ;) (expression_statement "iVar2 = *(int *)(puVar22 + -0x140);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x140)" identifier = (pointer_expression "*(int *)(puVar22 + -0x140)" * (cast_expression "(int *)(puVar22 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x140)" ( (binary_expression "puVar22 + -0x140" identifier + number_literal) ))))) ;) (expression_statement "*ppppuVar13 = (undefined4 ***)0x0;" (assignment_expression "*ppppuVar13 = (undefined4 ***)0x0" (pointer_expression "*ppppuVar13" * identifier) = (cast_expression "(undefined4 ***)0x0" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar2 + -0x7cc8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar2 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar2 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar2 + -0x7cc8)" * (pointer_expression "*(code **)(iVar2 + -0x7cc8)" * (cast_expression "(code **)(iVar2 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + -0x7cc8)" ( (binary_expression "iVar2 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar8 = 0x3d;" (assignment_expression "*puVar8 = 0x3d" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffffff" identifier = (cast_expression "(undefined4 ****)0xffffffff" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) })) })))) (return_statement "return ppppuVar12;" return identifier ;) })) (return_statement "return ppppuVar4;" return identifier ;) })))
(translation_unit "int gnu_fnmatch(char *pattern,char *string,int flags)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  wchar_t ****ppppwVar4;\n  int *piVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  wchar_t ****ppppwVar9;\n  uint uVar10;\n  wchar_t ****ppppwVar11;\n  wchar_t ****string_00;\n  uint uVar12;\n  wchar_t ****unaff_s2;\n  wchar_t ***pppwVar13;\n  int unaff_s3;\n  wchar_t ****unaff_s4;\n  wchar_t ****unaff_s5;\n  int iVar14;\n  wchar_t ****ppppwVar15;\n  mbstate_t *unaff_s6;\n  wchar_t ****ppppwVar16;\n  undefined4 unaff_s7;\n  undefined *puVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  int iVar20;\n  undefined1 *puVar21;\n  undefined4 uVar22;\n  undefined1 auStackY_60 [16];\n  wchar_t ***local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  puVar21 = auStackY_60;\n  iVar2 = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = (wchar_t ***)string;\n  local_3c[0] = pattern;\n  iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar3 == 1) {\nLAB_0002e288:\n    string_00 = (wchar_t ****)local_40;\n    iVar3 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    ppppwVar4 = (wchar_t ****)\n                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n    puVar21 = auStackY_60;\n  }\n  else {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar12 = iVar3 + 1;\n    if (uVar12 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    string_00 = &local_40;\n    unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    uVar10 = uVar12 + unaff_s3;\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    if ((uVar10 < uVar12) || (0x3fffffff < uVar10)) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar7 = 0xc;\n      ppppwVar4 = (wchar_t ****)0xffffffff;\n    }\n    else if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }\n  }\n  if (iVar2 == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return (int)ppppwVar4;\n  }\n  uVar22 = 0x2e5f8;\n  puVar17 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar19 = puVar17 + 0x23be0;\n  *(undefined4 *)(puVar21 + -4) = uVar22;\n  *(undefined1 **)(puVar21 + -8) = auStackY_60;\n  *(undefined4 *)(puVar21 + -0xc) = unaff_s7;\n  *(mbstate_t **)(puVar21 + -0x10) = unaff_s6;\n  *(wchar_t *****)(puVar21 + -0x14) = unaff_s5;\n  *(wchar_t *****)(puVar21 + -0x18) = unaff_s4;\n  *(int *)(puVar21 + -0x1c) = unaff_s3;\n  *(wchar_t *****)(puVar21 + -0x20) = unaff_s2;\n  *(int *)(puVar21 + -0x24) = flags;\n  *(wchar_t *****)(puVar21 + -0x28) = ppppwVar4;\n  *(undefined **)(puVar21 + -0x110) = puVar19;\n  *(int *)(puVar21 + -0x100) = iVar2;\n  *(wchar_t *****)(puVar21 + 4) = string_00;\n  *(undefined4 *)(puVar21 + -0x2c) = **(undefined4 **)(puVar17 + 0x1bffc);\n  if (string_00 != (wchar_t ****)0x0) {\n    if (*(int *)(puVar21 + -0x100) == 0) {\n      *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n    *(undefined4 *)(puVar21 + -0x104) = *(undefined4 *)(puVar21 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar21 + -0x104);\n    iVar8 = *(int *)(puVar21 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar8 + -1) = 0;\n    ppppwVar11 = (wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c);\n    iVar3 = (**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n    iVar20 = *(int *)(puVar21 + -0x110);\n    if (iVar3 < 0) {\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);\n      iVar14 = *(int *)(puVar21 + -0xc0);\n      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);\n      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);\n      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n      iVar20 = *(int *)(puVar21 + -0x110);\n      if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    ppppwVar4 = (wchar_t ****)*piVar5;\n    string_00 = ppppwVar11;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar21 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(int *)(puVar21 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(puVar21 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar7 = (undefined4 *)(**(code **)(puVar17 + 0x1bf18))();\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  *puVar7 = 0x16;\n  *(undefined4 *)(puVar21 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))) {\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n  }\n  *(undefined4 *)(puVar21 + -0x118) = 0x100;\n  string_00 = ppppwVar16;\n  iVar3 = (**(code **)(puVar19 + -0x7c30))\n                    (3,ppppwVar16,ppppwVar11,*(undefined4 *)(puVar21 + -0x108));\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  if (((iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104));\n  flags = (**(code **)(puVar19 + -0x7ca4))(ppppwVar11);\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  if (unaff_s2 <= (uint)flags) {\n    ppppwVar4 = *(wchar_t *****)(puVar21 + -0xf0);\n    if (*(int *)(puVar21 + 4) != 0) {\n      *piVar5 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppwVar9 = ppppwVar4;\n    if (ppppwVar4 < (uint)flags) {\n      ppppwVar9 = (wchar_t ****)flags;\n    }\n    ppppwVar15 = (wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4);\n    if (ppppwVar15 < ppppwVar4) goto LAB_0002eb28;\n    string_00 = ppppwVar15;\n    iVar3 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    if (iVar3 == 0) goto LAB_0002eb28;\n    uVar22 = (**(code **)(puVar19 + -0x7be0))\n                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(undefined4 *)(puVar21 + -0xe0) = uVar22;\n    *(wchar_t *****)(puVar21 + -0xf0) = ppppwVar15;\n    *(int *)(puVar21 + -0x104) = iVar3;\n  }\n  unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - flags);\n  (**(code **)(puVar19 + -0x7be0))(unaff_s2,ppppwVar11,flags);\n  iVar20 = *(int *)(puVar21 + -0x110);\n  *(int *)(puVar21 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar14 = *(int *)(puVar21 + -0xd8);\n  *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xd4);\n  *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar5 = 0xc;\nLAB_0002e864:\n  ppppwVar4 = (wchar_t ****)*piVar5;\n  flags = 0;\nLAB_0002e86c:\n  (**(code **)(puVar19 + -0x7d6c))(iVar2);\n  puVar19 = *(undefined **)(puVar21 + -0x110);\nLAB_0002e880:\n  if ((wchar_t ****)flags == (wchar_t ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar19 + -0x7bd8))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *piVar5 = (int)ppppwVar4;\n  }\n  else {\n    *piVar5 = (int)ppppwVar4;\n  }\n  *(undefined4 *)(puVar21 + -0x104) = 0;\nLAB_0002e89c:\n  iVar2 = *(int *)(puVar21 + -0x104);\nLAB_0002e8a0:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 != **(int **)(puVar19 + -0x7be4)) {\n    pcVar18 = *(code **)(puVar19 + -0x7c10);\n    uVar22 = 0x2ecac;\n    (*pcVar18)();\n    *(undefined4 *)(puVar21 + -300) = uVar22;\n    *(wchar_t *****)(puVar21 + -0x130) = unaff_s2;\n    *(int *)(puVar21 + -0x134) = flags;\n    *(wchar_t *****)(puVar21 + -0x138) = ppppwVar4;\n    *(code **)(puVar21 + -0x140) = pcVar18 + 0x23530;\n    if (iVar3 == 0) {\n      puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();\n      *puVar7 = 0x7a;\n      iVar3 = -1;\n    }\n    else if (iVar3 == 10) {\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }\n    return iVar3;\n  }\n  return iVar2;\n}\n\n" (function_definition "int gnu_fnmatch(char *pattern,char *string,int flags)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  wchar_t ****ppppwVar4;\n  int *piVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  wchar_t ****ppppwVar9;\n  uint uVar10;\n  wchar_t ****ppppwVar11;\n  wchar_t ****string_00;\n  uint uVar12;\n  wchar_t ****unaff_s2;\n  wchar_t ***pppwVar13;\n  int unaff_s3;\n  wchar_t ****unaff_s4;\n  wchar_t ****unaff_s5;\n  int iVar14;\n  wchar_t ****ppppwVar15;\n  mbstate_t *unaff_s6;\n  wchar_t ****ppppwVar16;\n  undefined4 unaff_s7;\n  undefined *puVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  int iVar20;\n  undefined1 *puVar21;\n  undefined4 uVar22;\n  undefined1 auStackY_60 [16];\n  wchar_t ***local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  puVar21 = auStackY_60;\n  iVar2 = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = (wchar_t ***)string;\n  local_3c[0] = pattern;\n  iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar3 == 1) {\nLAB_0002e288:\n    string_00 = (wchar_t ****)local_40;\n    iVar3 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    ppppwVar4 = (wchar_t ****)\n                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n    puVar21 = auStackY_60;\n  }\n  else {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar12 = iVar3 + 1;\n    if (uVar12 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    string_00 = &local_40;\n    unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    uVar10 = uVar12 + unaff_s3;\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    if ((uVar10 < uVar12) || (0x3fffffff < uVar10)) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar7 = 0xc;\n      ppppwVar4 = (wchar_t ****)0xffffffff;\n    }\n    else if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }\n  }\n  if (iVar2 == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return (int)ppppwVar4;\n  }\n  uVar22 = 0x2e5f8;\n  puVar17 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar19 = puVar17 + 0x23be0;\n  *(undefined4 *)(puVar21 + -4) = uVar22;\n  *(undefined1 **)(puVar21 + -8) = auStackY_60;\n  *(undefined4 *)(puVar21 + -0xc) = unaff_s7;\n  *(mbstate_t **)(puVar21 + -0x10) = unaff_s6;\n  *(wchar_t *****)(puVar21 + -0x14) = unaff_s5;\n  *(wchar_t *****)(puVar21 + -0x18) = unaff_s4;\n  *(int *)(puVar21 + -0x1c) = unaff_s3;\n  *(wchar_t *****)(puVar21 + -0x20) = unaff_s2;\n  *(int *)(puVar21 + -0x24) = flags;\n  *(wchar_t *****)(puVar21 + -0x28) = ppppwVar4;\n  *(undefined **)(puVar21 + -0x110) = puVar19;\n  *(int *)(puVar21 + -0x100) = iVar2;\n  *(wchar_t *****)(puVar21 + 4) = string_00;\n  *(undefined4 *)(puVar21 + -0x2c) = **(undefined4 **)(puVar17 + 0x1bffc);\n  if (string_00 != (wchar_t ****)0x0) {\n    if (*(int *)(puVar21 + -0x100) == 0) {\n      *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n    *(undefined4 *)(puVar21 + -0x104) = *(undefined4 *)(puVar21 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar21 + -0x104);\n    iVar8 = *(int *)(puVar21 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar8 + -1) = 0;\n    ppppwVar11 = (wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c);\n    iVar3 = (**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n    iVar20 = *(int *)(puVar21 + -0x110);\n    if (iVar3 < 0) {\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);\n      iVar14 = *(int *)(puVar21 + -0xc0);\n      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);\n      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);\n      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n      iVar20 = *(int *)(puVar21 + -0x110);\n      if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    ppppwVar4 = (wchar_t ****)*piVar5;\n    string_00 = ppppwVar11;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar21 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(int *)(puVar21 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(puVar21 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar7 = (undefined4 *)(**(code **)(puVar17 + 0x1bf18))();\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  *puVar7 = 0x16;\n  *(undefined4 *)(puVar21 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))) {\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n  }\n  *(undefined4 *)(puVar21 + -0x118) = 0x100;\n  string_00 = ppppwVar16;\n  iVar3 = (**(code **)(puVar19 + -0x7c30))\n                    (3,ppppwVar16,ppppwVar11,*(undefined4 *)(puVar21 + -0x108));\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  if (((iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104));\n  flags = (**(code **)(puVar19 + -0x7ca4))(ppppwVar11);\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  if (unaff_s2 <= (uint)flags) {\n    ppppwVar4 = *(wchar_t *****)(puVar21 + -0xf0);\n    if (*(int *)(puVar21 + 4) != 0) {\n      *piVar5 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppwVar9 = ppppwVar4;\n    if (ppppwVar4 < (uint)flags) {\n      ppppwVar9 = (wchar_t ****)flags;\n    }\n    ppppwVar15 = (wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4);\n    if (ppppwVar15 < ppppwVar4) goto LAB_0002eb28;\n    string_00 = ppppwVar15;\n    iVar3 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    if (iVar3 == 0) goto LAB_0002eb28;\n    uVar22 = (**(code **)(puVar19 + -0x7be0))\n                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(undefined4 *)(puVar21 + -0xe0) = uVar22;\n    *(wchar_t *****)(puVar21 + -0xf0) = ppppwVar15;\n    *(int *)(puVar21 + -0x104) = iVar3;\n  }\n  unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - flags);\n  (**(code **)(puVar19 + -0x7be0))(unaff_s2,ppppwVar11,flags);\n  iVar20 = *(int *)(puVar21 + -0x110);\n  *(int *)(puVar21 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar14 = *(int *)(puVar21 + -0xd8);\n  *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xd4);\n  *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar5 = 0xc;\nLAB_0002e864:\n  ppppwVar4 = (wchar_t ****)*piVar5;\n  flags = 0;\nLAB_0002e86c:\n  (**(code **)(puVar19 + -0x7d6c))(iVar2);\n  puVar19 = *(undefined **)(puVar21 + -0x110);\nLAB_0002e880:\n  if ((wchar_t ****)flags == (wchar_t ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar19 + -0x7bd8))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *piVar5 = (int)ppppwVar4;\n  }\n  else {\n    *piVar5 = (int)ppppwVar4;\n  }\n  *(undefined4 *)(puVar21 + -0x104) = 0;\nLAB_0002e89c:\n  iVar2 = *(int *)(puVar21 + -0x104);\nLAB_0002e8a0:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 != **(int **)(puVar19 + -0x7be4)) {\n    pcVar18 = *(code **)(puVar19 + -0x7c10);\n    uVar22 = 0x2ecac;\n    (*pcVar18)();\n    *(undefined4 *)(puVar21 + -300) = uVar22;\n    *(wchar_t *****)(puVar21 + -0x130) = unaff_s2;\n    *(int *)(puVar21 + -0x134) = flags;\n    *(wchar_t *****)(puVar21 + -0x138) = ppppwVar4;\n    *(code **)(puVar21 + -0x140) = pcVar18 + 0x23530;\n    if (iVar3 == 0) {\n      puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();\n      *puVar7 = 0x7a;\n      iVar3 = -1;\n    }\n    else if (iVar3 == 10) {\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }\n    return iVar3;\n  }\n  return iVar2;\n}" primitive_type (function_declarator "gnu_fnmatch(char *pattern,char *string,int flags)" identifier (parameter_list "(char *pattern,char *string,int flags)" ( (parameter_declaration "char *pattern" primitive_type (pointer_declarator "*pattern" * identifier)) , (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) , (parameter_declaration "int flags" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  wchar_t ****ppppwVar4;\n  int *piVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  wchar_t ****ppppwVar9;\n  uint uVar10;\n  wchar_t ****ppppwVar11;\n  wchar_t ****string_00;\n  uint uVar12;\n  wchar_t ****unaff_s2;\n  wchar_t ***pppwVar13;\n  int unaff_s3;\n  wchar_t ****unaff_s4;\n  wchar_t ****unaff_s5;\n  int iVar14;\n  wchar_t ****ppppwVar15;\n  mbstate_t *unaff_s6;\n  wchar_t ****ppppwVar16;\n  undefined4 unaff_s7;\n  undefined *puVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  int iVar20;\n  undefined1 *puVar21;\n  undefined4 uVar22;\n  undefined1 auStackY_60 [16];\n  wchar_t ***local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  puVar21 = auStackY_60;\n  iVar2 = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = (wchar_t ***)string;\n  local_3c[0] = pattern;\n  iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar3 == 1) {\nLAB_0002e288:\n    string_00 = (wchar_t ****)local_40;\n    iVar3 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    ppppwVar4 = (wchar_t ****)\n                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n    puVar21 = auStackY_60;\n  }\n  else {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar12 = iVar3 + 1;\n    if (uVar12 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    string_00 = &local_40;\n    unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    uVar10 = uVar12 + unaff_s3;\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    if ((uVar10 < uVar12) || (0x3fffffff < uVar10)) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar7 = 0xc;\n      ppppwVar4 = (wchar_t ****)0xffffffff;\n    }\n    else if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }\n  }\n  if (iVar2 == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return (int)ppppwVar4;\n  }\n  uVar22 = 0x2e5f8;\n  puVar17 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar19 = puVar17 + 0x23be0;\n  *(undefined4 *)(puVar21 + -4) = uVar22;\n  *(undefined1 **)(puVar21 + -8) = auStackY_60;\n  *(undefined4 *)(puVar21 + -0xc) = unaff_s7;\n  *(mbstate_t **)(puVar21 + -0x10) = unaff_s6;\n  *(wchar_t *****)(puVar21 + -0x14) = unaff_s5;\n  *(wchar_t *****)(puVar21 + -0x18) = unaff_s4;\n  *(int *)(puVar21 + -0x1c) = unaff_s3;\n  *(wchar_t *****)(puVar21 + -0x20) = unaff_s2;\n  *(int *)(puVar21 + -0x24) = flags;\n  *(wchar_t *****)(puVar21 + -0x28) = ppppwVar4;\n  *(undefined **)(puVar21 + -0x110) = puVar19;\n  *(int *)(puVar21 + -0x100) = iVar2;\n  *(wchar_t *****)(puVar21 + 4) = string_00;\n  *(undefined4 *)(puVar21 + -0x2c) = **(undefined4 **)(puVar17 + 0x1bffc);\n  if (string_00 != (wchar_t ****)0x0) {\n    if (*(int *)(puVar21 + -0x100) == 0) {\n      *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n    *(undefined4 *)(puVar21 + -0x104) = *(undefined4 *)(puVar21 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar21 + -0x104);\n    iVar8 = *(int *)(puVar21 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar8 + -1) = 0;\n    ppppwVar11 = (wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c);\n    iVar3 = (**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n    iVar20 = *(int *)(puVar21 + -0x110);\n    if (iVar3 < 0) {\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);\n      iVar14 = *(int *)(puVar21 + -0xc0);\n      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);\n      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);\n      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n      iVar20 = *(int *)(puVar21 + -0x110);\n      if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    ppppwVar4 = (wchar_t ****)*piVar5;\n    string_00 = ppppwVar11;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar21 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(int *)(puVar21 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(puVar21 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar7 = (undefined4 *)(**(code **)(puVar17 + 0x1bf18))();\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  *puVar7 = 0x16;\n  *(undefined4 *)(puVar21 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))) {\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n  }\n  *(undefined4 *)(puVar21 + -0x118) = 0x100;\n  string_00 = ppppwVar16;\n  iVar3 = (**(code **)(puVar19 + -0x7c30))\n                    (3,ppppwVar16,ppppwVar11,*(undefined4 *)(puVar21 + -0x108));\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  if (((iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104));\n  flags = (**(code **)(puVar19 + -0x7ca4))(ppppwVar11);\n  puVar19 = *(undefined **)(puVar21 + -0x110);\n  if (unaff_s2 <= (uint)flags) {\n    ppppwVar4 = *(wchar_t *****)(puVar21 + -0xf0);\n    if (*(int *)(puVar21 + 4) != 0) {\n      *piVar5 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppwVar9 = ppppwVar4;\n    if (ppppwVar4 < (uint)flags) {\n      ppppwVar9 = (wchar_t ****)flags;\n    }\n    ppppwVar15 = (wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4);\n    if (ppppwVar15 < ppppwVar4) goto LAB_0002eb28;\n    string_00 = ppppwVar15;\n    iVar3 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    if (iVar3 == 0) goto LAB_0002eb28;\n    uVar22 = (**(code **)(puVar19 + -0x7be0))\n                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(undefined4 *)(puVar21 + -0xe0) = uVar22;\n    *(wchar_t *****)(puVar21 + -0xf0) = ppppwVar15;\n    *(int *)(puVar21 + -0x104) = iVar3;\n  }\n  unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - flags);\n  (**(code **)(puVar19 + -0x7be0))(unaff_s2,ppppwVar11,flags);\n  iVar20 = *(int *)(puVar21 + -0x110);\n  *(int *)(puVar21 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar14 = *(int *)(puVar21 + -0xd8);\n  *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xd4);\n  *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar5 = 0xc;\nLAB_0002e864:\n  ppppwVar4 = (wchar_t ****)*piVar5;\n  flags = 0;\nLAB_0002e86c:\n  (**(code **)(puVar19 + -0x7d6c))(iVar2);\n  puVar19 = *(undefined **)(puVar21 + -0x110);\nLAB_0002e880:\n  if ((wchar_t ****)flags == (wchar_t ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar19 + -0x7bd8))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *piVar5 = (int)ppppwVar4;\n  }\n  else {\n    *piVar5 = (int)ppppwVar4;\n  }\n  *(undefined4 *)(puVar21 + -0x104) = 0;\nLAB_0002e89c:\n  iVar2 = *(int *)(puVar21 + -0x104);\nLAB_0002e8a0:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 != **(int **)(puVar19 + -0x7be4)) {\n    pcVar18 = *(code **)(puVar19 + -0x7c10);\n    uVar22 = 0x2ecac;\n    (*pcVar18)();\n    *(undefined4 *)(puVar21 + -300) = uVar22;\n    *(wchar_t *****)(puVar21 + -0x130) = unaff_s2;\n    *(int *)(puVar21 + -0x134) = flags;\n    *(wchar_t *****)(puVar21 + -0x138) = ppppwVar4;\n    *(code **)(puVar21 + -0x140) = pcVar18 + 0x23530;\n    if (iVar3 == 0) {\n      puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();\n      *puVar7 = 0x7a;\n      iVar3 = -1;\n    }\n    else if (iVar3 == 10) {\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }\n    return iVar3;\n  }\n  return iVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "wchar_t ****ppppwVar4;" type_identifier (pointer_declarator "****ppppwVar4" * (pointer_declarator "***ppppwVar4" * (pointer_declarator "**ppppwVar4" * (pointer_declarator "*ppppwVar4" * identifier)))) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "wchar_t ****ppppwVar9;" type_identifier (pointer_declarator "****ppppwVar9" * (pointer_declarator "***ppppwVar9" * (pointer_declarator "**ppppwVar9" * (pointer_declarator "*ppppwVar9" * identifier)))) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "wchar_t ****ppppwVar11;" type_identifier (pointer_declarator "****ppppwVar11" * (pointer_declarator "***ppppwVar11" * (pointer_declarator "**ppppwVar11" * (pointer_declarator "*ppppwVar11" * identifier)))) ;) (declaration "wchar_t ****string_00;" type_identifier (pointer_declarator "****string_00" * (pointer_declarator "***string_00" * (pointer_declarator "**string_00" * (pointer_declarator "*string_00" * identifier)))) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "wchar_t ****unaff_s2;" type_identifier (pointer_declarator "****unaff_s2" * (pointer_declarator "***unaff_s2" * (pointer_declarator "**unaff_s2" * (pointer_declarator "*unaff_s2" * identifier)))) ;) (declaration "wchar_t ***pppwVar13;" type_identifier (pointer_declarator "***pppwVar13" * (pointer_declarator "**pppwVar13" * (pointer_declarator "*pppwVar13" * identifier))) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "wchar_t ****unaff_s4;" type_identifier (pointer_declarator "****unaff_s4" * (pointer_declarator "***unaff_s4" * (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier)))) ;) (declaration "wchar_t ****unaff_s5;" type_identifier (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier)))) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "wchar_t ****ppppwVar15;" type_identifier (pointer_declarator "****ppppwVar15" * (pointer_declarator "***ppppwVar15" * (pointer_declarator "**ppppwVar15" * (pointer_declarator "*ppppwVar15" * identifier)))) ;) (declaration "mbstate_t *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "wchar_t ****ppppwVar16;" type_identifier (pointer_declarator "****ppppwVar16" * (pointer_declarator "***ppppwVar16" * (pointer_declarator "**ppppwVar16" * (pointer_declarator "*ppppwVar16" * identifier)))) ;) (declaration "undefined4 unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined1 auStackY_60 [16];" type_identifier (array_declarator "auStackY_60 [16]" identifier [ number_literal ]) ;) (declaration "wchar_t ***local_40;" type_identifier (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))) ;) (declaration "char *local_3c [2];" primitive_type (pointer_declarator "*local_3c [2]" * (array_declarator "local_3c [2]" identifier [ number_literal ])) ;) (declaration "mbstate_t ps;" type_identifier identifier ;) (expression_statement "puVar21 = auStackY_60;" (assignment_expression "puVar21 = auStackY_60" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)PTR___stack_chk_guard_0004a5fc;" (assignment_expression "iVar2 = *(int *)PTR___stack_chk_guard_0004a5fc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004a5fc" * (cast_expression "(int *)PTR___stack_chk_guard_0004a5fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_40 = (wchar_t ***)string;" (assignment_expression "local_40 = (wchar_t ***)string" identifier = (cast_expression "(wchar_t ***)string" ( (type_descriptor "wchar_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_3c[0] = pattern;" (assignment_expression "local_3c[0] = pattern" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();" (assignment_expression "iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004a598)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004a598)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0004a598" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0004a598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 1) {\nLAB_0002e288:\n    string_00 = (wchar_t ****)local_40;\n    iVar3 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    ppppwVar4 = (wchar_t ****)\n                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n    puVar21 = auStackY_60;\n  }\n  else {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar12 = iVar3 + 1;\n    if (uVar12 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    string_00 = &local_40;\n    unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    uVar10 = uVar12 + unaff_s3;\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    if ((uVar10 < uVar12) || (0x3fffffff < uVar10)) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar7 = 0xc;\n      ppppwVar4 = (wchar_t ****)0xffffffff;\n    }\n    else if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002e288:\n    string_00 = (wchar_t ****)local_40;\n    iVar3 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    ppppwVar4 = (wchar_t ****)\n                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n    puVar21 = auStackY_60;\n  }" { (labeled_statement "LAB_0002e288:\n    string_00 = (wchar_t ****)local_40;" statement_identifier : (expression_statement "string_00 = (wchar_t ****)local_40;" (assignment_expression "string_00 = (wchar_t ****)local_40" identifier = (cast_expression "(wchar_t ****)local_40" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "iVar3 = (*(code *)PTR_strlen_0004a53c)(local_40);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_0004a53c)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_0004a53c)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_0004a53c)" ( (pointer_expression "*(code *)PTR_strlen_0004a53c" * (cast_expression "(code *)PTR_strlen_0004a53c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "ppppwVar4 = (wchar_t ****)\n                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);" (assignment_expression "ppppwVar4 = (wchar_t ****)\n                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier = (cast_expression "(wchar_t ****)\n                internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier (argument_list "(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                                 SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , (cast_expression "(char *)string_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)((int)string_00 + iVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)string_00 + iVar3)" ( (binary_expression "(int)string_00 + iVar3" (cast_expression "(int)string_00" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , identifier ))))) ;) (expression_statement "puVar21 = auStackY_60;" (assignment_expression "puVar21 = auStackY_60" identifier = identifier) ;) }) (else_clause "else {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar12 = iVar3 + 1;\n    if (uVar12 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    string_00 = &local_40;\n    unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    uVar10 = uVar12 + unaff_s3;\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    if ((uVar10 < uVar12) || (0x3fffffff < uVar10)) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar7 = 0xc;\n      ppppwVar4 = (wchar_t ****)0xffffffff;\n    }\n    else if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }\n  }" else (compound_statement "{\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar12 = iVar3 + 1;\n    if (uVar12 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    string_00 = &local_40;\n    unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);\n    uVar10 = uVar12 + unaff_s3;\n    if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }\n    if ((uVar10 < uVar12) || (0x3fffffff < uVar10)) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar7 = 0xc;\n      ppppwVar4 = (wchar_t ****)0xffffffff;\n    }\n    else if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }\n  }" { (expression_statement "ps.__count = 0;" (assignment_expression "ps.__count = 0" (field_expression "ps.__count" identifier . field_identifier) = number_literal) ;) (expression_statement "ps.__value.__wch = 0;" (assignment_expression "ps.__value.__wch = 0" (field_expression "ps.__value.__wch" (field_expression "ps.__value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);" (assignment_expression "iVar3 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_3c,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "uVar12 = iVar3 + 1;" (assignment_expression "uVar12 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (uVar12 == 0) goto LAB_0002e288;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e288;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);" (assignment_expression "iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(&ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }" { (expression_statement "iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918);" (assignment_expression "iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918)" identifier = (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                         PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "string_00 = &local_40;" (assignment_expression "string_00 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps);" (assignment_expression "unaff_s2 = (wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps)" identifier = (cast_expression "(wchar_t ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(0,string_00,0,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,string_00,0,&ps)" ( number_literal , identifier , number_literal , (pointer_expression "&ps" & identifier) ))))) ;) (expression_statement "unaff_s3 = (int)unaff_s2 + 1;" (assignment_expression "unaff_s3 = (int)unaff_s2 + 1" identifier = (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (unaff_s3 == 0) goto LAB_0002e288;" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e288;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps);" (assignment_expression "iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(&ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(&ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "uVar10 = uVar12 + unaff_s3;" (assignment_expression "uVar10 = uVar12 + unaff_s3" identifier = (binary_expression "uVar12 + unaff_s3" identifier + identifier)) ;) (if_statement "if (iVar3 == 0) {\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);\n      return iVar2;\n    }" { (expression_statement "iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918);" (assignment_expression "iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918)" identifier = (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                        (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                         PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if ((uVar10 < uVar12) || (0x3fffffff < uVar10)) {\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar7 = 0xc;\n      ppppwVar4 = (wchar_t ****)0xffffffff;\n    }\n    else if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }" if (parenthesized_expression "((uVar10 < uVar12) || (0x3fffffff < uVar10))" ( (binary_expression "(uVar10 < uVar12) || (0x3fffffff < uVar10)" (parenthesized_expression "(uVar10 < uVar12)" ( (binary_expression "uVar10 < uVar12" identifier < identifier) )) || (parenthesized_expression "(0x3fffffff < uVar10)" ( (binary_expression "0x3fffffff < uVar10" number_literal < identifier) ))) )) (compound_statement "{\n      puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar7 = 0xc;\n      ppppwVar4 = (wchar_t ****)0xffffffff;\n    }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004a518)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0004a518)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004a518)" ( (pointer_expression "*(code *)PTR___errno_location_0004a518" * (cast_expression "(code *)PTR___errno_location_0004a518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0xc;" (assignment_expression "*puVar7 = 0xc" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "ppppwVar4 = (wchar_t ****)0xffffffff;" (assignment_expression "ppppwVar4 = (wchar_t ****)0xffffffff" identifier = (cast_expression "(wchar_t ****)0xffffffff" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }" else (if_statement "if (uVar10 < 2000) {\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }\n    else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }" if (parenthesized_expression "(uVar10 < 2000)" ( (binary_expression "uVar10 < 2000" identifier < number_literal) )) (compound_statement "{\n      iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);\n      unaff_s6 = &ps;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);\n      iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar12;\n      if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);\n      *(int *)(&stack0xffffffb0 + iVar3) = flags;\n      string_00 = unaff_s4;\n      ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));\n      puVar21 = auStackY_60 + iVar3;\n    }" { (expression_statement "iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar3 = -(uVar10 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar10 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar10 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar10 * 4 + 7 & 0xfffffff8" (binary_expression "uVar10 * 4 + 7" (binary_expression "uVar10 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3);" (assignment_expression "unaff_s5 = (wchar_t ****)(&stack0xffffffb8 + iVar3)" identifier = (cast_expression "(wchar_t ****)(&stack0xffffffb8 + iVar3)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(&stack0xffffffb8 + iVar3)" ( (binary_expression "&stack0xffffffb8 + iVar3" (pointer_expression "&stack0xffffffb8" & identifier) + identifier) )))) ;) (expression_statement "unaff_s6 = &ps;" (assignment_expression "unaff_s6 = &ps" identifier = (pointer_expression "&ps" & identifier)) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar12,unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,local_3c,uVar12,unaff_s6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);" (assignment_expression "iVar8 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "unaff_s4 = unaff_s5 + uVar12;" (assignment_expression "unaff_s4 = unaff_s5 + uVar12" identifier = (binary_expression "unaff_s5 + uVar12" identifier + identifier)) ;) (if_statement "if (iVar8 == 0) {\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);\n        return iVar2;\n      }" { (labeled_statement "LAB_0002e5c4:\n        iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);" statement_identifier : (expression_statement "iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918);" (assignment_expression "iVar2 = (*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918)" identifier = (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                          (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                           PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) )))) ;)) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4,&local_40,unaff_s3,&ps)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "*(int *)(&stack0xffffffb0 + iVar3) = flags;" (assignment_expression "*(int *)(&stack0xffffffb0 + iVar3) = flags" (pointer_expression "*(int *)(&stack0xffffffb0 + iVar3)" * (cast_expression "(int *)(&stack0xffffffb0 + iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffb0 + iVar3)" ( (binary_expression "&stack0xffffffb0 + iVar3" (pointer_expression "&stack0xffffffb0" & identifier) + identifier) )))) = identifier) ;) (expression_statement "string_00 = unaff_s4;" (assignment_expression "string_00 = unaff_s4" identifier = identifier) ;) (expression_statement "ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3));" (assignment_expression "ppppwVar4 = (wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3))" identifier = (cast_expression "(wchar_t ****)\n                  internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3))" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "internal_fnwmatch((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3))" identifier (argument_list "((wchar_t *)unaff_s5,(wchar_t *)unaff_s4,\n                                    (wchar_t *)(unaff_s4 + (int)unaff_s2),\n                                    SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                    *(int *)(&stack0xffffffb0 + iVar3))" ( (cast_expression "(wchar_t *)unaff_s5" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)unaff_s4" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(unaff_s4 + (int)unaff_s2)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + (int)unaff_s2)" ( (binary_expression "unaff_s4 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(&stack0xffffffb0 + iVar3)" * (cast_expression "(int *)(&stack0xffffffb0 + iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffb0 + iVar3)" ( (binary_expression "&stack0xffffffb0 + iVar3" (pointer_expression "&stack0xffffffb0" & identifier) + identifier) )))) ))))) ;) (expression_statement "puVar21 = auStackY_60 + iVar3;" (assignment_expression "puVar21 = auStackY_60 + iVar3" identifier = (binary_expression "auStackY_60 + iVar3" identifier + identifier)) ;) }) (else_clause "else {\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }" else (compound_statement "{\n      unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);\n      if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }\n    }" { (expression_statement "unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4);" (assignment_expression "unaff_s4 = (wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4)" identifier = (cast_expression "(wchar_t ****)(*(code *)PTR_malloc_0004a560)(uVar10 * 4)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR_malloc_0004a560)(uVar10 * 4)" (parenthesized_expression "(*(code *)PTR_malloc_0004a560)" ( (pointer_expression "*(code *)PTR_malloc_0004a560" * (cast_expression "(code *)PTR_malloc_0004a560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10 * 4)" ( (binary_expression "uVar10 * 4" identifier * number_literal) ))))) ;) (if_statement "if (unaff_s4 == (wchar_t ****)0x0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }" if (parenthesized_expression "(unaff_s4 == (wchar_t ****)0x0)" ( (binary_expression "unaff_s4 == (wchar_t ****)0x0" identifier == (cast_expression "(wchar_t ****)0x0" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar7 = 0xc;\n        ppppwVar4 = (wchar_t ****)0xffffffff;\n        puVar21 = auStackY_60;\n      }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004a518)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0004a518)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004a518)" ( (pointer_expression "*(code *)PTR___errno_location_0004a518" * (cast_expression "(code *)PTR___errno_location_0004a518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0xc;" (assignment_expression "*puVar7 = 0xc" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "ppppwVar4 = (wchar_t ****)0xffffffff;" (assignment_expression "ppppwVar4 = (wchar_t ****)0xffffffff" identifier = (cast_expression "(wchar_t ****)0xffffffff" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "puVar21 = auStackY_60;" (assignment_expression "puVar21 = auStackY_60" identifier = identifier) ;) }) (else_clause "else {\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }" else (compound_statement "{\n        unaff_s5 = unaff_s4 + uVar12;\n        unaff_s6 = &ps;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);\n        iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar3 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);\n        string_00 = unaff_s5;\n        ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar21 = auStackY_60;\n      }" { (expression_statement "unaff_s5 = unaff_s4 + uVar12;" (assignment_expression "unaff_s5 = unaff_s4 + uVar12" identifier = (binary_expression "unaff_s4 + uVar12" identifier + identifier)) ;) (expression_statement "unaff_s6 = &ps;" (assignment_expression "unaff_s6 = &ps" identifier = (pointer_expression "&ps" & identifier)) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar12,unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4,local_3c,uVar12,unaff_s6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);" (assignment_expression "iVar3 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002e5c4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e5c4;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,&local_40,unaff_s3,&ps)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "string_00 = unaff_s5;" (assignment_expression "string_00 = unaff_s5" identifier = identifier) ;) (expression_statement "ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);" (assignment_expression "ppppwVar4 = (wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier = (cast_expression "(wchar_t ****)\n                    internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "internal_fnwmatch((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier (argument_list "((wchar_t *)unaff_s4,(wchar_t *)unaff_s5,\n                                      (wchar_t *)(unaff_s5 + (int)unaff_s2),\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" ( (cast_expression "(wchar_t *)unaff_s4" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)unaff_s5" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(unaff_s5 + (int)unaff_s2)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + (int)unaff_s2)" ( (binary_expression "unaff_s5 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , identifier ))))) ;) (expression_statement "(*(code *)PTR_free_0004a608)(unaff_s4);" (call_expression "(*(code *)PTR_free_0004a608)(unaff_s4)" (parenthesized_expression "(*(code *)PTR_free_0004a608)" ( (pointer_expression "*(code *)PTR_free_0004a608" * (cast_expression "(code *)PTR_free_0004a608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "puVar21 = auStackY_60;" (assignment_expression "puVar21 = auStackY_60" identifier = identifier) ;) }))) }))))) }))) (if_statement "if (iVar2 == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return (int)ppppwVar4;\n  }" if (parenthesized_expression "(iVar2 == *(int *)PTR___stack_chk_guard_0004a5fc)" ( (binary_expression "iVar2 == *(int *)PTR___stack_chk_guard_0004a5fc" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_0004a5fc" * (cast_expression "(int *)PTR___stack_chk_guard_0004a5fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (int)ppppwVar4;\n  }" { (return_statement "return (int)ppppwVar4;" return (cast_expression "(int)ppppwVar4" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "uVar22 = 0x2e5f8;" (assignment_expression "uVar22 = 0x2e5f8" identifier = number_literal) ;) (expression_statement "puVar17 = PTR___stack_chk_fail_0004a5d0;" (assignment_expression "puVar17 = PTR___stack_chk_fail_0004a5d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0004a5d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004a5d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004a5d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004a5d0" * (cast_expression "(code *)PTR___stack_chk_fail_0004a5d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar19 = puVar17 + 0x23be0;" (assignment_expression "puVar19 = puVar17 + 0x23be0" identifier = (binary_expression "puVar17 + 0x23be0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -4) = uVar22;" (assignment_expression "*(undefined4 *)(puVar21 + -4) = uVar22" (pointer_expression "*(undefined4 *)(puVar21 + -4)" * (cast_expression "(undefined4 *)(puVar21 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar21 + -8) = auStackY_60;" (assignment_expression "*(undefined1 **)(puVar21 + -8) = auStackY_60" (pointer_expression "*(undefined1 **)(puVar21 + -8)" * (cast_expression "(undefined1 **)(puVar21 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xc) = unaff_s7;" (assignment_expression "*(undefined4 *)(puVar21 + -0xc) = unaff_s7" (pointer_expression "*(undefined4 *)(puVar21 + -0xc)" * (cast_expression "(undefined4 *)(puVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mbstate_t **)(puVar21 + -0x10) = unaff_s6;" (assignment_expression "*(mbstate_t **)(puVar21 + -0x10) = unaff_s6" (pointer_expression "*(mbstate_t **)(puVar21 + -0x10)" * (cast_expression "(mbstate_t **)(puVar21 + -0x10)" ( (type_descriptor "mbstate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar21 + -0x14) = unaff_s5;" (assignment_expression "*(wchar_t *****)(puVar21 + -0x14) = unaff_s5" (pointer_expression "*(wchar_t *****)(puVar21 + -0x14)" * (cast_expression "(wchar_t *****)(puVar21 + -0x14)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar21 + -0x18) = unaff_s4;" (assignment_expression "*(wchar_t *****)(puVar21 + -0x18) = unaff_s4" (pointer_expression "*(wchar_t *****)(puVar21 + -0x18)" * (cast_expression "(wchar_t *****)(puVar21 + -0x18)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1c) = unaff_s3;" (assignment_expression "*(int *)(puVar21 + -0x1c) = unaff_s3" (pointer_expression "*(int *)(puVar21 + -0x1c)" * (cast_expression "(int *)(puVar21 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar21 + -0x20) = unaff_s2;" (assignment_expression "*(wchar_t *****)(puVar21 + -0x20) = unaff_s2" (pointer_expression "*(wchar_t *****)(puVar21 + -0x20)" * (cast_expression "(wchar_t *****)(puVar21 + -0x20)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x24) = flags;" (assignment_expression "*(int *)(puVar21 + -0x24) = flags" (pointer_expression "*(int *)(puVar21 + -0x24)" * (cast_expression "(int *)(puVar21 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar21 + -0x28) = ppppwVar4;" (assignment_expression "*(wchar_t *****)(puVar21 + -0x28) = ppppwVar4" (pointer_expression "*(wchar_t *****)(puVar21 + -0x28)" * (cast_expression "(wchar_t *****)(puVar21 + -0x28)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0x28)" ( (binary_expression "puVar21 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar21 + -0x110) = puVar19;" (assignment_expression "*(undefined **)(puVar21 + -0x110) = puVar19" (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x100) = iVar2;" (assignment_expression "*(int *)(puVar21 + -0x100) = iVar2" (pointer_expression "*(int *)(puVar21 + -0x100)" * (cast_expression "(int *)(puVar21 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x100)" ( (binary_expression "puVar21 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar21 + 4) = string_00;" (assignment_expression "*(wchar_t *****)(puVar21 + 4) = string_00" (pointer_expression "*(wchar_t *****)(puVar21 + 4)" * (cast_expression "(wchar_t *****)(puVar21 + 4)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = **(undefined4 **)(puVar17 + 0x1bffc);" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = **(undefined4 **)(puVar17 + 0x1bffc)" (pointer_expression "*(undefined4 *)(puVar21 + -0x2c)" * (cast_expression "(undefined4 *)(puVar21 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2c)" ( (binary_expression "puVar21 + -0x2c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(puVar17 + 0x1bffc)" * (pointer_expression "*(undefined4 **)(puVar17 + 0x1bffc)" * (cast_expression "(undefined4 **)(puVar17 + 0x1bffc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x1bffc)" ( (binary_expression "puVar17 + 0x1bffc" identifier + number_literal) )))))) ;) (if_statement "if (string_00 != (wchar_t ****)0x0) {\n    if (*(int *)(puVar21 + -0x100) == 0) {\n      *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n    *(undefined4 *)(puVar21 + -0x104) = *(undefined4 *)(puVar21 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar21 + -0x104);\n    iVar8 = *(int *)(puVar21 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar8 + -1) = 0;\n    ppppwVar11 = (wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c);\n    iVar3 = (**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n    iVar20 = *(int *)(puVar21 + -0x110);\n    if (iVar3 < 0) {\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);\n      iVar14 = *(int *)(puVar21 + -0xc0);\n      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);\n      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);\n      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n      iVar20 = *(int *)(puVar21 + -0x110);\n      if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    ppppwVar4 = (wchar_t ****)*piVar5;\n    string_00 = ppppwVar11;\n    goto LAB_0002e880;\n  }" if (parenthesized_expression "(string_00 != (wchar_t ****)0x0)" ( (binary_expression "string_00 != (wchar_t ****)0x0" identifier != (cast_expression "(wchar_t ****)0x0" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(puVar21 + -0x100) == 0) {\n      *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n    *(undefined4 *)(puVar21 + -0x104) = *(undefined4 *)(puVar21 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar21 + -0x104);\n    iVar8 = *(int *)(puVar21 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar8 + -1) = 0;\n    ppppwVar11 = (wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c);\n    iVar3 = (**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n    iVar20 = *(int *)(puVar21 + -0x110);\n    if (iVar3 < 0) {\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);\n      iVar14 = *(int *)(puVar21 + -0xc0);\n      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);\n      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);\n      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n      iVar20 = *(int *)(puVar21 + -0x110);\n      if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    ppppwVar4 = (wchar_t ****)*piVar5;\n    string_00 = ppppwVar11;\n    goto LAB_0002e880;\n  }" { (if_statement "if (*(int *)(puVar21 + -0x100) == 0) {\n      *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n      goto LAB_0002e664;\n    }" if (parenthesized_expression "(*(int *)(puVar21 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar21 + -0x100) == 0" (pointer_expression "*(int *)(puVar21 + -0x100)" * (cast_expression "(int *)(puVar21 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x100)" ( (binary_expression "puVar21 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);\n      goto LAB_0002e664;\n    }" { (expression_statement "*(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);" (assignment_expression "*(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4)" (pointer_expression "*(undefined4 *)(puVar21 + -0xf0)" * (cast_expression "(undefined4 *)(puVar21 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + 4)" * (cast_expression "(undefined4 *)(puVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e664;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4);" (assignment_expression "*(undefined4 *)(puVar21 + -0xf0) = *(undefined4 *)(puVar21 + 4)" (pointer_expression "*(undefined4 *)(puVar21 + -0xf0)" * (cast_expression "(undefined4 *)(puVar21 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + 4)" * (cast_expression "(undefined4 *)(puVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x104) = *(undefined4 *)(puVar21 + -0x100);" (assignment_expression "*(undefined4 *)(puVar21 + -0x104) = *(undefined4 *)(puVar21 + -0x100)" (pointer_expression "*(undefined4 *)(puVar21 + -0x104)" * (cast_expression "(undefined4 *)(puVar21 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0x100)" * (cast_expression "(undefined4 *)(puVar21 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x100)" ( (binary_expression "puVar21 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e6bc:\n    iVar2 = *(int *)(puVar21 + -0x104);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar21 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0x104)" identifier = (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) ))))) ;)) (expression_statement "iVar8 = *(int *)(puVar21 + -0xf0);" (assignment_expression "iVar8 = *(int *)(puVar21 + -0xf0)" identifier = (pointer_expression "*(int *)(puVar21 + -0xf0)" * (cast_expression "(int *)(puVar21 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar2 + iVar8 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar2 + iVar8 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar2 + iVar8 + -1)" * (cast_expression "(undefined1 *)(iVar2 + iVar8 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + iVar8 + -1)" ( (binary_expression "iVar2 + iVar8 + -1" (binary_expression "iVar2 + iVar8" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppwVar11 = (wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c);" (assignment_expression "ppppwVar11 = (wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c)" identifier = (cast_expression "(wchar_t ****)(*(int *)(puVar19 + -0x7fc8) + 0x7b9c)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar19 + -0x7fc8) + 0x7b9c)" ( (binary_expression "*(int *)(puVar19 + -0x7fc8) + 0x7b9c" (pointer_expression "*(int *)(puVar19 + -0x7fc8)" * (cast_expression "(int *)(puVar19 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x7fc8)" ( (binary_expression "puVar19 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar3 = (**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);" (assignment_expression "iVar3 = (**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0)" identifier = (call_expression "(**(code **)(puVar19 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0)" (parenthesized_expression "(**(code **)(puVar19 + -0x7d60))" ( (pointer_expression "**(code **)(puVar19 + -0x7d60)" * (pointer_expression "*(code **)(puVar19 + -0x7d60)" * (cast_expression "(code **)(puVar19 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7d60)" ( (binary_expression "puVar19 + -0x7d60" identifier + number_literal) ))))) )) (argument_list "(3,ppppwVar11,puVar21 + -0xd0)" ( number_literal , identifier , (binary_expression "puVar21 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "iVar20 = *(int *)(puVar21 + -0x110);" (assignment_expression "iVar20 = *(int *)(puVar21 + -0x110)" identifier = (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 < 0) {\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);\n      iVar14 = *(int *)(puVar21 + -0xc0);\n      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);\n      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);\n      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n      iVar20 = *(int *)(puVar21 + -0x110);\n      if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }" { (expression_statement "flags = 0;" (assignment_expression "flags = 0" identifier = number_literal) ;) (expression_statement "ppppwVar16 = (wchar_t ****)0xffffff9c;" (assignment_expression "ppppwVar16 = (wchar_t ****)0xffffff9c" identifier = (cast_expression "(wchar_t ****)0xffffff9c" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);\n      iVar14 = *(int *)(puVar21 + -0xc0);\n      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);\n      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);\n      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n      iVar20 = *(int *)(puVar21 + -0x110);\n      if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);\n      iVar14 = *(int *)(puVar21 + -0xc0);\n      *(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);\n      ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);\n      iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);\n      iVar20 = *(int *)(puVar21 + -0x110);\n      if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      flags = 0;\n      ppppwVar16 = (wchar_t ****)0xffffff9c;\n    }" { (expression_statement "*(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar21 + -0xfc)" * (cast_expression "(undefined4 *)(puVar21 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xfc)" ( (binary_expression "puVar21 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xd0)" * (cast_expression "(undefined4 *)(puVar21 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xd0)" ( (binary_expression "puVar21 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(puVar21 + -0xc0);" (assignment_expression "iVar14 = *(int *)(puVar21 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar21 + -0xc0)" * (cast_expression "(int *)(puVar21 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc0)" ( (binary_expression "puVar21 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar21 + -0xf8)" * (cast_expression "(undefined4 *)(puVar21 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf8)" ( (binary_expression "puVar21 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xbc)" * (cast_expression "(undefined4 *)(puVar21 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xbc)" ( (binary_expression "puVar21 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec);" (assignment_expression "ppppwVar11 = (wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec)" identifier = (cast_expression "(wchar_t ****)(*(int *)(iVar20 + -0x7fc8) + 0x7bec)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(iVar20 + -0x7fc8) + 0x7bec)" ( (binary_expression "*(int *)(iVar20 + -0x7fc8) + 0x7bec" (pointer_expression "*(int *)(iVar20 + -0x7fc8)" * (cast_expression "(int *)(iVar20 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + -0x7fc8)" ( (binary_expression "iVar20 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0);" (assignment_expression "iVar3 = (**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0)" identifier = (call_expression "(**(code **)(iVar20 + -0x7d60))(3,ppppwVar11,puVar21 + -0xd0)" (parenthesized_expression "(**(code **)(iVar20 + -0x7d60))" ( (pointer_expression "**(code **)(iVar20 + -0x7d60)" * (pointer_expression "*(code **)(iVar20 + -0x7d60)" * (cast_expression "(code **)(iVar20 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7d60)" ( (binary_expression "iVar20 + -0x7d60" identifier + number_literal) ))))) )) (argument_list "(3,ppppwVar11,puVar21 + -0xd0)" ( number_literal , identifier , (binary_expression "puVar21 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "iVar20 = *(int *)(puVar21 + -0x110);" (assignment_expression "iVar20 = *(int *)(puVar21 + -0x110)" identifier = (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar3) {\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n        *(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;\n        *(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);\n        *(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);\n        *(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);\n        iVar2 = 0;\n        ppppwVar16 = (wchar_t ****)0xffffff9c;\n        *(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);\n        *(wchar_t *****)(puVar21 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar21 + -0xe0);\n        if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }\n        ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));\n        (**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);\n        puVar19 = *(undefined **)(puVar21 + -0x110);\n        string_00 = ppppwVar4;\n        if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }\n        iVar2 = *(int *)(puVar21 + -0x100);\n        if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }\n        *(int *)(puVar21 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }" { (expression_statement "*(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1;" (assignment_expression "*(int *)(puVar21 + -0xe0) = iVar2 + iVar8 + -1" (pointer_expression "*(int *)(puVar21 + -0xe0)" * (cast_expression "(int *)(puVar21 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar2 + iVar8 + -1" (binary_expression "iVar2 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar21 + -0xe8) = *(undefined4 *)(puVar21 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar21 + -0xe8)" * (cast_expression "(undefined4 *)(puVar21 + -0xe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe8)" ( (binary_expression "puVar21 + -0xe8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xd0)" * (cast_expression "(undefined4 *)(puVar21 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xd0)" ( (binary_expression "puVar21 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar21 + -0xe4) = *(undefined4 *)(puVar21 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar21 + -0xe4)" * (cast_expression "(undefined4 *)(puVar21 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe4)" ( (binary_expression "puVar21 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xc0)" * (cast_expression "(undefined4 *)(puVar21 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc0)" ( (binary_expression "puVar21 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar21 + -0xdc) = *(undefined4 *)(puVar21 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar21 + -0xdc)" * (cast_expression "(undefined4 *)(puVar21 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xdc)" ( (binary_expression "puVar21 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xbc)" * (cast_expression "(undefined4 *)(puVar21 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xbc)" ( (binary_expression "puVar21 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "ppppwVar16 = (wchar_t ****)0xffffff9c;" (assignment_expression "ppppwVar16 = (wchar_t ****)0xffffff9c" identifier = (cast_expression "(wchar_t ****)0xffffff9c" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c;" (assignment_expression "*(int *)(puVar21 + -0xec) = *(int *)(iVar20 + -0x7fbc) + -0x7f6c" (pointer_expression "*(int *)(puVar21 + -0xec)" * (cast_expression "(int *)(puVar21 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xec)" ( (binary_expression "puVar21 + -0xec" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar20 + -0x7fbc) + -0x7f6c" (pointer_expression "*(int *)(iVar20 + -0x7fbc)" * (cast_expression "(int *)(iVar20 + -0x7fbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + -0x7fbc)" ( (binary_expression "iVar20 + -0x7fbc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "unaff_s2 = (wchar_t ****)(puVar21 + -0xd0);" (assignment_expression "unaff_s2 = (wchar_t ****)(puVar21 + -0xd0)" identifier = (cast_expression "(wchar_t ****)(puVar21 + -0xd0)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar21 + -0xd0)" ( (binary_expression "puVar21 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "*(wchar_t *****)(puVar21 + -0x108) = unaff_s2;" (assignment_expression "*(wchar_t *****)(puVar21 + -0x108) = unaff_s2" (pointer_expression "*(wchar_t *****)(puVar21 + -0x108)" * (cast_expression "(wchar_t *****)(puVar21 + -0x108)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0x108)" ( (binary_expression "puVar21 + -0x108" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002e768:\n        if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }" statement_identifier : (if_statement "if (((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))) {\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }" if (parenthesized_expression "(((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc)))" ( (binary_expression "((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))) ||\n           (*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))" (parenthesized_expression "((*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4)))" ( (binary_expression "(*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)) ||\n            (iVar14 != *(int *)(puVar21 + -0xe4))" (parenthesized_expression "(*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8))" ( (binary_expression "*(int *)(puVar21 + -0xfc) != *(int *)(puVar21 + -0xe8)" (pointer_expression "*(int *)(puVar21 + -0xfc)" * (cast_expression "(int *)(puVar21 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xfc)" ( (binary_expression "puVar21 + -0xfc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar21 + -0xe8)" * (cast_expression "(int *)(puVar21 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe8)" ( (binary_expression "puVar21 + -0xe8" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar14 != *(int *)(puVar21 + -0xe4))" ( (binary_expression "iVar14 != *(int *)(puVar21 + -0xe4)" identifier != (pointer_expression "*(int *)(puVar21 + -0xe4)" * (cast_expression "(int *)(puVar21 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe4)" ( (binary_expression "puVar21 + -0xe4" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc))" ( (binary_expression "*(int *)(puVar21 + -0xf8) != *(int *)(puVar21 + -0xdc)" (pointer_expression "*(int *)(puVar21 + -0xf8)" * (cast_expression "(int *)(puVar21 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf8)" ( (binary_expression "puVar21 + -0xf8" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar21 + -0xdc)" * (cast_expression "(int *)(puVar21 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xdc)" ( (binary_expression "puVar21 + -0xdc" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          string_00 = *(wchar_t *****)(puVar21 + -0xec);\n          ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);\n          if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }\n          goto LAB_0002e86c;\n        }" { (expression_statement "string_00 = *(wchar_t *****)(puVar21 + -0xec);" (assignment_expression "string_00 = *(wchar_t *****)(puVar21 + -0xec)" identifier = (pointer_expression "*(wchar_t *****)(puVar21 + -0xec)" * (cast_expression "(wchar_t *****)(puVar21 + -0xec)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0xec)" ( (binary_expression "puVar21 + -0xec" identifier + number_literal) ))))) ;) (expression_statement "ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0);" (assignment_expression "ppppwVar16 = (wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0)" identifier = (cast_expression "(wchar_t ****)(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(iVar20 + -0x7cac))(ppppwVar16,string_00,0)" (parenthesized_expression "(**(code **)(iVar20 + -0x7cac))" ( (pointer_expression "**(code **)(iVar20 + -0x7cac)" * (pointer_expression "*(code **)(iVar20 + -0x7cac)" * (cast_expression "(code **)(iVar20 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7cac)" ( (binary_expression "iVar20 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(ppppwVar16,string_00,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)ppppwVar16 < 0) {\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }\n          else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }" if (parenthesized_expression "((int)ppppwVar16 < 0)" ( (binary_expression "(int)ppppwVar16 < 0" (cast_expression "(int)ppppwVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002e888;\n            flags = 0;\n          }" { (expression_statement "piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))();" (assignment_expression "piVar5 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar21 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppwVar4 = (wchar_t ****)*piVar5;" (assignment_expression "ppppwVar4 = (wchar_t ****)*piVar5" identifier = (cast_expression "(wchar_t ****)*piVar5" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar5" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_0002e888;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e888;" goto statement_identifier ;)) (expression_statement "flags = 0;" (assignment_expression "flags = 0" identifier = number_literal) ;) }) (else_clause "else {\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }" else (compound_statement "{\n            string_00 = ppppwVar16;\n            iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));\n            iVar20 = *(int *)(puVar21 + -0x110);\n            if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }\n            piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n            puVar19 = *(undefined **)(puVar21 + -0x110);\n            ppppwVar4 = (wchar_t ****)*piVar5;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            flags = 1;\n          }" { (expression_statement "string_00 = ppppwVar16;" (assignment_expression "string_00 = ppppwVar16" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108));" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108))" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))\n                              (3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108))" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar21 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,ppppwVar16,*(undefined4 *)(puVar21 + -0x108))" ( number_literal , identifier , (pointer_expression "*(undefined4 *)(puVar21 + -0x108)" * (cast_expression "(undefined4 *)(puVar21 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x108)" ( (binary_expression "puVar21 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar20 = *(int *)(puVar21 + -0x110);" (assignment_expression "iVar20 = *(int *)(puVar21 + -0x110)" identifier = (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);\n              *(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);\n              *(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);\n              iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);\n              iVar20 = *(int *)(puVar21 + -0x110);\n              if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }\n              flags = 1;\n              ppppwVar11 = string_00;\n              goto LAB_0002ec18;\n            }" { (if_statement "if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n                iVar20 = *(int *)(puVar21 + -0x110);\n                flags = 1;\n                ppppwVar11 = string_00;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }" { (expression_statement "iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);" (assignment_expression "iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2)" identifier = (call_expression "(**(code **)(iVar20 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(iVar20 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar20 + -0x7d6c)" * (pointer_expression "*(code **)(iVar20 + -0x7d6c)" * (cast_expression "(code **)(iVar20 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7d6c)" ( (binary_expression "iVar20 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "iVar20 = *(int *)(puVar21 + -0x110);" (assignment_expression "iVar20 = *(int *)(puVar21 + -0x110)" identifier = (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "flags = 1;" (assignment_expression "flags = 1" identifier = number_literal) ;) (expression_statement "ppppwVar11 = string_00;" (assignment_expression "ppppwVar11 = string_00" identifier = identifier) ;) (if_statement "if (iVar2 != 0) goto LAB_0002ec18;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar21 + -0xf4) = *(undefined4 *)(puVar21 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar21 + -0xf4)" * (cast_expression "(undefined4 *)(puVar21 + -0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf4)" ( (binary_expression "puVar21 + -0xf4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xd0)" * (cast_expression "(undefined4 *)(puVar21 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xd0)" ( (binary_expression "puVar21 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar21 + -0xd8) = *(undefined4 *)(puVar21 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar21 + -0xd8)" * (cast_expression "(undefined4 *)(puVar21 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xd8)" ( (binary_expression "puVar21 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xc0)" * (cast_expression "(undefined4 *)(puVar21 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc0)" ( (binary_expression "puVar21 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar21 + -0xd4) = *(undefined4 *)(puVar21 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar21 + -0xd4)" * (cast_expression "(undefined4 *)(puVar21 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xd4)" ( (binary_expression "puVar21 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xbc)" * (cast_expression "(undefined4 *)(puVar21 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xbc)" ( (binary_expression "puVar21 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16);" (assignment_expression "iVar2 = (**(code **)(iVar20 + -0x7d1c))(ppppwVar16)" identifier = (call_expression "(**(code **)(iVar20 + -0x7d1c))(ppppwVar16)" (parenthesized_expression "(**(code **)(iVar20 + -0x7d1c))" ( (pointer_expression "**(code **)(iVar20 + -0x7d1c)" * (pointer_expression "*(code **)(iVar20 + -0x7d1c)" * (cast_expression "(code **)(iVar20 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7d1c)" ( (binary_expression "iVar20 + -0x7d1c" identifier + number_literal) ))))) )) (argument_list "(ppppwVar16)" ( identifier )))) ;) (expression_statement "iVar20 = *(int *)(puVar21 + -0x110);" (assignment_expression "iVar20 = *(int *)(puVar21 + -0x110)" identifier = (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();\n                puVar19 = *(undefined **)(puVar21 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (wchar_t ****)0x100;\nLAB_0002e958:\n                *piVar5 = 0;\n                do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );\n              }" { (expression_statement "piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();" (assignment_expression "piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar20 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar20 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar20 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar20 + -0x7cc8)" * (pointer_expression "*(code **)(iVar20 + -0x7cc8)" * (cast_expression "(code **)(iVar20 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7cc8)" ( (binary_expression "iVar20 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "unaff_s2 = (wchar_t ****)0x100;" (assignment_expression "unaff_s2 = (wchar_t ****)0x100" identifier = (cast_expression "(wchar_t ****)0x100" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_0002e958:\n                *piVar5 = 0;" statement_identifier : (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;)) (do_statement "do {\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                } while( true );" do (compound_statement "{\n                  piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);\n                  puVar19 = *(undefined **)(puVar21 + -0x110);\n                  if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar5 = 0;\n                }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2);" (assignment_expression "piVar6 = (int *)(**(code **)(puVar19 + -0x7d38))(iVar2)" identifier = (cast_expression "(int *)(**(code **)(puVar19 + -0x7d38))(iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar19 + -0x7d38))(iVar2)" (parenthesized_expression "(**(code **)(puVar19 + -0x7d38))" ( (pointer_expression "**(code **)(puVar19 + -0x7d38)" * (pointer_expression "*(code **)(puVar19 + -0x7d38)" * (cast_expression "(code **)(puVar19 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7d38)" ( (binary_expression "puVar19 + -0x7d38" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (*piVar5 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar19 + -0x7d90))(iVar2);\n                    piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);\n                    puVar19 = *(undefined **)(puVar21 + -0x110);\n                    if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;\n                  }" { (if_statement "if (*piVar5 != 0) goto LAB_0002e864;" if (parenthesized_expression "(*piVar5 != 0)" ( (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal) )) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;)) (if_statement "if (!bVar1) {\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                      *piVar5 = 2;\n                      goto LAB_0002e864;\n                    }" { (expression_statement "*piVar5 = 2;" (assignment_expression "*piVar5 = 2" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar19 + -0x7d90))(iVar2);" (call_expression "(**(code **)(puVar19 + -0x7d90))(iVar2)" (parenthesized_expression "(**(code **)(puVar19 + -0x7d90))" ( (pointer_expression "**(code **)(puVar19 + -0x7d90)" * (pointer_expression "*(code **)(puVar19 + -0x7d90)" * (cast_expression "(code **)(puVar19 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7d90)" ( (binary_expression "puVar19 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2);" (assignment_expression "piVar6 = (int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))(iVar2)" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar21 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }" { (if_statement "if (*piVar5 == 0) {\n                        *piVar5 = 2;\n                      }" if (parenthesized_expression "(*piVar5 == 0)" ( (binary_expression "*piVar5 == 0" (pointer_expression "*piVar5" * identifier) == number_literal) )) (compound_statement "{\n                        *piVar5 = 2;\n                      }" { (expression_statement "*piVar5 = 2;" (assignment_expression "*piVar5 = 2" (pointer_expression "*piVar5" * identifier) = number_literal) ;) })) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e91c;" if (parenthesized_expression "(*(char *)((int)piVar6 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar6 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar6 + 0x13)" * (cast_expression "(char *)((int)piVar6 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002e91c;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;" else (if_statement "if (*(char *)((int)piVar6 + 0x13) != '.') goto LAB_0002e984;" if (parenthesized_expression "(*(char *)((int)piVar6 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar6 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar6 + 0x13)" * (cast_expression "(char *)((int)piVar6 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002e984;" goto statement_identifier ;)))) (if_statement "if (*(char *)(piVar6 + 5) == '\0') goto LAB_0002e958;" if (parenthesized_expression "(*(char *)(piVar6 + 5) == '\0')" ( (binary_expression "*(char *)(piVar6 + 5) == '\0'" (pointer_expression "*(char *)(piVar6 + 5)" * (cast_expression "(char *)(piVar6 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 5)" ( (binary_expression "piVar6 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (if_statement "if ((piVar6[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;" if (parenthesized_expression "((piVar6[5] & 0xffff0000U) != 0x2e000000)" ( (binary_expression "(piVar6[5] & 0xffff0000U) != 0x2e000000" (parenthesized_expression "(piVar6[5] & 0xffff0000U)" ( (binary_expression "piVar6[5] & 0xffff0000U" (subscript_expression "piVar6[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002e984;" goto statement_identifier ;)) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "flags = 1;" (assignment_expression "flags = 1" identifier = number_literal) ;) (expression_statement "ppppwVar11 = string_00;" (assignment_expression "ppppwVar11 = string_00" identifier = identifier) ;) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;) })) (expression_statement "piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();" (assignment_expression "piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar20 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar20 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar20 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar20 + -0x7cc8)" * (pointer_expression "*(code **)(iVar20 + -0x7cc8)" * (cast_expression "(code **)(iVar20 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7cc8)" ( (binary_expression "iVar20 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppwVar4 = (wchar_t ****)*piVar5;" (assignment_expression "ppppwVar4 = (wchar_t ****)*piVar5" identifier = (cast_expression "(wchar_t ****)*piVar5" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar5" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_0002ec64;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ec64;" goto statement_identifier ;)) (expression_statement "flags = 1;" (assignment_expression "flags = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0002e86c;" goto statement_identifier ;) }))) (if_statement "if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);\n          iVar20 = *(int *)(puVar21 + -0x110);\n          flags = 0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }" { (expression_statement "iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2);" (assignment_expression "iVar2 = (**(code **)(iVar20 + -0x7d6c))(iVar2)" identifier = (call_expression "(**(code **)(iVar20 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(iVar20 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar20 + -0x7d6c)" * (pointer_expression "*(code **)(iVar20 + -0x7d6c)" * (cast_expression "(code **)(iVar20 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7d6c)" ( (binary_expression "iVar20 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "iVar20 = *(int *)(puVar21 + -0x110);" (assignment_expression "iVar20 = *(int *)(puVar21 + -0x110)" identifier = (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "flags = 0;" (assignment_expression "flags = 0" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) goto LAB_0002ec18;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;)) })) (expression_statement "iVar2 = *(int *)(puVar21 + -0xe0);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar21 + -0xe0)" * (cast_expression "(int *)(puVar21 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }" if (parenthesized_expression "(iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1)" ( (binary_expression "iVar2 == *(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1" identifier == (binary_expression "*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0) + -1" (binary_expression "*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)" (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar21 + -0xf0)" * (cast_expression "(int *)(puVar21 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar21 + -0xe0) = iVar2 + -1;\n        }" { (expression_statement "*(undefined1 *)(iVar2 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar2 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar2 + -1)" * (cast_expression "(undefined1 *)(iVar2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -1)" ( (binary_expression "iVar2 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar21 + -0xe0) = iVar2 + -1;" (assignment_expression "*(int *)(puVar21 + -0xe0) = iVar2 + -1" (pointer_expression "*(int *)(puVar21 + -0xe0)" * (cast_expression "(int *)(puVar21 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) })) (expression_statement "ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0));" (assignment_expression "ppppwVar4 = (wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0))" identifier = (cast_expression "(wchar_t ****)\n                    ((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0))" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0))" ( (binary_expression "(*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)) -\n                    *(int *)(puVar21 + -0xe0)" (parenthesized_expression "(*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0))" ( (binary_expression "*(int *)(puVar21 + -0x104) + *(int *)(puVar21 + -0xf0)" (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar21 + -0xf0)" * (cast_expression "(int *)(puVar21 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) ))))) )) - (pointer_expression "*(int *)(puVar21 + -0xe0)" * (cast_expression "(int *)(puVar21 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) ))))) )))) ;) (expression_statement "(**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4);" (call_expression "(**(code **)(iVar20 + -0x7bd0))\n                  (*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4)" (parenthesized_expression "(**(code **)(iVar20 + -0x7bd0))" ( (pointer_expression "**(code **)(iVar20 + -0x7bd0)" * (pointer_expression "*(code **)(iVar20 + -0x7bd0)" * (cast_expression "(code **)(iVar20 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7bd0)" ( (binary_expression "iVar20 + -0x7bd0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar21 + -0x104),*(int *)(puVar21 + -0xe0),ppppwVar4)" ( (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar21 + -0xe0)" * (cast_expression "(int *)(puVar21 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "string_00 = ppppwVar4;" (assignment_expression "string_00 = ppppwVar4" identifier = identifier) ;) (if_statement "if (*(int *)(puVar21 + 4) == 0) {\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }" if (parenthesized_expression "(*(int *)(puVar21 + 4) == 0)" ( (binary_expression "*(int *)(puVar21 + 4) == 0" (pointer_expression "*(int *)(puVar21 + 4)" * (cast_expression "(int *)(puVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n          puVar19 = *(undefined **)(puVar21 + -0x110);\n          *(undefined4 *)(puVar21 + -0x100) = uVar22;\n        }" { (expression_statement "uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));" (assignment_expression "uVar22 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104))" identifier = (call_expression "(**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104))" (parenthesized_expression "(**(code **)(puVar19 + -0x7c78))" ( (pointer_expression "**(code **)(puVar19 + -0x7c78)" * (pointer_expression "*(code **)(puVar19 + -0x7c78)" * (cast_expression "(code **)(puVar19 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7c78)" ( (binary_expression "puVar19 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar21 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x104)" * (cast_expression "(undefined4 *)(puVar21 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x100) = uVar22;" (assignment_expression "*(undefined4 *)(puVar21 + -0x100) = uVar22" (pointer_expression "*(undefined4 *)(puVar21 + -0x100)" * (cast_expression "(undefined4 *)(puVar21 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x100)" ( (binary_expression "puVar21 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar2 = *(int *)(puVar21 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0x100)" identifier = (pointer_expression "*(int *)(puVar21 + -0x100)" * (cast_expression "(int *)(puVar21 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x100)" ( (binary_expression "puVar21 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar21 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }" if (parenthesized_expression "(*(int *)(puVar21 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar21 + -0x100) == 0" (pointer_expression "*(int *)(puVar21 + -0x100)" * (cast_expression "(int *)(puVar21 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x100)" ( (binary_expression "puVar21 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar2 = *(int *)(puVar21 + -0x104);\n        }" { (expression_statement "iVar2 = *(int *)(puVar21 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0x104)" identifier = (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar21 + -0x104) = iVar2;" (assignment_expression "*(int *)(puVar21 + -0x104) = iVar2" (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002e89c;" goto statement_identifier ;) })) (expression_statement "flags = 0;" (assignment_expression "flags = 0" identifier = number_literal) ;) (expression_statement "ppppwVar16 = (wchar_t ****)0xffffff9c;" (assignment_expression "ppppwVar16 = (wchar_t ****)0xffffff9c" identifier = (cast_expression "(wchar_t ****)0xffffff9c" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }))) (labeled_statement "LAB_0002ec18:\n    piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();" statement_identifier : (expression_statement "piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))();" (assignment_expression "piVar5 = (int *)(**(code **)(iVar20 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar20 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar20 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar20 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar20 + -0x7cc8)" * (pointer_expression "*(code **)(iVar20 + -0x7cc8)" * (cast_expression "(code **)(iVar20 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + -0x7cc8)" ( (binary_expression "iVar20 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppwVar4 = (wchar_t ****)*piVar5;" (assignment_expression "ppppwVar4 = (wchar_t ****)*piVar5" identifier = (cast_expression "(wchar_t ****)*piVar5" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar5" * identifier))) ;) (expression_statement "string_00 = ppppwVar11;" (assignment_expression "string_00 = ppppwVar11" identifier = identifier) ;) (goto_statement "goto LAB_0002e880;" goto statement_identifier ;) })) (if_statement "if (iVar2 == 0) {\n    *(undefined4 *)(puVar21 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(int *)(puVar21 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(puVar21 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar21 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(int *)(puVar21 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(puVar21 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }" { (expression_statement "*(undefined4 *)(puVar21 + -0xf0) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar21 + -0xf0) = 0x1000" (pointer_expression "*(undefined4 *)(puVar21 + -0xf0)" * (cast_expression "(undefined4 *)(puVar21 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002e664:\n    iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0));" statement_identifier : (expression_statement "iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0));" (assignment_expression "iVar2 = (**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0))" identifier = (call_expression "(**(code **)(puVar17 + 0x1bf60))(*(undefined4 *)(puVar21 + -0xf0))" (parenthesized_expression "(**(code **)(puVar17 + 0x1bf60))" ( (pointer_expression "**(code **)(puVar17 + 0x1bf60)" * (pointer_expression "*(code **)(puVar17 + 0x1bf60)" * (cast_expression "(code **)(puVar17 + 0x1bf60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x1bf60)" ( (binary_expression "puVar17 + 0x1bf60" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar21 + -0xf0))" ( (pointer_expression "*(undefined4 *)(puVar21 + -0xf0)" * (cast_expression "(undefined4 *)(puVar21 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) )))) )))) ;)) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar21 + -0x104) = iVar2;" (assignment_expression "*(int *)(puVar21 + -0x104) = iVar2" (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = *(int *)(puVar21 + -0x104);\n      goto LAB_0002e8a0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = *(int *)(puVar21 + -0x104);\n      goto LAB_0002e8a0;\n    }" { (expression_statement "iVar2 = *(int *)(puVar21 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0x104)" identifier = (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e8a0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e6bc;" goto statement_identifier ;) })) (expression_statement "puVar7 = (undefined4 *)(**(code **)(puVar17 + 0x1bf18))();" (assignment_expression "puVar7 = (undefined4 *)(**(code **)(puVar17 + 0x1bf18))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar17 + 0x1bf18))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar17 + 0x1bf18))()" (parenthesized_expression "(**(code **)(puVar17 + 0x1bf18))" ( (pointer_expression "**(code **)(puVar17 + 0x1bf18)" * (pointer_expression "*(code **)(puVar17 + 0x1bf18)" * (cast_expression "(code **)(puVar17 + 0x1bf18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x1bf18)" ( (binary_expression "puVar17 + 0x1bf18" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x104) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x104) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x104)" * (cast_expression "(undefined4 *)(puVar21 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e89c;" goto statement_identifier ;) (labeled_statement "LAB_0002e984:\n  if (bVar1) {\n    if ((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))) {\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n  }" statement_identifier : (if_statement "if (bVar1) {\n    if ((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))) {\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if ((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))) {\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n  }" { (if_statement "if ((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))) {\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }" if (parenthesized_expression "((*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8)))" ( (binary_expression "(*piVar6 == iVar14) && (piVar6[1] == *(int *)(puVar21 + -0xf8))" (parenthesized_expression "(*piVar6 == iVar14)" ( (binary_expression "*piVar6 == iVar14" (pointer_expression "*piVar6" * identifier) == identifier) )) && (parenthesized_expression "(piVar6[1] == *(int *)(puVar21 + -0xf8))" ( (binary_expression "piVar6[1] == *(int *)(puVar21 + -0xf8)" (subscript_expression "piVar6[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar21 + -0xf8)" * (cast_expression "(int *)(puVar21 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf8)" ( (binary_expression "puVar21 + -0xf8" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }" { (expression_statement "ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);" (assignment_expression "ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13)" identifier = (cast_expression "(wchar_t ****)((int)piVar6 + 0x13)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }" else (compound_statement "{\n      if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;\n      ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n    }" { (if_statement "if (*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)) goto LAB_0002e958;" if (parenthesized_expression "(*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4))" ( (binary_expression "*(int *)(puVar21 + -0xfc) == *(int *)(puVar21 + -0xf4)" (pointer_expression "*(int *)(puVar21 + -0xfc)" * (cast_expression "(int *)(puVar21 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xfc)" ( (binary_expression "puVar21 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar21 + -0xf4)" * (cast_expression "(int *)(puVar21 + -0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf4)" ( (binary_expression "puVar21 + -0xf4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (expression_statement "ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);" (assignment_expression "ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13)" identifier = (cast_expression "(wchar_t ****)((int)piVar6 + 0x13)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }) (else_clause "else {\nLAB_0002e91c:\n    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n  }" else (compound_statement "{\nLAB_0002e91c:\n    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);\n  }" { (labeled_statement "LAB_0002e91c:\n    ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);" statement_identifier : (expression_statement "ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13);" (assignment_expression "ppppwVar11 = (wchar_t ****)((int)piVar6 + 0x13)" identifier = (cast_expression "(wchar_t ****)((int)piVar6 + 0x13)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) })))) (expression_statement "*(undefined4 *)(puVar21 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar21 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar21 + -0x118)" * (cast_expression "(undefined4 *)(puVar21 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x118)" ( (binary_expression "puVar21 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "string_00 = ppppwVar16;" (assignment_expression "string_00 = ppppwVar16" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(puVar19 + -0x7c30))\n                    (3,ppppwVar16,ppppwVar11,*(undefined4 *)(puVar21 + -0x108));" (assignment_expression "iVar3 = (**(code **)(puVar19 + -0x7c30))\n                    (3,ppppwVar16,ppppwVar11,*(undefined4 *)(puVar21 + -0x108))" identifier = (call_expression "(**(code **)(puVar19 + -0x7c30))\n                    (3,ppppwVar16,ppppwVar11,*(undefined4 *)(puVar21 + -0x108))" (parenthesized_expression "(**(code **)(puVar19 + -0x7c30))" ( (pointer_expression "**(code **)(puVar19 + -0x7c30)" * (pointer_expression "*(code **)(puVar19 + -0x7c30)" * (cast_expression "(code **)(puVar19 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7c30)" ( (binary_expression "puVar19 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(3,ppppwVar16,ppppwVar11,*(undefined4 *)(puVar21 + -0x108))" ( number_literal , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar21 + -0x108)" * (cast_expression "(undefined4 *)(puVar21 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x108)" ( (binary_expression "puVar21 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (((iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))))) goto LAB_0002e958;" if (parenthesized_expression "(((iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8)))))))" ( (binary_expression "((iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))))" (parenthesized_expression "((iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000))" ( (binary_expression "(iVar3 != 0) || ((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar21 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar21 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar21 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar21 + -0xb8)" * (cast_expression "(uint *)(puVar21 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xb8)" ( (binary_expression "puVar21 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))))" ( (parenthesized_expression "(*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8)))))" ( (binary_expression "*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc) ||\n      ((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))" (binary_expression "*(int *)(puVar21 + -0xd0) != *(int *)(puVar21 + -0xfc)" (pointer_expression "*(int *)(puVar21 + -0xd0)" * (cast_expression "(int *)(puVar21 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xd0)" ( (binary_expression "puVar21 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar21 + -0xfc)" * (cast_expression "(int *)(puVar21 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xfc)" ( (binary_expression "puVar21 + -0xfc" identifier + number_literal) ))))) || (parenthesized_expression "((*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))))" ( (parenthesized_expression "(*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8)))" ( (binary_expression "*(int *)(puVar21 + -0xc0) != iVar14 ||\n       (*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))" (binary_expression "*(int *)(puVar21 + -0xc0) != iVar14" (pointer_expression "*(int *)(puVar21 + -0xc0)" * (cast_expression "(int *)(puVar21 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xc0)" ( (binary_expression "puVar21 + -0xc0" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8))" ( (binary_expression "*(int *)(puVar21 + -0xbc) != *(int *)(puVar21 + -0xf8)" (pointer_expression "*(int *)(puVar21 + -0xbc)" * (cast_expression "(int *)(puVar21 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xbc)" ( (binary_expression "puVar21 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar21 + -0xf8)" * (cast_expression "(int *)(puVar21 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf8)" ( (binary_expression "puVar21 + -0xf8" identifier + number_literal) ))))) ))) )) ))) )) ))) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (expression_statement "unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104));" (assignment_expression "unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104))" identifier = (cast_expression "(wchar_t ****)(*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104))" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104))" ( (binary_expression "*(int *)(puVar21 + -0xe0) - *(int *)(puVar21 + -0x104)" (pointer_expression "*(int *)(puVar21 + -0xe0)" * (cast_expression "(int *)(puVar21 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) ))))) )))) ;) (expression_statement "flags = (**(code **)(puVar19 + -0x7ca4))(ppppwVar11);" (assignment_expression "flags = (**(code **)(puVar19 + -0x7ca4))(ppppwVar11)" identifier = (call_expression "(**(code **)(puVar19 + -0x7ca4))(ppppwVar11)" (parenthesized_expression "(**(code **)(puVar19 + -0x7ca4))" ( (pointer_expression "**(code **)(puVar19 + -0x7ca4)" * (pointer_expression "*(code **)(puVar19 + -0x7ca4)" * (cast_expression "(code **)(puVar19 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7ca4)" ( (binary_expression "puVar19 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(ppppwVar11)" ( identifier )))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s2 <= (uint)flags) {\n    ppppwVar4 = *(wchar_t *****)(puVar21 + -0xf0);\n    if (*(int *)(puVar21 + 4) != 0) {\n      *piVar5 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppwVar9 = ppppwVar4;\n    if (ppppwVar4 < (uint)flags) {\n      ppppwVar9 = (wchar_t ****)flags;\n    }\n    ppppwVar15 = (wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4);\n    if (ppppwVar15 < ppppwVar4) goto LAB_0002eb28;\n    string_00 = ppppwVar15;\n    iVar3 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    if (iVar3 == 0) goto LAB_0002eb28;\n    uVar22 = (**(code **)(puVar19 + -0x7be0))\n                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(undefined4 *)(puVar21 + -0xe0) = uVar22;\n    *(wchar_t *****)(puVar21 + -0xf0) = ppppwVar15;\n    *(int *)(puVar21 + -0x104) = iVar3;\n  }" if (parenthesized_expression "(unaff_s2 <= (uint)flags)" ( (binary_expression "unaff_s2 <= (uint)flags" identifier <= (cast_expression "(uint)flags" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n    ppppwVar4 = *(wchar_t *****)(puVar21 + -0xf0);\n    if (*(int *)(puVar21 + 4) != 0) {\n      *piVar5 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppwVar9 = ppppwVar4;\n    if (ppppwVar4 < (uint)flags) {\n      ppppwVar9 = (wchar_t ****)flags;\n    }\n    ppppwVar15 = (wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4);\n    if (ppppwVar15 < ppppwVar4) goto LAB_0002eb28;\n    string_00 = ppppwVar15;\n    iVar3 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    if (iVar3 == 0) goto LAB_0002eb28;\n    uVar22 = (**(code **)(puVar19 + -0x7be0))\n                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *(undefined4 *)(puVar21 + -0xe0) = uVar22;\n    *(wchar_t *****)(puVar21 + -0xf0) = ppppwVar15;\n    *(int *)(puVar21 + -0x104) = iVar3;\n  }" { (expression_statement "ppppwVar4 = *(wchar_t *****)(puVar21 + -0xf0);" (assignment_expression "ppppwVar4 = *(wchar_t *****)(puVar21 + -0xf0)" identifier = (pointer_expression "*(wchar_t *****)(puVar21 + -0xf0)" * (cast_expression "(wchar_t *****)(puVar21 + -0xf0)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar21 + 4) != 0) {\n      *piVar5 = 0x22;\n      goto LAB_0002e864;\n    }" if (parenthesized_expression "(*(int *)(puVar21 + 4) != 0)" ( (binary_expression "*(int *)(puVar21 + 4) != 0" (pointer_expression "*(int *)(puVar21 + 4)" * (cast_expression "(int *)(puVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *piVar5 = 0x22;\n      goto LAB_0002e864;\n    }" { (expression_statement "*piVar5 = 0x22;" (assignment_expression "*piVar5 = 0x22" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "ppppwVar9 = ppppwVar4;" (assignment_expression "ppppwVar9 = ppppwVar4" identifier = identifier) ;) (if_statement "if (ppppwVar4 < (uint)flags) {\n      ppppwVar9 = (wchar_t ****)flags;\n    }" if (parenthesized_expression "(ppppwVar4 < (uint)flags)" ( (binary_expression "ppppwVar4 < (uint)flags" identifier < (cast_expression "(uint)flags" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n      ppppwVar9 = (wchar_t ****)flags;\n    }" { (expression_statement "ppppwVar9 = (wchar_t ****)flags;" (assignment_expression "ppppwVar9 = (wchar_t ****)flags" identifier = (cast_expression "(wchar_t ****)flags" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) })) (expression_statement "ppppwVar15 = (wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4);" (assignment_expression "ppppwVar15 = (wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4)" identifier = (cast_expression "(wchar_t ****)((int)ppppwVar9 + (int)ppppwVar4)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppwVar9 + (int)ppppwVar4)" ( (binary_expression "(int)ppppwVar9 + (int)ppppwVar4" (cast_expression "(int)ppppwVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppwVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ppppwVar15 < ppppwVar4) goto LAB_0002eb28;" if (parenthesized_expression "(ppppwVar15 < ppppwVar4)" ( (binary_expression "ppppwVar15 < ppppwVar4" identifier < identifier) )) (goto_statement "goto LAB_0002eb28;" goto statement_identifier ;)) (expression_statement "string_00 = ppppwVar15;" (assignment_expression "string_00 = ppppwVar15" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104));" (assignment_expression "iVar3 = (**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104))" identifier = (call_expression "(**(code **)(puVar19 + -0x7c78))(*(undefined4 *)(puVar21 + -0x104))" (parenthesized_expression "(**(code **)(puVar19 + -0x7c78))" ( (pointer_expression "**(code **)(puVar19 + -0x7c78)" * (pointer_expression "*(code **)(puVar19 + -0x7c78)" * (cast_expression "(code **)(puVar19 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7c78)" ( (binary_expression "puVar19 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar21 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x104)" * (cast_expression "(undefined4 *)(puVar21 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002eb28;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002eb28;" goto statement_identifier ;)) (expression_statement "uVar22 = (**(code **)(puVar19 + -0x7be0))\n                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2);" (assignment_expression "uVar22 = (**(code **)(puVar19 + -0x7be0))\n                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2)" identifier = (call_expression "(**(code **)(puVar19 + -0x7be0))\n                       (iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2)" (parenthesized_expression "(**(code **)(puVar19 + -0x7be0))" ( (pointer_expression "**(code **)(puVar19 + -0x7be0)" * (pointer_expression "*(code **)(puVar19 + -0x7be0)" * (cast_expression "(code **)(puVar19 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7be0)" ( (binary_expression "puVar19 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(iVar3 + (int)ppppwVar9 + (int)unaff_s2,iVar3 + (int)unaff_s2,\n                        *(int *)(puVar21 + -0xf0) - (int)unaff_s2)" ( (binary_expression "iVar3 + (int)ppppwVar9 + (int)unaff_s2" (binary_expression "iVar3 + (int)ppppwVar9" identifier + (cast_expression "(int)ppppwVar9" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "iVar3 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "*(int *)(puVar21 + -0xf0) - (int)unaff_s2" (pointer_expression "*(int *)(puVar21 + -0xf0)" * (cast_expression "(int *)(puVar21 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) )))) - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xe0) = uVar22;" (assignment_expression "*(undefined4 *)(puVar21 + -0xe0) = uVar22" (pointer_expression "*(undefined4 *)(puVar21 + -0xe0)" * (cast_expression "(undefined4 *)(puVar21 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar21 + -0xf0) = ppppwVar15;" (assignment_expression "*(wchar_t *****)(puVar21 + -0xf0) = ppppwVar15" (pointer_expression "*(wchar_t *****)(puVar21 + -0xf0)" * (cast_expression "(wchar_t *****)(puVar21 + -0xf0)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0xf0)" ( (binary_expression "puVar21 + -0xf0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x104) = iVar3;" (assignment_expression "*(int *)(puVar21 + -0x104) = iVar3" (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - flags);" (assignment_expression "unaff_s2 = (wchar_t ****)(*(int *)(puVar21 + -0xe0) - flags)" identifier = (cast_expression "(wchar_t ****)(*(int *)(puVar21 + -0xe0) - flags)" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar21 + -0xe0) - flags)" ( (binary_expression "*(int *)(puVar21 + -0xe0) - flags" (pointer_expression "*(int *)(puVar21 + -0xe0)" * (cast_expression "(int *)(puVar21 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) )))) - identifier) )))) ;) (expression_statement "(**(code **)(puVar19 + -0x7be0))(unaff_s2,ppppwVar11,flags);" (call_expression "(**(code **)(puVar19 + -0x7be0))(unaff_s2,ppppwVar11,flags)" (parenthesized_expression "(**(code **)(puVar19 + -0x7be0))" ( (pointer_expression "**(code **)(puVar19 + -0x7be0)" * (pointer_expression "*(code **)(puVar19 + -0x7be0)" * (cast_expression "(code **)(puVar19 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7be0)" ( (binary_expression "puVar19 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,ppppwVar11,flags)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar20 = *(int *)(puVar21 + -0x110);" (assignment_expression "iVar20 = *(int *)(puVar21 + -0x110)" identifier = (pointer_expression "*(int *)(puVar21 + -0x110)" * (cast_expression "(int *)(puVar21 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar21 + -0xe0) = (int)unaff_s2 + -1;" (assignment_expression "*(int *)(puVar21 + -0xe0) = (int)unaff_s2 + -1" (pointer_expression "*(int *)(puVar21 + -0xe0)" * (cast_expression "(int *)(puVar21 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xe0)" ( (binary_expression "puVar21 + -0xe0" identifier + number_literal) )))) = (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 *)((int)unaff_s2 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)unaff_s2 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)unaff_s2 + -1)" * (cast_expression "(undefined1 *)((int)unaff_s2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + -1)" ( (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar14 = *(int *)(puVar21 + -0xd8);" (assignment_expression "iVar14 = *(int *)(puVar21 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar21 + -0xd8)" * (cast_expression "(int *)(puVar21 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xd8)" ( (binary_expression "puVar21 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar21 + -0xf8) = *(undefined4 *)(puVar21 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar21 + -0xf8)" * (cast_expression "(undefined4 *)(puVar21 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf8)" ( (binary_expression "puVar21 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xd4)" * (cast_expression "(undefined4 *)(puVar21 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xd4)" ( (binary_expression "puVar21 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xf4);" (assignment_expression "*(undefined4 *)(puVar21 + -0xfc) = *(undefined4 *)(puVar21 + -0xf4)" (pointer_expression "*(undefined4 *)(puVar21 + -0xfc)" * (cast_expression "(undefined4 *)(puVar21 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xfc)" ( (binary_expression "puVar21 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0xf4)" * (cast_expression "(undefined4 *)(puVar21 + -0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xf4)" ( (binary_expression "puVar21 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e768;" goto statement_identifier ;) (labeled_statement "LAB_0002eb28:\n  *piVar5 = 0xc;" statement_identifier : (expression_statement "*piVar5 = 0xc;" (assignment_expression "*piVar5 = 0xc" (pointer_expression "*piVar5" * identifier) = number_literal) ;)) (labeled_statement "LAB_0002e864:\n  ppppwVar4 = (wchar_t ****)*piVar5;" statement_identifier : (expression_statement "ppppwVar4 = (wchar_t ****)*piVar5;" (assignment_expression "ppppwVar4 = (wchar_t ****)*piVar5" identifier = (cast_expression "(wchar_t ****)*piVar5" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar5" * identifier))) ;)) (expression_statement "flags = 0;" (assignment_expression "flags = 0" identifier = number_literal) ;) (labeled_statement "LAB_0002e86c:\n  (**(code **)(puVar19 + -0x7d6c))(iVar2);" statement_identifier : (expression_statement "(**(code **)(puVar19 + -0x7d6c))(iVar2);" (call_expression "(**(code **)(puVar19 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(puVar19 + -0x7d6c))" ( (pointer_expression "**(code **)(puVar19 + -0x7d6c)" * (pointer_expression "*(code **)(puVar19 + -0x7d6c)" * (cast_expression "(code **)(puVar19 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7d6c)" ( (binary_expression "puVar19 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))) ;)) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e880:\n  if ((wchar_t ****)flags == (wchar_t ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }" statement_identifier : (if_statement "if ((wchar_t ****)flags == (wchar_t ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }" if (parenthesized_expression "((wchar_t ****)flags == (wchar_t ****)0x0)" ( (binary_expression "(wchar_t ****)flags == (wchar_t ****)0x0" (cast_expression "(wchar_t ****)flags" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (cast_expression "(wchar_t ****)0x0" ( (type_descriptor "wchar_t ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\nLAB_0002e888:\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }" { (labeled_statement "LAB_0002e888:\n    iVar2 = *(int *)(puVar21 + -0x100);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar21 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0x100)" identifier = (pointer_expression "*(int *)(puVar21 + -0x100)" * (cast_expression "(int *)(puVar21 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x100)" ( (binary_expression "puVar21 + -0x100" identifier + number_literal) ))))) ;)) }) (else_clause "else {\nLAB_0002ec64:\n    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }" else (compound_statement "{\nLAB_0002ec64:\n    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    iVar2 = *(int *)(puVar21 + -0x100);\n  }" { (labeled_statement "LAB_0002ec64:\n    (**(code **)(puVar19 + -0x7d68))(ppppwVar16);" statement_identifier : (expression_statement "(**(code **)(puVar19 + -0x7d68))(ppppwVar16);" (call_expression "(**(code **)(puVar19 + -0x7d68))(ppppwVar16)" (parenthesized_expression "(**(code **)(puVar19 + -0x7d68))" ( (pointer_expression "**(code **)(puVar19 + -0x7d68)" * (pointer_expression "*(code **)(puVar19 + -0x7d68)" * (cast_expression "(code **)(puVar19 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7d68)" ( (binary_expression "puVar19 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(ppppwVar16)" ( identifier ))) ;)) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar21 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0x100)" identifier = (pointer_expression "*(int *)(puVar21 + -0x100)" * (cast_expression "(int *)(puVar21 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x100)" ( (binary_expression "puVar21 + -0x100" identifier + number_literal) ))))) ;) })))) (if_statement "if (iVar2 == 0) {\n    (**(code **)(puVar19 + -0x7bd8))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *piVar5 = (int)ppppwVar4;\n  }\n  else {\n    *piVar5 = (int)ppppwVar4;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(puVar19 + -0x7bd8))(*(undefined4 *)(puVar21 + -0x104));\n    puVar19 = *(undefined **)(puVar21 + -0x110);\n    *piVar5 = (int)ppppwVar4;\n  }" { (expression_statement "(**(code **)(puVar19 + -0x7bd8))(*(undefined4 *)(puVar21 + -0x104));" (call_expression "(**(code **)(puVar19 + -0x7bd8))(*(undefined4 *)(puVar21 + -0x104))" (parenthesized_expression "(**(code **)(puVar19 + -0x7bd8))" ( (pointer_expression "**(code **)(puVar19 + -0x7bd8)" * (pointer_expression "*(code **)(puVar19 + -0x7bd8)" * (cast_expression "(code **)(puVar19 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7bd8)" ( (binary_expression "puVar19 + -0x7bd8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar21 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x104)" * (cast_expression "(undefined4 *)(puVar21 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) ))) ;) (expression_statement "puVar19 = *(undefined **)(puVar21 + -0x110);" (assignment_expression "puVar19 = *(undefined **)(puVar21 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x110)" * (cast_expression "(undefined **)(puVar21 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x110)" ( (binary_expression "puVar21 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*piVar5 = (int)ppppwVar4;" (assignment_expression "*piVar5 = (int)ppppwVar4" (pointer_expression "*piVar5" * identifier) = (cast_expression "(int)ppppwVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n    *piVar5 = (int)ppppwVar4;\n  }" else (compound_statement "{\n    *piVar5 = (int)ppppwVar4;\n  }" { (expression_statement "*piVar5 = (int)ppppwVar4;" (assignment_expression "*piVar5 = (int)ppppwVar4" (pointer_expression "*piVar5" * identifier) = (cast_expression "(int)ppppwVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "*(undefined4 *)(puVar21 + -0x104) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x104) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x104)" * (cast_expression "(undefined4 *)(puVar21 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002e89c:\n  iVar2 = *(int *)(puVar21 + -0x104);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar21 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0x104)" identifier = (pointer_expression "*(int *)(puVar21 + -0x104)" * (cast_expression "(int *)(puVar21 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x104)" ( (binary_expression "puVar21 + -0x104" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002e8a0:\n  iVar3 = *(int *)(puVar21 + -0x2c);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar21 + -0x2c);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar21 + -0x2c)" * (cast_expression "(int *)(puVar21 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2c)" ( (binary_expression "puVar21 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar3 != **(int **)(puVar19 + -0x7be4)) {\n    pcVar18 = *(code **)(puVar19 + -0x7c10);\n    uVar22 = 0x2ecac;\n    (*pcVar18)();\n    *(undefined4 *)(puVar21 + -300) = uVar22;\n    *(wchar_t *****)(puVar21 + -0x130) = unaff_s2;\n    *(int *)(puVar21 + -0x134) = flags;\n    *(wchar_t *****)(puVar21 + -0x138) = ppppwVar4;\n    *(code **)(puVar21 + -0x140) = pcVar18 + 0x23530;\n    if (iVar3 == 0) {\n      puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();\n      *puVar7 = 0x7a;\n      iVar3 = -1;\n    }\n    else if (iVar3 == 10) {\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }\n    return iVar3;\n  }" if (parenthesized_expression "(iVar3 != **(int **)(puVar19 + -0x7be4))" ( (binary_expression "iVar3 != **(int **)(puVar19 + -0x7be4)" identifier != (pointer_expression "**(int **)(puVar19 + -0x7be4)" * (pointer_expression "*(int **)(puVar19 + -0x7be4)" * (cast_expression "(int **)(puVar19 + -0x7be4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7be4)" ( (binary_expression "puVar19 + -0x7be4" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar18 = *(code **)(puVar19 + -0x7c10);\n    uVar22 = 0x2ecac;\n    (*pcVar18)();\n    *(undefined4 *)(puVar21 + -300) = uVar22;\n    *(wchar_t *****)(puVar21 + -0x130) = unaff_s2;\n    *(int *)(puVar21 + -0x134) = flags;\n    *(wchar_t *****)(puVar21 + -0x138) = ppppwVar4;\n    *(code **)(puVar21 + -0x140) = pcVar18 + 0x23530;\n    if (iVar3 == 0) {\n      puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();\n      *puVar7 = 0x7a;\n      iVar3 = -1;\n    }\n    else if (iVar3 == 10) {\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }\n    return iVar3;\n  }" { (expression_statement "pcVar18 = *(code **)(puVar19 + -0x7c10);" (assignment_expression "pcVar18 = *(code **)(puVar19 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar19 + -0x7c10)" * (cast_expression "(code **)(puVar19 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x7c10)" ( (binary_expression "puVar19 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = 0x2ecac;" (assignment_expression "uVar22 = 0x2ecac" identifier = number_literal) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar21 + -300) = uVar22;" (assignment_expression "*(undefined4 *)(puVar21 + -300) = uVar22" (pointer_expression "*(undefined4 *)(puVar21 + -300)" * (cast_expression "(undefined4 *)(puVar21 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -300)" ( (binary_expression "puVar21 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar21 + -0x130) = unaff_s2;" (assignment_expression "*(wchar_t *****)(puVar21 + -0x130) = unaff_s2" (pointer_expression "*(wchar_t *****)(puVar21 + -0x130)" * (cast_expression "(wchar_t *****)(puVar21 + -0x130)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0x130)" ( (binary_expression "puVar21 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x134) = flags;" (assignment_expression "*(int *)(puVar21 + -0x134) = flags" (pointer_expression "*(int *)(puVar21 + -0x134)" * (cast_expression "(int *)(puVar21 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x134)" ( (binary_expression "puVar21 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar21 + -0x138) = ppppwVar4;" (assignment_expression "*(wchar_t *****)(puVar21 + -0x138) = ppppwVar4" (pointer_expression "*(wchar_t *****)(puVar21 + -0x138)" * (cast_expression "(wchar_t *****)(puVar21 + -0x138)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar21 + -0x138)" ( (binary_expression "puVar21 + -0x138" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar21 + -0x140) = pcVar18 + 0x23530;" (assignment_expression "*(code **)(puVar21 + -0x140) = pcVar18 + 0x23530" (pointer_expression "*(code **)(puVar21 + -0x140)" * (cast_expression "(code **)(puVar21 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x140)" ( (binary_expression "puVar21 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar18 + 0x23530" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0) {\n      puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();\n      *puVar7 = 0x7a;\n      iVar3 = -1;\n    }\n    else if (iVar3 == 10) {\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();\n      *puVar7 = 0x7a;\n      iVar3 = -1;\n    }" { (expression_statement "puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))();" (assignment_expression "puVar7 = (undefined4 *)(**(code **)(pcVar18 + 0x1b868))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar18 + 0x1b868))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar18 + 0x1b868))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x1b868))" ( (pointer_expression "**(code **)(pcVar18 + 0x1b868)" * (pointer_expression "*(code **)(pcVar18 + 0x1b868)" * (cast_expression "(code **)(pcVar18 + 0x1b868)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x1b868)" ( (binary_expression "pcVar18 + 0x1b868" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x7a;" (assignment_expression "*puVar7 = 0x7a" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) }) (else_clause "else if (iVar3 == 10) {\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }" else (if_statement "if (iVar3 == 10) {\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }" if (parenthesized_expression "(iVar3 == 10)" ( (binary_expression "iVar3 == 10" identifier == number_literal) )) (compound_statement "{\n      pppwVar13 = *string_00;\n      iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }\n    }" { (expression_statement "pppwVar13 = *string_00;" (assignment_expression "pppwVar13 = *string_00" identifier = (pointer_expression "*string_00" * identifier)) ;) (expression_statement "iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac);" (assignment_expression "iVar2 = (**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac)" identifier = (call_expression "(**(code **)(pcVar18 + 0x1b988))(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac)" (parenthesized_expression "(**(code **)(pcVar18 + 0x1b988))" ( (pointer_expression "**(code **)(pcVar18 + 0x1b988)" * (pointer_expression "*(code **)(pcVar18 + 0x1b988)" * (cast_expression "(code **)(pcVar18 + 0x1b988)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x1b988)" ( (binary_expression "pcVar18 + 0x1b988" identifier + number_literal) ))))) )) (argument_list "(pppwVar13,*(int *)(pcVar18 + 0x1b568) + 0x58ac)" ( identifier , (binary_expression "*(int *)(pcVar18 + 0x1b568) + 0x58ac" (pointer_expression "*(int *)(pcVar18 + 0x1b568)" * (cast_expression "(int *)(pcVar18 + 0x1b568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x1b568)" ( (binary_expression "pcVar18 + 0x1b568" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);\n        iVar2 = *(int *)(puVar21 + -0x140);\n        *string_00 = (wchar_t ***)0x0;\n        puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar7 = 0x3d;\n        iVar3 = -1;\n      }" { (expression_statement "(**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13);" (call_expression "(**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))(pppwVar13)" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar21 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar21 + -0x140)" * (cast_expression "(int *)(puVar21 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x140)" ( (binary_expression "puVar21 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pppwVar13)" ( identifier ))) ;) (expression_statement "iVar2 = *(int *)(puVar21 + -0x140);" (assignment_expression "iVar2 = *(int *)(puVar21 + -0x140)" identifier = (pointer_expression "*(int *)(puVar21 + -0x140)" * (cast_expression "(int *)(puVar21 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x140)" ( (binary_expression "puVar21 + -0x140" identifier + number_literal) ))))) ;) (expression_statement "*string_00 = (wchar_t ***)0x0;" (assignment_expression "*string_00 = (wchar_t ***)0x0" (pointer_expression "*string_00" * identifier) = (cast_expression "(wchar_t ***)0x0" ( (type_descriptor "wchar_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();" (assignment_expression "puVar7 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar2 + -0x7cc8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar2 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar2 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar2 + -0x7cc8)" * (pointer_expression "*(code **)(iVar2 + -0x7cc8)" * (cast_expression "(code **)(iVar2 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + -0x7cc8)" ( (binary_expression "iVar2 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x3d;" (assignment_expression "*puVar7 = 0x3d" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) })) })))) (return_statement "return iVar3;" return identifier ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "undefined4 **** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 ****ppppuVar3;\n  undefined4 ****ppppuVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 ****ppppuVar10;\n  uint uVar11;\n  undefined4 ****ppppuVar12;\n  undefined4 ****ppppuVar13;\n  uint uVar14;\n  undefined4 ****unaff_s2;\n  undefined4 ***pppuVar15;\n  int unaff_s3;\n  undefined4 ****unaff_s4;\n  undefined4 ****unaff_s5;\n  int iVar16;\n  undefined4 ****ppppuVar17;\n  undefined4 *unaff_s6;\n  undefined4 unaff_s7;\n  undefined *puVar18;\n  code *pcVar19;\n  undefined *puVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined4 uVar23;\n  undefined1 auStack_60 [16];\n  undefined4 ***local_50 [2];\n  undefined4 ***local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }\n  uVar23 = 0x2e5f8;\n  iVar2 = local_2c;\n  puVar18 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar20 = puVar18 + 0x23be0;\n  *(undefined4 *)(puVar22 + -4) = uVar23;\n  *(undefined1 **)(puVar22 + -8) = auStack_60;\n  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;\n  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;\n  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;\n  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;\n  *(int *)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;\n  *(undefined4 *****)(puVar22 + -0x24) = param_3;\n  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;\n  *(undefined **)(puVar22 + -0x110) = puVar20;\n  *(int *)(puVar22 + -0x100) = iVar2;\n  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;\n  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);\n  if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  *puVar8 = 0x16;\n  *(undefined4 *)(puVar22 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }\n  *(undefined4 *)(puVar22 + -0x118) = 0x100;\n  ppppuVar13 = ppppuVar12;\n  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));\n  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);\n  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);\n  iVar21 = *(int *)(puVar22 + -0x110);\n  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar16 = *(int *)(puVar22 + -0xd8);\n  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);\n  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar6 = 0xc;\nLAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;\n  param_3 = (undefined4 ****)0x0;\nLAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\nLAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }\n  *(undefined4 *)(puVar22 + -0x104) = 0;\nLAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\nLAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);\n  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }\n  return ppppuVar4;\n}\n\n" (function_definition "undefined4 **** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 ****ppppuVar3;\n  undefined4 ****ppppuVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 ****ppppuVar10;\n  uint uVar11;\n  undefined4 ****ppppuVar12;\n  undefined4 ****ppppuVar13;\n  uint uVar14;\n  undefined4 ****unaff_s2;\n  undefined4 ***pppuVar15;\n  int unaff_s3;\n  undefined4 ****unaff_s4;\n  undefined4 ****unaff_s5;\n  int iVar16;\n  undefined4 ****ppppuVar17;\n  undefined4 *unaff_s6;\n  undefined4 unaff_s7;\n  undefined *puVar18;\n  code *pcVar19;\n  undefined *puVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined4 uVar23;\n  undefined1 auStack_60 [16];\n  undefined4 ***local_50 [2];\n  undefined4 ***local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }\n  uVar23 = 0x2e5f8;\n  iVar2 = local_2c;\n  puVar18 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar20 = puVar18 + 0x23be0;\n  *(undefined4 *)(puVar22 + -4) = uVar23;\n  *(undefined1 **)(puVar22 + -8) = auStack_60;\n  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;\n  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;\n  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;\n  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;\n  *(int *)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;\n  *(undefined4 *****)(puVar22 + -0x24) = param_3;\n  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;\n  *(undefined **)(puVar22 + -0x110) = puVar20;\n  *(int *)(puVar22 + -0x100) = iVar2;\n  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;\n  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);\n  if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  *puVar8 = 0x16;\n  *(undefined4 *)(puVar22 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }\n  *(undefined4 *)(puVar22 + -0x118) = 0x100;\n  ppppuVar13 = ppppuVar12;\n  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));\n  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);\n  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);\n  iVar21 = *(int *)(puVar22 + -0x110);\n  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar16 = *(int *)(puVar22 + -0xd8);\n  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);\n  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar6 = 0xc;\nLAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;\n  param_3 = (undefined4 ****)0x0;\nLAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\nLAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }\n  *(undefined4 *)(puVar22 + -0x104) = 0;\nLAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\nLAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);\n  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }\n  return ppppuVar4;\n}" type_identifier (pointer_declarator "**** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" * (pointer_declarator "*** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" * (pointer_declarator "** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" * (pointer_declarator "* gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" * (function_declarator "gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 ****param_2" type_identifier (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))))) , (parameter_declaration "undefined4 ****param_3" type_identifier (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier))))) ))))))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 ****ppppuVar3;\n  undefined4 ****ppppuVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 ****ppppuVar10;\n  uint uVar11;\n  undefined4 ****ppppuVar12;\n  undefined4 ****ppppuVar13;\n  uint uVar14;\n  undefined4 ****unaff_s2;\n  undefined4 ***pppuVar15;\n  int unaff_s3;\n  undefined4 ****unaff_s4;\n  undefined4 ****unaff_s5;\n  int iVar16;\n  undefined4 ****ppppuVar17;\n  undefined4 *unaff_s6;\n  undefined4 unaff_s7;\n  undefined *puVar18;\n  code *pcVar19;\n  undefined *puVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined4 uVar23;\n  undefined1 auStack_60 [16];\n  undefined4 ***local_50 [2];\n  undefined4 ***local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }\n  uVar23 = 0x2e5f8;\n  iVar2 = local_2c;\n  puVar18 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar20 = puVar18 + 0x23be0;\n  *(undefined4 *)(puVar22 + -4) = uVar23;\n  *(undefined1 **)(puVar22 + -8) = auStack_60;\n  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;\n  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;\n  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;\n  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;\n  *(int *)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;\n  *(undefined4 *****)(puVar22 + -0x24) = param_3;\n  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;\n  *(undefined **)(puVar22 + -0x110) = puVar20;\n  *(int *)(puVar22 + -0x100) = iVar2;\n  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;\n  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);\n  if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  *puVar8 = 0x16;\n  *(undefined4 *)(puVar22 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }\n  *(undefined4 *)(puVar22 + -0x118) = 0x100;\n  ppppuVar13 = ppppuVar12;\n  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));\n  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);\n  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);\n  iVar21 = *(int *)(puVar22 + -0x110);\n  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar16 = *(int *)(puVar22 + -0xd8);\n  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);\n  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar6 = 0xc;\nLAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;\n  param_3 = (undefined4 ****)0x0;\nLAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\nLAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }\n  *(undefined4 *)(puVar22 + -0x104) = 0;\nLAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\nLAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);\n  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }\n  return ppppuVar4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 ****ppppuVar3;" type_identifier (pointer_declarator "****ppppuVar3" * (pointer_declarator "***ppppuVar3" * (pointer_declarator "**ppppuVar3" * (pointer_declarator "*ppppuVar3" * identifier)))) ;) (declaration "undefined4 ****ppppuVar4;" type_identifier (pointer_declarator "****ppppuVar4" * (pointer_declarator "***ppppuVar4" * (pointer_declarator "**ppppuVar4" * (pointer_declarator "*ppppuVar4" * identifier)))) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 ****ppppuVar10;" type_identifier (pointer_declarator "****ppppuVar10" * (pointer_declarator "***ppppuVar10" * (pointer_declarator "**ppppuVar10" * (pointer_declarator "*ppppuVar10" * identifier)))) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 ****ppppuVar12;" type_identifier (pointer_declarator "****ppppuVar12" * (pointer_declarator "***ppppuVar12" * (pointer_declarator "**ppppuVar12" * (pointer_declarator "*ppppuVar12" * identifier)))) ;) (declaration "undefined4 ****ppppuVar13;" type_identifier (pointer_declarator "****ppppuVar13" * (pointer_declarator "***ppppuVar13" * (pointer_declarator "**ppppuVar13" * (pointer_declarator "*ppppuVar13" * identifier)))) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 ****unaff_s2;" type_identifier (pointer_declarator "****unaff_s2" * (pointer_declarator "***unaff_s2" * (pointer_declarator "**unaff_s2" * (pointer_declarator "*unaff_s2" * identifier)))) ;) (declaration "undefined4 ***pppuVar15;" type_identifier (pointer_declarator "***pppuVar15" * (pointer_declarator "**pppuVar15" * (pointer_declarator "*pppuVar15" * identifier))) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "undefined4 ****unaff_s4;" type_identifier (pointer_declarator "****unaff_s4" * (pointer_declarator "***unaff_s4" * (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier)))) ;) (declaration "undefined4 ****unaff_s5;" type_identifier (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier)))) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 ****ppppuVar17;" type_identifier (pointer_declarator "****ppppuVar17" * (pointer_declarator "***ppppuVar17" * (pointer_declarator "**ppppuVar17" * (pointer_declarator "*ppppuVar17" * identifier)))) ;) (declaration "undefined4 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "undefined1 auStack_60 [16];" type_identifier (array_declarator "auStack_60 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 ***local_50 [2];" type_identifier (pointer_declarator "***local_50 [2]" * (pointer_declarator "**local_50 [2]" * (pointer_declarator "*local_50 [2]" * (array_declarator "local_50 [2]" identifier [ number_literal ])))) ;) (declaration "undefined4 ***local_40;" type_identifier (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))) ;) (declaration "undefined4 local_3c [2];" type_identifier (array_declarator "local_3c [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0004a5fc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004a5fc" * (cast_expression "(int *)PTR___stack_chk_guard_0004a5fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" identifier = identifier) ;) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004a598)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004a598)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0004a598" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0004a598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }" { (labeled_statement "LAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;" statement_identifier : (expression_statement "ppppuVar13 = (undefined4 ****)local_40;" (assignment_expression "ppppuVar13 = (undefined4 ****)local_40" identifier = (cast_expression "(undefined4 ****)local_40" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_0004a53c)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_0004a53c)" ( (pointer_expression "*(code *)PTR_strlen_0004a53c" * (cast_expression "(code *)PTR_strlen_0004a53c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "local_50[0] = param_3;" (assignment_expression "local_50[0] = param_3" (subscript_expression "local_50[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier = (cast_expression "(undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , identifier , (binary_expression "(int)ppppuVar13 + iVar2" (cast_expression "(int)ppppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_3 << 0x1d)" ( (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" else (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_3c,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "uVar14 = iVar2 + 1;" (assignment_expression "uVar14 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar14 == 0) goto LAB_0002e288;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e288;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" { (expression_statement "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" identifier = (cast_expression "(undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) ))))) ;) (return_statement "return ppppuVar13;" return identifier ;) })) (expression_statement "ppppuVar13 = &local_40;" (assignment_expression "ppppuVar13 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);" (assignment_expression "unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" identifier = (cast_expression "(undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,ppppuVar13,0,&local_34)" ( number_literal , identifier , number_literal , (pointer_expression "&local_34" & identifier) ))))) ;) (expression_statement "unaff_s3 = (int)unaff_s2 + 1;" (assignment_expression "unaff_s3 = (int)unaff_s2 + 1" identifier = (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (unaff_s3 == 0) goto LAB_0002e288;" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e288;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "uVar11 = uVar14 + unaff_s3;" (assignment_expression "uVar11 = uVar14 + unaff_s3" identifier = (binary_expression "uVar14 + unaff_s3" identifier + identifier)) ;) (if_statement "if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" { (expression_statement "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" identifier = (cast_expression "(undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) ))))) ;) (return_statement "return ppppuVar13;" return identifier ;) })) (if_statement "if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" if (parenthesized_expression "((uVar11 < uVar14) || (0x3fffffff < uVar11))" ( (binary_expression "(uVar11 < uVar14) || (0x3fffffff < uVar11)" (parenthesized_expression "(uVar11 < uVar14)" ( (binary_expression "uVar11 < uVar14" identifier < identifier) )) || (parenthesized_expression "(0x3fffffff < uVar11)" ( (binary_expression "0x3fffffff < uVar11" number_literal < identifier) ))) )) (compound_statement "{\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }" { (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004a518)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0004a518)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004a518)" ( (pointer_expression "*(code *)PTR___errno_location_0004a518" * (cast_expression "(code *)PTR___errno_location_0004a518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar8 = 0xc;" (assignment_expression "*puVar8 = 0xc" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "ppppuVar3 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar3 = (undefined4 ****)0xffffffff" identifier = (cast_expression "(undefined4 ****)0xffffffff" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" else (if_statement "if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" if (parenthesized_expression "(uVar11 < 2000)" ( (binary_expression "uVar11 < 2000" identifier < number_literal) )) (compound_statement "{\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }" { (expression_statement "iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar11 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar11 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar11 * 4 + 7 & 0xfffffff8" (binary_expression "uVar11 * 4 + 7" (binary_expression "uVar11 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);" (assignment_expression "unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2)" identifier = (cast_expression "(undefined4 ****)(&stack0xffffffb8 + iVar2)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(&stack0xffffffb8 + iVar2)" ( (binary_expression "&stack0xffffffb8 + iVar2" (pointer_expression "&stack0xffffffb8" & identifier) + identifier) )))) ;) (expression_statement "unaff_s6 = &local_34;" (assignment_expression "unaff_s6 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,local_3c,uVar14,unaff_s6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "unaff_s4 = unaff_s5 + uVar14;" (assignment_expression "unaff_s4 = unaff_s5 + uVar14" identifier = (binary_expression "unaff_s5 + uVar14" identifier + identifier)) ;) (if_statement "if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }" { (labeled_statement "LAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);" statement_identifier : (expression_statement "ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" identifier = (cast_expression "(undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" ( (pointer_expression "*(code *)PTR___assert_fail_0004a460" * (cast_expression "(code *)PTR___assert_fail_0004a460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" ( (binary_expression "PTR_DAT_0004a224 + -0x6c20" identifier + number_literal) , (binary_expression "PTR_DAT_0004a224 + -0x6c30" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0004a224 + -0x6918" identifier + number_literal) ))))) ;)) (return_statement "return ppppuVar13;" return identifier ;) })) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4,&local_40,unaff_s3,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "*(undefined4 *****)((int)local_50 + iVar2) = param_3;" (assignment_expression "*(undefined4 *****)((int)local_50 + iVar2) = param_3" (pointer_expression "*(undefined4 *****)((int)local_50 + iVar2)" * (cast_expression "(undefined4 *****)((int)local_50 + iVar2)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_50 + iVar2)" ( (binary_expression "(int)local_50 + iVar2" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "ppppuVar13 = unaff_s4;" (assignment_expression "ppppuVar13 = unaff_s4" identifier = identifier) ;) (expression_statement "ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier = (cast_expression "(undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "unaff_s4 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_3 << 0x1d)" ( (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "puVar22 = auStack_60 + iVar2;" (assignment_expression "puVar22 = auStack_60 + iVar2" identifier = (binary_expression "auStack_60 + iVar2" identifier + identifier)) ;) }) (else_clause "else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" else (compound_statement "{\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" { (expression_statement "unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);" (assignment_expression "unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" identifier = (cast_expression "(undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" (parenthesized_expression "(*(code *)PTR_malloc_0004a560)" ( (pointer_expression "*(code *)PTR_malloc_0004a560" * (cast_expression "(code *)PTR_malloc_0004a560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11 * 4)" ( (binary_expression "uVar11 * 4" identifier * number_literal) ))))) ;) (if_statement "if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" if (parenthesized_expression "(unaff_s4 == (undefined4 ****)0x0)" ( (binary_expression "unaff_s4 == (undefined4 ****)0x0" identifier == (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }" { (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004a518)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0004a518)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004a518)" ( (pointer_expression "*(code *)PTR___errno_location_0004a518" * (cast_expression "(code *)PTR___errno_location_0004a518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar8 = 0xc;" (assignment_expression "*puVar8 = 0xc" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "ppppuVar3 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar3 = (undefined4 ****)0xffffffff" identifier = (cast_expression "(undefined4 ****)0xffffffff" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" else (compound_statement "{\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" { (expression_statement "unaff_s5 = unaff_s4 + uVar14;" (assignment_expression "unaff_s5 = unaff_s4 + uVar14" identifier = (binary_expression "unaff_s4 + uVar14" identifier + identifier)) ;) (expression_statement "unaff_s6 = &local_34;" (assignment_expression "unaff_s6 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4,local_3c,uVar14,unaff_s6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" ( (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" * (cast_expression "(code *)PTR_mbsinit_0004a5f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0002e5c4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e5c4;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" * (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,&local_40,unaff_s3,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "ppppuVar13 = unaff_s5;" (assignment_expression "ppppuVar13 = unaff_s5" identifier = identifier) ;) (expression_statement "local_50[0] = param_3;" (assignment_expression "local_50[0] = param_3" (subscript_expression "local_50[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier = (cast_expression "(undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "unaff_s5 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_3 << 0x1d)" ( (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "(*(code *)PTR_free_0004a608)(unaff_s4);" (call_expression "(*(code *)PTR_free_0004a608)(unaff_s4)" (parenthesized_expression "(*(code *)PTR_free_0004a608)" ( (pointer_expression "*(code *)PTR_free_0004a608" * (cast_expression "(code *)PTR_free_0004a608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) }))) }))))) }))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_0004a5fc)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_0004a5fc" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_0004a5fc" * (cast_expression "(int *)PTR___stack_chk_guard_0004a5fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return ppppuVar3;\n  }" { (return_statement "return ppppuVar3;" return identifier ;) })) (expression_statement "uVar23 = 0x2e5f8;" (assignment_expression "uVar23 = 0x2e5f8" identifier = number_literal) ;) (expression_statement "iVar2 = local_2c;" (assignment_expression "iVar2 = local_2c" identifier = identifier) ;) (expression_statement "puVar18 = PTR___stack_chk_fail_0004a5d0;" (assignment_expression "puVar18 = PTR___stack_chk_fail_0004a5d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0004a5d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004a5d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004a5d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004a5d0" * (cast_expression "(code *)PTR___stack_chk_fail_0004a5d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar18 + 0x23be0;" (assignment_expression "puVar20 = puVar18 + 0x23be0" identifier = (binary_expression "puVar18 + 0x23be0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar22 + -4) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -4) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -4)" * (cast_expression "(undefined4 *)(puVar22 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -4)" ( (binary_expression "puVar22 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar22 + -8) = auStack_60;" (assignment_expression "*(undefined1 **)(puVar22 + -8) = auStack_60" (pointer_expression "*(undefined1 **)(puVar22 + -8)" * (cast_expression "(undefined1 **)(puVar22 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -8)" ( (binary_expression "puVar22 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xc) = unaff_s7;" (assignment_expression "*(undefined4 *)(puVar22 + -0xc) = unaff_s7" (pointer_expression "*(undefined4 *)(puVar22 + -0xc)" * (cast_expression "(undefined4 *)(puVar22 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc)" ( (binary_expression "puVar22 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar22 + -0x10) = unaff_s6;" (assignment_expression "*(undefined4 **)(puVar22 + -0x10) = unaff_s6" (pointer_expression "*(undefined4 **)(puVar22 + -0x10)" * (cast_expression "(undefined4 **)(puVar22 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x10)" ( (binary_expression "puVar22 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x14) = unaff_s5;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x14) = unaff_s5" (pointer_expression "*(undefined4 *****)(puVar22 + -0x14)" * (cast_expression "(undefined4 *****)(puVar22 + -0x14)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x14)" ( (binary_expression "puVar22 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x18) = unaff_s4;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x18) = unaff_s4" (pointer_expression "*(undefined4 *****)(puVar22 + -0x18)" * (cast_expression "(undefined4 *****)(puVar22 + -0x18)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x18)" ( (binary_expression "puVar22 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x1c) = unaff_s3;" (assignment_expression "*(int *)(puVar22 + -0x1c) = unaff_s3" (pointer_expression "*(int *)(puVar22 + -0x1c)" * (cast_expression "(int *)(puVar22 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c)" ( (binary_expression "puVar22 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x20) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x20) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x20)" * (cast_expression "(undefined4 *****)(puVar22 + -0x20)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x20)" ( (binary_expression "puVar22 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x24) = param_3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x24) = param_3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x24)" * (cast_expression "(undefined4 *****)(puVar22 + -0x24)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x24)" ( (binary_expression "puVar22 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x28) = ppppuVar3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x28)" * (cast_expression "(undefined4 *****)(puVar22 + -0x28)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x28)" ( (binary_expression "puVar22 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar22 + -0x110) = puVar20;" (assignment_expression "*(undefined **)(puVar22 + -0x110) = puVar20" (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x100) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x100) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + 4) = ppppuVar13;" (assignment_expression "*(undefined4 *****)(puVar22 + 4) = ppppuVar13" (pointer_expression "*(undefined4 *****)(puVar22 + 4)" * (cast_expression "(undefined4 *****)(puVar22 + 4)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);" (assignment_expression "*(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc)" (pointer_expression "*(undefined4 *)(puVar22 + -0x2c)" * (cast_expression "(undefined4 *)(puVar22 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x2c)" ( (binary_expression "puVar22 + -0x2c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(puVar18 + 0x1bffc)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1bffc)" * (cast_expression "(undefined4 **)(puVar18 + 0x1bffc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1bffc)" ( (binary_expression "puVar18 + 0x1bffc" identifier + number_literal) )))))) ;) (if_statement "if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }" if (parenthesized_expression "(ppppuVar13 != (undefined4 ****)0x0)" ( (binary_expression "ppppuVar13 != (undefined4 ****)0x0" identifier != (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }" { (if_statement "if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }" if (parenthesized_expression "(*(int *)(puVar22 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar22 + -0x100) == 0" (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }" { (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + 4)" * (cast_expression "(undefined4 *)(puVar22 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e664;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + 4)" * (cast_expression "(undefined4 *)(puVar22 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100)" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0x100)" * (cast_expression "(undefined4 *)(puVar22 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar22 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x104)" identifier = (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) ;)) (expression_statement "iVar9 = *(int *)(puVar22 + -0xf0);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0xf0)" identifier = (pointer_expression "*(int *)(puVar22 + -0xf0)" * (cast_expression "(int *)(puVar22 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar2 + iVar9 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar2 + iVar9 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar2 + iVar9 + -1)" * (cast_expression "(undefined1 *)(iVar2 + iVar9 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + iVar9 + -1)" ( (binary_expression "iVar2 + iVar9 + -1" (binary_expression "iVar2 + iVar9" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);" (assignment_expression "ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" identifier = (cast_expression "(undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" ( (binary_expression "*(int *)(puVar20 + -0x7fc8) + 0x7b9c" (pointer_expression "*(int *)(puVar20 + -0x7fc8)" * (cast_expression "(int *)(puVar20 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x7fc8)" ( (binary_expression "puVar20 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" identifier = (call_expression "(**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d60))" ( (pointer_expression "**(code **)(puVar20 + -0x7d60)" * (pointer_expression "*(code **)(puVar20 + -0x7d60)" * (cast_expression "(code **)(puVar20 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d60)" ( (binary_expression "puVar20 + -0x7d60" identifier + number_literal) ))))) )) (argument_list "(3,ppppuVar4,puVar22 + -0xd0)" ( number_literal , identifier , (binary_expression "puVar22 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" { (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" identifier = (cast_expression "(undefined4 ****)0xffffff9c" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" { (expression_statement "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xfc)" * (cast_expression "(undefined4 *)(puVar22 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" * (cast_expression "(undefined4 *)(puVar22 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(puVar22 + -0xc0);" (assignment_expression "iVar16 = *(int *)(puVar22 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar22 + -0xc0)" * (cast_expression "(int *)(puVar22 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc0)" ( (binary_expression "puVar22 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf8)" * (cast_expression "(undefined4 *)(puVar22 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" * (cast_expression "(undefined4 *)(puVar22 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xbc)" ( (binary_expression "puVar22 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);" (assignment_expression "ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" identifier = (cast_expression "(undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" ( (binary_expression "*(int *)(iVar21 + -0x7fc8) + 0x7bec" (pointer_expression "*(int *)(iVar21 + -0x7fc8)" * (cast_expression "(int *)(iVar21 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + -0x7fc8)" ( (binary_expression "iVar21 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);" (assignment_expression "iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d60))" ( (pointer_expression "**(code **)(iVar21 + -0x7d60)" * (pointer_expression "*(code **)(iVar21 + -0x7d60)" * (cast_expression "(code **)(iVar21 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d60)" ( (binary_expression "iVar21 + -0x7d60" identifier + number_literal) ))))) )) (argument_list "(3,ppppuVar4,puVar22 + -0xd0)" ( number_literal , identifier , (binary_expression "puVar22 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }" { (expression_statement "*(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar2 + iVar9 + -1" (binary_expression "iVar2 + iVar9" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xe8)" * (cast_expression "(undefined4 *)(puVar22 + -0xe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe8)" ( (binary_expression "puVar22 + -0xe8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" * (cast_expression "(undefined4 *)(puVar22 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xe4)" * (cast_expression "(undefined4 *)(puVar22 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe4)" ( (binary_expression "puVar22 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xc0)" * (cast_expression "(undefined4 *)(puVar22 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc0)" ( (binary_expression "puVar22 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xdc)" * (cast_expression "(undefined4 *)(puVar22 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xdc)" ( (binary_expression "puVar22 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" * (cast_expression "(undefined4 *)(puVar22 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xbc)" ( (binary_expression "puVar22 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" identifier = (cast_expression "(undefined4 ****)0xffffff9c" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;" (assignment_expression "*(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c" (pointer_expression "*(int *)(puVar22 + -0xec)" * (cast_expression "(int *)(puVar22 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xec)" ( (binary_expression "puVar22 + -0xec" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar21 + -0x7fbc) + -0x7f6c" (pointer_expression "*(int *)(iVar21 + -0x7fbc)" * (cast_expression "(int *)(iVar21 + -0x7fbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + -0x7fbc)" ( (binary_expression "iVar21 + -0x7fbc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);" (assignment_expression "unaff_s2 = (undefined4 ****)(puVar22 + -0xd0)" identifier = (cast_expression "(undefined4 ****)(puVar22 + -0xd0)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x108) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x108) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x108)" * (cast_expression "(undefined4 *****)(puVar22 + -0x108)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x108)" ( (binary_expression "puVar22 + -0x108" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" statement_identifier : (if_statement "if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" if (parenthesized_expression "(((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc)))" ( (binary_expression "((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))" (parenthesized_expression "((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4)))" ( (binary_expression "(*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))" (parenthesized_expression "(*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8))" ( (binary_expression "*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)" (pointer_expression "*(int *)(puVar22 + -0xfc)" * (cast_expression "(int *)(puVar22 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar22 + -0xe8)" * (cast_expression "(int *)(puVar22 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe8)" ( (binary_expression "puVar22 + -0xe8" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar16 != *(int *)(puVar22 + -0xe4))" ( (binary_expression "iVar16 != *(int *)(puVar22 + -0xe4)" identifier != (pointer_expression "*(int *)(puVar22 + -0xe4)" * (cast_expression "(int *)(puVar22 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe4)" ( (binary_expression "puVar22 + -0xe4" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))" ( (binary_expression "*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc)" (pointer_expression "*(int *)(puVar22 + -0xf8)" * (cast_expression "(int *)(puVar22 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar22 + -0xdc)" * (cast_expression "(int *)(puVar22 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xdc)" ( (binary_expression "puVar22 + -0xdc" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" { (expression_statement "ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);" (assignment_expression "ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0xec)" * (cast_expression "(undefined4 *****)(puVar22 + -0xec)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0xec)" ( (binary_expression "puVar22 + -0xec" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);" (assignment_expression "ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" identifier = (cast_expression "(undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" (parenthesized_expression "(**(code **)(iVar21 + -0x7cac))" ( (pointer_expression "**(code **)(iVar21 + -0x7cac)" * (pointer_expression "*(code **)(iVar21 + -0x7cac)" * (cast_expression "(code **)(iVar21 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cac)" ( (binary_expression "iVar21 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(ppppuVar12,ppppuVar13,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" if (parenthesized_expression "((int)ppppuVar12 < 0)" ( (binary_expression "(int)ppppuVar12 < 0" (cast_expression "(int)ppppuVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }" { (expression_statement "piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar22 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" identifier = (cast_expression "(undefined4 ****)*piVar6" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar6" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_0002e888;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002e888;" goto statement_identifier ;)) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" else (compound_statement "{\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" { (expression_statement "ppppuVar13 = ppppuVar12;" (assignment_expression "ppppuVar13 = ppppuVar12" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));" (assignment_expression "iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" identifier = (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar22 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" ( number_literal , identifier , (pointer_expression "*(undefined4 *)(puVar22 + -0x108)" * (cast_expression "(undefined4 *)(puVar22 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x108)" ( (binary_expression "puVar22 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }" { (if_statement "if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }" { (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar21 + -0x7d6c)" * (pointer_expression "*(code **)(iVar21 + -0x7d6c)" * (cast_expression "(code **)(iVar21 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d6c)" ( (binary_expression "iVar21 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" identifier = (cast_expression "(undefined4 ****)0x1" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppuVar4 = ppppuVar13;" (assignment_expression "ppppuVar4 = ppppuVar13" identifier = identifier) ;) (if_statement "if (iVar2 != 0) goto LAB_0002ec18;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf4)" * (cast_expression "(undefined4 *)(puVar22 + -0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf4)" ( (binary_expression "puVar22 + -0xf4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" * (cast_expression "(undefined4 *)(puVar22 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xd8)" * (cast_expression "(undefined4 *)(puVar22 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd8)" ( (binary_expression "puVar22 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xc0)" * (cast_expression "(undefined4 *)(puVar22 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc0)" ( (binary_expression "puVar22 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xd4)" * (cast_expression "(undefined4 *)(puVar22 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd4)" ( (binary_expression "puVar22 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" * (cast_expression "(undefined4 *)(puVar22 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xbc)" ( (binary_expression "puVar22 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d1c))(ppppuVar12)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d1c))" ( (pointer_expression "**(code **)(iVar21 + -0x7d1c)" * (pointer_expression "*(code **)(iVar21 + -0x7d1c)" * (cast_expression "(code **)(iVar21 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d1c)" ( (binary_expression "iVar21 + -0x7d1c" identifier + number_literal) ))))) )) (argument_list "(ppppuVar12)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }" { (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "unaff_s2 = (undefined4 ****)0x100;" (assignment_expression "unaff_s2 = (undefined4 ****)0x100" identifier = (cast_expression "(undefined4 ****)0x100" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_0002e958:\n                *piVar6 = 0;" statement_identifier : (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;)) (do_statement "do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );" do (compound_statement "{\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                }" { (expression_statement "piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);" (assignment_expression "piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + -0x7d38))(iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + -0x7d38))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d38))" ( (pointer_expression "**(code **)(puVar20 + -0x7d38)" * (pointer_expression "*(code **)(puVar20 + -0x7d38)" * (cast_expression "(code **)(puVar20 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d38)" ( (binary_expression "puVar20 + -0x7d38" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }" { (if_statement "if (*piVar6 != 0) goto LAB_0002e864;" if (parenthesized_expression "(*piVar6 != 0)" ( (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" * identifier) != number_literal) )) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;)) (if_statement "if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }" { (expression_statement "*piVar6 = 2;" (assignment_expression "*piVar6 = 2" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar20 + -0x7d90))(iVar2);" (call_expression "(**(code **)(puVar20 + -0x7d90))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d90))" ( (pointer_expression "**(code **)(puVar20 + -0x7d90)" * (pointer_expression "*(code **)(puVar20 + -0x7d90)" * (cast_expression "(code **)(puVar20 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d90)" ( (binary_expression "puVar20 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);" (assignment_expression "piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar22 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }" { (if_statement "if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }" if (parenthesized_expression "(*piVar6 == 0)" ( (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" * identifier) == number_literal) )) (compound_statement "{\n                        *piVar6 = 2;\n                      }" { (expression_statement "*piVar6 = 2;" (assignment_expression "*piVar6 = 2" (pointer_expression "*piVar6" * identifier) = number_literal) ;) })) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;" if (parenthesized_expression "(*(char *)((int)piVar7 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar7 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar7 + 0x13)" * (cast_expression "(char *)((int)piVar7 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002e91c;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" else (if_statement "if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" if (parenthesized_expression "(*(char *)((int)piVar7 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar7 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar7 + 0x13)" * (cast_expression "(char *)((int)piVar7 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002e984;" goto statement_identifier ;)))) (if_statement "if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;" if (parenthesized_expression "(*(char *)(piVar7 + 5) == '\0')" ( (binary_expression "*(char *)(piVar7 + 5) == '\0'" (pointer_expression "*(char *)(piVar7 + 5)" * (cast_expression "(char *)(piVar7 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 5)" ( (binary_expression "piVar7 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (if_statement "if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;" if (parenthesized_expression "((piVar7[5] & 0xffff0000U) != 0x2e000000)" ( (binary_expression "(piVar7[5] & 0xffff0000U) != 0x2e000000" (parenthesized_expression "(piVar7[5] & 0xffff0000U)" ( (binary_expression "piVar7[5] & 0xffff0000U" (subscript_expression "piVar7[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002e984;" goto statement_identifier ;)) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" identifier = (cast_expression "(undefined4 ****)0x1" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppuVar4 = ppppuVar13;" (assignment_expression "ppppuVar4 = ppppuVar13" identifier = identifier) ;) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" identifier = (cast_expression "(undefined4 ****)*piVar6" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar6" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_0002ec64;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ec64;" goto statement_identifier ;)) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" identifier = (cast_expression "(undefined4 ****)0x1" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }))) (goto_statement "goto LAB_0002e86c;" goto statement_identifier ;) }))) (if_statement "if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }" { (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar21 + -0x7d6c)" * (pointer_expression "*(code **)(iVar21 + -0x7d6c)" * (cast_expression "(code **)(iVar21 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d6c)" ( (binary_expression "iVar21 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (if_statement "if (iVar2 != 0) goto LAB_0002ec18;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002ec18;" goto statement_identifier ;)) })) (expression_statement "iVar2 = *(int *)(puVar22 + -0xe0);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }" if (parenthesized_expression "(iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1)" ( (binary_expression "iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1" identifier == (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1" (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar22 + -0xf0)" * (cast_expression "(int *)(puVar22 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }" { (expression_statement "*(undefined1 *)(iVar2 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar2 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar2 + -1)" * (cast_expression "(undefined1 *)(iVar2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -1)" ( (binary_expression "iVar2 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar22 + -0xe0) = iVar2 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = iVar2 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) })) (expression_statement "ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" identifier = (cast_expression "(undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" ( (binary_expression "(*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0)" (parenthesized_expression "(*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0))" ( (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar22 + -0xf0)" * (cast_expression "(int *)(puVar22 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) ))))) )) - (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) ))))) )))) ;) (expression_statement "(**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);" (call_expression "(**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3)" (parenthesized_expression "(**(code **)(iVar21 + -0x7bd0))" ( (pointer_expression "**(code **)(iVar21 + -0x7bd0)" * (pointer_expression "*(code **)(iVar21 + -0x7bd0)" * (cast_expression "(code **)(iVar21 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7bd0)" ( (binary_expression "iVar21 + -0x7bd0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3)" ( (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar13 = ppppuVar3;" (assignment_expression "ppppuVar13 = ppppuVar3" identifier = identifier) ;) (if_statement "if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }" if (parenthesized_expression "(*(int *)(puVar22 + 4) == 0)" ( (binary_expression "*(int *)(puVar22 + 4) == 0" (pointer_expression "*(int *)(puVar22 + 4)" * (cast_expression "(int *)(puVar22 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }" { (expression_statement "uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));" (assignment_expression "uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" identifier = (call_expression "(**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c78))" ( (pointer_expression "**(code **)(puVar20 + -0x7c78)" * (pointer_expression "*(code **)(puVar20 + -0x7c78)" * (cast_expression "(code **)(puVar20 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7c78)" ( (binary_expression "puVar20 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x100) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -0x100) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -0x100)" * (cast_expression "(undefined4 *)(puVar22 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" identifier = (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }" if (parenthesized_expression "(*(int *)(puVar22 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar22 + -0x100) == 0" (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }" { (expression_statement "iVar2 = *(int *)(puVar22 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x104)" identifier = (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar22 + -0x104) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002e89c;" goto statement_identifier ;) })) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" identifier = (cast_expression "(undefined4 ****)0xffffff9c" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }))) (labeled_statement "LAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" statement_identifier : (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" identifier = (cast_expression "(undefined4 ****)*piVar6" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "ppppuVar13 = ppppuVar4;" (assignment_expression "ppppuVar13 = ppppuVar4" identifier = identifier) ;) (goto_statement "goto LAB_0002e880;" goto statement_identifier ;) })) (if_statement "if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }" { (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = 0x1000" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));" statement_identifier : (expression_statement "iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));" (assignment_expression "iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0))" identifier = (call_expression "(**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0))" (parenthesized_expression "(**(code **)(puVar18 + 0x1bf60))" ( (pointer_expression "**(code **)(puVar18 + 0x1bf60)" * (pointer_expression "*(code **)(puVar18 + 0x1bf60)" * (cast_expression "(code **)(puVar18 + 0x1bf60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1bf60)" ( (binary_expression "puVar18 + 0x1bf60" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0xf0))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) )))) ;)) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0x104) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }" { (expression_statement "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" (assignment_expression "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0x104)" * (cast_expression "(undefined4 *****)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e8a0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e6bc;" goto statement_identifier ;) })) (expression_statement "puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar18 + 0x1bf18))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar18 + 0x1bf18))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1bf18))" ( (pointer_expression "**(code **)(puVar18 + 0x1bf18)" * (pointer_expression "*(code **)(puVar18 + 0x1bf18)" * (cast_expression "(code **)(puVar18 + 0x1bf18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1bf18)" ( (binary_expression "puVar18 + 0x1bf18" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = 0x16;" (assignment_expression "*puVar8 = 0x16" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e89c;" goto statement_identifier ;) (labeled_statement "LAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" statement_identifier : (if_statement "if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }" { (if_statement "if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" if (parenthesized_expression "((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8)))" ( (binary_expression "(*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))" (parenthesized_expression "(*piVar7 == iVar16)" ( (binary_expression "*piVar7 == iVar16" (pointer_expression "*piVar7" * identifier) == identifier) )) && (parenthesized_expression "(piVar7[1] == *(int *)(puVar22 + -0xf8))" ( (binary_expression "piVar7[1] == *(int *)(puVar22 + -0xf8)" (subscript_expression "piVar7[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar22 + -0xf8)" * (cast_expression "(int *)(puVar22 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" { (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" identifier = (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" else (compound_statement "{\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" { (if_statement "if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;" if (parenthesized_expression "(*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4))" ( (binary_expression "*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)" (pointer_expression "*(int *)(puVar22 + -0xfc)" * (cast_expression "(int *)(puVar22 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar22 + -0xf4)" * (cast_expression "(int *)(puVar22 + -0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf4)" ( (binary_expression "puVar22 + -0xf4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" identifier = (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }) (else_clause "else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" else (compound_statement "{\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" { (labeled_statement "LAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" statement_identifier : (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" identifier = (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)piVar7 + 0x13)" ( (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) })))) (expression_statement "*(undefined4 *)(puVar22 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar22 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar22 + -0x118)" * (cast_expression "(undefined4 *)(puVar22 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x118)" ( (binary_expression "puVar22 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "ppppuVar13 = ppppuVar12;" (assignment_expression "ppppuVar13 = ppppuVar12" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" identifier = (call_expression "(**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c30))" ( (pointer_expression "**(code **)(puVar20 + -0x7c30)" * (pointer_expression "*(code **)(puVar20 + -0x7c30)" * (cast_expression "(code **)(puVar20 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7c30)" ( (binary_expression "puVar20 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" ( number_literal , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar22 + -0x108)" * (cast_expression "(undefined4 *)(puVar22 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x108)" ( (binary_expression "puVar22 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;" if (parenthesized_expression "(((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))))))" ( (binary_expression "((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))" (parenthesized_expression "((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000))" ( (binary_expression "(iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar22 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar22 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar22 + -0xb8)" * (cast_expression "(uint *)(puVar22 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xb8)" ( (binary_expression "puVar22 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))" ( (parenthesized_expression "(*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))))" ( (binary_expression "*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))" (binary_expression "*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc)" (pointer_expression "*(int *)(puVar22 + -0xd0)" * (cast_expression "(int *)(puVar22 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd0)" ( (binary_expression "puVar22 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar22 + -0xfc)" * (cast_expression "(int *)(puVar22 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) ))))) || (parenthesized_expression "((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))" ( (parenthesized_expression "(*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))" ( (binary_expression "*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))" (binary_expression "*(int *)(puVar22 + -0xc0) != iVar16" (pointer_expression "*(int *)(puVar22 + -0xc0)" * (cast_expression "(int *)(puVar22 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xc0)" ( (binary_expression "puVar22 + -0xc0" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))" ( (binary_expression "*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)" (pointer_expression "*(int *)(puVar22 + -0xbc)" * (cast_expression "(int *)(puVar22 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xbc)" ( (binary_expression "puVar22 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar22 + -0xf8)" * (cast_expression "(int *)(puVar22 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) ))))) ))) )) ))) )) ))) )) (goto_statement "goto LAB_0002e958;" goto statement_identifier ;)) (expression_statement "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));" (assignment_expression "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" identifier = (cast_expression "(undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" ( (binary_expression "*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104)" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) )))) ;) (expression_statement "param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);" (assignment_expression "param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" identifier = (cast_expression "(undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" (parenthesized_expression "(**(code **)(puVar20 + -0x7ca4))" ( (pointer_expression "**(code **)(puVar20 + -0x7ca4)" * (pointer_expression "*(code **)(puVar20 + -0x7ca4)" * (cast_expression "(code **)(puVar20 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7ca4)" ( (binary_expression "puVar20 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(ppppuVar4)" ( identifier ))))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }" if (parenthesized_expression "(unaff_s2 <= param_3)" ( (binary_expression "unaff_s2 <= param_3" identifier <= identifier) )) (compound_statement "{\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }" { (expression_statement "ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);" (assignment_expression "ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *****)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }" if (parenthesized_expression "(*(int *)(puVar22 + 4) != 0)" ( (binary_expression "*(int *)(puVar22 + 4) != 0" (pointer_expression "*(int *)(puVar22 + 4)" * (cast_expression "(int *)(puVar22 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }" { (expression_statement "*piVar6 = 0x22;" (assignment_expression "*piVar6 = 0x22" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002e864;" goto statement_identifier ;) })) (expression_statement "ppppuVar10 = ppppuVar3;" (assignment_expression "ppppuVar10 = ppppuVar3" identifier = identifier) ;) (if_statement "if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }" if (parenthesized_expression "(ppppuVar3 < param_3)" ( (binary_expression "ppppuVar3 < param_3" identifier < identifier) )) (compound_statement "{\n      ppppuVar10 = param_3;\n    }" { (expression_statement "ppppuVar10 = param_3;" (assignment_expression "ppppuVar10 = param_3" identifier = identifier) ;) })) (expression_statement "ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);" (assignment_expression "ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3)" identifier = (cast_expression "(undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppuVar10 + (int)ppppuVar3)" ( (binary_expression "(int)ppppuVar10 + (int)ppppuVar3" (cast_expression "(int)ppppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;" if (parenthesized_expression "(ppppuVar17 < ppppuVar3)" ( (binary_expression "ppppuVar17 < ppppuVar3" identifier < identifier) )) (goto_statement "goto LAB_0002eb28;" goto statement_identifier ;)) (expression_statement "ppppuVar13 = ppppuVar17;" (assignment_expression "ppppuVar13 = ppppuVar17" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" identifier = (call_expression "(**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c78))" ( (pointer_expression "**(code **)(puVar20 + -0x7c78)" * (pointer_expression "*(code **)(puVar20 + -0x7c78)" * (cast_expression "(code **)(puVar20 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7c78)" ( (binary_expression "puVar20 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) )))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_0002eb28;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002eb28;" goto statement_identifier ;)) (expression_statement "uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);" (assignment_expression "uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" identifier = (call_expression "(**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7be0))" ( (pointer_expression "**(code **)(puVar20 + -0x7be0)" * (pointer_expression "*(code **)(puVar20 + -0x7be0)" * (cast_expression "(code **)(puVar20 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7be0)" ( (binary_expression "puVar20 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" ( (binary_expression "iVar5 + (int)ppppuVar10 + (int)unaff_s2" (binary_expression "iVar5 + (int)ppppuVar10" identifier + (cast_expression "(int)ppppuVar10" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "iVar5 + (int)unaff_s2" identifier + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "*(int *)(puVar22 + -0xf0) - (int)unaff_s2" (pointer_expression "*(int *)(puVar22 + -0xf0)" * (cast_expression "(int *)(puVar22 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xe0) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -0xe0) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -0xe0)" * (cast_expression "(undefined4 *)(puVar22 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;" (assignment_expression "*(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17" (pointer_expression "*(undefined4 *****)(puVar22 + -0xf0)" * (cast_expression "(undefined4 *****)(puVar22 + -0xf0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0xf0)" ( (binary_expression "puVar22 + -0xf0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x104) = iVar5;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar5" (pointer_expression "*(int *)(puVar22 + -0x104)" * (cast_expression "(int *)(puVar22 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);" (assignment_expression "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3)" identifier = (cast_expression "(undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(puVar22 + -0xe0) - (int)param_3)" ( (binary_expression "*(int *)(puVar22 + -0xe0) - (int)param_3" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);" (call_expression "(**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3)" (parenthesized_expression "(**(code **)(puVar20 + -0x7be0))" ( (pointer_expression "**(code **)(puVar20 + -0x7be0)" * (pointer_expression "*(code **)(puVar20 + -0x7be0)" * (cast_expression "(code **)(puVar20 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7be0)" ( (binary_expression "puVar20 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,ppppuVar4,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" identifier = (pointer_expression "*(int *)(puVar22 + -0x110)" * (cast_expression "(int *)(puVar22 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" * (cast_expression "(int *)(puVar22 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xe0)" ( (binary_expression "puVar22 + -0xe0" identifier + number_literal) )))) = (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 *)((int)unaff_s2 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)unaff_s2 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)unaff_s2 + -1)" * (cast_expression "(undefined1 *)((int)unaff_s2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + -1)" ( (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar16 = *(int *)(puVar22 + -0xd8);" (assignment_expression "iVar16 = *(int *)(puVar22 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar22 + -0xd8)" * (cast_expression "(int *)(puVar22 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd8)" ( (binary_expression "puVar22 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf8)" * (cast_expression "(undefined4 *)(puVar22 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf8)" ( (binary_expression "puVar22 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xd4)" * (cast_expression "(undefined4 *)(puVar22 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xd4)" ( (binary_expression "puVar22 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xfc)" * (cast_expression "(undefined4 *)(puVar22 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xfc)" ( (binary_expression "puVar22 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0xf4)" * (cast_expression "(undefined4 *)(puVar22 + -0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0xf4)" ( (binary_expression "puVar22 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e768;" goto statement_identifier ;) (labeled_statement "LAB_0002eb28:\n  *piVar6 = 0xc;" statement_identifier : (expression_statement "*piVar6 = 0xc;" (assignment_expression "*piVar6 = 0xc" (pointer_expression "*piVar6" * identifier) = number_literal) ;)) (labeled_statement "LAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;" statement_identifier : (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" identifier = (cast_expression "(undefined4 ****)*piVar6" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*piVar6" * identifier))) ;)) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" identifier = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);" statement_identifier : (expression_statement "(**(code **)(puVar20 + -0x7d6c))(iVar2);" (call_expression "(**(code **)(puVar20 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d6c))" ( (pointer_expression "**(code **)(puVar20 + -0x7d6c)" * (pointer_expression "*(code **)(puVar20 + -0x7d6c)" * (cast_expression "(code **)(puVar20 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d6c)" ( (binary_expression "puVar20 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))) ;)) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" statement_identifier : (if_statement "if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" if (parenthesized_expression "(param_3 == (undefined4 ****)0x0)" ( (binary_expression "param_3 == (undefined4 ****)0x0" identifier == (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" { (labeled_statement "LAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" identifier = (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) ))))) ;)) }) (else_clause "else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" else (compound_statement "{\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" { (labeled_statement "LAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);" statement_identifier : (expression_statement "(**(code **)(puVar20 + -0x7d68))(ppppuVar12);" (call_expression "(**(code **)(puVar20 + -0x7d68))(ppppuVar12)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d68))" ( (pointer_expression "**(code **)(puVar20 + -0x7d68)" * (pointer_expression "*(code **)(puVar20 + -0x7d68)" * (cast_expression "(code **)(puVar20 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7d68)" ( (binary_expression "puVar20 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(ppppuVar12)" ( identifier ))) ;)) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" identifier = (pointer_expression "*(int *)(puVar22 + -0x100)" * (cast_expression "(int *)(puVar22 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x100)" ( (binary_expression "puVar22 + -0x100" identifier + number_literal) ))))) ;) })))) (if_statement "if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }" { (expression_statement "(**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));" (call_expression "(**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7bd8))" ( (pointer_expression "**(code **)(puVar20 + -0x7bd8)" * (pointer_expression "*(code **)(puVar20 + -0x7bd8)" * (cast_expression "(code **)(puVar20 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7bd8)" ( (binary_expression "puVar20 + -0x7bd8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) ))) ;) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x110)" * (cast_expression "(undefined **)(puVar22 + -0x110)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x110)" ( (binary_expression "puVar22 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*piVar6 = (int)ppppuVar3;" (assignment_expression "*piVar6 = (int)ppppuVar3" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)ppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n    *piVar6 = (int)ppppuVar3;\n  }" else (compound_statement "{\n    *piVar6 = (int)ppppuVar3;\n  }" { (expression_statement "*piVar6 = (int)ppppuVar3;" (assignment_expression "*piVar6 = (int)ppppuVar3" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)ppppuVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" * (cast_expression "(undefined4 *)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" statement_identifier : (expression_statement "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" (assignment_expression "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0x104)" * (cast_expression "(undefined4 *****)(puVar22 + -0x104)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x104)" ( (binary_expression "puVar22 + -0x104" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);" statement_identifier : (expression_statement "ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);" (assignment_expression "ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c)" identifier = (pointer_expression "*(undefined4 *****)(puVar22 + -0x2c)" * (cast_expression "(undefined4 *****)(puVar22 + -0x2c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x2c)" ( (binary_expression "puVar22 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }" if (parenthesized_expression "(ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4))" ( (binary_expression "ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)" identifier != (cast_expression "(undefined4 ****)**(int **)(puVar20 + -0x7be4)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "**(int **)(puVar20 + -0x7be4)" * (pointer_expression "*(int **)(puVar20 + -0x7be4)" * (cast_expression "(int **)(puVar20 + -0x7be4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7be4)" ( (binary_expression "puVar20 + -0x7be4" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }" { (expression_statement "pcVar19 = *(code **)(puVar20 + -0x7c10);" (assignment_expression "pcVar19 = *(code **)(puVar20 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar20 + -0x7c10)" * (cast_expression "(code **)(puVar20 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x7c10)" ( (binary_expression "puVar20 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = 0x2ecac;" (assignment_expression "uVar23 = 0x2ecac" identifier = number_literal) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar22 + -300) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -300) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -300)" * (cast_expression "(undefined4 *)(puVar22 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -300)" ( (binary_expression "puVar22 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x130) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x130) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x130)" * (cast_expression "(undefined4 *****)(puVar22 + -0x130)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x130)" ( (binary_expression "puVar22 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x134) = param_3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x134) = param_3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x134)" * (cast_expression "(undefined4 *****)(puVar22 + -0x134)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x134)" ( (binary_expression "puVar22 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x138) = ppppuVar3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x138)" * (cast_expression "(undefined4 *****)(puVar22 + -0x138)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar22 + -0x138)" ( (binary_expression "puVar22 + -0x138" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;" (assignment_expression "*(code **)(puVar22 + -0x140) = pcVar19 + 0x23530" (pointer_expression "*(code **)(puVar22 + -0x140)" * (cast_expression "(code **)(puVar22 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x140)" ( (binary_expression "puVar22 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar19 + 0x23530" identifier + number_literal)) ;) (if_statement "if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" if (parenthesized_expression "(ppppuVar12 == (undefined4 ****)0x0)" ( (binary_expression "ppppuVar12 == (undefined4 ****)0x0" identifier == (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }" { (expression_statement "puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar19 + 0x1b868))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x1b868))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b868))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b868)" * (pointer_expression "*(code **)(pcVar19 + 0x1b868)" * (cast_expression "(code **)(pcVar19 + 0x1b868)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b868)" ( (binary_expression "pcVar19 + 0x1b868" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar8 = 0x7a;" (assignment_expression "*puVar8 = 0x7a" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffffff" identifier = (cast_expression "(undefined4 ****)0xffffffff" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" else (if_statement "if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" if (parenthesized_expression "(ppppuVar12 == (undefined4 ****)0xa)" ( (binary_expression "ppppuVar12 == (undefined4 ****)0xa" identifier == (cast_expression "(undefined4 ****)0xa" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" { (expression_statement "pppuVar15 = *ppppuVar13;" (assignment_expression "pppuVar15 = *ppppuVar13" identifier = (pointer_expression "*ppppuVar13" * identifier)) ;) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b988))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b988)" * (pointer_expression "*(code **)(pcVar19 + 0x1b988)" * (cast_expression "(code **)(pcVar19 + 0x1b988)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b988)" ( (binary_expression "pcVar19 + 0x1b988" identifier + number_literal) ))))) )) (argument_list "(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" ( identifier , (binary_expression "*(int *)(pcVar19 + 0x1b568) + 0x58ac" (pointer_expression "*(int *)(pcVar19 + 0x1b568)" * (cast_expression "(int *)(pcVar19 + 0x1b568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b568)" ( (binary_expression "pcVar19 + 0x1b568" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }" { (expression_statement "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);" (call_expression "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar22 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar22 + -0x140)" * (cast_expression "(int *)(puVar22 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x140)" ( (binary_expression "puVar22 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pppuVar15)" ( identifier ))) ;) (expression_statement "iVar2 = *(int *)(puVar22 + -0x140);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x140)" identifier = (pointer_expression "*(int *)(puVar22 + -0x140)" * (cast_expression "(int *)(puVar22 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x140)" ( (binary_expression "puVar22 + -0x140" identifier + number_literal) ))))) ;) (expression_statement "*ppppuVar13 = (undefined4 ***)0x0;" (assignment_expression "*ppppuVar13 = (undefined4 ***)0x0" (pointer_expression "*ppppuVar13" * identifier) = (cast_expression "(undefined4 ***)0x0" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar2 + -0x7cc8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar2 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar2 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar2 + -0x7cc8)" * (pointer_expression "*(code **)(iVar2 + -0x7cc8)" * (cast_expression "(code **)(iVar2 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + -0x7cc8)" ( (binary_expression "iVar2 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar8 = 0x3d;" (assignment_expression "*puVar8 = 0x3d" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffffff" identifier = (cast_expression "(undefined4 ****)0xffffffff" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) })) })))) (return_statement "return ppppuVar12;" return identifier ;) })) (return_statement "return ppppuVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ))))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (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 (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ])))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;)) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 ( LIT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (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 = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;)) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) >> LIT) ))))) ;) (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 = IDENT) ;) }))) }))))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))))) ;) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (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 (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (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 (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (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 ;)) }) (else_clause else (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 ;)))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }))) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) })))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) })) })))) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 **** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined4 ****ppppuVar3;\n  undefined4 ****ppppuVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 ****ppppuVar10;\n  uint uVar11;\n  undefined4 ****ppppuVar12;\n  undefined4 ****ppppuVar13;\n  uint uVar14;\n  undefined4 ****unaff_s2;\n  undefined4 ***pppuVar15;\n  int unaff_s3;\n  undefined4 ****unaff_s4;\n  undefined4 ****unaff_s5;\n  int iVar16;\n  undefined4 ****ppppuVar17;\n  undefined4 *unaff_s6;\n  undefined4 unaff_s7;\n  undefined *puVar18;\n  code *pcVar19;\n  undefined *puVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined4 uVar23;\n  undefined1 auStack_60 [16];\n  undefined4 ***local_50 [2];\n  undefined4 ***local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }\n  uVar23 = 0x2e5f8;\n  iVar2 = local_2c;\n  puVar18 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar20 = puVar18 + 0x23be0;\n  *(undefined4 *)(puVar22 + -4) = uVar23;\n  *(undefined1 **)(puVar22 + -8) = auStack_60;\n  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;\n  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;\n  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;\n  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;\n  *(int *)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;\n  *(undefined4 *****)(puVar22 + -0x24) = param_3;\n  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;\n  *(undefined **)(puVar22 + -0x110) = puVar20;\n  *(int *)(puVar22 + -0x100) = iVar2;\n  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;\n  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);\n  if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  *puVar8 = 0x16;\n  *(undefined4 *)(puVar22 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }\n  *(undefined4 *)(puVar22 + -0x118) = 0x100;\n  ppppuVar13 = ppppuVar12;\n  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));\n  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);\n  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);\n  iVar21 = *(int *)(puVar22 + -0x110);\n  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar16 = *(int *)(puVar22 + -0xd8);\n  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);\n  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar6 = 0xc;\nLAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;\n  param_3 = (undefined4 ****)0x0;\nLAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\nLAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }\n  *(undefined4 *)(puVar22 + -0x104) = 0;\nLAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\nLAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);\n  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }\n  return ppppuVar4;\n}" (type_identifier "undefined4") (pointer_declarator "**** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" (* "*") (pointer_declarator "*** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" (* "*") (pointer_declarator "** gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" (* "*") (pointer_declarator "* gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" (* "*") (function_declarator "gnu_fnmatch(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" (identifier "gnu_fnmatch") (parameter_list "(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 ****param_2" (type_identifier "undefined4") (pointer_declarator "****param_2" (* "*") (pointer_declarator "***param_2" (* "*") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2")))))) (, ",") (parameter_declaration "undefined4 ****param_3" (type_identifier "undefined4") (pointer_declarator "****param_3" (* "*") (pointer_declarator "***param_3" (* "*") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3")))))) () ")"))))))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined4 ****ppppuVar3;\n  undefined4 ****ppppuVar4;\n  int iVar5;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 ****ppppuVar10;\n  uint uVar11;\n  undefined4 ****ppppuVar12;\n  undefined4 ****ppppuVar13;\n  uint uVar14;\n  undefined4 ****unaff_s2;\n  undefined4 ***pppuVar15;\n  int unaff_s3;\n  undefined4 ****unaff_s4;\n  undefined4 ****unaff_s5;\n  int iVar16;\n  undefined4 ****ppppuVar17;\n  undefined4 *unaff_s6;\n  undefined4 unaff_s7;\n  undefined *puVar18;\n  code *pcVar19;\n  undefined *puVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined4 uVar23;\n  undefined1 auStack_60 [16];\n  undefined4 ***local_50 [2];\n  undefined4 ***local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = auStack_60;\n  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();\n  if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }\n  uVar23 = 0x2e5f8;\n  iVar2 = local_2c;\n  puVar18 = PTR___stack_chk_fail_0004a5d0;\n  (*(code *)PTR___stack_chk_fail_0004a5d0)();\n  puVar20 = puVar18 + 0x23be0;\n  *(undefined4 *)(puVar22 + -4) = uVar23;\n  *(undefined1 **)(puVar22 + -8) = auStack_60;\n  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;\n  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;\n  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;\n  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;\n  *(int *)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;\n  *(undefined4 *****)(puVar22 + -0x24) = param_3;\n  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;\n  *(undefined **)(puVar22 + -0x110) = puVar20;\n  *(int *)(puVar22 + -0x100) = iVar2;\n  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;\n  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);\n  if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }\n  if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }\n  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  *puVar8 = 0x16;\n  *(undefined4 *)(puVar22 + -0x104) = 0;\n  goto LAB_0002e89c;\nLAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }\n  *(undefined4 *)(puVar22 + -0x118) = 0x100;\n  ppppuVar13 = ppppuVar12;\n  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));\n  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\n  if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }\n  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);\n  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);\n  iVar21 = *(int *)(puVar22 + -0x110);\n  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;\n  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;\n  iVar16 = *(int *)(puVar22 + -0xd8);\n  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);\n  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);\n  goto LAB_0002e768;\nLAB_0002eb28:\n  *piVar6 = 0xc;\nLAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;\n  param_3 = (undefined4 ****)0x0;\nLAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);\n  puVar20 = *(undefined **)(puVar22 + -0x110);\nLAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }\n  *(undefined4 *)(puVar22 + -0x104) = 0;\nLAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\nLAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);\n  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }\n  return ppppuVar4;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 ****ppppuVar3;" (type_identifier "undefined4") (pointer_declarator "****ppppuVar3" (* "*") (pointer_declarator "***ppppuVar3" (* "*") (pointer_declarator "**ppppuVar3" (* "*") (pointer_declarator "*ppppuVar3" (* "*") (identifier "ppppuVar3"))))) (; ";")) (declaration "undefined4 ****ppppuVar4;" (type_identifier "undefined4") (pointer_declarator "****ppppuVar4" (* "*") (pointer_declarator "***ppppuVar4" (* "*") (pointer_declarator "**ppppuVar4" (* "*") (pointer_declarator "*ppppuVar4" (* "*") (identifier "ppppuVar4"))))) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 ****ppppuVar10;" (type_identifier "undefined4") (pointer_declarator "****ppppuVar10" (* "*") (pointer_declarator "***ppppuVar10" (* "*") (pointer_declarator "**ppppuVar10" (* "*") (pointer_declarator "*ppppuVar10" (* "*") (identifier "ppppuVar10"))))) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined4 ****ppppuVar12;" (type_identifier "undefined4") (pointer_declarator "****ppppuVar12" (* "*") (pointer_declarator "***ppppuVar12" (* "*") (pointer_declarator "**ppppuVar12" (* "*") (pointer_declarator "*ppppuVar12" (* "*") (identifier "ppppuVar12"))))) (; ";")) (declaration "undefined4 ****ppppuVar13;" (type_identifier "undefined4") (pointer_declarator "****ppppuVar13" (* "*") (pointer_declarator "***ppppuVar13" (* "*") (pointer_declarator "**ppppuVar13" (* "*") (pointer_declarator "*ppppuVar13" (* "*") (identifier "ppppuVar13"))))) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined4 ****unaff_s2;" (type_identifier "undefined4") (pointer_declarator "****unaff_s2" (* "*") (pointer_declarator "***unaff_s2" (* "*") (pointer_declarator "**unaff_s2" (* "*") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2"))))) (; ";")) (declaration "undefined4 ***pppuVar15;" (type_identifier "undefined4") (pointer_declarator "***pppuVar15" (* "*") (pointer_declarator "**pppuVar15" (* "*") (pointer_declarator "*pppuVar15" (* "*") (identifier "pppuVar15")))) (; ";")) (declaration "int unaff_s3;" (primitive_type "int") (identifier "unaff_s3") (; ";")) (declaration "undefined4 ****unaff_s4;" (type_identifier "undefined4") (pointer_declarator "****unaff_s4" (* "*") (pointer_declarator "***unaff_s4" (* "*") (pointer_declarator "**unaff_s4" (* "*") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4"))))) (; ";")) (declaration "undefined4 ****unaff_s5;" (type_identifier "undefined4") (pointer_declarator "****unaff_s5" (* "*") (pointer_declarator "***unaff_s5" (* "*") (pointer_declarator "**unaff_s5" (* "*") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5"))))) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined4 ****ppppuVar17;" (type_identifier "undefined4") (pointer_declarator "****ppppuVar17" (* "*") (pointer_declarator "***ppppuVar17" (* "*") (pointer_declarator "**ppppuVar17" (* "*") (pointer_declarator "*ppppuVar17" (* "*") (identifier "ppppuVar17"))))) (; ";")) (declaration "undefined4 *unaff_s6;" (type_identifier "undefined4") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "undefined4 unaff_s7;" (type_identifier "undefined4") (identifier "unaff_s7") (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "undefined1 *puVar22;" (type_identifier "undefined1") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined4 uVar23;" (type_identifier "undefined4") (identifier "uVar23") (; ";")) (declaration "undefined1 auStack_60 [16];" (type_identifier "undefined1") (array_declarator "auStack_60 [16]" (identifier "auStack_60") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 ***local_50 [2];" (type_identifier "undefined4") (pointer_declarator "***local_50 [2]" (* "*") (pointer_declarator "**local_50 [2]" (* "*") (pointer_declarator "*local_50 [2]" (* "*") (array_declarator "local_50 [2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (declaration "undefined4 ***local_40;" (type_identifier "undefined4") (pointer_declarator "***local_40" (* "*") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (identifier "local_40")))) (; ";")) (declaration "undefined4 local_3c [2];" (type_identifier "undefined4") (array_declarator "local_3c [2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" (identifier "puVar22") (= "=") (identifier "auStack_60")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0004a5fc" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0004a5fc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0004a5fc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0004a5fc")))) (; ";")) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" (identifier "local_40") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)()" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004a598)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004a598)" (( "(") (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0004a598" (* "*") (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0004a598" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_get_mb_cur_max_0004a598"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 1) {\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }\n  else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;\n    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);\n    local_50[0] = param_3;\n    ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);\n    puVar22 = auStack_60;\n  }" ({ "{") (labeled_statement "LAB_0002e288:\n    ppppuVar13 = (undefined4 ****)local_40;" (statement_identifier "LAB_0002e288") (: ":") (expression_statement "ppppuVar13 = (undefined4 ****)local_40;" (assignment_expression "ppppuVar13 = (undefined4 ****)local_40" (identifier "ppppuVar13") (= "=") (cast_expression "(undefined4 ****)local_40" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_40"))) (; ";"))) (expression_statement "iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_0004a53c)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_0004a53c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0004a53c" (* "*") (cast_expression "(code *)PTR_strlen_0004a53c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0004a53c"))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")")))) (; ";")) (expression_statement "local_50[0] = param_3;" (assignment_expression "local_50[0] = param_3" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)\n                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" (identifier "FUN_0002d51c") (argument_list "(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,\n                             (uint)((int)param_3 << 0x1d) >> 0x1f)" (( "(") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "ppppuVar13") (, ",") (binary_expression "(int)ppppuVar13 + iVar2" (cast_expression "(int)ppppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppuVar13")) (+ "+") (identifier "iVar2")) (, ",") (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_3 << 0x1d)" (( "(") (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" (identifier "puVar22") (= "=") (identifier "auStack_60")) (; ";")) (} "}")) (else_clause "else {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);\n    uVar14 = iVar2 + 1;\n    if (uVar14 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    ppppuVar13 = &local_40;\n    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);\n    unaff_s3 = (int)unaff_s2 + 1;\n    if (unaff_s3 == 0) goto LAB_0002e288;\n    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);\n    uVar11 = uVar14 + unaff_s3;\n    if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }\n    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }\n  }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004a63c"))) () ")")) (argument_list "(0,local_3c,0)" (( "(") (number_literal "0") (, ",") (identifier "local_3c") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar14 = iVar2 + 1;" (assignment_expression "uVar14 = iVar2 + 1" (identifier "uVar14") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 == 0) goto LAB_0002e288;" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002e288;" (goto "goto") (statement_identifier "LAB_0002e288") (; ";"))) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" (* "*") (cast_expression "(code *)PTR_mbsinit_0004a5f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0004a5f8"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" ({ "{") (expression_statement "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" (identifier "ppppuVar13") (= "=") (cast_expression "(undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0004a460" (* "*") (cast_expression "(code *)PTR___assert_fail_0004a460" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0004a460"))) () ")")) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,\n                              PTR_DAT_0004a224 + -0x6918)" (( "(") (binary_expression "PTR_DAT_0004a224 + -0x6c20" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6c20")) (, ",") (binary_expression "PTR_DAT_0004a224 + -0x6c30" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6c30")) (, ",") (number_literal "0x129") (, ",") (binary_expression "PTR_DAT_0004a224 + -0x6918" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6918")) () ")"))))) (; ";")) (return_statement "return ppppuVar13;" (return "return") (identifier "ppppuVar13") (; ";")) (} "}"))) (expression_statement "ppppuVar13 = &local_40;" (assignment_expression "ppppuVar13 = &local_40" (identifier "ppppuVar13") (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);" (assignment_expression "unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" (identifier "unaff_s2") (= "=") (cast_expression "(undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004a63c"))) () ")")) (argument_list "(0,ppppuVar13,0,&local_34)" (( "(") (number_literal "0") (, ",") (identifier "ppppuVar13") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))))) (; ";")) (expression_statement "unaff_s3 = (int)unaff_s2 + 1;" (assignment_expression "unaff_s3 = (int)unaff_s2 + 1" (identifier "unaff_s3") (= "=") (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (unaff_s3 == 0) goto LAB_0002e288;" (if "if") (parenthesized_expression "(unaff_s3 == 0)" (( "(") (binary_expression "unaff_s3 == 0" (identifier "unaff_s3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002e288;" (goto "goto") (statement_identifier "LAB_0002e288") (; ";"))) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" (* "*") (cast_expression "(code *)PTR_mbsinit_0004a5f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0004a5f8"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "uVar11 = uVar14 + unaff_s3;" (assignment_expression "uVar11 = uVar14 + unaff_s3" (identifier "uVar11") (= "=") (binary_expression "uVar14 + unaff_s3" (identifier "uVar14") (+ "+") (identifier "unaff_s3"))) (; ";")) (if_statement "if (iVar2 == 0) {\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);\n      return ppppuVar13;\n    }" ({ "{") (expression_statement "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" (identifier "ppppuVar13") (= "=") (cast_expression "(undefined4 ****)\n                   (*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0004a460" (* "*") (cast_expression "(code *)PTR___assert_fail_0004a460" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0004a460"))) () ")")) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,\n                              PTR_DAT_0004a224 + -0x6918)" (( "(") (binary_expression "PTR_DAT_0004a224 + -0x6c20" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6c20")) (, ",") (binary_expression "PTR_DAT_0004a224 + -0x6c30" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6c30")) (, ",") (number_literal "0x12d") (, ",") (binary_expression "PTR_DAT_0004a224 + -0x6918" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6918")) () ")"))))) (; ";")) (return_statement "return ppppuVar13;" (return "return") (identifier "ppppuVar13") (; ";")) (} "}"))) (if_statement "if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }\n    else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" (if "if") (parenthesized_expression "((uVar11 < uVar14) || (0x3fffffff < uVar11))" (( "(") (binary_expression "(uVar11 < uVar14) || (0x3fffffff < uVar11)" (parenthesized_expression "(uVar11 < uVar14)" (( "(") (binary_expression "uVar11 < uVar14" (identifier "uVar11") (< "<") (identifier "uVar14")) () ")")) (|| "||") (parenthesized_expression "(0x3fffffff < uVar11)" (( "(") (binary_expression "0x3fffffff < uVar11" (number_literal "0x3fffffff") (< "<") (identifier "uVar11")) () ")"))) () ")")) (compound_statement "{\n      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n      *puVar8 = 0xc;\n      ppppuVar3 = (undefined4 ****)0xffffffff;\n    }" ({ "{") (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004a518)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0004a518)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004a518)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0004a518" (* "*") (cast_expression "(code *)PTR___errno_location_0004a518" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0004a518"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar8 = 0xc;" (assignment_expression "*puVar8 = 0xc" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "ppppuVar3 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar3 = (undefined4 ****)0xffffffff" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)0xffffffff" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" (else "else") (if_statement "if (uVar11 < 2000) {\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }\n    else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" (if "if") (parenthesized_expression "(uVar11 < 2000)" (( "(") (binary_expression "uVar11 < 2000" (identifier "uVar11") (< "<") (number_literal "2000")) () ")")) (compound_statement "{\n      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);\n      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);\n      unaff_s6 = &local_34;\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);\n      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n      unaff_s4 = unaff_s5 + uVar14;\n      if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }\n      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);\n      *(undefined4 *****)((int)local_50 + iVar2) = param_3;\n      ppppuVar13 = unaff_s4;\n      ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);\n      puVar22 = auStack_60 + iVar2;\n    }" ({ "{") (expression_statement "iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8)" (identifier "iVar2") (= "=") (unary_expression "-(uVar11 * 4 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar11 * 4 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar11 * 4 + 7 & 0xfffffff8" (binary_expression "uVar11 * 4 + 7" (binary_expression "uVar11 * 4" (identifier "uVar11") (* "*") (number_literal "4")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);" (assignment_expression "unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2)" (identifier "unaff_s5") (= "=") (cast_expression "(undefined4 ****)(&stack0xffffffb8 + iVar2)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(&stack0xffffffb8 + iVar2)" (( "(") (binary_expression "&stack0xffffffb8 + iVar2" (pointer_expression "&stack0xffffffb8" (& "&") (identifier "stack0xffffffb8")) (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "unaff_s6 = &local_34;" (assignment_expression "unaff_s6 = &local_34" (identifier "unaff_s6") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004a63c"))) () ")")) (argument_list "(unaff_s5,local_3c,uVar14,unaff_s6)" (( "(") (identifier "unaff_s5") (, ",") (identifier "local_3c") (, ",") (identifier "uVar14") (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" (* "*") (cast_expression "(code *)PTR_mbsinit_0004a5f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0004a5f8"))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")")))) (; ";")) (expression_statement "unaff_s4 = unaff_s5 + uVar14;" (assignment_expression "unaff_s4 = unaff_s5 + uVar14" (identifier "unaff_s4") (= "=") (binary_expression "unaff_s5 + uVar14" (identifier "unaff_s5") (+ "+") (identifier "uVar14"))) (; ";")) (if_statement "if (iVar5 == 0) {\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);\n        return ppppuVar13;\n      }" ({ "{") (labeled_statement "LAB_0002e5c4:\n        ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);" (statement_identifier "LAB_0002e5c4") (: ":") (expression_statement "ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918);" (assignment_expression "ppppuVar13 = (undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" (identifier "ppppuVar13") (= "=") (cast_expression "(undefined4 ****)\n                     (*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(*(code *)PTR___assert_fail_0004a460)\n                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004a460)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0004a460" (* "*") (cast_expression "(code *)PTR___assert_fail_0004a460" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0004a460"))) () ")")) (argument_list "(PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,\n                                PTR_DAT_0004a224 + -0x6918)" (( "(") (binary_expression "PTR_DAT_0004a224 + -0x6c20" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6c20")) (, ",") (binary_expression "PTR_DAT_0004a224 + -0x6c30" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6c30")) (, ",") (number_literal "0x147") (, ",") (binary_expression "PTR_DAT_0004a224 + -0x6918" (identifier "PTR_DAT_0004a224") (+ "+") (number_literal "-0x6918")) () ")"))))) (; ";"))) (return_statement "return ppppuVar13;" (return "return") (identifier "ppppuVar13") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004a63c"))) () ")")) (argument_list "(unaff_s4,&local_40,unaff_s3,&local_34)" (( "(") (identifier "unaff_s4") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "unaff_s3") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "*(undefined4 *****)((int)local_50 + iVar2) = param_3;" (assignment_expression "*(undefined4 *****)((int)local_50 + iVar2) = param_3" (pointer_expression "*(undefined4 *****)((int)local_50 + iVar2)" (* "*") (cast_expression "(undefined4 *****)((int)local_50 + iVar2)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_50 + iVar2)" (( "(") (binary_expression "(int)local_50 + iVar2" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (+ "+") (identifier "iVar2")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "ppppuVar13 = unaff_s4;" (assignment_expression "ppppuVar13 = unaff_s4" (identifier "ppppuVar13") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)\n                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" (identifier "FUN_0002c0e4") (argument_list "(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,\n                               (uint)((int)param_3 << 0x1d) >> 0x1f)" (( "(") (identifier "unaff_s5") (, ",") (identifier "unaff_s4") (, ",") (binary_expression "unaff_s4 + (int)unaff_s2" (identifier "unaff_s4") (+ "+") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) (, ",") (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_3 << 0x1d)" (( "(") (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "puVar22 = auStack_60 + iVar2;" (assignment_expression "puVar22 = auStack_60 + iVar2" (identifier "puVar22") (= "=") (binary_expression "auStack_60 + iVar2" (identifier "auStack_60") (+ "+") (identifier "iVar2"))) (; ";")) (} "}")) (else_clause "else {\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" (else "else") (compound_statement "{\n      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);\n      if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }\n    }" ({ "{") (expression_statement "unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);" (assignment_expression "unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" (identifier "unaff_s4") (= "=") (cast_expression "(undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(*(code *)PTR_malloc_0004a560)(uVar11 * 4)" (parenthesized_expression "(*(code *)PTR_malloc_0004a560)" (( "(") (pointer_expression "*(code *)PTR_malloc_0004a560" (* "*") (cast_expression "(code *)PTR_malloc_0004a560" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0004a560"))) () ")")) (argument_list "(uVar11 * 4)" (( "(") (binary_expression "uVar11 * 4" (identifier "uVar11") (* "*") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (unaff_s4 == (undefined4 ****)0x0) {\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }\n      else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" (if "if") (parenthesized_expression "(unaff_s4 == (undefined4 ****)0x0)" (( "(") (binary_expression "unaff_s4 == (undefined4 ****)0x0" (identifier "unaff_s4") (== "==") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();\n        *puVar8 = 0xc;\n        ppppuVar3 = (undefined4 ****)0xffffffff;\n        puVar22 = auStack_60;\n      }" ({ "{") (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004a518)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0004a518)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004a518)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0004a518" (* "*") (cast_expression "(code *)PTR___errno_location_0004a518" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0004a518"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar8 = 0xc;" (assignment_expression "*puVar8 = 0xc" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "ppppuVar3 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar3 = (undefined4 ****)0xffffffff" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)0xffffffff" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" (identifier "puVar22") (= "=") (identifier "auStack_60")) (; ";")) (} "}")) (else_clause "else {\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" (else "else") (compound_statement "{\n        unaff_s5 = unaff_s4 + uVar14;\n        unaff_s6 = &local_34;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);\n        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);\n        if (iVar2 == 0) goto LAB_0002e5c4;\n        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);\n        ppppuVar13 = unaff_s5;\n        local_50[0] = param_3;\n        ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);\n        (*(code *)PTR_free_0004a608)(unaff_s4);\n        puVar22 = auStack_60;\n      }" ({ "{") (expression_statement "unaff_s5 = unaff_s4 + uVar14;" (assignment_expression "unaff_s5 = unaff_s4 + uVar14" (identifier "unaff_s5") (= "=") (binary_expression "unaff_s4 + uVar14" (identifier "unaff_s4") (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "unaff_s6 = &local_34;" (assignment_expression "unaff_s6 = &local_34" (identifier "unaff_s6") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004a63c"))) () ")")) (argument_list "(unaff_s4,local_3c,uVar14,unaff_s6)" (( "(") (identifier "unaff_s4") (, ",") (identifier "local_3c") (, ",") (identifier "uVar14") (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsinit_0004a5f8)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004a5f8)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0004a5f8" (* "*") (cast_expression "(code *)PTR_mbsinit_0004a5f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0004a5f8"))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0002e5c4;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002e5c4;" (goto "goto") (statement_identifier "LAB_0002e5c4") (; ";"))) (expression_statement "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004a63c)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004a63c" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004a63c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004a63c"))) () ")")) (argument_list "(unaff_s5,&local_40,unaff_s3,&local_34)" (( "(") (identifier "unaff_s5") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "unaff_s3") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "ppppuVar13 = unaff_s5;" (assignment_expression "ppppuVar13 = unaff_s5" (identifier "ppppuVar13") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "local_50[0] = param_3;" (assignment_expression "local_50[0] = param_3" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f);" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)\n                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" (identifier "FUN_0002c0e4") (argument_list "(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,\n                                 (uint)((int)param_3 << 0x1d) >> 0x1f)" (( "(") (identifier "unaff_s4") (, ",") (identifier "unaff_s5") (, ",") (binary_expression "unaff_s5 + (int)unaff_s2" (identifier "unaff_s5") (+ "+") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) (, ",") (binary_expression "(uint)((int)param_3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)param_3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_3 << 0x1d)" (( "(") (binary_expression "(int)param_3 << 0x1d" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_free_0004a608)(unaff_s4);" (call_expression "(*(code *)PTR_free_0004a608)(unaff_s4)" (parenthesized_expression "(*(code *)PTR_free_0004a608)" (( "(") (pointer_expression "*(code *)PTR_free_0004a608" (* "*") (cast_expression "(code *)PTR_free_0004a608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0004a608"))) () ")")) (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")"))) (; ";")) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" (identifier "puVar22") (= "=") (identifier "auStack_60")) (; ";")) (} "}")))) (} "}")))))) (} "}")))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {\n    return ppppuVar3;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_0004a5fc)" (( "(") (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_0004a5fc" (identifier "local_2c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_0004a5fc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0004a5fc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0004a5fc")))) () ")")) (compound_statement "{\n    return ppppuVar3;\n  }" ({ "{") (return_statement "return ppppuVar3;" (return "return") (identifier "ppppuVar3") (; ";")) (} "}"))) (expression_statement "uVar23 = 0x2e5f8;" (assignment_expression "uVar23 = 0x2e5f8" (identifier "uVar23") (= "=") (number_literal "0x2e5f8")) (; ";")) (expression_statement "iVar2 = local_2c;" (assignment_expression "iVar2 = local_2c" (identifier "iVar2") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar18 = PTR___stack_chk_fail_0004a5d0;" (assignment_expression "puVar18 = PTR___stack_chk_fail_0004a5d0" (identifier "puVar18") (= "=") (identifier "PTR___stack_chk_fail_0004a5d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0004a5d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004a5d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004a5d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0004a5d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0004a5d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0004a5d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar20 = puVar18 + 0x23be0;" (assignment_expression "puVar20 = puVar18 + 0x23be0" (identifier "puVar20") (= "=") (binary_expression "puVar18 + 0x23be0" (identifier "puVar18") (+ "+") (number_literal "0x23be0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -4) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -4) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -4)" (( "(") (binary_expression "puVar22 + -4" (identifier "puVar22") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "*(undefined1 **)(puVar22 + -8) = auStack_60;" (assignment_expression "*(undefined1 **)(puVar22 + -8) = auStack_60" (pointer_expression "*(undefined1 **)(puVar22 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar22 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -8)" (( "(") (binary_expression "puVar22 + -8" (identifier "puVar22") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "auStack_60")) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xc) = unaff_s7;" (assignment_expression "*(undefined4 *)(puVar22 + -0xc) = unaff_s7" (pointer_expression "*(undefined4 *)(puVar22 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xc)" (( "(") (binary_expression "puVar22 + -0xc" (identifier "puVar22") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "*(undefined4 **)(puVar22 + -0x10) = unaff_s6;" (assignment_expression "*(undefined4 **)(puVar22 + -0x10) = unaff_s6" (pointer_expression "*(undefined4 **)(puVar22 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar22 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x10)" (( "(") (binary_expression "puVar22 + -0x10" (identifier "puVar22") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x14) = unaff_s5;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x14) = unaff_s5" (pointer_expression "*(undefined4 *****)(puVar22 + -0x14)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x14)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x14)" (( "(") (binary_expression "puVar22 + -0x14" (identifier "puVar22") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x18) = unaff_s4;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x18) = unaff_s4" (pointer_expression "*(undefined4 *****)(puVar22 + -0x18)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x18)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x18)" (( "(") (binary_expression "puVar22 + -0x18" (identifier "puVar22") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "*(int *)(puVar22 + -0x1c) = unaff_s3;" (assignment_expression "*(int *)(puVar22 + -0x1c) = unaff_s3" (pointer_expression "*(int *)(puVar22 + -0x1c)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c)" (( "(") (binary_expression "puVar22 + -0x1c" (identifier "puVar22") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x20) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x20) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x20)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x20)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x20)" (( "(") (binary_expression "puVar22 + -0x20" (identifier "puVar22") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x24) = param_3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x24) = param_3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x24)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x24)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x24)" (( "(") (binary_expression "puVar22 + -0x24" (identifier "puVar22") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x28) = ppppuVar3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x28)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x28)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x28)" (( "(") (binary_expression "puVar22 + -0x28" (identifier "puVar22") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "ppppuVar3")) (; ";")) (expression_statement "*(undefined **)(puVar22 + -0x110) = puVar20;" (assignment_expression "*(undefined **)(puVar22 + -0x110) = puVar20" (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")")))) (= "=") (identifier "puVar20")) (; ";")) (expression_statement "*(int *)(puVar22 + -0x100) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x100) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x100)" (* "*") (cast_expression "(int *)(puVar22 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x100)" (( "(") (binary_expression "puVar22 + -0x100" (identifier "puVar22") (+ "+") (number_literal "-0x100")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + 4) = ppppuVar13;" (assignment_expression "*(undefined4 *****)(puVar22 + 4) = ppppuVar13" (pointer_expression "*(undefined4 *****)(puVar22 + 4)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + 4)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + 4)" (( "(") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "ppppuVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);" (assignment_expression "*(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc)" (pointer_expression "*(undefined4 *)(puVar22 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x2c)" (( "(") (binary_expression "puVar22 + -0x2c" (identifier "puVar22") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "**(undefined4 **)(puVar18 + 0x1bffc)" (* "*") (pointer_expression "*(undefined4 **)(puVar18 + 0x1bffc)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 0x1bffc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1bffc)" (( "(") (binary_expression "puVar18 + 0x1bffc" (identifier "puVar18") (+ "+") (number_literal "0x1bffc")) () ")")))))) (; ";")) (if_statement "if (ppppuVar13 != (undefined4 ****)0x0) {\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }" (if "if") (parenthesized_expression "(ppppuVar13 != (undefined4 ****)0x0)" (( "(") (binary_expression "ppppuVar13 != (undefined4 ****)0x0" (identifier "ppppuVar13") (!= "!=") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }\n    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);\nLAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);\n    iVar9 = *(int *)(puVar22 + -0xf0);\n    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;\n    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);\n    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n    iVar21 = *(int *)(puVar22 + -0x110);\n    if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\nLAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    ppppuVar3 = (undefined4 ****)*piVar6;\n    ppppuVar13 = ppppuVar4;\n    goto LAB_0002e880;\n  }" ({ "{") (if_statement "if (*(int *)(puVar22 + -0x100) == 0) {\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar22 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar22 + -0x100) == 0" (pointer_expression "*(int *)(puVar22 + -0x100)" (* "*") (cast_expression "(int *)(puVar22 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x100)" (( "(") (binary_expression "puVar22 + -0x100" (identifier "puVar22") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);\n      goto LAB_0002e664;\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 4)" (( "(") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002e664;" (goto "goto") (statement_identifier "LAB_0002e664") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 4)" (( "(") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100)" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0x100)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x100)" (( "(") (binary_expression "puVar22 + -0x100" (identifier "puVar22") (+ "+") (number_literal "-0x100")) () ")"))))) (; ";")) (labeled_statement "LAB_0002e6bc:\n    iVar2 = *(int *)(puVar22 + -0x104);" (statement_identifier "LAB_0002e6bc") (: ":") (expression_statement "iVar2 = *(int *)(puVar22 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x104)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")"))))) (; ";"))) (expression_statement "iVar9 = *(int *)(puVar22 + -0xf0);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0xf0)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0xf0)" (* "*") (cast_expression "(int *)(puVar22 + -0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar2 + iVar9 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar2 + iVar9 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar2 + iVar9 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar2 + iVar9 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + iVar9 + -1)" (( "(") (binary_expression "iVar2 + iVar9 + -1" (binary_expression "iVar2 + iVar9" (identifier "iVar2") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);" (assignment_expression "ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" (identifier "ppppuVar4") (= "=") (cast_expression "(undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(*(int *)(puVar20 + -0x7fc8) + 0x7b9c)" (( "(") (binary_expression "*(int *)(puVar20 + -0x7fc8) + 0x7b9c" (pointer_expression "*(int *)(puVar20 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar20 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x7fc8)" (( "(") (binary_expression "puVar20 + -0x7fc8" (identifier "puVar20") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7b9c")) () ")")))) (; ";")) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d60))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7d60)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7d60)" (* "*") (cast_expression "(code **)(puVar20 + -0x7d60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7d60)" (( "(") (binary_expression "puVar20 + -0x7d60" (identifier "puVar20") (+ "+") (number_literal "-0x7d60")) () ")"))))) () ")")) (argument_list "(3,ppppuVar4,puVar22 + -0xd0)" (( "(") (number_literal "3") (, ",") (identifier "ppppuVar4") (, ",") (binary_expression "puVar22 + -0xd0" (identifier "puVar22") (+ "+") (number_literal "-0xd0")) () ")")))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar5 < 0) {\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }\n    else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" ({ "{") (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" (identifier "ppppuVar12") (= "=") (cast_expression "(undefined4 ****)0xffffff9c" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffff9c"))) (; ";")) (} "}")) (else_clause "else {\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" (else "else") (compound_statement "{\n      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);\n      iVar16 = *(int *)(puVar22 + -0xc0);\n      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);\n      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);\n      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);\n      iVar21 = *(int *)(puVar22 + -0x110);\n      if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }\n      param_3 = (undefined4 ****)0x0;\n      ppppuVar12 = (undefined4 ****)0xffffff9c;\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xfc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xfc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xfc)" (( "(") (binary_expression "puVar22 + -0xfc" (identifier "puVar22") (+ "+") (number_literal "-0xfc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xd0)" (( "(") (binary_expression "puVar22 + -0xd0" (identifier "puVar22") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "iVar16 = *(int *)(puVar22 + -0xc0);" (assignment_expression "iVar16 = *(int *)(puVar22 + -0xc0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar22 + -0xc0)" (* "*") (cast_expression "(int *)(puVar22 + -0xc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xc0)" (( "(") (binary_expression "puVar22 + -0xc0" (identifier "puVar22") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf8)" (( "(") (binary_expression "puVar22 + -0xf8" (identifier "puVar22") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xbc)" (( "(") (binary_expression "puVar22 + -0xbc" (identifier "puVar22") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);" (assignment_expression "ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" (identifier "ppppuVar4") (= "=") (cast_expression "(undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(*(int *)(iVar21 + -0x7fc8) + 0x7bec)" (( "(") (binary_expression "*(int *)(iVar21 + -0x7fc8) + 0x7bec" (pointer_expression "*(int *)(iVar21 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar21 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + -0x7fc8)" (( "(") (binary_expression "iVar21 + -0x7fc8" (identifier "iVar21") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7bec")) () ")")))) (; ";")) (expression_statement "iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);" (assignment_expression "iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d60))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7d60)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7d60)" (* "*") (cast_expression "(code **)(iVar21 + -0x7d60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7d60)" (( "(") (binary_expression "iVar21 + -0x7d60" (identifier "iVar21") (+ "+") (number_literal "-0x7d60")) () ")"))))) () ")")) (argument_list "(3,ppppuVar4,puVar22 + -0xd0)" (( "(") (number_literal "3") (, ",") (identifier "ppppuVar4") (, ",") (binary_expression "puVar22 + -0xd0" (identifier "puVar22") (+ "+") (number_literal "-0xd0")) () ")")))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (-1 < iVar5) {\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }" (if "if") (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;\n        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);\n        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);\n        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);\n        iVar2 = 0;\n        ppppuVar12 = (undefined4 ****)0xffffff9c;\n        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;\n        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);\n        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;\nLAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }\n        if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }\n        iVar2 = *(int *)(puVar22 + -0xe0);\n        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }\n        ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));\n        (**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);\n        puVar20 = *(undefined **)(puVar22 + -0x110);\n        ppppuVar13 = ppppuVar3;\n        if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }\n        iVar2 = *(int *)(puVar22 + -0x100);\n        if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }\n        *(int *)(puVar22 + -0x104) = iVar2;\n        goto LAB_0002e89c;\n      }" ({ "{") (expression_statement "*(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" (* "*") (cast_expression "(int *)(puVar22 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (binary_expression "iVar2 + iVar9 + -1" (binary_expression "iVar2 + iVar9" (identifier "iVar2") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xe8)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xe8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe8)" (( "(") (binary_expression "puVar22 + -0xe8" (identifier "puVar22") (+ "+") (number_literal "-0xe8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xd0)" (( "(") (binary_expression "puVar22 + -0xd0" (identifier "puVar22") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xe4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe4)" (( "(") (binary_expression "puVar22 + -0xe4" (identifier "puVar22") (+ "+") (number_literal "-0xe4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xc0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xc0)" (( "(") (binary_expression "puVar22 + -0xc0" (identifier "puVar22") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xdc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xdc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xdc)" (( "(") (binary_expression "puVar22 + -0xdc" (identifier "puVar22") (+ "+") (number_literal "-0xdc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xbc)" (( "(") (binary_expression "puVar22 + -0xbc" (identifier "puVar22") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" (identifier "ppppuVar12") (= "=") (cast_expression "(undefined4 ****)0xffffff9c" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffff9c"))) (; ";")) (expression_statement "*(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;" (assignment_expression "*(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c" (pointer_expression "*(int *)(puVar22 + -0xec)" (* "*") (cast_expression "(int *)(puVar22 + -0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xec)" (( "(") (binary_expression "puVar22 + -0xec" (identifier "puVar22") (+ "+") (number_literal "-0xec")) () ")")))) (= "=") (binary_expression "*(int *)(iVar21 + -0x7fbc) + -0x7f6c" (pointer_expression "*(int *)(iVar21 + -0x7fbc)" (* "*") (cast_expression "(int *)(iVar21 + -0x7fbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + -0x7fbc)" (( "(") (binary_expression "iVar21 + -0x7fbc" (identifier "iVar21") (+ "+") (number_literal "-0x7fbc")) () ")")))) (+ "+") (number_literal "-0x7f6c"))) (; ";")) (expression_statement "unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);" (assignment_expression "unaff_s2 = (undefined4 ****)(puVar22 + -0xd0)" (identifier "unaff_s2") (= "=") (cast_expression "(undefined4 ****)(puVar22 + -0xd0)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar22 + -0xd0)" (( "(") (binary_expression "puVar22 + -0xd0" (identifier "puVar22") (+ "+") (number_literal "-0xd0")) () ")")))) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x108) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x108) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x108)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x108)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x108)" (( "(") (binary_expression "puVar22 + -0x108" (identifier "puVar22") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (identifier "unaff_s2")) (; ";")) (labeled_statement "LAB_0002e768:\n        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" (statement_identifier "LAB_0002e768") (: ":") (if_statement "if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" (if "if") (parenthesized_expression "(((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc)))" (( "(") (binary_expression "((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))) ||\n           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))" (parenthesized_expression "((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4)))" (( "(") (binary_expression "(*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||\n            (iVar16 != *(int *)(puVar22 + -0xe4))" (parenthesized_expression "(*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8))" (( "(") (binary_expression "*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)" (pointer_expression "*(int *)(puVar22 + -0xfc)" (* "*") (cast_expression "(int *)(puVar22 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xfc)" (( "(") (binary_expression "puVar22 + -0xfc" (identifier "puVar22") (+ "+") (number_literal "-0xfc")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar22 + -0xe8)" (* "*") (cast_expression "(int *)(puVar22 + -0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe8)" (( "(") (binary_expression "puVar22 + -0xe8" (identifier "puVar22") (+ "+") (number_literal "-0xe8")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(iVar16 != *(int *)(puVar22 + -0xe4))" (( "(") (binary_expression "iVar16 != *(int *)(puVar22 + -0xe4)" (identifier "iVar16") (!= "!=") (pointer_expression "*(int *)(puVar22 + -0xe4)" (* "*") (cast_expression "(int *)(puVar22 + -0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe4)" (( "(") (binary_expression "puVar22 + -0xe4" (identifier "puVar22") (+ "+") (number_literal "-0xe4")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))" (( "(") (binary_expression "*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc)" (pointer_expression "*(int *)(puVar22 + -0xf8)" (* "*") (cast_expression "(int *)(puVar22 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf8)" (( "(") (binary_expression "puVar22 + -0xf8" (identifier "puVar22") (+ "+") (number_literal "-0xf8")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar22 + -0xdc)" (* "*") (cast_expression "(int *)(puVar22 + -0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xdc)" (( "(") (binary_expression "puVar22 + -0xdc" (identifier "puVar22") (+ "+") (number_literal "-0xdc")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);\n          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);\n          if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }\n          goto LAB_0002e86c;\n        }" ({ "{") (expression_statement "ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);" (assignment_expression "ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec)" (identifier "ppppuVar13") (= "=") (pointer_expression "*(undefined4 *****)(puVar22 + -0xec)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0xec)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0xec)" (( "(") (binary_expression "puVar22 + -0xec" (identifier "puVar22") (+ "+") (number_literal "-0xec")) () ")"))))) (; ";")) (expression_statement "ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);" (assignment_expression "ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" (identifier "ppppuVar12") (= "=") (cast_expression "(undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0)" (parenthesized_expression "(**(code **)(iVar21 + -0x7cac))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7cac)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7cac)" (* "*") (cast_expression "(code **)(iVar21 + -0x7cac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7cac)" (( "(") (binary_expression "iVar21 + -0x7cac" (identifier "iVar21") (+ "+") (number_literal "-0x7cac")) () ")"))))) () ")")) (argument_list "(ppppuVar12,ppppuVar13,0)" (( "(") (identifier "ppppuVar12") (, ",") (identifier "ppppuVar13") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if ((int)ppppuVar12 < 0) {\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }\n          else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" (if "if") (parenthesized_expression "((int)ppppuVar12 < 0)" (( "(") (binary_expression "(int)ppppuVar12 < 0" (cast_expression "(int)ppppuVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppuVar12")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002e888;\n            param_3 = (undefined4 ****)0x0;\n          }" ({ "{") (expression_statement "piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" (* "*") (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7cc8)" (( "(") (binary_expression "*(int *)(puVar22 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)*piVar6" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0002e888;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002e888;" (goto "goto") (statement_identifier "LAB_0002e888") (; ";"))) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" (else "else") (compound_statement "{\n            ppppuVar13 = ppppuVar12;\n            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));\n            iVar21 = *(int *)(puVar22 + -0x110);\n            if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }\n            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n            puVar20 = *(undefined **)(puVar22 + -0x110);\n            ppppuVar3 = (undefined4 ****)*piVar6;\n            if (iVar2 == 0) goto LAB_0002ec64;\n            param_3 = (undefined4 ****)0x1;\n          }" ({ "{") (expression_statement "ppppuVar13 = ppppuVar12;" (assignment_expression "ppppuVar13 = ppppuVar12" (identifier "ppppuVar13") (= "=") (identifier "ppppuVar12")) (; ";")) (expression_statement "iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));" (assignment_expression "iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))\n                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" (* "*") (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7c40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7c40)" (( "(") (binary_expression "*(int *)(puVar22 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7c40")) () ")"))))) () ")")) (argument_list "(3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108))" (( "(") (number_literal "3") (, ",") (identifier "ppppuVar12") (, ",") (pointer_expression "*(undefined4 *)(puVar22 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x108)" (( "(") (binary_expression "puVar22 + -0x108" (identifier "puVar22") (+ "+") (number_literal "-0x108")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }\n              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);\n              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);\n              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);\n              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);\n              iVar21 = *(int *)(puVar22 + -0x110);\n              if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }\n              param_3 = (undefined4 ****)0x1;\n              ppppuVar4 = ppppuVar13;\n              goto LAB_0002ec18;\n            }" ({ "{") (if_statement "if (iVar2 != 0) {\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n                iVar21 = *(int *)(puVar22 + -0x110);\n                param_3 = (undefined4 ****)0x1;\n                ppppuVar4 = ppppuVar13;\n                if (iVar2 != 0) goto LAB_0002ec18;\n              }" ({ "{") (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(iVar21 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar21 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7d6c)" (( "(") (binary_expression "iVar21 + -0x7d6c" (identifier "iVar21") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)0x1" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppppuVar4 = ppppuVar13;" (assignment_expression "ppppuVar4 = ppppuVar13" (identifier "ppppuVar4") (= "=") (identifier "ppppuVar13")) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0002ec18;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002ec18;" (goto "goto") (statement_identifier "LAB_0002ec18") (; ";"))) (} "}"))) (expression_statement "*(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xf4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf4)" (( "(") (binary_expression "puVar22 + -0xf4" (identifier "puVar22") (+ "+") (number_literal "-0xf4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xd0)" (( "(") (binary_expression "puVar22 + -0xd0" (identifier "puVar22") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar22 + -0xd8)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xd8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xd8)" (( "(") (binary_expression "puVar22 + -0xd8" (identifier "puVar22") (+ "+") (number_literal "-0xd8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xc0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xc0)" (( "(") (binary_expression "puVar22 + -0xc0" (identifier "puVar22") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar22 + -0xd4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xd4)" (( "(") (binary_expression "puVar22 + -0xd4" (identifier "puVar22") (+ "+") (number_literal "-0xd4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xbc)" (( "(") (binary_expression "puVar22 + -0xbc" (identifier "puVar22") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(iVar21 + -0x7d1c))(ppppuVar12)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d1c))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7d1c)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7d1c)" (* "*") (cast_expression "(code **)(iVar21 + -0x7d1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7d1c)" (( "(") (binary_expression "iVar21 + -0x7d1c" (identifier "iVar21") (+ "+") (number_literal "-0x7d1c")) () ")"))))) () ")")) (argument_list "(ppppuVar12)" (( "(") (identifier "ppppuVar12") () ")")))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar2 != 0) {\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();\n                puVar20 = *(undefined **)(puVar22 + -0x110);\n                bVar1 = true;\n                unaff_s2 = (undefined4 ****)0x100;\nLAB_0002e958:\n                *piVar6 = 0;\n                do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );\n              }" ({ "{") (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar21 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7cc8)" (( "(") (binary_expression "iVar21 + -0x7cc8" (identifier "iVar21") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "unaff_s2 = (undefined4 ****)0x100;" (assignment_expression "unaff_s2 = (undefined4 ****)0x100" (identifier "unaff_s2") (= "=") (cast_expression "(undefined4 ****)0x100" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x100"))) (; ";")) (labeled_statement "LAB_0002e958:\n                *piVar6 = 0;" (statement_identifier "LAB_0002e958") (: ":") (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                } while( true );" (do "do") (compound_statement "{\n                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);\n                  puVar20 = *(undefined **)(puVar22 + -0x110);\n                  if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;\n                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;\n                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;\n                  *piVar6 = 0;\n                }" ({ "{") (expression_statement "piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);" (assignment_expression "piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2)" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(puVar20 + -0x7d38))(iVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar20 + -0x7d38))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d38))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7d38)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7d38)" (* "*") (cast_expression "(code **)(puVar20 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7d38)" (( "(") (binary_expression "puVar20 + -0x7d38" (identifier "puVar20") (+ "+") (number_literal "-0x7d38")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (piVar7 == (int *)0x0) {\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }\n                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" (if "if") (parenthesized_expression "(piVar7 == (int *)0x0)" (( "(") (binary_expression "piVar7 == (int *)0x0" (identifier "piVar7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    if (*piVar6 != 0) goto LAB_0002e864;\n                    if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }\n                    (**(code **)(puVar20 + -0x7d90))(iVar2);\n                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);\n                    puVar20 = *(undefined **)(puVar22 + -0x110);\n                    if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }\n                    bVar1 = false;\n                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;\n                  }" ({ "{") (if_statement "if (*piVar6 != 0) goto LAB_0002e864;" (if "if") (parenthesized_expression "(*piVar6 != 0)" (( "(") (binary_expression "*piVar6 != 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002e864;" (goto "goto") (statement_identifier "LAB_0002e864") (; ";"))) (if_statement "if (!bVar1) {\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n                      *piVar6 = 2;\n                      goto LAB_0002e864;\n                    }" ({ "{") (expression_statement "*piVar6 = 2;" (assignment_expression "*piVar6 = 2" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0002e864;" (goto "goto") (statement_identifier "LAB_0002e864") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar20 + -0x7d90))(iVar2);" (call_expression "(**(code **)(puVar20 + -0x7d90))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d90))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7d90)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7d90)" (* "*") (cast_expression "(code **)(puVar20 + -0x7d90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7d90)" (( "(") (binary_expression "puVar20 + -0x7d90" (identifier "puVar20") (+ "+") (number_literal "-0x7d90")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);" (assignment_expression "piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" (* "*") (cast_expression "(code **)(*(int *)(puVar22 + -0x110) + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x110) + -0x7d38)" (( "(") (binary_expression "*(int *)(puVar22 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7d38")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (piVar7 == (int *)0x0) {\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }" (if "if") (parenthesized_expression "(piVar7 == (int *)0x0)" (( "(") (binary_expression "piVar7 == (int *)0x0" (identifier "piVar7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }\n                      goto LAB_0002e864;\n                    }" ({ "{") (if_statement "if (*piVar6 == 0) {\n                        *piVar6 = 2;\n                      }" (if "if") (parenthesized_expression "(*piVar6 == 0)" (( "(") (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        *piVar6 = 2;\n                      }" ({ "{") (expression_statement "*piVar6 = 2;" (assignment_expression "*piVar6 = 2" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "2")) (; ";")) (} "}"))) (goto_statement "goto LAB_0002e864;" (goto "goto") (statement_identifier "LAB_0002e864") (; ";")) (} "}"))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (if_statement "if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;" (if "if") (parenthesized_expression "(*(char *)((int)piVar7 + 0x13) != '.')" (( "(") (binary_expression "*(char *)((int)piVar7 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar7 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar7 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + 0x13)" (( "(") (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "0x13")) () ")")))) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_0002e91c;" (goto "goto") (statement_identifier "LAB_0002e91c") (; ";"))) (} "}")) (else_clause "else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" (else "else") (if_statement "if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;" (if "if") (parenthesized_expression "(*(char *)((int)piVar7 + 0x13) != '.')" (( "(") (binary_expression "*(char *)((int)piVar7 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar7 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar7 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + 0x13)" (( "(") (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "0x13")) () ")")))) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_0002e984;" (goto "goto") (statement_identifier "LAB_0002e984") (; ";"))))) (if_statement "if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;" (if "if") (parenthesized_expression "(*(char *)(piVar7 + 5) == '\0')" (( "(") (binary_expression "*(char *)(piVar7 + 5) == '\0'" (pointer_expression "*(char *)(piVar7 + 5)" (* "*") (cast_expression "(char *)(piVar7 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + 5)" (( "(") (binary_expression "piVar7 + 5" (identifier "piVar7") (+ "+") (number_literal "5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0002e958;" (goto "goto") (statement_identifier "LAB_0002e958") (; ";"))) (if_statement "if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;" (if "if") (parenthesized_expression "((piVar7[5] & 0xffff0000U) != 0x2e000000)" (( "(") (binary_expression "(piVar7[5] & 0xffff0000U) != 0x2e000000" (parenthesized_expression "(piVar7[5] & 0xffff0000U)" (( "(") (binary_expression "piVar7[5] & 0xffff0000U" (subscript_expression "piVar7[5]" (identifier "piVar7") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0xffff0000U")) () ")")) (!= "!=") (number_literal "0x2e000000")) () ")")) (goto_statement "goto LAB_0002e984;" (goto "goto") (statement_identifier "LAB_0002e984") (; ";"))) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)0x1" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppppuVar4 = ppppuVar13;" (assignment_expression "ppppuVar4 = ppppuVar13" (identifier "ppppuVar4") (= "=") (identifier "ppppuVar13")) (; ";")) (goto_statement "goto LAB_0002ec18;" (goto "goto") (statement_identifier "LAB_0002ec18") (; ";")) (} "}"))) (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar21 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7cc8)" (( "(") (binary_expression "iVar21 + -0x7cc8" (identifier "iVar21") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)*piVar6" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0002ec64;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002ec64;" (goto "goto") (statement_identifier "LAB_0002ec64") (; ";"))) (expression_statement "param_3 = (undefined4 ****)0x1;" (assignment_expression "param_3 = (undefined4 ****)0x1" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)0x1" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0002e86c;" (goto "goto") (statement_identifier "LAB_0002e86c") (; ";")) (} "}")))) (if_statement "if (iVar2 != 0) {\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);\n          iVar21 = *(int *)(puVar22 + -0x110);\n          param_3 = (undefined4 ****)0x0;\n          if (iVar2 != 0) goto LAB_0002ec18;\n        }" ({ "{") (expression_statement "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);" (assignment_expression "iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(iVar21 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar21 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7d6c)" (( "(") (binary_expression "iVar21 + -0x7d6c" (identifier "iVar21") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0002ec18;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002ec18;" (goto "goto") (statement_identifier "LAB_0002ec18") (; ";"))) (} "}"))) (expression_statement "iVar2 = *(int *)(puVar22 + -0xe0);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0xe0)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar22 + -0xe0)" (* "*") (cast_expression "(int *)(puVar22 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")"))))) (; ";")) (if_statement "if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }" (if "if") (parenthesized_expression "(iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1)" (( "(") (binary_expression "iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1" (identifier "iVar2") (== "==") (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1" (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)" (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar22 + -0xf0)" (* "*") (cast_expression "(int *)(puVar22 + -0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")"))))) (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n          *(undefined1 *)(iVar2 + -1) = 0x2f;\n          *(int *)(puVar22 + -0xe0) = iVar2 + -1;\n        }" ({ "{") (expression_statement "*(undefined1 *)(iVar2 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar2 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar2 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar2 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -1)" (( "(") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "*(int *)(puVar22 + -0xe0) = iVar2 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = iVar2 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" (* "*") (cast_expression "(int *)(puVar22 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0));" (assignment_expression "ppppuVar3 = (undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)\n                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0))" (( "(") (binary_expression "(*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -\n                    *(int *)(puVar22 + -0xe0)" (parenthesized_expression "(*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0))" (( "(") (binary_expression "*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)" (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar22 + -0xf0)" (* "*") (cast_expression "(int *)(puVar22 + -0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")"))))) () ")")) (- "-") (pointer_expression "*(int *)(puVar22 + -0xe0)" (* "*") (cast_expression "(int *)(puVar22 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")"))))) () ")")))) (; ";")) (expression_statement "(**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);" (call_expression "(**(code **)(iVar21 + -0x7bd0))\n                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3)" (parenthesized_expression "(**(code **)(iVar21 + -0x7bd0))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7bd0)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7bd0)" (* "*") (cast_expression "(code **)(iVar21 + -0x7bd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7bd0)" (( "(") (binary_expression "iVar21 + -0x7bd0" (identifier "iVar21") (+ "+") (number_literal "-0x7bd0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3)" (( "(") (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (, ",") (pointer_expression "*(int *)(puVar22 + -0xe0)" (* "*") (cast_expression "(int *)(puVar22 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")")))) (, ",") (identifier "ppppuVar3") () ")"))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "ppppuVar13 = ppppuVar3;" (assignment_expression "ppppuVar13 = ppppuVar3" (identifier "ppppuVar13") (= "=") (identifier "ppppuVar3")) (; ";")) (if_statement "if (*(int *)(puVar22 + 4) == 0) {\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar22 + 4) == 0)" (( "(") (binary_expression "*(int *)(puVar22 + 4) == 0" (pointer_expression "*(int *)(puVar22 + 4)" (* "*") (cast_expression "(int *)(puVar22 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 4)" (( "(") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n          puVar20 = *(undefined **)(puVar22 + -0x110);\n          *(undefined4 *)(puVar22 + -0x100) = uVar23;\n        }" ({ "{") (expression_statement "uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));" (assignment_expression "uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" (identifier "uVar23") (= "=") (call_expression "(**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c78))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7c78)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7c78)" (* "*") (cast_expression "(code **)(puVar20 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7c78)" (( "(") (binary_expression "puVar20 + -0x7c78" (identifier "puVar20") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" (( "(") (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0x100) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -0x100) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -0x100)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x100)" (( "(") (binary_expression "puVar22 + -0x100" (identifier "puVar22") (+ "+") (number_literal "-0x100")) () ")")))) (= "=") (identifier "uVar23")) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar22 + -0x100)" (* "*") (cast_expression "(int *)(puVar22 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x100)" (( "(") (binary_expression "puVar22 + -0x100" (identifier "puVar22") (+ "+") (number_literal "-0x100")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar22 + -0x100) == 0) {\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar22 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar22 + -0x100) == 0" (pointer_expression "*(int *)(puVar22 + -0x100)" (* "*") (cast_expression "(int *)(puVar22 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x100)" (( "(") (binary_expression "puVar22 + -0x100" (identifier "puVar22") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar2 = *(int *)(puVar22 + -0x104);\n        }" ({ "{") (expression_statement "iVar2 = *(int *)(puVar22 + -0x104);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x104)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar22 + -0x104) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (goto_statement "goto LAB_0002e89c;" (goto "goto") (statement_identifier "LAB_0002e89c") (; ";")) (} "}"))) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffff9c;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffff9c" (identifier "ppppuVar12") (= "=") (cast_expression "(undefined4 ****)0xffffff9c" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffff9c"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002ec18:\n    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (statement_identifier "LAB_0002ec18") (: ":") (expression_statement "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))()" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(iVar21 + -0x7cc8))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar21 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7cc8)" (( "(") (binary_expression "iVar21 + -0x7cc8" (identifier "iVar21") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)*piVar6" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (expression_statement "ppppuVar13 = ppppuVar4;" (assignment_expression "ppppuVar13 = ppppuVar4" (identifier "ppppuVar13") (= "=") (identifier "ppppuVar4")) (; ";")) (goto_statement "goto LAB_0002e880;" (goto "goto") (statement_identifier "LAB_0002e880") (; ";")) (} "}"))) (if_statement "if (iVar2 == 0) {\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;\nLAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(int *)(puVar22 + -0x104) = iVar2;\n    if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }\n    goto LAB_0002e6bc;\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar22 + -0xf0) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar22 + -0xf0) = 0x1000" (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")")))) (= "=") (number_literal "0x1000")) (; ";")) (labeled_statement "LAB_0002e664:\n    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));" (statement_identifier "LAB_0002e664") (: ":") (expression_statement "iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));" (assignment_expression "iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0))" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0))" (parenthesized_expression "(**(code **)(puVar18 + 0x1bf60))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1bf60)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1bf60)" (* "*") (cast_expression "(code **)(puVar18 + 0x1bf60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1bf60)" (( "(") (binary_expression "puVar18 + 0x1bf60" (identifier "puVar18") (+ "+") (number_literal "0x1bf60")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar22 + -0xf0))" (( "(") (pointer_expression "*(undefined4 *)(puVar22 + -0xf0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")")))) () ")")))) (; ";"))) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar22 + -0x104) = iVar2;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar2" (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (iVar2 == 0) {\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);\n      goto LAB_0002e8a0;\n    }" ({ "{") (expression_statement "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" (assignment_expression "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104)" (identifier "ppppuVar4") (= "=") (pointer_expression "*(undefined4 *****)(puVar22 + -0x104)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x104)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002e8a0;" (goto "goto") (statement_identifier "LAB_0002e8a0") (; ";")) (} "}"))) (goto_statement "goto LAB_0002e6bc;" (goto "goto") (statement_identifier "LAB_0002e6bc") (; ";")) (} "}"))) (expression_statement "puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar18 + 0x1bf18))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar18 + 0x1bf18))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1bf18))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1bf18)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1bf18)" (* "*") (cast_expression "(code **)(puVar18 + 0x1bf18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1bf18)" (( "(") (binary_expression "puVar18 + 0x1bf18" (identifier "puVar18") (+ "+") (number_literal "0x1bf18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*puVar8 = 0x16;" (assignment_expression "*puVar8 = 0x16" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002e89c;" (goto "goto") (statement_identifier "LAB_0002e89c") (; ";")) (labeled_statement "LAB_0002e984:\n  if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" (statement_identifier "LAB_0002e984") (: ":") (if_statement "if (bVar1) {\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }\n  else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n  }" ({ "{") (if_statement "if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }\n    else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" (if "if") (parenthesized_expression "((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8)))" (( "(") (binary_expression "(*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))" (parenthesized_expression "(*piVar7 == iVar16)" (( "(") (binary_expression "*piVar7 == iVar16" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (== "==") (identifier "iVar16")) () ")")) (&& "&&") (parenthesized_expression "(piVar7[1] == *(int *)(puVar22 + -0xf8))" (( "(") (binary_expression "piVar7[1] == *(int *)(puVar22 + -0xf8)" (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) (== "==") (pointer_expression "*(int *)(puVar22 + -0xf8)" (* "*") (cast_expression "(int *)(puVar22 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf8)" (( "(") (binary_expression "puVar22 + -0xf8" (identifier "puVar22") (+ "+") (number_literal "-0xf8")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" ({ "{") (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" (identifier "ppppuVar4") (= "=") (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar7 + 0x13)" (( "(") (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "0x13")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" (else "else") (compound_statement "{\n      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;\n      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n    }" ({ "{") (if_statement "if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;" (if "if") (parenthesized_expression "(*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4))" (( "(") (binary_expression "*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)" (pointer_expression "*(int *)(puVar22 + -0xfc)" (* "*") (cast_expression "(int *)(puVar22 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xfc)" (( "(") (binary_expression "puVar22 + -0xfc" (identifier "puVar22") (+ "+") (number_literal "-0xfc")) () ")")))) (== "==") (pointer_expression "*(int *)(puVar22 + -0xf4)" (* "*") (cast_expression "(int *)(puVar22 + -0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf4)" (( "(") (binary_expression "puVar22 + -0xf4" (identifier "puVar22") (+ "+") (number_literal "-0xf4")) () ")"))))) () ")")) (goto_statement "goto LAB_0002e958;" (goto "goto") (statement_identifier "LAB_0002e958") (; ";"))) (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" (identifier "ppppuVar4") (= "=") (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar7 + 0x13)" (( "(") (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "0x13")) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" (else "else") (compound_statement "{\nLAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);\n  }" ({ "{") (labeled_statement "LAB_0002e91c:\n    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (statement_identifier "LAB_0002e91c") (: ":") (expression_statement "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);" (assignment_expression "ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13)" (identifier "ppppuVar4") (= "=") (cast_expression "(undefined4 ****)((int)piVar7 + 0x13)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)piVar7 + 0x13)" (( "(") (binary_expression "(int)piVar7 + 0x13" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "0x13")) () ")")))) (; ";"))) (} "}"))))) (expression_statement "*(undefined4 *)(puVar22 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar22 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar22 + -0x118)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x118)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x118)" (( "(") (binary_expression "puVar22 + -0x118" (identifier "puVar22") (+ "+") (number_literal "-0x118")) () ")")))) (= "=") (number_literal "0x100")) (; ";")) (expression_statement "ppppuVar13 = ppppuVar12;" (assignment_expression "ppppuVar13 = ppppuVar12" (identifier "ppppuVar13") (= "=") (identifier "ppppuVar12")) (; ";")) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))\n  ;" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c30))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7c30)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7c30)" (* "*") (cast_expression "(code **)(puVar20 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7c30)" (( "(") (binary_expression "puVar20 + -0x7c30" (identifier "puVar20") (+ "+") (number_literal "-0x7c30")) () ")"))))) () ")")) (argument_list "(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))" (( "(") (number_literal "3") (, ",") (identifier "ppppuVar12") (, ",") (identifier "ppppuVar4") (, ",") (pointer_expression "*(undefined4 *)(puVar22 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x108)" (( "(") (binary_expression "puVar22 + -0x108" (identifier "puVar22") (+ "+") (number_literal "-0x108")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;" (if "if") (parenthesized_expression "(((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))))))" (( "(") (binary_expression "((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||\n     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))" (parenthesized_expression "((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000))" (( "(") (binary_expression "(iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)" (( "(") (binary_expression "(*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar22 + -0xb8) & 0xf000)" (( "(") (binary_expression "*(uint *)(puVar22 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar22 + -0xb8)" (* "*") (cast_expression "(uint *)(puVar22 + -0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xb8)" (( "(") (binary_expression "puVar22 + -0xb8" (identifier "puVar22") (+ "+") (number_literal "-0xb8")) () ")")))) (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))" (( "(") (parenthesized_expression "(*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))))" (( "(") (binary_expression "*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||\n      ((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))" (binary_expression "*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc)" (pointer_expression "*(int *)(puVar22 + -0xd0)" (* "*") (cast_expression "(int *)(puVar22 + -0xd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xd0)" (( "(") (binary_expression "puVar22 + -0xd0" (identifier "puVar22") (+ "+") (number_literal "-0xd0")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar22 + -0xfc)" (* "*") (cast_expression "(int *)(puVar22 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xfc)" (( "(") (binary_expression "puVar22 + -0xfc" (identifier "puVar22") (+ "+") (number_literal "-0xfc")) () ")"))))) (|| "||") (parenthesized_expression "((*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))" (( "(") (parenthesized_expression "(*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)))" (( "(") (binary_expression "*(int *)(puVar22 + -0xc0) != iVar16 ||\n       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))" (binary_expression "*(int *)(puVar22 + -0xc0) != iVar16" (pointer_expression "*(int *)(puVar22 + -0xc0)" (* "*") (cast_expression "(int *)(puVar22 + -0xc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xc0)" (( "(") (binary_expression "puVar22 + -0xc0" (identifier "puVar22") (+ "+") (number_literal "-0xc0")) () ")")))) (!= "!=") (identifier "iVar16")) (|| "||") (parenthesized_expression "(*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))" (( "(") (binary_expression "*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8)" (pointer_expression "*(int *)(puVar22 + -0xbc)" (* "*") (cast_expression "(int *)(puVar22 + -0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xbc)" (( "(") (binary_expression "puVar22 + -0xbc" (identifier "puVar22") (+ "+") (number_literal "-0xbc")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar22 + -0xf8)" (* "*") (cast_expression "(int *)(puVar22 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf8)" (( "(") (binary_expression "puVar22 + -0xf8" (identifier "puVar22") (+ "+") (number_literal "-0xf8")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0002e958;" (goto "goto") (statement_identifier "LAB_0002e958") (; ";"))) (expression_statement "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));" (assignment_expression "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" (identifier "unaff_s2") (= "=") (cast_expression "(undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104))" (( "(") (binary_expression "*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104)" (pointer_expression "*(int *)(puVar22 + -0xe0)" (* "*") (cast_expression "(int *)(puVar22 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")")))) (- "-") (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")"))))) () ")")))) (; ";")) (expression_statement "param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);" (assignment_expression "param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(puVar20 + -0x7ca4))(ppppuVar4)" (parenthesized_expression "(**(code **)(puVar20 + -0x7ca4))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7ca4)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7ca4)" (* "*") (cast_expression "(code **)(puVar20 + -0x7ca4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7ca4)" (( "(") (binary_expression "puVar20 + -0x7ca4" (identifier "puVar20") (+ "+") (number_literal "-0x7ca4")) () ")"))))) () ")")) (argument_list "(ppppuVar4)" (( "(") (identifier "ppppuVar4") () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (unaff_s2 <= param_3) {\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }" (if "if") (parenthesized_expression "(unaff_s2 <= param_3)" (( "(") (binary_expression "unaff_s2 <= param_3" (identifier "unaff_s2") (<= "<=") (identifier "param_3")) () ")")) (compound_statement "{\n    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);\n    if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }\n    ppppuVar10 = ppppuVar3;\n    if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }\n    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);\n    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;\n    ppppuVar13 = ppppuVar17;\n    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    if (iVar5 == 0) goto LAB_0002eb28;\n    uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *(undefined4 *)(puVar22 + -0xe0) = uVar23;\n    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;\n    *(int *)(puVar22 + -0x104) = iVar5;\n  }" ({ "{") (expression_statement "ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);" (assignment_expression "ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0)" (identifier "ppppuVar3") (= "=") (pointer_expression "*(undefined4 *****)(puVar22 + -0xf0)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0xf0)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar22 + 4) != 0) {\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar22 + 4) != 0)" (( "(") (binary_expression "*(int *)(puVar22 + 4) != 0" (pointer_expression "*(int *)(puVar22 + 4)" (* "*") (cast_expression "(int *)(puVar22 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 4)" (( "(") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *piVar6 = 0x22;\n      goto LAB_0002e864;\n    }" ({ "{") (expression_statement "*piVar6 = 0x22;" (assignment_expression "*piVar6 = 0x22" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0x22")) (; ";")) (goto_statement "goto LAB_0002e864;" (goto "goto") (statement_identifier "LAB_0002e864") (; ";")) (} "}"))) (expression_statement "ppppuVar10 = ppppuVar3;" (assignment_expression "ppppuVar10 = ppppuVar3" (identifier "ppppuVar10") (= "=") (identifier "ppppuVar3")) (; ";")) (if_statement "if (ppppuVar3 < param_3) {\n      ppppuVar10 = param_3;\n    }" (if "if") (parenthesized_expression "(ppppuVar3 < param_3)" (( "(") (binary_expression "ppppuVar3 < param_3" (identifier "ppppuVar3") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n      ppppuVar10 = param_3;\n    }" ({ "{") (expression_statement "ppppuVar10 = param_3;" (assignment_expression "ppppuVar10 = param_3" (identifier "ppppuVar10") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);" (assignment_expression "ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3)" (identifier "ppppuVar17") (= "=") (cast_expression "(undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppuVar10 + (int)ppppuVar3)" (( "(") (binary_expression "(int)ppppuVar10 + (int)ppppuVar3" (cast_expression "(int)ppppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppuVar10")) (+ "+") (cast_expression "(int)ppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppuVar3"))) () ")")))) (; ";")) (if_statement "if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;" (if "if") (parenthesized_expression "(ppppuVar17 < ppppuVar3)" (( "(") (binary_expression "ppppuVar17 < ppppuVar3" (identifier "ppppuVar17") (< "<") (identifier "ppppuVar3")) () ")")) (goto_statement "goto LAB_0002eb28;" (goto "goto") (statement_identifier "LAB_0002eb28") (; ";"))) (expression_statement "ppppuVar13 = ppppuVar17;" (assignment_expression "ppppuVar13 = ppppuVar17" (identifier "ppppuVar13") (= "=") (identifier "ppppuVar17")) (; ";")) (expression_statement "iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));" (assignment_expression "iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7c78))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7c78)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7c78)" (* "*") (cast_expression "(code **)(puVar20 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7c78)" (( "(") (binary_expression "puVar20 + -0x7c78" (identifier "puVar20") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" (( "(") (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_0002eb28;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002eb28;" (goto "goto") (statement_identifier "LAB_0002eb28") (; ";"))) (expression_statement "uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);" (assignment_expression "uVar23 = (**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" (identifier "uVar23") (= "=") (call_expression "(**(code **)(puVar20 + -0x7be0))\n                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7be0))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7be0)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7be0)" (* "*") (cast_expression "(code **)(puVar20 + -0x7be0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7be0)" (( "(") (binary_expression "puVar20 + -0x7be0" (identifier "puVar20") (+ "+") (number_literal "-0x7be0")) () ")"))))) () ")")) (argument_list "(iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,\n                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2)" (( "(") (binary_expression "iVar5 + (int)ppppuVar10 + (int)unaff_s2" (binary_expression "iVar5 + (int)ppppuVar10" (identifier "iVar5") (+ "+") (cast_expression "(int)ppppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppuVar10"))) (+ "+") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) (, ",") (binary_expression "iVar5 + (int)unaff_s2" (identifier "iVar5") (+ "+") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) (, ",") (binary_expression "*(int *)(puVar22 + -0xf0) - (int)unaff_s2" (pointer_expression "*(int *)(puVar22 + -0xf0)" (* "*") (cast_expression "(int *)(puVar22 + -0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")")))) (- "-") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) () ")")))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xe0) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -0xe0) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -0xe0)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xe0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;" (assignment_expression "*(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17" (pointer_expression "*(undefined4 *****)(puVar22 + -0xf0)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0xf0)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0xf0)" (( "(") (binary_expression "puVar22 + -0xf0" (identifier "puVar22") (+ "+") (number_literal "-0xf0")) () ")")))) (= "=") (identifier "ppppuVar17")) (; ";")) (expression_statement "*(int *)(puVar22 + -0x104) = iVar5;" (assignment_expression "*(int *)(puVar22 + -0x104) = iVar5" (pointer_expression "*(int *)(puVar22 + -0x104)" (* "*") (cast_expression "(int *)(puVar22 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);" (assignment_expression "unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3)" (identifier "unaff_s2") (= "=") (cast_expression "(undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0xe0) - (int)param_3)" (( "(") (binary_expression "*(int *)(puVar22 + -0xe0) - (int)param_3" (pointer_expression "*(int *)(puVar22 + -0xe0)" (* "*") (cast_expression "(int *)(puVar22 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")")))) (- "-") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);" (call_expression "(**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3)" (parenthesized_expression "(**(code **)(puVar20 + -0x7be0))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7be0)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7be0)" (* "*") (cast_expression "(code **)(puVar20 + -0x7be0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7be0)" (( "(") (binary_expression "puVar20 + -0x7be0" (identifier "puVar20") (+ "+") (number_literal "-0x7be0")) () ")"))))) () ")")) (argument_list "(unaff_s2,ppppuVar4,param_3)" (( "(") (identifier "unaff_s2") (, ",") (identifier "ppppuVar4") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar22 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar22 + -0x110)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar22 + -0x110)" (* "*") (cast_expression "(int *)(puVar22 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;" (assignment_expression "*(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1" (pointer_expression "*(int *)(puVar22 + -0xe0)" (* "*") (cast_expression "(int *)(puVar22 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xe0)" (( "(") (binary_expression "puVar22 + -0xe0" (identifier "puVar22") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined1 *)((int)unaff_s2 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)((int)unaff_s2 + -1) = 0x2f" (pointer_expression "*(undefined1 *)((int)unaff_s2 + -1)" (* "*") (cast_expression "(undefined1 *)((int)unaff_s2 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s2 + -1)" (( "(") (binary_expression "(int)unaff_s2 + -1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "iVar16 = *(int *)(puVar22 + -0xd8);" (assignment_expression "iVar16 = *(int *)(puVar22 + -0xd8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar22 + -0xd8)" (* "*") (cast_expression "(int *)(puVar22 + -0xd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xd8)" (( "(") (binary_expression "puVar22 + -0xd8" (identifier "puVar22") (+ "+") (number_literal "-0xd8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf8)" (( "(") (binary_expression "puVar22 + -0xf8" (identifier "puVar22") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xd4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xd4)" (( "(") (binary_expression "puVar22 + -0xd4" (identifier "puVar22") (+ "+") (number_literal "-0xd4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);" (assignment_expression "*(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4)" (pointer_expression "*(undefined4 *)(puVar22 + -0xfc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xfc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xfc)" (( "(") (binary_expression "puVar22 + -0xfc" (identifier "puVar22") (+ "+") (number_literal "-0xfc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0xf4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0xf4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0xf4)" (( "(") (binary_expression "puVar22 + -0xf4" (identifier "puVar22") (+ "+") (number_literal "-0xf4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002e768;" (goto "goto") (statement_identifier "LAB_0002e768") (; ";")) (labeled_statement "LAB_0002eb28:\n  *piVar6 = 0xc;" (statement_identifier "LAB_0002eb28") (: ":") (expression_statement "*piVar6 = 0xc;" (assignment_expression "*piVar6 = 0xc" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0xc")) (; ";"))) (labeled_statement "LAB_0002e864:\n  ppppuVar3 = (undefined4 ****)*piVar6;" (statement_identifier "LAB_0002e864") (: ":") (expression_statement "ppppuVar3 = (undefined4 ****)*piVar6;" (assignment_expression "ppppuVar3 = (undefined4 ****)*piVar6" (identifier "ppppuVar3") (= "=") (cast_expression "(undefined4 ****)*piVar6" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";"))) (expression_statement "param_3 = (undefined4 ****)0x0;" (assignment_expression "param_3 = (undefined4 ****)0x0" (identifier "param_3") (= "=") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0002e86c:\n  (**(code **)(puVar20 + -0x7d6c))(iVar2);" (statement_identifier "LAB_0002e86c") (: ":") (expression_statement "(**(code **)(puVar20 + -0x7d6c))(iVar2);" (call_expression "(**(code **)(puVar20 + -0x7d6c))(iVar2)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7d6c)" (* "*") (cast_expression "(code **)(puVar20 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7d6c)" (( "(") (binary_expression "puVar20 + -0x7d6c" (identifier "puVar20") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";"))) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (labeled_statement "LAB_0002e880:\n  if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" (statement_identifier "LAB_0002e880") (: ":") (if_statement "if (param_3 == (undefined4 ****)0x0) {\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }\n  else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" (if "if") (parenthesized_expression "(param_3 == (undefined4 ****)0x0)" (( "(") (binary_expression "param_3 == (undefined4 ****)0x0" (identifier "param_3") (== "==") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" ({ "{") (labeled_statement "LAB_0002e888:\n    iVar2 = *(int *)(puVar22 + -0x100);" (statement_identifier "LAB_0002e888") (: ":") (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar22 + -0x100)" (* "*") (cast_expression "(int *)(puVar22 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x100)" (( "(") (binary_expression "puVar22 + -0x100" (identifier "puVar22") (+ "+") (number_literal "-0x100")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" (else "else") (compound_statement "{\nLAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    iVar2 = *(int *)(puVar22 + -0x100);\n  }" ({ "{") (labeled_statement "LAB_0002ec64:\n    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);" (statement_identifier "LAB_0002ec64") (: ":") (expression_statement "(**(code **)(puVar20 + -0x7d68))(ppppuVar12);" (call_expression "(**(code **)(puVar20 + -0x7d68))(ppppuVar12)" (parenthesized_expression "(**(code **)(puVar20 + -0x7d68))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7d68)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7d68)" (* "*") (cast_expression "(code **)(puVar20 + -0x7d68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7d68)" (( "(") (binary_expression "puVar20 + -0x7d68" (identifier "puVar20") (+ "+") (number_literal "-0x7d68")) () ")"))))) () ")")) (argument_list "(ppppuVar12)" (( "(") (identifier "ppppuVar12") () ")"))) (; ";"))) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar22 + -0x100);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x100)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar22 + -0x100)" (* "*") (cast_expression "(int *)(puVar22 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x100)" (( "(") (binary_expression "puVar22 + -0x100" (identifier "puVar22") (+ "+") (number_literal "-0x100")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (iVar2 == 0) {\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }\n  else {\n    *piVar6 = (int)ppppuVar3;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));\n    puVar20 = *(undefined **)(puVar22 + -0x110);\n    *piVar6 = (int)ppppuVar3;\n  }" ({ "{") (expression_statement "(**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));" (call_expression "(**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104))" (parenthesized_expression "(**(code **)(puVar20 + -0x7bd8))" (( "(") (pointer_expression "**(code **)(puVar20 + -0x7bd8)" (* "*") (pointer_expression "*(code **)(puVar20 + -0x7bd8)" (* "*") (cast_expression "(code **)(puVar20 + -0x7bd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7bd8)" (( "(") (binary_expression "puVar20 + -0x7bd8" (identifier "puVar20") (+ "+") (number_literal "-0x7bd8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar22 + -0x104))" (( "(") (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar20 = *(undefined **)(puVar22 + -0x110);" (assignment_expression "puVar20 = *(undefined **)(puVar22 + -0x110)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x110)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x110)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x110)" (( "(") (binary_expression "puVar22 + -0x110" (identifier "puVar22") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*piVar6 = (int)ppppuVar3;" (assignment_expression "*piVar6 = (int)ppppuVar3" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (cast_expression "(int)ppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppuVar3"))) (; ";")) (} "}")) (else_clause "else {\n    *piVar6 = (int)ppppuVar3;\n  }" (else "else") (compound_statement "{\n    *piVar6 = (int)ppppuVar3;\n  }" ({ "{") (expression_statement "*piVar6 = (int)ppppuVar3;" (assignment_expression "*piVar6 = (int)ppppuVar3" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (cast_expression "(int)ppppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppuVar3"))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(puVar22 + -0x104) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x104) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002e89c:\n  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" (statement_identifier "LAB_0002e89c") (: ":") (expression_statement "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);" (assignment_expression "ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104)" (identifier "ppppuVar4") (= "=") (pointer_expression "*(undefined4 *****)(puVar22 + -0x104)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x104)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x104)" (( "(") (binary_expression "puVar22 + -0x104" (identifier "puVar22") (+ "+") (number_literal "-0x104")) () ")"))))) (; ";"))) (labeled_statement "LAB_0002e8a0:\n  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);" (statement_identifier "LAB_0002e8a0") (: ":") (expression_statement "ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);" (assignment_expression "ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c)" (identifier "ppppuVar12") (= "=") (pointer_expression "*(undefined4 *****)(puVar22 + -0x2c)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x2c)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x2c)" (( "(") (binary_expression "puVar22 + -0x2c" (identifier "puVar22") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }" (if "if") (parenthesized_expression "(ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4))" (( "(") (binary_expression "ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)" (identifier "ppppuVar12") (!= "!=") (cast_expression "(undefined4 ****)**(int **)(puVar20 + -0x7be4)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "**(int **)(puVar20 + -0x7be4)" (* "*") (pointer_expression "*(int **)(puVar20 + -0x7be4)" (* "*") (cast_expression "(int **)(puVar20 + -0x7be4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7be4)" (( "(") (binary_expression "puVar20 + -0x7be4" (identifier "puVar20") (+ "+") (number_literal "-0x7be4")) () ")"))))))) () ")")) (compound_statement "{\n    pcVar19 = *(code **)(puVar20 + -0x7c10);\n    uVar23 = 0x2ecac;\n    (*pcVar19)();\n    *(undefined4 *)(puVar22 + -300) = uVar23;\n    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;\n    *(undefined4 *****)(puVar22 + -0x134) = param_3;\n    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;\n    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;\n    if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }\n    return ppppuVar12;\n  }" ({ "{") (expression_statement "pcVar19 = *(code **)(puVar20 + -0x7c10);" (assignment_expression "pcVar19 = *(code **)(puVar20 + -0x7c10)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(puVar20 + -0x7c10)" (* "*") (cast_expression "(code **)(puVar20 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x7c10)" (( "(") (binary_expression "puVar20 + -0x7c10" (identifier "puVar20") (+ "+") (number_literal "-0x7c10")) () ")"))))) (; ";")) (expression_statement "uVar23 = 0x2ecac;" (assignment_expression "uVar23 = 0x2ecac" (identifier "uVar23") (= "=") (number_literal "0x2ecac")) (; ";")) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -300) = uVar23;" (assignment_expression "*(undefined4 *)(puVar22 + -300) = uVar23" (pointer_expression "*(undefined4 *)(puVar22 + -300)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -300)" (( "(") (binary_expression "puVar22 + -300" (identifier "puVar22") (+ "+") (number_literal "-300")) () ")")))) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x130) = unaff_s2;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x130) = unaff_s2" (pointer_expression "*(undefined4 *****)(puVar22 + -0x130)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x130)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x130)" (( "(") (binary_expression "puVar22 + -0x130" (identifier "puVar22") (+ "+") (number_literal "-0x130")) () ")")))) (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x134) = param_3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x134) = param_3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x134)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x134)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x134)" (( "(") (binary_expression "puVar22 + -0x134" (identifier "puVar22") (+ "+") (number_literal "-0x134")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;" (assignment_expression "*(undefined4 *****)(puVar22 + -0x138) = ppppuVar3" (pointer_expression "*(undefined4 *****)(puVar22 + -0x138)" (* "*") (cast_expression "(undefined4 *****)(puVar22 + -0x138)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar22 + -0x138)" (( "(") (binary_expression "puVar22 + -0x138" (identifier "puVar22") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (identifier "ppppuVar3")) (; ";")) (expression_statement "*(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;" (assignment_expression "*(code **)(puVar22 + -0x140) = pcVar19 + 0x23530" (pointer_expression "*(code **)(puVar22 + -0x140)" (* "*") (cast_expression "(code **)(puVar22 + -0x140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x140)" (( "(") (binary_expression "puVar22 + -0x140" (identifier "puVar22") (+ "+") (number_literal "-0x140")) () ")")))) (= "=") (binary_expression "pcVar19 + 0x23530" (identifier "pcVar19") (+ "+") (number_literal "0x23530"))) (; ";")) (if_statement "if (ppppuVar12 == (undefined4 ****)0x0) {\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }\n    else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" (if "if") (parenthesized_expression "(ppppuVar12 == (undefined4 ****)0x0)" (( "(") (binary_expression "ppppuVar12 == (undefined4 ****)0x0" (identifier "ppppuVar12") (== "==") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();\n      *puVar8 = 0x7a;\n      ppppuVar12 = (undefined4 ****)0xffffffff;\n    }" ({ "{") (expression_statement "puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar19 + 0x1b868))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar19 + 0x1b868))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b868))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b868)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b868)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b868)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b868)" (( "(") (binary_expression "pcVar19 + 0x1b868" (identifier "pcVar19") (+ "+") (number_literal "0x1b868")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar8 = 0x7a;" (assignment_expression "*puVar8 = 0x7a" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0x7a")) (; ";")) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffffff" (identifier "ppppuVar12") (= "=") (cast_expression "(undefined4 ****)0xffffffff" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" (else "else") (if_statement "if (ppppuVar12 == (undefined4 ****)0xa) {\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" (if "if") (parenthesized_expression "(ppppuVar12 == (undefined4 ****)0xa)" (( "(") (binary_expression "ppppuVar12 == (undefined4 ****)0xa" (identifier "ppppuVar12") (== "==") (cast_expression "(undefined4 ****)0xa" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xa"))) () ")")) (compound_statement "{\n      pppuVar15 = *ppppuVar13;\n      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);\n      if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }\n    }" ({ "{") (expression_statement "pppuVar15 = *ppppuVar13;" (assignment_expression "pppuVar15 = *ppppuVar13" (identifier "pppuVar15") (= "=") (pointer_expression "*ppppuVar13" (* "*") (identifier "ppppuVar13"))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b988))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b988)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b988)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b988)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b988)" (( "(") (binary_expression "pcVar19 + 0x1b988" (identifier "pcVar19") (+ "+") (number_literal "0x1b988")) () ")"))))) () ")")) (argument_list "(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac)" (( "(") (identifier "pppuVar15") (, ",") (binary_expression "*(int *)(pcVar19 + 0x1b568) + 0x58ac" (pointer_expression "*(int *)(pcVar19 + 0x1b568)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b568)" (( "(") (binary_expression "pcVar19 + 0x1b568" (identifier "pcVar19") (+ "+") (number_literal "0x1b568")) () ")")))) (+ "+") (number_literal "0x58ac")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);\n        iVar2 = *(int *)(puVar22 + -0x140);\n        *ppppuVar13 = (undefined4 ***)0x0;\n        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();\n        *puVar8 = 0x3d;\n        ppppuVar12 = (undefined4 ****)0xffffffff;\n      }" ({ "{") (expression_statement "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);" (call_expression "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" (* "*") (cast_expression "(code **)(*(int *)(puVar22 + -0x140) + -0x7d34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x140) + -0x7d34)" (( "(") (binary_expression "*(int *)(puVar22 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar22 + -0x140)" (* "*") (cast_expression "(int *)(puVar22 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x140)" (( "(") (binary_expression "puVar22 + -0x140" (identifier "puVar22") (+ "+") (number_literal "-0x140")) () ")")))) (+ "+") (number_literal "-0x7d34")) () ")"))))) () ")")) (argument_list "(pppuVar15)" (( "(") (identifier "pppuVar15") () ")"))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar22 + -0x140);" (assignment_expression "iVar2 = *(int *)(puVar22 + -0x140)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar22 + -0x140)" (* "*") (cast_expression "(int *)(puVar22 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x140)" (( "(") (binary_expression "puVar22 + -0x140" (identifier "puVar22") (+ "+") (number_literal "-0x140")) () ")"))))) (; ";")) (expression_statement "*ppppuVar13 = (undefined4 ***)0x0;" (assignment_expression "*ppppuVar13 = (undefined4 ***)0x0" (pointer_expression "*ppppuVar13" (* "*") (identifier "ppppuVar13")) (= "=") (cast_expression "(undefined4 ***)0x0" (( "(") (type_descriptor "undefined4 ***" (type_identifier "undefined4") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(**(code **)(iVar2 + -0x7cc8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar2 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar2 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar2 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar2 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar2 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + -0x7cc8)" (( "(") (binary_expression "iVar2 + -0x7cc8" (identifier "iVar2") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar8 = 0x3d;" (assignment_expression "*puVar8 = 0x3d" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0x3d")) (; ";")) (expression_statement "ppppuVar12 = (undefined4 ****)0xffffffff;" (assignment_expression "ppppuVar12 = (undefined4 ****)0xffffffff" (identifier "ppppuVar12") (= "=") (cast_expression "(undefined4 ****)0xffffffff" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}"))) (} "}"))))) (return_statement "return ppppuVar12;" (return "return") (identifier "ppppuVar12") (; ";")) (} "}"))) (return_statement "return ppppuVar4;" (return "return") (identifier "ppppuVar4") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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 (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (identifier) (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: (number_literal))) consequence: (goto_statement label: (statement_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 (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 (number_literal) (identifier) (number_literal) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (goto_statement label: (statement_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 (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) 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))))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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) (identifier) (identifier) (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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))))) (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 (identifier) (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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) (identifier) (identifier) (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 (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_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) (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal))))))) (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: (identifier)))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_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: (binary_expression left: (binary_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (expression_statement (assignment_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: (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (number_literal))))))) arguments: (argument_list))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (number_literal))))))) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (parenthesized_expression (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: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (number_literal))))))) arguments: (argument_list (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: (parenthesized_expression (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: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (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)))) alternative: (else_clause (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))))) (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: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal))))))) (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (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: (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: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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: (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: (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)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (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))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_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: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (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: (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: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (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: (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: (parenthesized_expression (parenthesized_expression (binary_expression left: (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: (identifier)) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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: (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)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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: (number_literal)))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))))))))) (return_statement (identifier)))) (return_statement (identifier)))))

undefined4 **** MASKED(undefined4 param_1,undefined4 ****param_2,undefined4 ****param_3)

{
  bool bVar1;
  int iVar2;
  undefined4 ****ppppuVar3;
  undefined4 ****ppppuVar4;
  int iVar5;
  int *piVar6;
  int *piVar7;
  undefined4 *puVar8;
  int iVar9;
  undefined4 ****ppppuVar10;
  uint uVar11;
  undefined4 ****ppppuVar12;
  undefined4 ****ppppuVar13;
  uint uVar14;
  undefined4 ****unaff_s2;
  undefined4 ***pppuVar15;
  int unaff_s3;
  undefined4 ****unaff_s4;
  undefined4 ****unaff_s5;
  int iVar16;
  undefined4 ****ppppuVar17;
  undefined4 *unaff_s6;
  undefined4 unaff_s7;
  undefined *puVar18;
  code *pcVar19;
  undefined *puVar20;
  int iVar21;
  undefined1 *puVar22;
  undefined4 uVar23;
  undefined1 auStack_60 [16];
  undefined4 ***local_50 [2];
  undefined4 ***local_40;
  undefined4 local_3c [2];
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  
  puVar22 = auStack_60;
  local_2c = *(int *)PTR___stack_chk_guard_0004a5fc;
  local_40 = param_2;
  local_3c[0] = param_1;
  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004a598)();
  if (iVar2 == 1) {
LAB_0002e288:
    ppppuVar13 = (undefined4 ****)local_40;
    iVar2 = (*(code *)PTR_strlen_0004a53c)(local_40);
    local_50[0] = param_3;
    ppppuVar3 = (undefined4 ****)
                FUN_0002d51c(local_3c[0],ppppuVar13,(int)ppppuVar13 + iVar2,
                             (uint)((int)param_3 << 0x1d) >> 0x1f);
    puVar22 = auStack_60;
  }
  else {
    local_34 = 0;
    local_30 = 0;
    iVar2 = (*(code *)PTR_mbsrtowcs_0004a63c)(0,local_3c,0);
    uVar14 = iVar2 + 1;
    if (uVar14 == 0) goto LAB_0002e288;
    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);
    if (iVar2 == 0) {
      ppppuVar13 = (undefined4 ****)
                   (*(code *)PTR___assert_fail_0004a460)
                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x129,
                              PTR_DAT_0004a224 + -0x6918);
      return ppppuVar13;
    }
    ppppuVar13 = &local_40;
    unaff_s2 = (undefined4 ****)(*(code *)PTR_mbsrtowcs_0004a63c)(0,ppppuVar13,0,&local_34);
    unaff_s3 = (int)unaff_s2 + 1;
    if (unaff_s3 == 0) goto LAB_0002e288;
    iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(&local_34);
    uVar11 = uVar14 + unaff_s3;
    if (iVar2 == 0) {
      ppppuVar13 = (undefined4 ****)
                   (*(code *)PTR___assert_fail_0004a460)
                             (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x12d,
                              PTR_DAT_0004a224 + -0x6918);
      return ppppuVar13;
    }
    if ((uVar11 < uVar14) || (0x3fffffff < uVar11)) {
      puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();
      *puVar8 = 0xc;
      ppppuVar3 = (undefined4 ****)0xffffffff;
    }
    else if (uVar11 < 2000) {
      iVar2 = -(uVar11 * 4 + 7 & 0xfffffff8);
      unaff_s5 = (undefined4 ****)(&stack0xffffffb8 + iVar2);
      unaff_s6 = &local_34;
      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,local_3c,uVar14,unaff_s6);
      iVar5 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);
      unaff_s4 = unaff_s5 + uVar14;
      if (iVar5 == 0) {
LAB_0002e5c4:
        ppppuVar13 = (undefined4 ****)
                     (*(code *)PTR___assert_fail_0004a460)
                               (PTR_DAT_0004a224 + -0x6c20,PTR_DAT_0004a224 + -0x6c30,0x147,
                                PTR_DAT_0004a224 + -0x6918);
        return ppppuVar13;
      }
      (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,&local_40,unaff_s3,&local_34);
      *(undefined4 *****)((int)local_50 + iVar2) = param_3;
      ppppuVar13 = unaff_s4;
      ppppuVar3 = (undefined4 ****)
                  FUN_0002c0e4(unaff_s5,unaff_s4,unaff_s4 + (int)unaff_s2,
                               (uint)((int)param_3 << 0x1d) >> 0x1f);
      puVar22 = auStack_60 + iVar2;
    }
    else {
      unaff_s4 = (undefined4 ****)(*(code *)PTR_malloc_0004a560)(uVar11 * 4);
      if (unaff_s4 == (undefined4 ****)0x0) {
        puVar8 = (undefined4 *)(*(code *)PTR___errno_location_0004a518)();
        *puVar8 = 0xc;
        ppppuVar3 = (undefined4 ****)0xffffffff;
        puVar22 = auStack_60;
      }
      else {
        unaff_s5 = unaff_s4 + uVar14;
        unaff_s6 = &local_34;
        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s4,local_3c,uVar14,unaff_s6);
        iVar2 = (*(code *)PTR_mbsinit_0004a5f8)(unaff_s6);
        if (iVar2 == 0) goto LAB_0002e5c4;
        (*(code *)PTR_mbsrtowcs_0004a63c)(unaff_s5,&local_40,unaff_s3,&local_34);
        ppppuVar13 = unaff_s5;
        local_50[0] = param_3;
        ppppuVar3 = (undefined4 ****)
                    FUN_0002c0e4(unaff_s4,unaff_s5,unaff_s5 + (int)unaff_s2,
                                 (uint)((int)param_3 << 0x1d) >> 0x1f);
        (*(code *)PTR_free_0004a608)(unaff_s4);
        puVar22 = auStack_60;
      }
    }
  }
  if (local_2c == *(int *)PTR___stack_chk_guard_0004a5fc) {
    return ppppuVar3;
  }
  uVar23 = 0x2e5f8;
  iVar2 = local_2c;
  puVar18 = PTR___stack_chk_fail_0004a5d0;
  (*(code *)PTR___stack_chk_fail_0004a5d0)();
  puVar20 = puVar18 + 0x23be0;
  *(undefined4 *)(puVar22 + -4) = uVar23;
  *(undefined1 **)(puVar22 + -8) = auStack_60;
  *(undefined4 *)(puVar22 + -0xc) = unaff_s7;
  *(undefined4 **)(puVar22 + -0x10) = unaff_s6;
  *(undefined4 *****)(puVar22 + -0x14) = unaff_s5;
  *(undefined4 *****)(puVar22 + -0x18) = unaff_s4;
  *(int *)(puVar22 + -0x1c) = unaff_s3;
  *(undefined4 *****)(puVar22 + -0x20) = unaff_s2;
  *(undefined4 *****)(puVar22 + -0x24) = param_3;
  *(undefined4 *****)(puVar22 + -0x28) = ppppuVar3;
  *(undefined **)(puVar22 + -0x110) = puVar20;
  *(int *)(puVar22 + -0x100) = iVar2;
  *(undefined4 *****)(puVar22 + 4) = ppppuVar13;
  *(undefined4 *)(puVar22 + -0x2c) = **(undefined4 **)(puVar18 + 0x1bffc);
  if (ppppuVar13 != (undefined4 ****)0x0) {
    if (*(int *)(puVar22 + -0x100) == 0) {
      *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);
      goto LAB_0002e664;
    }
    *(undefined4 *)(puVar22 + -0xf0) = *(undefined4 *)(puVar22 + 4);
    *(undefined4 *)(puVar22 + -0x104) = *(undefined4 *)(puVar22 + -0x100);
LAB_0002e6bc:
    iVar2 = *(int *)(puVar22 + -0x104);
    iVar9 = *(int *)(puVar22 + -0xf0);
    *(undefined1 *)(iVar2 + iVar9 + -1) = 0;
    ppppuVar4 = (undefined4 ****)(*(int *)(puVar20 + -0x7fc8) + 0x7b9c);
    iVar5 = (**(code **)(puVar20 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);
    iVar21 = *(int *)(puVar22 + -0x110);
    if (iVar5 < 0) {
      param_3 = (undefined4 ****)0x0;
      ppppuVar12 = (undefined4 ****)0xffffff9c;
    }
    else {
      *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xd0);
      iVar16 = *(int *)(puVar22 + -0xc0);
      *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xbc);
      ppppuVar4 = (undefined4 ****)(*(int *)(iVar21 + -0x7fc8) + 0x7bec);
      iVar5 = (**(code **)(iVar21 + -0x7d60))(3,ppppuVar4,puVar22 + -0xd0);
      iVar21 = *(int *)(puVar22 + -0x110);
      if (-1 < iVar5) {
        *(int *)(puVar22 + -0xe0) = iVar2 + iVar9 + -1;
        *(undefined4 *)(puVar22 + -0xe8) = *(undefined4 *)(puVar22 + -0xd0);
        *(undefined4 *)(puVar22 + -0xe4) = *(undefined4 *)(puVar22 + -0xc0);
        *(undefined4 *)(puVar22 + -0xdc) = *(undefined4 *)(puVar22 + -0xbc);
        iVar2 = 0;
        ppppuVar12 = (undefined4 ****)0xffffff9c;
        *(int *)(puVar22 + -0xec) = *(int *)(iVar21 + -0x7fbc) + -0x7f6c;
        unaff_s2 = (undefined4 ****)(puVar22 + -0xd0);
        *(undefined4 *****)(puVar22 + -0x108) = unaff_s2;
LAB_0002e768:
        if (((*(int *)(puVar22 + -0xfc) != *(int *)(puVar22 + -0xe8)) ||
            (iVar16 != *(int *)(puVar22 + -0xe4))) ||
           (*(int *)(puVar22 + -0xf8) != *(int *)(puVar22 + -0xdc))) {
          ppppuVar13 = *(undefined4 *****)(puVar22 + -0xec);
          ppppuVar12 = (undefined4 ****)(**(code **)(iVar21 + -0x7cac))(ppppuVar12,ppppuVar13,0);
          if ((int)ppppuVar12 < 0) {
            piVar6 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7cc8))();
            puVar20 = *(undefined **)(puVar22 + -0x110);
            ppppuVar3 = (undefined4 ****)*piVar6;
            if (iVar2 == 0) goto LAB_0002e888;
            param_3 = (undefined4 ****)0x0;
          }
          else {
            ppppuVar13 = ppppuVar12;
            iVar5 = (**(code **)(*(int *)(puVar22 + -0x110) + -0x7c40))
                              (3,ppppuVar12,*(undefined4 *)(puVar22 + -0x108));
            iVar21 = *(int *)(puVar22 + -0x110);
            if (iVar5 == 0) {
              if (iVar2 != 0) {
                iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);
                iVar21 = *(int *)(puVar22 + -0x110);
                param_3 = (undefined4 ****)0x1;
                ppppuVar4 = ppppuVar13;
                if (iVar2 != 0) goto LAB_0002ec18;
              }
              *(undefined4 *)(puVar22 + -0xf4) = *(undefined4 *)(puVar22 + -0xd0);
              *(undefined4 *)(puVar22 + -0xd8) = *(undefined4 *)(puVar22 + -0xc0);
              *(undefined4 *)(puVar22 + -0xd4) = *(undefined4 *)(puVar22 + -0xbc);
              iVar2 = (**(code **)(iVar21 + -0x7d1c))(ppppuVar12);
              iVar21 = *(int *)(puVar22 + -0x110);
              if (iVar2 != 0) {
                piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();
                puVar20 = *(undefined **)(puVar22 + -0x110);
                bVar1 = true;
                unaff_s2 = (undefined4 ****)0x100;
LAB_0002e958:
                *piVar6 = 0;
                do {
                  piVar7 = (int *)(**(code **)(puVar20 + -0x7d38))(iVar2);
                  puVar20 = *(undefined **)(puVar22 + -0x110);
                  if (piVar7 == (int *)0x0) {
                    if (*piVar6 != 0) goto LAB_0002e864;
                    if (!bVar1) {
                      *piVar6 = 2;
                      goto LAB_0002e864;
                    }
                    (**(code **)(puVar20 + -0x7d90))(iVar2);
                    piVar7 = (int *)(**(code **)(*(int *)(puVar22 + -0x110) + -0x7d38))(iVar2);
                    puVar20 = *(undefined **)(puVar22 + -0x110);
                    if (piVar7 == (int *)0x0) {
                      if (*piVar6 == 0) {
                        *piVar6 = 2;
                      }
                      goto LAB_0002e864;
                    }
                    bVar1 = false;
                    if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e91c;
                  }
                  else if (*(char *)((int)piVar7 + 0x13) != '.') goto LAB_0002e984;
                  if (*(char *)(piVar7 + 5) == '\0') goto LAB_0002e958;
                  if ((piVar7[5] & 0xffff0000U) != 0x2e000000) goto LAB_0002e984;
                  *piVar6 = 0;
                } while( true );
              }
              param_3 = (undefined4 ****)0x1;
              ppppuVar4 = ppppuVar13;
              goto LAB_0002ec18;
            }
            piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();
            puVar20 = *(undefined **)(puVar22 + -0x110);
            ppppuVar3 = (undefined4 ****)*piVar6;
            if (iVar2 == 0) goto LAB_0002ec64;
            param_3 = (undefined4 ****)0x1;
          }
          goto LAB_0002e86c;
        }
        if (iVar2 != 0) {
          iVar2 = (**(code **)(iVar21 + -0x7d6c))(iVar2);
          iVar21 = *(int *)(puVar22 + -0x110);
          param_3 = (undefined4 ****)0x0;
          if (iVar2 != 0) goto LAB_0002ec18;
        }
        iVar2 = *(int *)(puVar22 + -0xe0);
        if (iVar2 == *(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0) + -1) {
          *(undefined1 *)(iVar2 + -1) = 0x2f;
          *(int *)(puVar22 + -0xe0) = iVar2 + -1;
        }
        ppppuVar3 = (undefined4 ****)
                    ((*(int *)(puVar22 + -0x104) + *(int *)(puVar22 + -0xf0)) -
                    *(int *)(puVar22 + -0xe0));
        (**(code **)(iVar21 + -0x7bd0))
                  (*(int *)(puVar22 + -0x104),*(int *)(puVar22 + -0xe0),ppppuVar3);
        puVar20 = *(undefined **)(puVar22 + -0x110);
        ppppuVar13 = ppppuVar3;
        if (*(int *)(puVar22 + 4) == 0) {
          uVar23 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));
          puVar20 = *(undefined **)(puVar22 + -0x110);
          *(undefined4 *)(puVar22 + -0x100) = uVar23;
        }
        iVar2 = *(int *)(puVar22 + -0x100);
        if (*(int *)(puVar22 + -0x100) == 0) {
          iVar2 = *(int *)(puVar22 + -0x104);
        }
        *(int *)(puVar22 + -0x104) = iVar2;
        goto LAB_0002e89c;
      }
      param_3 = (undefined4 ****)0x0;
      ppppuVar12 = (undefined4 ****)0xffffff9c;
    }
LAB_0002ec18:
    piVar6 = (int *)(**(code **)(iVar21 + -0x7cc8))();
    puVar20 = *(undefined **)(puVar22 + -0x110);
    ppppuVar3 = (undefined4 ****)*piVar6;
    ppppuVar13 = ppppuVar4;
    goto LAB_0002e880;
  }
  if (iVar2 == 0) {
    *(undefined4 *)(puVar22 + -0xf0) = 0x1000;
LAB_0002e664:
    iVar2 = (**(code **)(puVar18 + 0x1bf60))(*(undefined4 *)(puVar22 + -0xf0));
    puVar20 = *(undefined **)(puVar22 + -0x110);
    *(int *)(puVar22 + -0x104) = iVar2;
    if (iVar2 == 0) {
      ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);
      goto LAB_0002e8a0;
    }
    goto LAB_0002e6bc;
  }
  puVar8 = (undefined4 *)(**(code **)(puVar18 + 0x1bf18))();
  puVar20 = *(undefined **)(puVar22 + -0x110);
  *puVar8 = 0x16;
  *(undefined4 *)(puVar22 + -0x104) = 0;
  goto LAB_0002e89c;
LAB_0002e984:
  if (bVar1) {
    if ((*piVar7 == iVar16) && (piVar7[1] == *(int *)(puVar22 + -0xf8))) {
      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);
    }
    else {
      if (*(int *)(puVar22 + -0xfc) == *(int *)(puVar22 + -0xf4)) goto LAB_0002e958;
      ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);
    }
  }
  else {
LAB_0002e91c:
    ppppuVar4 = (undefined4 ****)((int)piVar7 + 0x13);
  }
  *(undefined4 *)(puVar22 + -0x118) = 0x100;
  ppppuVar13 = ppppuVar12;
  iVar5 = (**(code **)(puVar20 + -0x7c30))(3,ppppuVar12,ppppuVar4,*(undefined4 *)(puVar22 + -0x108))
  ;
  puVar20 = *(undefined **)(puVar22 + -0x110);
  if (((iVar5 != 0) || ((*(uint *)(puVar22 + -0xb8) & 0xf000) != 0x4000)) ||
     ((*(int *)(puVar22 + -0xd0) != *(int *)(puVar22 + -0xfc) ||
      ((*(int *)(puVar22 + -0xc0) != iVar16 ||
       (*(int *)(puVar22 + -0xbc) != *(int *)(puVar22 + -0xf8))))))) goto LAB_0002e958;
  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - *(int *)(puVar22 + -0x104));
  param_3 = (undefined4 ****)(**(code **)(puVar20 + -0x7ca4))(ppppuVar4);
  puVar20 = *(undefined **)(puVar22 + -0x110);
  if (unaff_s2 <= param_3) {
    ppppuVar3 = *(undefined4 *****)(puVar22 + -0xf0);
    if (*(int *)(puVar22 + 4) != 0) {
      *piVar6 = 0x22;
      goto LAB_0002e864;
    }
    ppppuVar10 = ppppuVar3;
    if (ppppuVar3 < param_3) {
      ppppuVar10 = param_3;
    }
    ppppuVar17 = (undefined4 ****)((int)ppppuVar10 + (int)ppppuVar3);
    if (ppppuVar17 < ppppuVar3) goto LAB_0002eb28;
    ppppuVar13 = ppppuVar17;
    iVar5 = (**(code **)(puVar20 + -0x7c78))(*(undefined4 *)(puVar22 + -0x104));
    puVar20 = *(undefined **)(puVar22 + -0x110);
    if (iVar5 == 0) goto LAB_0002eb28;
    uVar23 = (**(code **)(puVar20 + -0x7be0))
                       (iVar5 + (int)ppppuVar10 + (int)unaff_s2,iVar5 + (int)unaff_s2,
                        *(int *)(puVar22 + -0xf0) - (int)unaff_s2);
    puVar20 = *(undefined **)(puVar22 + -0x110);
    *(undefined4 *)(puVar22 + -0xe0) = uVar23;
    *(undefined4 *****)(puVar22 + -0xf0) = ppppuVar17;
    *(int *)(puVar22 + -0x104) = iVar5;
  }
  unaff_s2 = (undefined4 ****)(*(int *)(puVar22 + -0xe0) - (int)param_3);
  (**(code **)(puVar20 + -0x7be0))(unaff_s2,ppppuVar4,param_3);
  iVar21 = *(int *)(puVar22 + -0x110);
  *(int *)(puVar22 + -0xe0) = (int)unaff_s2 + -1;
  *(undefined1 *)((int)unaff_s2 + -1) = 0x2f;
  iVar16 = *(int *)(puVar22 + -0xd8);
  *(undefined4 *)(puVar22 + -0xf8) = *(undefined4 *)(puVar22 + -0xd4);
  *(undefined4 *)(puVar22 + -0xfc) = *(undefined4 *)(puVar22 + -0xf4);
  goto LAB_0002e768;
LAB_0002eb28:
  *piVar6 = 0xc;
LAB_0002e864:
  ppppuVar3 = (undefined4 ****)*piVar6;
  param_3 = (undefined4 ****)0x0;
LAB_0002e86c:
  (**(code **)(puVar20 + -0x7d6c))(iVar2);
  puVar20 = *(undefined **)(puVar22 + -0x110);
LAB_0002e880:
  if (param_3 == (undefined4 ****)0x0) {
LAB_0002e888:
    iVar2 = *(int *)(puVar22 + -0x100);
  }
  else {
LAB_0002ec64:
    (**(code **)(puVar20 + -0x7d68))(ppppuVar12);
    puVar20 = *(undefined **)(puVar22 + -0x110);
    iVar2 = *(int *)(puVar22 + -0x100);
  }
  if (iVar2 == 0) {
    (**(code **)(puVar20 + -0x7bd8))(*(undefined4 *)(puVar22 + -0x104));
    puVar20 = *(undefined **)(puVar22 + -0x110);
    *piVar6 = (int)ppppuVar3;
  }
  else {
    *piVar6 = (int)ppppuVar3;
  }
  *(undefined4 *)(puVar22 + -0x104) = 0;
LAB_0002e89c:
  ppppuVar4 = *(undefined4 *****)(puVar22 + -0x104);
LAB_0002e8a0:
  ppppuVar12 = *(undefined4 *****)(puVar22 + -0x2c);
  if (ppppuVar12 != (undefined4 ****)**(int **)(puVar20 + -0x7be4)) {
    pcVar19 = *(code **)(puVar20 + -0x7c10);
    uVar23 = 0x2ecac;
    (*pcVar19)();
    *(undefined4 *)(puVar22 + -300) = uVar23;
    *(undefined4 *****)(puVar22 + -0x130) = unaff_s2;
    *(undefined4 *****)(puVar22 + -0x134) = param_3;
    *(undefined4 *****)(puVar22 + -0x138) = ppppuVar3;
    *(code **)(puVar22 + -0x140) = pcVar19 + 0x23530;
    if (ppppuVar12 == (undefined4 ****)0x0) {
      puVar8 = (undefined4 *)(**(code **)(pcVar19 + 0x1b868))();
      *puVar8 = 0x7a;
      ppppuVar12 = (undefined4 ****)0xffffffff;
    }
    else if (ppppuVar12 == (undefined4 ****)0xa) {
      pppuVar15 = *ppppuVar13;
      iVar2 = (**(code **)(pcVar19 + 0x1b988))(pppuVar15,*(int *)(pcVar19 + 0x1b568) + 0x58ac);
      if (iVar2 == 0) {
        (**(code **)(*(int *)(puVar22 + -0x140) + -0x7d34))(pppuVar15);
        iVar2 = *(int *)(puVar22 + -0x140);
        *ppppuVar13 = (undefined4 ***)0x0;
        puVar8 = (undefined4 *)(**(code **)(iVar2 + -0x7cc8))();
        *puVar8 = 0x3d;
        ppppuVar12 = (undefined4 ****)0xffffffff;
      }
    }
    return ppppuVar12;
  }
  return ppppuVar4;
}

