
_Bool elide_tail_lines_seekable
                (char *pretty_filename,int fd,uintmax_t n_lines,off_t start_pos,off_t size)

{
  char cVar1;
  undefined *puVar2;
  int *piVar3;
  byte extraout_var;
  uint uVar4;
  size_t sVar5;
  int iVar6;
  Copy_fd_status err;
  _Bool _Var12;
  uint *puVar7;
  char *pcVar8;
  int *piVar9;
  int *piVar10;
  int iVar11;
  int *piVar13;
  int iVar14;
  int whence;
  int iVar15;
  uint in_a2;
  uint in_a3;
  uint uVar16;
  undefined4 uVar17;
  undefined4 *puVar18;
  int *piVar19;
  char *unaff_s1;
  size_t count;
  uint uVar20;
  int iVar21;
  char *filename;
  code *pcVar22;
  undefined *puVar23;
  code *pcVar24;
  off_t oVar25;
  int aiStackY_20bc [14];
  undefined4 uStackY_2084;
  uint uStackY_2080;
  char *pcStackY_207c;
  size_t sStackY_2078;
  uint uStackY_2074;
  char *pcStackY_2070;
  code *pcStackY_206c;
  undefined4 uVar26;
  char cStack_202d;
  char buffer [8192];
  
  puVar23 = PTR___stack_chk_guard_0002d2dc;
  uVar4 = start_pos._4_4_ - n_lines._4_4_ & 0x1fff;
  whence = *(int *)PTR___stack_chk_guard_0002d2dc;
  if ((int)((start_pos._0_4_ - (int)n_lines._0_4_) -
           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)) < 0) {
    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;
  }
  count = 0x2000;
  if (uVar4 != 0) {
    count = uVar4;
  }
  uVar4 = start_pos._4_4_ - count;
  pcVar22 = (code *)(PTR_0002d104 + 0x2fbc);
  filename = (char *)(start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4));
  oVar25 = elseek(fd,ZEXT48(pretty_filename),whence,filename);
  if (-1 < oVar25) {
    unaff_s1 = buffer;
    sVar5 = safe_read(fd,unaff_s1,count);
    puVar2 = PTR_DAT_0002d0f8;
    if (sVar5 != 0xffffffff) {
      count = in_a2 | in_a3;
      uVar20 = uVar4;
      if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {
        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);
        in_a3 = in_a3 - 1;
      }
      do {
        uVar4 = uVar20;
        if (sVar5 != 0) {
          cVar1 = puVar2[-0x2cdf];
          uVar16 = in_a2;
          do {
            if (count == 0) {
              sVar5 = sVar5 - 1;
              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);
              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;
            }
            else {
              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);
              in_a2 = uVar16;
              if (iVar6 == 0) break;
              sVar5 = iVar6 - (int)unaff_s1;
              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);
              if (uVar16 == 0 && in_a3 == 0) {
LAB_000139ec:
                iVar6 = uVar16 - 1;
                if (((int)n_lines._0_4_ < (int)filename) ||
                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&
                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {
                  uVar26 = 0;
                  pcVar8 = pretty_filename;
                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);
                  in_a2 = n_lines._4_4_;
                  if (iVar6 < 0) goto LAB_00013b8c;
                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));
                  if (err != COPY_FD_OK) {
                    diagnose_copy_fd_failure(err,pretty_filename);
                    _Var12 = false;
                    goto LAB_00013b94;
                  }
                }
                xwrite_stdout(unaff_s1,sVar5 + 1);
                uVar20 = sVar5 + uVar20;
                filename = filename + (uVar20 < sVar5);
                (*pcVar22)(fd);
                _Var12 = (_Bool)((byte)~extraout_var >> 7);
                uVar4 = (uint)(uVar20 + 1 < uVar20);
                goto LAB_00013b94;
              }
            }
            in_a3 = in_a3 - 1;
            uVar16 = in_a2;
          } while (sVar5 != 0);
        }
        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;
        uVar4 = uVar20 - 0x2000;
        filename = filename + ((uVar4 < uVar20) - 1);
        iVar6 = (*pcVar22)(fd);
        if (iVar6 < 0) goto LAB_00013b8c;
        sVar5 = safe_read(fd,unaff_s1,0x2000);
        if (sVar5 == 0xffffffff) goto LAB_00013b28;
        _Var12 = true;
        uVar20 = uVar4;
      } while (sVar5 != 0);
      goto LAB_00013b94;
    }
LAB_00013b28:
    puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)();
    in_a2 = *puVar7;
    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);
    pcVar8 = quotearg_style(shell_escape_always_quoting_style,pretty_filename);
    (*(code *)PTR_error_0002d2a0)(0,in_a2,unaff_s1,pcVar8);
  }
LAB_00013b8c:
  _Var12 = false;
LAB_00013b94:
  if (whence == *(int *)puVar23) {
    return _Var12;
  }
  pcVar24 = usage;
  puVar23 = PTR___stack_chk_fail_0002d2c4;
  (*(code *)PTR___stack_chk_fail_0002d2c4)();
  uStackY_2084 = **(undefined4 **)(puVar23 + 0x19674);
  pcVar22 = *(code **)(puVar23 + 0x19660);
  uStackY_2080 = in_a2;
  pcStackY_207c = unaff_s1;
  sStackY_2078 = count;
  uStackY_2074 = uVar4;
  pcStackY_2070 = filename;
  pcStackY_206c = pcVar24;
  if (whence == 0) goto LAB_00013cf8;
  uVar17 = **(undefined4 **)(puVar23 + 0x19684);
  uVar26 = (*pcVar22)(0,*(int *)(puVar23 + 0x194a0) + -0x4f14,5);
  (**(code **)(puVar23 + 0x195c4))(uVar17,1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));
  do {
    pcVar22 = *(code **)(puVar23 + 0x19620);
    (*pcVar22)(whence);
LAB_00013cf8:
    puVar18 = *(undefined4 **)(puVar23 + 0x195f4);
    uVar26 = (*pcVar22)();
    (**(code **)(puVar23 + 0x195f0))(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5);
    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5);
    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5);
    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5);
    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5);
    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5);
    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5);
    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5);
    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);
    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5);
    piVar19 = aiStackY_20bc;
    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);
    iVar6 = *(int *)(puVar23 + 0x19490);
    piVar10 = (int *)(iVar6 + -0x2ff0);
    piVar3 = piVar19;
    do {
      piVar13 = piVar3;
      piVar9 = piVar10;
      piVar10 = piVar9 + 4;
      *piVar13 = *piVar9;
      iVar15 = piVar9[2];
      iVar14 = piVar9[3];
      piVar13[1] = piVar9[1];
      piVar13[2] = iVar15;
      piVar13[3] = iVar14;
      piVar3 = piVar13 + 4;
    } while (piVar10 != (int *)(iVar6 + -0x2fc0));
    iVar6 = piVar9[5];
    iVar14 = *(int *)(puVar23 + 0x194a0);
    piVar13[4] = *piVar10;
    piVar13[5] = iVar6;
    iVar6 = aiStackY_20bc[0];
    while (iVar6 != 0) {
      iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);
      if (iVar6 == 0) {
        iVar6 = *(int *)(puVar23 + 0x194a0);
        goto LAB_00013f44;
      }
      piVar19 = piVar19 + 2;
      iVar6 = *piVar19;
    }
    iVar6 = *(int *)(puVar23 + 0x194a0);
LAB_00013f44:
    iVar15 = piVar19[1];
    iVar21 = *(int *)(puVar23 + 0x194a0);
    if (iVar15 == 0) {
      uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);
      (**(code **)(puVar23 + 0x195f0))
                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);
      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);
      if ((iVar6 != 0) &&
         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),
         iVar6 != 0)) {
        iVar15 = iVar14 + -0x4f1c;
        iVar6 = iVar15;
LAB_00014148:
        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);
        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);
        goto LAB_00013fcc;
      }
      iVar15 = iVar14 + -0x4f1c;
      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);
      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);
      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);
      iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;
    }
    else {
      uVar26 = (**(code **)(puVar23 + 0x19660))();
      (**(code **)(puVar23 + 0x195f0))
                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);
      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);
      if (iVar6 == 0) {
        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;
      }
      else {
        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);
        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;
        if (iVar11 != 0) goto LAB_00014148;
      }
LAB_00013fcc:
      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);
      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);
      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);
      if (iVar15 == iVar6) {
        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;
      }
      else {
        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;
      }
    }
    (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar15,iVar6);
  } while( true );
}



uint FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,
                 uint param_6,int param_7,uint param_8)

{
  char cVar1;
  undefined *puVar2;
  int *piVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  uint *puVar8;
  undefined4 uVar9;
  int iVar10;
  int *piVar11;
  int *piVar12;
  int iVar13;
  int *piVar14;
  int iVar15;
  int iVar16;
  undefined4 uVar17;
  undefined4 *puVar18;
  int *piVar19;
  char *unaff_s1;
  uint uVar20;
  uint uVar21;
  int iVar22;
  code *pcVar23;
  undefined *puVar24;
  code *pcVar25;
  int aiStack_20bc [14];
  undefined4 uStack_2084;
  uint uStack_2080;
  char *pcStack_207c;
  uint uStack_2078;
  uint uStack_2074;
  int iStack_2070;
  code *pcStack_206c;
  undefined4 local_2058;
  undefined4 local_2054;
  char acStack_202d [8193];
  int local_2c;
  
  puVar24 = PTR___stack_chk_guard_0002d2dc;
  uVar4 = param_8 - param_6 & 0x1fff;
  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;
  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {
    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;
  }
  local_2058 = 0;
  uVar20 = 0x2000;
  if (uVar4 != 0) {
    uVar20 = uVar4;
  }
  uVar4 = param_8 - uVar20;
  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);
  param_7 = param_7 - (uint)(param_8 < uVar4);
  local_2054 = param_1;
  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);
  if (-1 < iVar5) {
    unaff_s1 = acStack_202d + 1;
    uVar6 = safe_read(param_2,unaff_s1,uVar20);
    puVar2 = PTR_DAT_0002d0f8;
    if (uVar6 != 0xffffffff) {
      uVar20 = param_3 | param_4;
      uVar21 = uVar4;
      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {
        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);
        param_4 = param_4 - 1;
      }
      do {
        uVar4 = uVar21;
        if (uVar6 != 0) {
          cVar1 = puVar2[-0x2cdf];
          uVar7 = param_3;
          do {
            if (uVar20 == 0) {
              uVar6 = uVar6 - 1;
              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);
              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;
            }
            else {
              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);
              param_3 = uVar7;
              if (iVar5 == 0) break;
              uVar6 = iVar5 - (int)unaff_s1;
              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);
              if (uVar7 == 0 && param_4 == 0) {
LAB_000139ec:
                iVar5 = uVar7 - 1;
                if ((param_5 < param_7) ||
                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))
                {
                  local_2058 = 0;
                  local_2054 = param_1;
                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);
                  param_3 = param_6;
                  if (iVar5 < 0) goto LAB_00013b8c;
                  iVar5 = FUN_000131f4(param_2);
                  if (iVar5 != 0) {
                    FUN_0001373c(iVar5,param_1);
                    uVar7 = 0;
                    goto LAB_00013b94;
                  }
                }
                FUN_00013118(unaff_s1,uVar6 + 1);
                uVar21 = uVar6 + uVar21;
                local_2058 = 0;
                param_7 = (uint)(uVar21 < uVar6) + param_7;
                local_2054 = param_1;
                uVar4 = (*pcVar23)(param_2);
                uVar7 = ~uVar4 >> 0x1f;
                uVar4 = (uint)(uVar21 + 1 < uVar21);
                goto LAB_00013b94;
              }
            }
            param_4 = param_4 - 1;
            uVar7 = param_3;
          } while (uVar6 != 0);
        }
        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;
        uVar4 = uVar21 - 0x2000;
        local_2058 = 0;
        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;
        local_2054 = param_1;
        iVar5 = (*pcVar23)(param_2);
        if (iVar5 < 0) goto LAB_00013b8c;
        uVar6 = safe_read(param_2,unaff_s1,0x2000);
        if (uVar6 == 0xffffffff) goto LAB_00013b28;
        uVar7 = 1;
        uVar21 = uVar4;
      } while (uVar6 != 0);
      goto LAB_00013b94;
    }
LAB_00013b28:
    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();
    param_3 = *puVar8;
    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);
    uVar9 = quotearg_style(4,param_1);
    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);
  }
LAB_00013b8c:
  uVar7 = 0;
LAB_00013b94:
  if (local_2c == *(int *)puVar24) {
    return uVar7;
  }
  pcVar25 = usage;
  iVar5 = local_2c;
  puVar24 = PTR___stack_chk_fail_0002d2c4;
  (*(code *)PTR___stack_chk_fail_0002d2c4)();
  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);
  pcVar23 = *(code **)(puVar24 + 0x19660);
  uStack_2080 = param_3;
  pcStack_207c = unaff_s1;
  uStack_2078 = uVar20;
  uStack_2074 = uVar4;
  iStack_2070 = param_7;
  pcStack_206c = pcVar25;
  if (iVar5 == 0) goto LAB_00013cf8;
  uVar17 = **(undefined4 **)(puVar24 + 0x19684);
  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);
  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));
  do {
    pcVar23 = *(code **)(puVar24 + 0x19620);
    (*pcVar23)(iVar5);
LAB_00013cf8:
    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);
    uVar9 = (*pcVar23)();
    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);
    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);
    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);
    piVar19 = aiStack_20bc;
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    iVar10 = *(int *)(puVar24 + 0x19490);
    piVar12 = (int *)(iVar10 + -0x2ff0);
    piVar3 = piVar19;
    do {
      piVar14 = piVar3;
      piVar11 = piVar12;
      piVar12 = piVar11 + 4;
      *piVar14 = *piVar11;
      iVar16 = piVar11[2];
      iVar15 = piVar11[3];
      piVar14[1] = piVar11[1];
      piVar14[2] = iVar16;
      piVar14[3] = iVar15;
      piVar3 = piVar14 + 4;
    } while (piVar12 != (int *)(iVar10 + -0x2fc0));
    iVar10 = piVar11[5];
    iVar15 = *(int *)(puVar24 + 0x194a0);
    piVar14[4] = *piVar12;
    piVar14[5] = iVar10;
    iVar10 = aiStack_20bc[0];
    while (iVar10 != 0) {
      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);
      if (iVar10 == 0) {
        iVar10 = *(int *)(puVar24 + 0x194a0);
        goto LAB_00013f44;
      }
      piVar19 = piVar19 + 2;
      iVar10 = *piVar19;
    }
    iVar10 = *(int *)(puVar24 + 0x194a0);
LAB_00013f44:
    iVar16 = piVar19[1];
    iVar22 = *(int *)(puVar24 + 0x194a0);
    if (iVar16 == 0) {
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);
      (**(code **)(puVar24 + 0x195f0))
                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);
      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);
      if ((iVar10 != 0) &&
         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),
         iVar10 != 0)) {
        iVar16 = iVar15 + -0x4f1c;
        iVar10 = iVar16;
LAB_00014148:
        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);
        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);
        goto LAB_00013fcc;
      }
      iVar16 = iVar15 + -0x4f1c;
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);
      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);
      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;
    }
    else {
      uVar9 = (**(code **)(puVar24 + 0x19660))();
      (**(code **)(puVar24 + 0x195f0))
                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);
      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);
      if (iVar10 == 0) {
        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;
      }
      else {
        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);
        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;
        if (iVar13 != 0) goto LAB_00014148;
      }
LAB_00013fcc:
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);
      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);
      if (iVar16 == iVar10) {
        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;
      }
      else {
        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;
      }
    }
    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);
  } while( true );
}


lui gp,0x2
addiu gp,gp,0x1870
addu gp,gp,t9
addiu sp,sp,-0x2068
lw v1,0x2084(sp)
lw v0,0x207c(sp)
sw s6,0x2058(sp)
sw s5,0x2054(sp)
or s5,a1,zero
sw s4,0x2050(sp)
sw v0,0x34(sp)
subu v0,v1,v0
sw a0,0x24(sp)
sw s0,0x2040(sp)
or s0,a2,zero
lw a1,-0x7df4(gp)
sltu a2,v1,v0
lw s6,0x2078(sp)
andi v0,v0,0x1fff
lw s4,0x2080(sp)
sw a1,0x2c(sp)
sw gp,0x18(sp)
subu a0,s4,s6
sw s7,0x205c(sp)
sw ra,0x2064(sp)
or s7,a3,zero
sw s8,0x2060(sp)
subu a0,a0,a2
sw s3,0x204c(sp)
sw s2,0x2048(sp)
sw s1,0x2044(sp)
lw a1,0x0(a1)
sw a1,0x203c(sp)
bgez a0,0x000138fc
_li s2,0x2000
addiu v0,v0,-0x1
li a0,-0x2000
or v0,v0,a0
addiu v0,v0,0x1
lw a0,0x24(sp)
sw zero,0x10(sp)
movn s2,v0,v0
lw v0,-0x7fcc(gp)
sw a0,0x14(sp)
or a0,s5,zero
subu s3,v1,s2
addiu t9,v0,0x2fbc
sltu v1,v1,s3
subu s4,s4,v1
sw t9,0x28(sp)
or a3,s3,zero
bal 0x00012fbc
_or a2,s4,zero
bltz v0,0x00013b8c
_lw gp,0x18(sp)
lw t9,-0x7fb4(gp)
addiu s1,sp,0x3c
or a2,s2,zero
or a1,s1,zero
bal 0x00016b00
_or a0,s5,zero
li v1,-0x1
lw gp,0x18(sp)
beq v0,v1,0x00013b28
_or t0,v0,zero
or s2,s0,s7
bne s2,zero,0x00013bd0
_nop
lw v0,-0x7fd8(gp)
sw v0,0x30(sp)
beq t0,zero,0x00013ab0
_lw v0,0x30(sp)
b 0x000139ac
_lb s8,-0x2cdf(v0)
addiu a1,s0,-0x1
sltu v0,v1,s7
or a0,s0,s7
addiu t0,t0,-0x1
beq a0,zero,0x000139ec
_addu t1,v0,a1
or s0,t1,zero
beq t0,zero,0x00013ab0
_or s7,v1,zero
beq s2,zero,0x00013988
_addiu v1,s7,-0x1
lw t9,-0x7e50(gp)
or a2,t0,zero
or a1,s8,zero
jalr t9
_or a0,s1,zero
beq v0,zero,0x00013ab0
_lw gp,0x18(sp)
addiu v1,s7,-0x1
addiu a1,s0,-0x1
subu t0,v0,s1
or a0,s0,s7
sltu v0,v1,s7
bne a0,zero,0x000139a0
_addu t1,v0,a1
slt v0,s6,s4
beq v0,zero,0x00013c0c
_nop
lw v0,0x24(sp)
or a2,s6,zero
lw s0,0x34(sp)
or a0,s5,zero
lw t9,0x28(sp)
sw t0,0x30(sp)
sw v0,0x14(sp)
or a3,s0,zero
jalr t9
_sw zero,0x10(sp)
bltz v0,0x00013b8c
_lw gp,0x18(sp)
lw t9,-0x7fcc(gp)
subu a3,s3,s0
subu s6,s4,s6
sltu a2,s3,a3
subu a2,s6,a2
addiu t9,t9,0x31f4
bal 0x000131f4
_or a0,s5,zero
lw gp,0x18(sp)
bne v0,zero,0x00013c2c
_lw t0,0x30(sp)
lw t9,-0x7fcc(gp)
addiu a1,t0,0x1
sw t0,0x30(sp)
addiu t9,t9,0x3118
bal 0x00013118
_or a0,s1,zero
or a0,s5,zero
lw t0,0x30(sp)
lw v0,0x24(sp)
lw t9,0x28(sp)
addu s3,t0,s3
sw zero,0x10(sp)
sw v0,0x14(sp)
sltu t0,s3,t0
addiu a3,s3,0x1
addu s4,t0,s4
sltu s3,a3,s3
jalr t9
_addu a2,s3,s4
nor v0,zero,v0
lw gp,0x18(sp)
b 0x00013b90
_srl v0,v0,0x1f
beq s4,s6,0x00013c4c
_lw v0,0x34(sp)
addiu v0,s3,-0x2000
lw v1,0x24(sp)
addiu s4,s4,-0x1
lw t9,0x28(sp)
sltu s3,v0,s3
sw zero,0x10(sp)
addu s4,s3,s4
sw v1,0x14(sp)
or a3,v0,zero
or a2,s4,zero
or a0,s5,zero
jalr t9
_or s3,v0,zero
bltz v0,0x00013b8c
_lw gp,0x18(sp)
lw t9,-0x7fb4(gp)
li a2,0x2000
or a1,s1,zero
bal 0x00016b00
_or a0,s5,zero
or t0,v0,zero
li v0,-0x1
beq t0,v0,0x00013b28
_lw gp,0x18(sp)
bne t0,zero,0x00013978
_li v0,0x1
b 0x00013b94
_lw v1,0x2c(sp)
lw t9,-0x7e6c(gp)
jalr t9
_nop
li a2,0x5
lw gp,0x18(sp)
or a0,zero,zero
lw s0,0x0(v0)
lw a1,-0x7fc8(gp)
lw t9,-0x7e08(gp)
jalr t9
_addiu a1,a1,-0x4f50
li a0,0x4
lw gp,0x18(sp)
or s1,v0,zero
lw t9,-0x7fb8(gp)
bal 0x00016690
_lw a1,0x24(sp)
or a0,zero,zero
lw gp,0x18(sp)
or a3,v0,zero
or a2,s1,zero
lw t9,-0x7e30(gp)
jalr t9
_or a1,s0,zero
lw gp,0x18(sp)
or v0,zero,zero
lw v1,0x2c(sp)
lw a0,0x203c(sp)
lw v1,0x0(v1)
bne a0,v1,0x00013c5c
_lw ra,0x2064(sp)
lw s8,0x2060(sp)
lw s7,0x205c(sp)
lw s6,0x2058(sp)
lw s5,0x2054(sp)
lw s4,0x2050(sp)
lw s3,0x204c(sp)
lw s2,0x2048(sp)
lw s1,0x2044(sp)
lw s0,0x2040(sp)
jr ra
_addiu sp,sp,0x2068
beq v0,zero,0x00013974
_lw v0,-0x7fd8(gp)
addiu v0,sp,0x2040
addu v0,v0,t0
lb v1,-0x2005(v0)
lw v0,-0x7fd8(gp)
lb v0,-0x2cdf(v0)
beq v1,v0,0x00013974
_lw v0,-0x7fd8(gp)
addiu a0,s7,-0x1
addiu s0,s0,-0x1
sltu t1,a0,s7
addu s0,t1,s0
b 0x00013974
_or s7,a0,zero
bne s4,s6,0x00013a58
_lw t9,-0x7fcc(gp)
lw v0,0x34(sp)
sltu v0,v0,s3
bne v0,zero,0x000139f8
_addiu a1,t0,0x1
b 0x00013a5c
_nop
lw t9,-0x7fcc(gp)
or a0,v0,zero
addiu t9,t9,0x373c
bal 0x0001373c
_lw a1,0x24(sp)
or v0,zero,zero
b 0x00013b90
_lw gp,0x18(sp)
bne s3,v0,0x00013ab8
_li v0,0x1
b 0x00013b94
_lw v1,0x2c(sp)
lw t9,-0x7e0c(gp)
jalr t9
_nop
(translation_unit "uint FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  int aiStack_20bc [14];\n  undefined4 uStack_2084;\n  uint uStack_2080;\n  char *pcStack_207c;\n  uint uStack_2078;\n  uint uStack_2074;\n  int iStack_2070;\n  code *pcStack_206c;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  char acStack_202d [8193];\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = param_8 - param_6 & 0x1fff;\n  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  local_2058 = 0;\n  uVar20 = 0x2000;\n  if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }\n  uVar4 = param_8 - uVar20;\n  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);\n  param_7 = param_7 - (uint)(param_8 < uVar4);\n  local_2054 = param_1;\n  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);\n  if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }\nLAB_00013b8c:\n  uVar7 = 0;\nLAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }\n  pcVar25 = usage;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);\n  pcVar23 = *(code **)(puVar24 + 0x19660);\n  uStack_2080 = param_3;\n  pcStack_207c = unaff_s1;\n  uStack_2078 = uVar20;\n  uStack_2074 = uVar4;\n  iStack_2070 = param_7;\n  pcStack_206c = pcVar25;\n  if (iVar5 == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar24 + 0x19684);\n  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n  do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );\n}\n\n" (function_definition "uint FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  int aiStack_20bc [14];\n  undefined4 uStack_2084;\n  uint uStack_2080;\n  char *pcStack_207c;\n  uint uStack_2078;\n  uint uStack_2074;\n  int iStack_2070;\n  code *pcStack_206c;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  char acStack_202d [8193];\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = param_8 - param_6 & 0x1fff;\n  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  local_2058 = 0;\n  uVar20 = 0x2000;\n  if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }\n  uVar4 = param_8 - uVar20;\n  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);\n  param_7 = param_7 - (uint)(param_8 < uVar4);\n  local_2054 = param_1;\n  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);\n  if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }\nLAB_00013b8c:\n  uVar7 = 0;\nLAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }\n  pcVar25 = usage;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);\n  pcVar23 = *(code **)(puVar24 + 0x19660);\n  uStack_2080 = param_3;\n  pcStack_207c = unaff_s1;\n  uStack_2078 = uVar20;\n  uStack_2074 = uVar4;\n  iStack_2070 = param_7;\n  pcStack_206c = pcVar25;\n  if (iVar5 == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar24 + 0x19684);\n  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n  do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );\n}" type_identifier (function_declarator "FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "uint param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint param_8" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  int aiStack_20bc [14];\n  undefined4 uStack_2084;\n  uint uStack_2080;\n  char *pcStack_207c;\n  uint uStack_2078;\n  uint uStack_2074;\n  int iStack_2070;\n  code *pcStack_206c;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  char acStack_202d [8193];\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = param_8 - param_6 & 0x1fff;\n  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  local_2058 = 0;\n  uVar20 = 0x2000;\n  if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }\n  uVar4 = param_8 - uVar20;\n  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);\n  param_7 = param_7 - (uint)(param_8 < uVar4);\n  local_2054 = param_1;\n  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);\n  if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }\nLAB_00013b8c:\n  uVar7 = 0;\nLAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }\n  pcVar25 = usage;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);\n  pcVar23 = *(code **)(puVar24 + 0x19660);\n  uStack_2080 = param_3;\n  pcStack_207c = unaff_s1;\n  uStack_2078 = uVar20;\n  uStack_2074 = uVar4;\n  iStack_2070 = param_7;\n  pcStack_206c = pcVar25;\n  if (iVar5 == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar24 + 0x19684);\n  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n  do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "char *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "int aiStack_20bc [14];" primitive_type (array_declarator "aiStack_20bc [14]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_2084;" type_identifier identifier ;) (declaration "uint uStack_2080;" type_identifier identifier ;) (declaration "char *pcStack_207c;" primitive_type (pointer_declarator "*pcStack_207c" * identifier) ;) (declaration "uint uStack_2078;" type_identifier identifier ;) (declaration "uint uStack_2074;" type_identifier identifier ;) (declaration "int iStack_2070;" primitive_type identifier ;) (declaration "code *pcStack_206c;" type_identifier (pointer_declarator "*pcStack_206c" * identifier) ;) (declaration "undefined4 local_2058;" type_identifier identifier ;) (declaration "undefined4 local_2054;" type_identifier identifier ;) (declaration "char acStack_202d [8193];" primitive_type (array_declarator "acStack_202d [8193]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar24 = PTR___stack_chk_guard_0002d2dc;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0002d2dc" identifier = identifier) ;) (expression_statement "uVar4 = param_8 - param_6 & 0x1fff;" (assignment_expression "uVar4 = param_8 - param_6 & 0x1fff" identifier = (binary_expression "param_8 - param_6 & 0x1fff" (binary_expression "param_8 - param_6" identifier - identifier) & number_literal)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0002d2dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0002d2dc" * (cast_expression "(int *)PTR___stack_chk_guard_0002d2dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }" if (parenthesized_expression "((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0)" ( (binary_expression "(int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0" (cast_expression "(int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_7 - param_5) - (uint)(param_8 < param_8 - param_6))" ( (binary_expression "(param_7 - param_5) - (uint)(param_8 < param_8 - param_6)" (parenthesized_expression "(param_7 - param_5)" ( (binary_expression "param_7 - param_5" identifier - identifier) )) - (call_expression "(uint)(param_8 < param_8 - param_6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_8 < param_8 - param_6)" ( (binary_expression "param_8 < param_8 - param_6" identifier < (binary_expression "param_8 - param_6" identifier - identifier)) )))) ))) < number_literal) )) (compound_statement "{\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }" { (expression_statement "uVar4 = (uVar4 - 1 | 0xffffe000) + 1;" (assignment_expression "uVar4 = (uVar4 - 1 | 0xffffe000) + 1" identifier = (binary_expression "(uVar4 - 1 | 0xffffe000) + 1" (parenthesized_expression "(uVar4 - 1 | 0xffffe000)" ( (binary_expression "uVar4 - 1 | 0xffffe000" (binary_expression "uVar4 - 1" identifier - number_literal) | number_literal) )) + number_literal)) ;) })) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = 0x2000;" (assignment_expression "uVar20 = 0x2000" identifier = number_literal) ;) (if_statement "if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar20 = uVar4;\n  }" { (expression_statement "uVar20 = uVar4;" (assignment_expression "uVar20 = uVar4" identifier = identifier) ;) })) (expression_statement "uVar4 = param_8 - uVar20;" (assignment_expression "uVar4 = param_8 - uVar20" identifier = (binary_expression "param_8 - uVar20" identifier - identifier)) ;) (expression_statement "pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);" (assignment_expression "pcVar23 = (code *)(PTR_0002d104 + 0x2fbc)" identifier = (cast_expression "(code *)(PTR_0002d104 + 0x2fbc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0002d104 + 0x2fbc)" ( (binary_expression "PTR_0002d104 + 0x2fbc" identifier + number_literal) )))) ;) (expression_statement "param_7 = param_7 - (uint)(param_8 < uVar4);" (assignment_expression "param_7 = param_7 - (uint)(param_8 < uVar4)" identifier = (binary_expression "param_7 - (uint)(param_8 < uVar4)" identifier - (call_expression "(uint)(param_8 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_8 < uVar4)" ( (binary_expression "param_8 < uVar4" identifier < identifier) ))))) ;) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" identifier = identifier) ;) (expression_statement "iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);" (assignment_expression "iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4)" identifier = (call_expression "FUN_00012fbc(param_2,local_2c,param_7,uVar4)" identifier (argument_list "(param_2,local_2c,param_7,uVar4)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }" { (expression_statement "unaff_s1 = acStack_202d + 1;" (assignment_expression "unaff_s1 = acStack_202d + 1" identifier = (binary_expression "acStack_202d + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = safe_read(param_2,unaff_s1,uVar20);" (assignment_expression "uVar6 = safe_read(param_2,unaff_s1,uVar20)" identifier = (call_expression "safe_read(param_2,unaff_s1,uVar20)" identifier (argument_list "(param_2,unaff_s1,uVar20)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar2 = PTR_DAT_0002d0f8;" (assignment_expression "puVar2 = PTR_DAT_0002d0f8" identifier = identifier) ;) (if_statement "if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }" if (parenthesized_expression "(uVar6 != 0xffffffff)" ( (binary_expression "uVar6 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }" { (expression_statement "uVar20 = param_3 | param_4;" (assignment_expression "uVar20 = param_3 | param_4" identifier = (binary_expression "param_3 | param_4" identifier | identifier)) ;) (expression_statement "uVar21 = uVar4;" (assignment_expression "uVar21 = uVar4" identifier = identifier) ;) (if_statement "if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }" if (parenthesized_expression "(((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf]))" ( (binary_expression "((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])" (parenthesized_expression "((uVar20 != 0) && (uVar6 != 0))" ( (binary_expression "(uVar20 != 0) && (uVar6 != 0)" (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])" ( (binary_expression "acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf]" (subscript_expression "acStack_202d[uVar6]" identifier [ identifier ]) != (subscript_expression "PTR_DAT_0002d0f8[-0x2cdf]" identifier [ number_literal ])) ))) )) (compound_statement "{\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }" { (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1)" identifier = (binary_expression "(uint)(param_4 - 1 < param_4) + (param_3 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 - 1 < param_4)" ( (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) )))) ;) (expression_statement "param_4 = param_4 - 1;" (assignment_expression "param_4 = param_4 - 1" identifier = (binary_expression "param_4 - 1" identifier - number_literal)) ;) })) (do_statement "do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);" do (compound_statement "{\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      }" { (expression_statement "uVar4 = uVar21;" (assignment_expression "uVar4 = uVar21" identifier = identifier) ;) (if_statement "if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }" { (expression_statement "cVar1 = puVar2[-0x2cdf];" (assignment_expression "cVar1 = puVar2[-0x2cdf]" identifier = (subscript_expression "puVar2[-0x2cdf]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" identifier = identifier) ;) (do_statement "do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);" do (compound_statement "{\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          }" { (if_statement "if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }" { (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1)" identifier = (binary_expression "(uint)(param_4 - 1 < param_4) + (uVar7 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 - 1 < param_4)" ( (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;" if (parenthesized_expression "(uVar7 == 0 && param_4 == 0)" ( (binary_expression "uVar7 == 0 && param_4 == 0" (binary_expression "uVar7 == 0" identifier == number_literal) && (binary_expression "param_4 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_000139ec;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" else (compound_statement "{\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" { (expression_statement "iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);" (assignment_expression "iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6)" identifier = (call_expression "(*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6)" (parenthesized_expression "(*(code *)PTR_memrchr_0002d280)" ( (pointer_expression "*(code *)PTR_memrchr_0002d280" * (cast_expression "(code *)PTR_memrchr_0002d280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1,(int)cVar1,uVar6)" ( identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "param_3 = uVar7;" (assignment_expression "param_3 = uVar7" identifier = identifier) ;) (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = iVar5 - (int)unaff_s1;" (assignment_expression "uVar6 = iVar5 - (int)unaff_s1" identifier = (binary_expression "iVar5 - (int)unaff_s1" identifier - (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1)" identifier = (binary_expression "(uint)(param_4 - 1 < param_4) + (uVar7 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 - 1 < param_4)" ( (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }" if (parenthesized_expression "(uVar7 == 0 && param_4 == 0)" ( (binary_expression "uVar7 == 0 && param_4 == 0" (binary_expression "uVar7 == 0" identifier == number_literal) && (binary_expression "param_4 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }" { (labeled_statement "LAB_000139ec:\n                iVar5 = uVar7 - 1;" statement_identifier : (expression_statement "iVar5 = uVar7 - 1;" (assignment_expression "iVar5 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;)) (if_statement "if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }" if (parenthesized_expression "((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))" ( (binary_expression "(param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)))" (parenthesized_expression "(param_5 < param_7)" ( (binary_expression "param_5 < param_7" identifier < identifier) )) || (parenthesized_expression "((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)))" ( (parenthesized_expression "(param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))" ( (comma_expression "param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)" (assignment_expression "param_3 = uVar7" identifier = identifier) , (binary_expression "param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)" (binary_expression "param_7 == param_5" identifier == identifier) && (parenthesized_expression "(iVar5 = uVar6 + 1, param_6 < uVar21)" ( (comma_expression "iVar5 = uVar6 + 1, param_6 < uVar21" (assignment_expression "iVar5 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) , (binary_expression "param_6 < uVar21" identifier < identifier)) )))) )) ))) )) (compound_statement "{\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }" { (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" identifier = number_literal) ;) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" identifier = identifier) ;) (expression_statement "iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);" (assignment_expression "iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6)" identifier = (call_expression "(*pcVar23)(param_2,iVar5,param_5,param_6)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_2,iVar5,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_3 = param_6;" (assignment_expression "param_3 = param_6" identifier = identifier) ;) (if_statement "if (iVar5 < 0) goto LAB_00013b8c;" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00013b8c;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_000131f4(param_2);" (assignment_expression "iVar5 = FUN_000131f4(param_2)" identifier = (call_expression "FUN_000131f4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }" { (expression_statement "FUN_0001373c(iVar5,param_1);" (call_expression "FUN_0001373c(iVar5,param_1)" identifier (argument_list "(iVar5,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) })) (expression_statement "FUN_00013118(unaff_s1,uVar6 + 1);" (call_expression "FUN_00013118(unaff_s1,uVar6 + 1)" identifier (argument_list "(unaff_s1,uVar6 + 1)" ( identifier , (binary_expression "uVar6 + 1" identifier + number_literal) ))) ;) (expression_statement "uVar21 = uVar6 + uVar21;" (assignment_expression "uVar21 = uVar6 + uVar21" identifier = (binary_expression "uVar6 + uVar21" identifier + identifier)) ;) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" identifier = number_literal) ;) (expression_statement "param_7 = (uint)(uVar21 < uVar6) + param_7;" (assignment_expression "param_7 = (uint)(uVar21 < uVar6) + param_7" identifier = (binary_expression "(uint)(uVar21 < uVar6) + param_7" (call_expression "(uint)(uVar21 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 < uVar6)" ( (binary_expression "uVar21 < uVar6" identifier < identifier) ))) + identifier)) ;) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" identifier = identifier) ;) (expression_statement "uVar4 = (*pcVar23)(param_2);" (assignment_expression "uVar4 = (*pcVar23)(param_2)" identifier = (call_expression "(*pcVar23)(param_2)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar7 = ~uVar4 >> 0x1f;" (assignment_expression "uVar7 = ~uVar4 >> 0x1f" identifier = (binary_expression "~uVar4 >> 0x1f" (unary_expression "~uVar4" ~ identifier) >> number_literal)) ;) (expression_statement "uVar4 = (uint)(uVar21 + 1 < uVar21);" (assignment_expression "uVar4 = (uint)(uVar21 + 1 < uVar21)" identifier = (call_expression "(uint)(uVar21 + 1 < uVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 + 1 < uVar21)" ( (binary_expression "uVar21 + 1 < uVar21" (binary_expression "uVar21 + 1" identifier + number_literal) < identifier) )))) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) }))) (expression_statement "param_4 = param_4 - 1;" (assignment_expression "param_4 = param_4 - 1" identifier = (binary_expression "param_4 - 1" identifier - number_literal)) ;) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" identifier = identifier) ;) }) while (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) ;) })) (if_statement "if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;" if (parenthesized_expression "((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6))" ( (binary_expression "(param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)" (parenthesized_expression "(param_7 == param_5)" ( (binary_expression "param_7 == param_5" identifier == identifier) )) && (parenthesized_expression "(uVar7 = 1, uVar21 == param_6)" ( (comma_expression "uVar7 = 1, uVar21 == param_6" (assignment_expression "uVar7 = 1" identifier = number_literal) , (binary_expression "uVar21 == param_6" identifier == identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = uVar21 - 0x2000;" (assignment_expression "uVar4 = uVar21 - 0x2000" identifier = (binary_expression "uVar21 - 0x2000" identifier - number_literal)) ;) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" identifier = number_literal) ;) (expression_statement "param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;" (assignment_expression "param_7 = (uint)(uVar4 < uVar21) + param_7 + -1" identifier = (binary_expression "(uint)(uVar4 < uVar21) + param_7 + -1" (binary_expression "(uint)(uVar4 < uVar21) + param_7" (call_expression "(uint)(uVar4 < uVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar21)" ( (binary_expression "uVar4 < uVar21" identifier < identifier) ))) + identifier) + number_literal)) ;) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" identifier = identifier) ;) (expression_statement "iVar5 = (*pcVar23)(param_2);" (assignment_expression "iVar5 = (*pcVar23)(param_2)" identifier = (call_expression "(*pcVar23)(param_2)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar5 < 0) goto LAB_00013b8c;" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00013b8c;" goto statement_identifier ;)) (expression_statement "uVar6 = safe_read(param_2,unaff_s1,0x2000);" (assignment_expression "uVar6 = safe_read(param_2,unaff_s1,0x2000)" identifier = (call_expression "safe_read(param_2,unaff_s1,0x2000)" identifier (argument_list "(param_2,unaff_s1,0x2000)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (uVar6 == 0xffffffff) goto LAB_00013b28;" if (parenthesized_expression "(uVar6 == 0xffffffff)" ( (binary_expression "uVar6 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00013b28;" goto statement_identifier ;)) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "uVar21 = uVar4;" (assignment_expression "uVar21 = uVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) (labeled_statement "LAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();" statement_identifier : (expression_statement "puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();" (assignment_expression "puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)()" identifier = (cast_expression "(uint *)(*(code *)PTR___errno_location_0002d264)()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002d264)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002d264)" ( (pointer_expression "*(code *)PTR___errno_location_0002d264" * (cast_expression "(code *)PTR___errno_location_0002d264" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "param_3 = *puVar8;" (assignment_expression "param_3 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);" (assignment_expression "unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0002d2c8)" ( (pointer_expression "*(code *)PTR_dcgettext_0002d2c8" * (cast_expression "(code *)PTR_dcgettext_0002d2c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0002d108 + -0x4f50,5)" ( number_literal , (binary_expression "PTR_DAT_0002d108 + -0x4f50" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar9 = quotearg_style(4,param_1);" (assignment_expression "uVar9 = quotearg_style(4,param_1)" identifier = (call_expression "quotearg_style(4,param_1)" identifier (argument_list "(4,param_1)" ( number_literal , identifier )))) ;) (expression_statement "(*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);" (call_expression "(*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9)" (parenthesized_expression "(*(code *)PTR_error_0002d2a0)" ( (pointer_expression "*(code *)PTR_error_0002d2a0" * (cast_expression "(code *)PTR_error_0002d2a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,param_3,unaff_s1,uVar9)" ( number_literal , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00013b8c:\n  uVar7 = 0;" statement_identifier : (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar24)" ( (binary_expression "local_2c == *(int *)puVar24" identifier == (pointer_expression "*(int *)puVar24" * (cast_expression "(int *)puVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) }))) (expression_statement "pcVar25 = usage;" (assignment_expression "pcVar25 = usage" identifier = identifier) ;) (expression_statement "iVar5 = local_2c;" (assignment_expression "iVar5 = local_2c" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_0002d2c4;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0002d2c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002d2c4)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002d2c4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002d2c4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002d2c4" * (cast_expression "(code *)PTR___stack_chk_fail_0002d2c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);" (assignment_expression "uStack_2084 = **(undefined4 **)(puVar24 + 0x19674)" identifier = (pointer_expression "**(undefined4 **)(puVar24 + 0x19674)" * (pointer_expression "*(undefined4 **)(puVar24 + 0x19674)" * (cast_expression "(undefined4 **)(puVar24 + 0x19674)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19674)" ( (binary_expression "puVar24 + 0x19674" identifier + number_literal) )))))) ;) (expression_statement "pcVar23 = *(code **)(puVar24 + 0x19660);" (assignment_expression "pcVar23 = *(code **)(puVar24 + 0x19660)" identifier = (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) ;) (expression_statement "uStack_2080 = param_3;" (assignment_expression "uStack_2080 = param_3" identifier = identifier) ;) (expression_statement "pcStack_207c = unaff_s1;" (assignment_expression "pcStack_207c = unaff_s1" identifier = identifier) ;) (expression_statement "uStack_2078 = uVar20;" (assignment_expression "uStack_2078 = uVar20" identifier = identifier) ;) (expression_statement "uStack_2074 = uVar4;" (assignment_expression "uStack_2074 = uVar4" identifier = identifier) ;) (expression_statement "iStack_2070 = param_7;" (assignment_expression "iStack_2070 = param_7" identifier = identifier) ;) (expression_statement "pcStack_206c = pcVar25;" (assignment_expression "pcStack_206c = pcVar25" identifier = identifier) ;) (if_statement "if (iVar5 == 0) goto LAB_00013cf8;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013cf8;" goto statement_identifier ;)) (expression_statement "uVar17 = **(undefined4 **)(puVar24 + 0x19684);" (assignment_expression "uVar17 = **(undefined4 **)(puVar24 + 0x19684)" identifier = (pointer_expression "**(undefined4 **)(puVar24 + 0x19684)" * (pointer_expression "*(undefined4 **)(puVar24 + 0x19684)" * (cast_expression "(undefined4 **)(puVar24 + 0x19684)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19684)" ( (binary_expression "puVar24 + 0x19684" identifier + number_literal) )))))) ;) (expression_statement "uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);" (assignment_expression "uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" identifier = (call_expression "(*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));" (call_expression "(**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" (parenthesized_expression "(**(code **)(puVar24 + 0x195c4))" ( (pointer_expression "**(code **)(puVar24 + 0x195c4)" * (pointer_expression "*(code **)(puVar24 + 0x195c4)" * (cast_expression "(code **)(puVar24 + 0x195c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195c4)" ( (binary_expression "puVar24 + 0x195c4" identifier + number_literal) ))))) )) (argument_list "(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" ( identifier , number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar24 + 0x194b8)" * (pointer_expression "*(undefined4 **)(puVar24 + 0x194b8)" * (cast_expression "(undefined4 **)(puVar24 + 0x194b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x194b8)" ( (binary_expression "puVar24 + 0x194b8" identifier + number_literal) ))))) ))) ;) (do_statement "do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );" do (compound_statement "{\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  }" { (expression_statement "pcVar23 = *(code **)(puVar24 + 0x19620);" (assignment_expression "pcVar23 = *(code **)(puVar24 + 0x19620)" identifier = (pointer_expression "*(code **)(puVar24 + 0x19620)" * (cast_expression "(code **)(puVar24 + 0x19620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19620)" ( (binary_expression "puVar24 + 0x19620" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar23)(iVar5);" (call_expression "(*pcVar23)(iVar5)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(iVar5)" ( identifier ))) ;) (labeled_statement "LAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);" statement_identifier : (expression_statement "puVar18 = *(undefined4 **)(puVar24 + 0x195f4);" (assignment_expression "puVar18 = *(undefined4 **)(puVar24 + 0x195f4)" identifier = (pointer_expression "*(undefined4 **)(puVar24 + 0x195f4)" * (cast_expression "(undefined4 **)(puVar24 + 0x195f4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f4)" ( (binary_expression "puVar24 + 0x195f4" identifier + number_literal) ))))) ;)) (expression_statement "uVar9 = (*pcVar23)();" (assignment_expression "uVar9 = (*pcVar23)()" identifier = (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" ( number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar24 + 0x194b8)" * (pointer_expression "*(undefined4 **)(puVar24 + 0x194b8)" * (cast_expression "(undefined4 **)(puVar24 + 0x194b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x194b8)" ( (binary_expression "puVar24 + 0x194b8" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4ec8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4e40" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4e08" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4dbc" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4c2c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4ba8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b68" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b38" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b00" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "piVar19 = aiStack_20bc;" (assignment_expression "piVar19 = aiStack_20bc" identifier = identifier) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + 0x19490);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x19490)" identifier = (pointer_expression "*(int *)(puVar24 + 0x19490)" * (cast_expression "(int *)(puVar24 + 0x19490)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x19490)" ( (binary_expression "puVar24 + 0x19490" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = (int *)(iVar10 + -0x2ff0);" (assignment_expression "piVar12 = (int *)(iVar10 + -0x2ff0)" identifier = (cast_expression "(int *)(iVar10 + -0x2ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x2ff0)" ( (binary_expression "iVar10 + -0x2ff0" identifier + number_literal) )))) ;) (expression_statement "piVar3 = piVar19;" (assignment_expression "piVar3 = piVar19" identifier = identifier) ;) (do_statement "do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));" do (compound_statement "{\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    }" { (expression_statement "piVar14 = piVar3;" (assignment_expression "piVar14 = piVar3" identifier = identifier) ;) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" identifier = identifier) ;) (expression_statement "piVar12 = piVar11 + 4;" (assignment_expression "piVar12 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) (expression_statement "*piVar14 = *piVar11;" (assignment_expression "*piVar14 = *piVar11" (pointer_expression "*piVar14" * identifier) = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iVar16 = piVar11[2];" (assignment_expression "iVar16 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = piVar11[3];" (assignment_expression "iVar15 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (expression_statement "piVar14[1] = piVar11[1];" (assignment_expression "piVar14[1] = piVar11[1]" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "piVar14[2] = iVar16;" (assignment_expression "piVar14[2] = iVar16" (subscript_expression "piVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar14[3] = iVar15;" (assignment_expression "piVar14[3] = iVar15" (subscript_expression "piVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = piVar14 + 4;" (assignment_expression "piVar3 = piVar14 + 4" identifier = (binary_expression "piVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != (int *)(iVar10 + -0x2fc0))" ( (binary_expression "piVar12 != (int *)(iVar10 + -0x2fc0)" identifier != (cast_expression "(int *)(iVar10 + -0x2fc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x2fc0)" ( (binary_expression "iVar10 + -0x2fc0" identifier + number_literal) )))) )) ;) (expression_statement "iVar10 = piVar11[5];" (assignment_expression "iVar10 = piVar11[5]" identifier = (subscript_expression "piVar11[5]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar15 = *(int *)(puVar24 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) ))))) ;) (expression_statement "piVar14[4] = *piVar12;" (assignment_expression "piVar14[4] = *piVar12" (subscript_expression "piVar14[4]" identifier [ number_literal ]) = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "piVar14[5] = iVar10;" (assignment_expression "piVar14[5] = iVar10" (subscript_expression "piVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar10 = aiStack_20bc[0];" (assignment_expression "iVar10 = aiStack_20bc[0]" identifier = (subscript_expression "aiStack_20bc[0]" identifier [ number_literal ])) ;) (while_statement "while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }" while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }" { (expression_statement "iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c)" identifier = (call_expression "(**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x19698))" ( (pointer_expression "**(code **)(puVar24 + 0x19698)" * (pointer_expression "*(code **)(puVar24 + 0x19698)" * (cast_expression "(code **)(puVar24 + 0x19698)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19698)" ( (binary_expression "puVar24 + 0x19698" identifier + number_literal) ))))) )) (argument_list "(iVar15 + -0x4f1c)" ( (binary_expression "iVar15 + -0x4f1c" identifier + number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }" { (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00013f44;" goto statement_identifier ;) })) (expression_statement "piVar19 = piVar19 + 2;" (assignment_expression "piVar19 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "iVar10 = *piVar19;" (assignment_expression "iVar10 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) })) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00013f44:\n    iVar16 = piVar19[1];" statement_identifier : (expression_statement "iVar16 = piVar19[1];" (assignment_expression "iVar16 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;)) (expression_statement "iVar22 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar22 = *(int *)(puVar24 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }" { (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,iVar10 + -0x4a64,5)" ( number_literal , (binary_expression "iVar10 + -0x4a64" identifier + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);" (call_expression "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" ( number_literal , identifier , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a24" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar22 + -0x4a4c" identifier + number_literal) ))) ;) (expression_statement "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0)" identifier = (call_expression "(**(code **)(puVar24 + 0x195e0))(5,0)" (parenthesized_expression "(**(code **)(puVar24 + 0x195e0))" ( (pointer_expression "**(code **)(puVar24 + 0x195e0)" * (pointer_expression "*(code **)(puVar24 + 0x195e0)" * (cast_expression "(code **)(puVar24 + 0x195e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195e0)" ( (binary_expression "puVar24 + 0x195e0" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }" if (parenthesized_expression "((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0))" ( (binary_expression "(iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)" ( (comma_expression "iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" identifier = (call_expression "(**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (parenthesized_expression "(**(code **)(puVar24 + 0x195b8))" ( (pointer_expression "**(code **)(puVar24 + 0x195b8)" * (pointer_expression "*(code **)(puVar24 + 0x195b8)" * (cast_expression "(code **)(puVar24 + 0x195b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195b8)" ( (binary_expression "puVar24 + 0x195b8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" ( identifier , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }" { (expression_statement "iVar16 = iVar15 + -0x4f1c;" (assignment_expression "iVar16 = iVar15 + -0x4f1c" identifier = (binary_expression "iVar15 + -0x4f1c" identifier + number_literal)) ;) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" identifier = identifier) ;) (labeled_statement "LAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);" statement_identifier : (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a10" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,iVar15 + -0x4f1c)" ( number_literal , identifier , (binary_expression "iVar15 + -0x4f1c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00013fcc;" goto statement_identifier ;) })) (expression_statement "iVar16 = iVar15 + -0x4f1c;" (assignment_expression "iVar16 = iVar15 + -0x4f1c" identifier = (binary_expression "iVar15 + -0x4f1c" identifier + number_literal)) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49c8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,iVar22 + -0x4a4c,iVar16)" ( number_literal , identifier , (binary_expression "iVar22 + -0x4a4c" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49a8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x496c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" else (compound_statement "{\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" { (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))();" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))()" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))()" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);" (call_expression "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" ( number_literal , identifier , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a24" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar22 + -0x4a4c" identifier + number_literal) ))) ;) (expression_statement "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0)" identifier = (call_expression "(**(code **)(puVar24 + 0x195e0))(5,0)" (parenthesized_expression "(**(code **)(puVar24 + 0x195e0))" ( (pointer_expression "**(code **)(puVar24 + 0x195e0)" * (pointer_expression "*(code **)(puVar24 + 0x195e0)" * (cast_expression "(code **)(puVar24 + 0x195e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195e0)" ( (binary_expression "puVar24 + 0x195e0" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }" { (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f1c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" else (compound_statement "{\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" { (expression_statement "iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);" (assignment_expression "iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" identifier = (call_expression "(**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (parenthesized_expression "(**(code **)(puVar24 + 0x195b8))" ( (pointer_expression "**(code **)(puVar24 + 0x195b8)" * (pointer_expression "*(code **)(puVar24 + 0x195b8)" * (cast_expression "(code **)(puVar24 + 0x195b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195b8)" ( (binary_expression "puVar24 + 0x195b8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" ( identifier , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f1c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar13 != 0) goto LAB_00014148;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014148;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" statement_identifier : (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49c8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c)" ( number_literal , identifier , (binary_expression "iVar22 + -0x4a4c" identifier + number_literal) , (binary_expression "iVar15 + -0x4f1c" identifier + number_literal) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49a8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" if (parenthesized_expression "(iVar16 == iVar10)" ( (binary_expression "iVar16 == iVar10" identifier == identifier) )) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }" { (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x496c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" else (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" { (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x3858" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,iVar16,iVar10)" ( number_literal , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "_Bool elide_tail_lines_seekable\n                (char *pretty_filename,int fd,uintmax_t n_lines,off_t start_pos,off_t size)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte extraout_var;\n  uint uVar4;\n  size_t sVar5;\n  int iVar6;\n  Copy_fd_status err;\n  _Bool _Var12;\n  uint *puVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar13;\n  int iVar14;\n  int whence;\n  int iVar15;\n  uint in_a2;\n  uint in_a3;\n  uint uVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  size_t count;\n  uint uVar20;\n  int iVar21;\n  char *filename;\n  code *pcVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  off_t oVar25;\n  int aiStackY_20bc [14];\n  undefined4 uStackY_2084;\n  uint uStackY_2080;\n  char *pcStackY_207c;\n  size_t sStackY_2078;\n  uint uStackY_2074;\n  char *pcStackY_2070;\n  code *pcStackY_206c;\n  undefined4 uVar26;\n  char cStack_202d;\n  char buffer [8192];\n  \n  puVar23 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = start_pos._4_4_ - n_lines._4_4_ & 0x1fff;\n  whence = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  count = 0x2000;\n  if (uVar4 != 0) {\n    count = uVar4;\n  }\n  uVar4 = start_pos._4_4_ - count;\n  pcVar22 = (code *)(PTR_0002d104 + 0x2fbc);\n  filename = (char *)(start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4));\n  oVar25 = elseek(fd,ZEXT48(pretty_filename),whence,filename);\n  if (-1 < oVar25) {\n    unaff_s1 = buffer;\n    sVar5 = safe_read(fd,unaff_s1,count);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (sVar5 != 0xffffffff) {\n      count = in_a2 | in_a3;\n      uVar20 = uVar4;\n      if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }\n      do {\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      } while (sVar5 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    in_a2 = *puVar7;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    pcVar8 = quotearg_style(shell_escape_always_quoting_style,pretty_filename);\n    (*(code *)PTR_error_0002d2a0)(0,in_a2,unaff_s1,pcVar8);\n  }\nLAB_00013b8c:\n  _Var12 = false;\nLAB_00013b94:\n  if (whence == *(int *)puVar23) {\n    return _Var12;\n  }\n  pcVar24 = usage;\n  puVar23 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStackY_2084 = **(undefined4 **)(puVar23 + 0x19674);\n  pcVar22 = *(code **)(puVar23 + 0x19660);\n  uStackY_2080 = in_a2;\n  pcStackY_207c = unaff_s1;\n  sStackY_2078 = count;\n  uStackY_2074 = uVar4;\n  pcStackY_2070 = filename;\n  pcStackY_206c = pcVar24;\n  if (whence == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar23 + 0x19684);\n  uVar26 = (*pcVar22)(0,*(int *)(puVar23 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar23 + 0x195c4))(uVar17,1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));\n  do {\n    pcVar22 = *(code **)(puVar23 + 0x19620);\n    (*pcVar22)(whence);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar23 + 0x195f4);\n    uVar26 = (*pcVar22)();\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStackY_20bc;\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    iVar6 = *(int *)(puVar23 + 0x19490);\n    piVar10 = (int *)(iVar6 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar13 = piVar3;\n      piVar9 = piVar10;\n      piVar10 = piVar9 + 4;\n      *piVar13 = *piVar9;\n      iVar15 = piVar9[2];\n      iVar14 = piVar9[3];\n      piVar13[1] = piVar9[1];\n      piVar13[2] = iVar15;\n      piVar13[3] = iVar14;\n      piVar3 = piVar13 + 4;\n    } while (piVar10 != (int *)(iVar6 + -0x2fc0));\n    iVar6 = piVar9[5];\n    iVar14 = *(int *)(puVar23 + 0x194a0);\n    piVar13[4] = *piVar10;\n    piVar13[5] = iVar6;\n    iVar6 = aiStackY_20bc[0];\n    while (iVar6 != 0) {\n      iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar6 = *piVar19;\n    }\n    iVar6 = *(int *)(puVar23 + 0x194a0);\nLAB_00013f44:\n    iVar15 = piVar19[1];\n    iVar21 = *(int *)(puVar23 + 0x194a0);\n    if (iVar15 == 0) {\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if ((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)) {\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar15 = iVar14 + -0x4f1c;\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar26 = (**(code **)(puVar23 + 0x19660))();\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar15,iVar6);\n  } while( true );\n}\n\n" (function_definition "_Bool elide_tail_lines_seekable\n                (char *pretty_filename,int fd,uintmax_t n_lines,off_t start_pos,off_t size)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte extraout_var;\n  uint uVar4;\n  size_t sVar5;\n  int iVar6;\n  Copy_fd_status err;\n  _Bool _Var12;\n  uint *puVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar13;\n  int iVar14;\n  int whence;\n  int iVar15;\n  uint in_a2;\n  uint in_a3;\n  uint uVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  size_t count;\n  uint uVar20;\n  int iVar21;\n  char *filename;\n  code *pcVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  off_t oVar25;\n  int aiStackY_20bc [14];\n  undefined4 uStackY_2084;\n  uint uStackY_2080;\n  char *pcStackY_207c;\n  size_t sStackY_2078;\n  uint uStackY_2074;\n  char *pcStackY_2070;\n  code *pcStackY_206c;\n  undefined4 uVar26;\n  char cStack_202d;\n  char buffer [8192];\n  \n  puVar23 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = start_pos._4_4_ - n_lines._4_4_ & 0x1fff;\n  whence = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  count = 0x2000;\n  if (uVar4 != 0) {\n    count = uVar4;\n  }\n  uVar4 = start_pos._4_4_ - count;\n  pcVar22 = (code *)(PTR_0002d104 + 0x2fbc);\n  filename = (char *)(start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4));\n  oVar25 = elseek(fd,ZEXT48(pretty_filename),whence,filename);\n  if (-1 < oVar25) {\n    unaff_s1 = buffer;\n    sVar5 = safe_read(fd,unaff_s1,count);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (sVar5 != 0xffffffff) {\n      count = in_a2 | in_a3;\n      uVar20 = uVar4;\n      if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }\n      do {\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      } while (sVar5 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    in_a2 = *puVar7;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    pcVar8 = quotearg_style(shell_escape_always_quoting_style,pretty_filename);\n    (*(code *)PTR_error_0002d2a0)(0,in_a2,unaff_s1,pcVar8);\n  }\nLAB_00013b8c:\n  _Var12 = false;\nLAB_00013b94:\n  if (whence == *(int *)puVar23) {\n    return _Var12;\n  }\n  pcVar24 = usage;\n  puVar23 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStackY_2084 = **(undefined4 **)(puVar23 + 0x19674);\n  pcVar22 = *(code **)(puVar23 + 0x19660);\n  uStackY_2080 = in_a2;\n  pcStackY_207c = unaff_s1;\n  sStackY_2078 = count;\n  uStackY_2074 = uVar4;\n  pcStackY_2070 = filename;\n  pcStackY_206c = pcVar24;\n  if (whence == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar23 + 0x19684);\n  uVar26 = (*pcVar22)(0,*(int *)(puVar23 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar23 + 0x195c4))(uVar17,1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));\n  do {\n    pcVar22 = *(code **)(puVar23 + 0x19620);\n    (*pcVar22)(whence);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar23 + 0x195f4);\n    uVar26 = (*pcVar22)();\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStackY_20bc;\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    iVar6 = *(int *)(puVar23 + 0x19490);\n    piVar10 = (int *)(iVar6 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar13 = piVar3;\n      piVar9 = piVar10;\n      piVar10 = piVar9 + 4;\n      *piVar13 = *piVar9;\n      iVar15 = piVar9[2];\n      iVar14 = piVar9[3];\n      piVar13[1] = piVar9[1];\n      piVar13[2] = iVar15;\n      piVar13[3] = iVar14;\n      piVar3 = piVar13 + 4;\n    } while (piVar10 != (int *)(iVar6 + -0x2fc0));\n    iVar6 = piVar9[5];\n    iVar14 = *(int *)(puVar23 + 0x194a0);\n    piVar13[4] = *piVar10;\n    piVar13[5] = iVar6;\n    iVar6 = aiStackY_20bc[0];\n    while (iVar6 != 0) {\n      iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar6 = *piVar19;\n    }\n    iVar6 = *(int *)(puVar23 + 0x194a0);\nLAB_00013f44:\n    iVar15 = piVar19[1];\n    iVar21 = *(int *)(puVar23 + 0x194a0);\n    if (iVar15 == 0) {\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if ((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)) {\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar15 = iVar14 + -0x4f1c;\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar26 = (**(code **)(puVar23 + 0x19660))();\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar15,iVar6);\n  } while( true );\n}" type_identifier (function_declarator "elide_tail_lines_seekable\n                (char *pretty_filename,int fd,uintmax_t n_lines,off_t start_pos,off_t size)" identifier (parameter_list "(char *pretty_filename,int fd,uintmax_t n_lines,off_t start_pos,off_t size)" ( (parameter_declaration "char *pretty_filename" primitive_type (pointer_declarator "*pretty_filename" * identifier)) , (parameter_declaration "int fd" primitive_type identifier) , (parameter_declaration "uintmax_t n_lines" type_identifier identifier) , (parameter_declaration "off_t start_pos" type_identifier identifier) , (parameter_declaration "off_t size" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte extraout_var;\n  uint uVar4;\n  size_t sVar5;\n  int iVar6;\n  Copy_fd_status err;\n  _Bool _Var12;\n  uint *puVar7;\n  char *pcVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int *piVar13;\n  int iVar14;\n  int whence;\n  int iVar15;\n  uint in_a2;\n  uint in_a3;\n  uint uVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  size_t count;\n  uint uVar20;\n  int iVar21;\n  char *filename;\n  code *pcVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  off_t oVar25;\n  int aiStackY_20bc [14];\n  undefined4 uStackY_2084;\n  uint uStackY_2080;\n  char *pcStackY_207c;\n  size_t sStackY_2078;\n  uint uStackY_2074;\n  char *pcStackY_2070;\n  code *pcStackY_206c;\n  undefined4 uVar26;\n  char cStack_202d;\n  char buffer [8192];\n  \n  puVar23 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = start_pos._4_4_ - n_lines._4_4_ & 0x1fff;\n  whence = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  count = 0x2000;\n  if (uVar4 != 0) {\n    count = uVar4;\n  }\n  uVar4 = start_pos._4_4_ - count;\n  pcVar22 = (code *)(PTR_0002d104 + 0x2fbc);\n  filename = (char *)(start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4));\n  oVar25 = elseek(fd,ZEXT48(pretty_filename),whence,filename);\n  if (-1 < oVar25) {\n    unaff_s1 = buffer;\n    sVar5 = safe_read(fd,unaff_s1,count);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (sVar5 != 0xffffffff) {\n      count = in_a2 | in_a3;\n      uVar20 = uVar4;\n      if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }\n      do {\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      } while (sVar5 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    in_a2 = *puVar7;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    pcVar8 = quotearg_style(shell_escape_always_quoting_style,pretty_filename);\n    (*(code *)PTR_error_0002d2a0)(0,in_a2,unaff_s1,pcVar8);\n  }\nLAB_00013b8c:\n  _Var12 = false;\nLAB_00013b94:\n  if (whence == *(int *)puVar23) {\n    return _Var12;\n  }\n  pcVar24 = usage;\n  puVar23 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStackY_2084 = **(undefined4 **)(puVar23 + 0x19674);\n  pcVar22 = *(code **)(puVar23 + 0x19660);\n  uStackY_2080 = in_a2;\n  pcStackY_207c = unaff_s1;\n  sStackY_2078 = count;\n  uStackY_2074 = uVar4;\n  pcStackY_2070 = filename;\n  pcStackY_206c = pcVar24;\n  if (whence == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar23 + 0x19684);\n  uVar26 = (*pcVar22)(0,*(int *)(puVar23 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar23 + 0x195c4))(uVar17,1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));\n  do {\n    pcVar22 = *(code **)(puVar23 + 0x19620);\n    (*pcVar22)(whence);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar23 + 0x195f4);\n    uVar26 = (*pcVar22)();\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStackY_20bc;\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    iVar6 = *(int *)(puVar23 + 0x19490);\n    piVar10 = (int *)(iVar6 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar13 = piVar3;\n      piVar9 = piVar10;\n      piVar10 = piVar9 + 4;\n      *piVar13 = *piVar9;\n      iVar15 = piVar9[2];\n      iVar14 = piVar9[3];\n      piVar13[1] = piVar9[1];\n      piVar13[2] = iVar15;\n      piVar13[3] = iVar14;\n      piVar3 = piVar13 + 4;\n    } while (piVar10 != (int *)(iVar6 + -0x2fc0));\n    iVar6 = piVar9[5];\n    iVar14 = *(int *)(puVar23 + 0x194a0);\n    piVar13[4] = *piVar10;\n    piVar13[5] = iVar6;\n    iVar6 = aiStackY_20bc[0];\n    while (iVar6 != 0) {\n      iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar6 = *piVar19;\n    }\n    iVar6 = *(int *)(puVar23 + 0x194a0);\nLAB_00013f44:\n    iVar15 = piVar19[1];\n    iVar21 = *(int *)(puVar23 + 0x194a0);\n    if (iVar15 == 0) {\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if ((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)) {\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar15 = iVar14 + -0x4f1c;\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar26 = (**(code **)(puVar23 + 0x19660))();\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar15,iVar6);\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "byte extraout_var;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "Copy_fd_status err;" type_identifier identifier ;) (declaration "_Bool _Var12;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int whence;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint in_a2;" type_identifier identifier ;) (declaration "uint in_a3;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "char *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "size_t count;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "char *filename;" primitive_type (pointer_declarator "*filename" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "off_t oVar25;" type_identifier identifier ;) (declaration "int aiStackY_20bc [14];" primitive_type (array_declarator "aiStackY_20bc [14]" identifier [ number_literal ]) ;) (declaration "undefined4 uStackY_2084;" type_identifier identifier ;) (declaration "uint uStackY_2080;" type_identifier identifier ;) (declaration "char *pcStackY_207c;" primitive_type (pointer_declarator "*pcStackY_207c" * identifier) ;) (declaration "size_t sStackY_2078;" primitive_type identifier ;) (declaration "uint uStackY_2074;" type_identifier identifier ;) (declaration "char *pcStackY_2070;" primitive_type (pointer_declarator "*pcStackY_2070" * identifier) ;) (declaration "code *pcStackY_206c;" type_identifier (pointer_declarator "*pcStackY_206c" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "char cStack_202d;" primitive_type identifier ;) (declaration "char buffer [8192];" primitive_type (array_declarator "buffer [8192]" identifier [ number_literal ]) ;) (expression_statement "puVar23 = PTR___stack_chk_guard_0002d2dc;" (assignment_expression "puVar23 = PTR___stack_chk_guard_0002d2dc" identifier = identifier) ;) (expression_statement "uVar4 = start_pos._4_4_ - n_lines._4_4_ & 0x1fff;" (assignment_expression "uVar4 = start_pos._4_4_ - n_lines._4_4_ & 0x1fff" identifier = (binary_expression "start_pos._4_4_ - n_lines._4_4_ & 0x1fff" (binary_expression "start_pos._4_4_ - n_lines._4_4_" (field_expression "start_pos._4_4_" identifier . field_identifier) - (field_expression "n_lines._4_4_" identifier . field_identifier)) & number_literal)) ;) (expression_statement "whence = *(int *)PTR___stack_chk_guard_0002d2dc;" (assignment_expression "whence = *(int *)PTR___stack_chk_guard_0002d2dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0002d2dc" * (cast_expression "(int *)PTR___stack_chk_guard_0002d2dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((int)((start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }" if (parenthesized_expression "((int)((start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)) < 0)" ( (binary_expression "(int)((start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)) < 0" (cast_expression "(int)((start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_))" ( (binary_expression "(start_pos._0_4_ - (int)n_lines._0_4_) -\n           (uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)" (parenthesized_expression "(start_pos._0_4_ - (int)n_lines._0_4_)" ( (binary_expression "start_pos._0_4_ - (int)n_lines._0_4_" (field_expression "start_pos._0_4_" identifier . field_identifier) - (cast_expression "(int)n_lines._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "n_lines._0_4_" identifier . field_identifier))) )) - (call_expression "(uint)(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_)" ( (binary_expression "start_pos._4_4_ < start_pos._4_4_ - n_lines._4_4_" (field_expression "start_pos._4_4_" identifier . field_identifier) < (binary_expression "start_pos._4_4_ - n_lines._4_4_" (field_expression "start_pos._4_4_" identifier . field_identifier) - (field_expression "n_lines._4_4_" identifier . field_identifier))) )))) ))) < number_literal) )) (compound_statement "{\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }" { (expression_statement "uVar4 = (uVar4 - 1 | 0xffffe000) + 1;" (assignment_expression "uVar4 = (uVar4 - 1 | 0xffffe000) + 1" identifier = (binary_expression "(uVar4 - 1 | 0xffffe000) + 1" (parenthesized_expression "(uVar4 - 1 | 0xffffe000)" ( (binary_expression "uVar4 - 1 | 0xffffe000" (binary_expression "uVar4 - 1" identifier - number_literal) | number_literal) )) + number_literal)) ;) })) (expression_statement "count = 0x2000;" (assignment_expression "count = 0x2000" identifier = number_literal) ;) (if_statement "if (uVar4 != 0) {\n    count = uVar4;\n  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    count = uVar4;\n  }" { (expression_statement "count = uVar4;" (assignment_expression "count = uVar4" identifier = identifier) ;) })) (expression_statement "uVar4 = start_pos._4_4_ - count;" (assignment_expression "uVar4 = start_pos._4_4_ - count" identifier = (binary_expression "start_pos._4_4_ - count" (field_expression "start_pos._4_4_" identifier . field_identifier) - identifier)) ;) (expression_statement "pcVar22 = (code *)(PTR_0002d104 + 0x2fbc);" (assignment_expression "pcVar22 = (code *)(PTR_0002d104 + 0x2fbc)" identifier = (cast_expression "(code *)(PTR_0002d104 + 0x2fbc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0002d104 + 0x2fbc)" ( (binary_expression "PTR_0002d104 + 0x2fbc" identifier + number_literal) )))) ;) (expression_statement "filename = (char *)(start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4));" (assignment_expression "filename = (char *)(start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4))" identifier = (cast_expression "(char *)(start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4))" ( (binary_expression "start_pos._0_4_ - (uint)(start_pos._4_4_ < uVar4)" (field_expression "start_pos._0_4_" identifier . field_identifier) - (call_expression "(uint)(start_pos._4_4_ < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(start_pos._4_4_ < uVar4)" ( (binary_expression "start_pos._4_4_ < uVar4" (field_expression "start_pos._4_4_" identifier . field_identifier) < identifier) )))) )))) ;) (expression_statement "oVar25 = elseek(fd,ZEXT48(pretty_filename),whence,filename);" (assignment_expression "oVar25 = elseek(fd,ZEXT48(pretty_filename),whence,filename)" identifier = (call_expression "elseek(fd,ZEXT48(pretty_filename),whence,filename)" identifier (argument_list "(fd,ZEXT48(pretty_filename),whence,filename)" ( identifier , (call_expression "ZEXT48(pretty_filename)" identifier (argument_list "(pretty_filename)" ( identifier ))) , identifier , identifier )))) ;) (if_statement "if (-1 < oVar25) {\n    unaff_s1 = buffer;\n    sVar5 = safe_read(fd,unaff_s1,count);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (sVar5 != 0xffffffff) {\n      count = in_a2 | in_a3;\n      uVar20 = uVar4;\n      if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }\n      do {\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      } while (sVar5 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    in_a2 = *puVar7;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    pcVar8 = quotearg_style(shell_escape_always_quoting_style,pretty_filename);\n    (*(code *)PTR_error_0002d2a0)(0,in_a2,unaff_s1,pcVar8);\n  }" if (parenthesized_expression "(-1 < oVar25)" ( (binary_expression "-1 < oVar25" number_literal < identifier) )) (compound_statement "{\n    unaff_s1 = buffer;\n    sVar5 = safe_read(fd,unaff_s1,count);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (sVar5 != 0xffffffff) {\n      count = in_a2 | in_a3;\n      uVar20 = uVar4;\n      if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }\n      do {\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      } while (sVar5 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    in_a2 = *puVar7;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    pcVar8 = quotearg_style(shell_escape_always_quoting_style,pretty_filename);\n    (*(code *)PTR_error_0002d2a0)(0,in_a2,unaff_s1,pcVar8);\n  }" { (expression_statement "unaff_s1 = buffer;" (assignment_expression "unaff_s1 = buffer" identifier = identifier) ;) (expression_statement "sVar5 = safe_read(fd,unaff_s1,count);" (assignment_expression "sVar5 = safe_read(fd,unaff_s1,count)" identifier = (call_expression "safe_read(fd,unaff_s1,count)" identifier (argument_list "(fd,unaff_s1,count)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar2 = PTR_DAT_0002d0f8;" (assignment_expression "puVar2 = PTR_DAT_0002d0f8" identifier = identifier) ;) (if_statement "if (sVar5 != 0xffffffff) {\n      count = in_a2 | in_a3;\n      uVar20 = uVar4;\n      if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }\n      do {\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      } while (sVar5 != 0);\n      goto LAB_00013b94;\n    }" if (parenthesized_expression "(sVar5 != 0xffffffff)" ( (binary_expression "sVar5 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      count = in_a2 | in_a3;\n      uVar20 = uVar4;\n      if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }\n      do {\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      } while (sVar5 != 0);\n      goto LAB_00013b94;\n    }" { (expression_statement "count = in_a2 | in_a3;" (assignment_expression "count = in_a2 | in_a3" identifier = (binary_expression "in_a2 | in_a3" identifier | identifier)) ;) (expression_statement "uVar20 = uVar4;" (assignment_expression "uVar20 = uVar4" identifier = identifier) ;) (if_statement "if (((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }" if (parenthesized_expression "(((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf]))" ( (binary_expression "((count != 0) && (sVar5 != 0)) && (buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])" (parenthesized_expression "((count != 0) && (sVar5 != 0))" ( (binary_expression "(count != 0) && (sVar5 != 0)" (parenthesized_expression "(count != 0)" ( (binary_expression "count != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar5 != 0)" ( (binary_expression "sVar5 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf])" ( (binary_expression "buffer[sVar5 - 1] != PTR_DAT_0002d0f8[-0x2cdf]" (subscript_expression "buffer[sVar5 - 1]" identifier [ (binary_expression "sVar5 - 1" identifier - number_literal) ]) != (subscript_expression "PTR_DAT_0002d0f8[-0x2cdf]" identifier [ number_literal ])) ))) )) (compound_statement "{\n        in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);\n        in_a3 = in_a3 - 1;\n      }" { (expression_statement "in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1);" (assignment_expression "in_a2 = (uint)(in_a3 - 1 < in_a3) + (in_a2 - 1)" identifier = (binary_expression "(uint)(in_a3 - 1 < in_a3) + (in_a2 - 1)" (call_expression "(uint)(in_a3 - 1 < in_a3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a3 - 1 < in_a3)" ( (binary_expression "in_a3 - 1 < in_a3" (binary_expression "in_a3 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(in_a2 - 1)" ( (binary_expression "in_a2 - 1" identifier - number_literal) )))) ;) (expression_statement "in_a3 = in_a3 - 1;" (assignment_expression "in_a3 = in_a3 - 1" identifier = (binary_expression "in_a3 - 1" identifier - number_literal)) ;) })) (do_statement "do {\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      } while (sVar5 != 0);" do (compound_statement "{\n        uVar4 = uVar20;\n        if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }\n        if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;\n        uVar4 = uVar20 - 0x2000;\n        filename = filename + ((uVar4 < uVar20) - 1);\n        iVar6 = (*pcVar22)(fd);\n        if (iVar6 < 0) goto LAB_00013b8c;\n        sVar5 = safe_read(fd,unaff_s1,0x2000);\n        if (sVar5 == 0xffffffff) goto LAB_00013b28;\n        _Var12 = true;\n        uVar20 = uVar4;\n      }" { (expression_statement "uVar4 = uVar20;" (assignment_expression "uVar4 = uVar20" identifier = identifier) ;) (if_statement "if (sVar5 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }" if (parenthesized_expression "(sVar5 != 0)" ( (binary_expression "sVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          cVar1 = puVar2[-0x2cdf];\n          uVar16 = in_a2;\n          do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);\n        }" { (expression_statement "cVar1 = puVar2[-0x2cdf];" (assignment_expression "cVar1 = puVar2[-0x2cdf]" identifier = (subscript_expression "puVar2[-0x2cdf]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = in_a2;" (assignment_expression "uVar16 = in_a2" identifier = identifier) ;) (do_statement "do {\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          } while (sVar5 != 0);" do (compound_statement "{\n            if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }\n            in_a3 = in_a3 - 1;\n            uVar16 = in_a2;\n          }" { (if_statement "if (count == 0) {\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }" if (parenthesized_expression "(count == 0)" ( (binary_expression "count == 0" identifier == number_literal) )) (compound_statement "{\n              sVar5 = sVar5 - 1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;\n            }" { (expression_statement "sVar5 = sVar5 - 1;" (assignment_expression "sVar5 = sVar5 - 1" identifier = (binary_expression "sVar5 - 1" identifier - number_literal)) ;) (expression_statement "in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);" (assignment_expression "in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1)" identifier = (binary_expression "(uint)(in_a3 - 1 < in_a3) + (uVar16 - 1)" (call_expression "(uint)(in_a3 - 1 < in_a3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a3 - 1 < in_a3)" ( (binary_expression "in_a3 - 1 < in_a3" (binary_expression "in_a3 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar16 - 1)" ( (binary_expression "uVar16 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar16 == 0 && in_a3 == 0) goto LAB_000139ec;" if (parenthesized_expression "(uVar16 == 0 && in_a3 == 0)" ( (binary_expression "uVar16 == 0 && in_a3 == 0" (binary_expression "uVar16 == 0" identifier == number_literal) && (binary_expression "in_a3 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_000139ec;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }" else (compound_statement "{\n              iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);\n              in_a2 = uVar16;\n              if (iVar6 == 0) break;\n              sVar5 = iVar6 - (int)unaff_s1;\n              in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);\n              if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }\n            }" { (expression_statement "iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5);" (assignment_expression "iVar6 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5)" identifier = (call_expression "(*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,sVar5)" (parenthesized_expression "(*(code *)PTR_memrchr_0002d280)" ( (pointer_expression "*(code *)PTR_memrchr_0002d280" * (cast_expression "(code *)PTR_memrchr_0002d280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1,(int)cVar1,sVar5)" ( identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "in_a2 = uVar16;" (assignment_expression "in_a2 = uVar16" identifier = identifier) ;) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar5 = iVar6 - (int)unaff_s1;" (assignment_expression "sVar5 = iVar6 - (int)unaff_s1" identifier = (binary_expression "iVar6 - (int)unaff_s1" identifier - (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1);" (assignment_expression "in_a2 = (uint)(in_a3 - 1 < in_a3) + (uVar16 - 1)" identifier = (binary_expression "(uint)(in_a3 - 1 < in_a3) + (uVar16 - 1)" (call_expression "(uint)(in_a3 - 1 < in_a3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a3 - 1 < in_a3)" ( (binary_expression "in_a3 - 1 < in_a3" (binary_expression "in_a3 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar16 - 1)" ( (binary_expression "uVar16 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar16 == 0 && in_a3 == 0) {\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }" if (parenthesized_expression "(uVar16 == 0 && in_a3 == 0)" ( (binary_expression "uVar16 == 0 && in_a3 == 0" (binary_expression "uVar16 == 0" identifier == number_literal) && (binary_expression "in_a3 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_000139ec:\n                iVar6 = uVar16 - 1;\n                if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }\n                xwrite_stdout(unaff_s1,sVar5 + 1);\n                uVar20 = sVar5 + uVar20;\n                filename = filename + (uVar20 < sVar5);\n                (*pcVar22)(fd);\n                _Var12 = (_Bool)((byte)~extraout_var >> 7);\n                uVar4 = (uint)(uVar20 + 1 < uVar20);\n                goto LAB_00013b94;\n              }" { (labeled_statement "LAB_000139ec:\n                iVar6 = uVar16 - 1;" statement_identifier : (expression_statement "iVar6 = uVar16 - 1;" (assignment_expression "iVar6 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;)) (if_statement "if (((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))) {\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }" if (parenthesized_expression "(((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20))))" ( (binary_expression "((int)n_lines._0_4_ < (int)filename) ||\n                   ((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))" (parenthesized_expression "((int)n_lines._0_4_ < (int)filename)" ( (binary_expression "(int)n_lines._0_4_ < (int)filename" (cast_expression "(int)n_lines._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "n_lines._0_4_" identifier . field_identifier)) < (cast_expression "(int)filename" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)))" ( (parenthesized_expression "(in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20))" ( (comma_expression "in_a2 = uVar16, filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)" (assignment_expression "in_a2 = uVar16" identifier = identifier) , (binary_expression "filename == n_lines._0_4_ &&\n                    (iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)" (binary_expression "filename == n_lines._0_4_" identifier == (field_expression "n_lines._0_4_" identifier . field_identifier)) && (parenthesized_expression "(iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20)" ( (comma_expression "iVar6 = sVar5 + 1, n_lines._4_4_ < uVar20" (assignment_expression "iVar6 = sVar5 + 1" identifier = (binary_expression "sVar5 + 1" identifier + number_literal)) , (binary_expression "n_lines._4_4_ < uVar20" (field_expression "n_lines._4_4_" identifier . field_identifier) < identifier)) )))) )) ))) )) (compound_statement "{\n                  uVar26 = 0;\n                  pcVar8 = pretty_filename;\n                  iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);\n                  in_a2 = n_lines._4_4_;\n                  if (iVar6 < 0) goto LAB_00013b8c;\n                  err = copy_fd(fd,CONCAT44(uVar26,pcVar8));\n                  if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }\n                }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = pretty_filename;" (assignment_expression "pcVar8 = pretty_filename" identifier = identifier) ;) (expression_statement "iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_);" (assignment_expression "iVar6 = (*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_)" identifier = (call_expression "(*pcVar22)(fd,iVar6,n_lines._0_4_,n_lines._4_4_)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(fd,iVar6,n_lines._0_4_,n_lines._4_4_)" ( identifier , identifier , (field_expression "n_lines._0_4_" identifier . field_identifier) , (field_expression "n_lines._4_4_" identifier . field_identifier) )))) ;) (expression_statement "in_a2 = n_lines._4_4_;" (assignment_expression "in_a2 = n_lines._4_4_" identifier = (field_expression "n_lines._4_4_" identifier . field_identifier)) ;) (if_statement "if (iVar6 < 0) goto LAB_00013b8c;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00013b8c;" goto statement_identifier ;)) (expression_statement "err = copy_fd(fd,CONCAT44(uVar26,pcVar8));" (assignment_expression "err = copy_fd(fd,CONCAT44(uVar26,pcVar8))" identifier = (call_expression "copy_fd(fd,CONCAT44(uVar26,pcVar8))" identifier (argument_list "(fd,CONCAT44(uVar26,pcVar8))" ( identifier , (call_expression "CONCAT44(uVar26,pcVar8)" identifier (argument_list "(uVar26,pcVar8)" ( identifier , identifier ))) )))) ;) (if_statement "if (err != COPY_FD_OK) {\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }" if (parenthesized_expression "(err != COPY_FD_OK)" ( (binary_expression "err != COPY_FD_OK" identifier != identifier) )) (compound_statement "{\n                    diagnose_copy_fd_failure(err,pretty_filename);\n                    _Var12 = false;\n                    goto LAB_00013b94;\n                  }" { (expression_statement "diagnose_copy_fd_failure(err,pretty_filename);" (call_expression "diagnose_copy_fd_failure(err,pretty_filename)" identifier (argument_list "(err,pretty_filename)" ( identifier , identifier ))) ;) (expression_statement "_Var12 = false;" (assignment_expression "_Var12 = false" identifier = false) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) })) (expression_statement "xwrite_stdout(unaff_s1,sVar5 + 1);" (call_expression "xwrite_stdout(unaff_s1,sVar5 + 1)" identifier (argument_list "(unaff_s1,sVar5 + 1)" ( identifier , (binary_expression "sVar5 + 1" identifier + number_literal) ))) ;) (expression_statement "uVar20 = sVar5 + uVar20;" (assignment_expression "uVar20 = sVar5 + uVar20" identifier = (binary_expression "sVar5 + uVar20" identifier + identifier)) ;) (expression_statement "filename = filename + (uVar20 < sVar5);" (assignment_expression "filename = filename + (uVar20 < sVar5)" identifier = (binary_expression "filename + (uVar20 < sVar5)" identifier + (parenthesized_expression "(uVar20 < sVar5)" ( (binary_expression "uVar20 < sVar5" identifier < identifier) )))) ;) (expression_statement "(*pcVar22)(fd);" (call_expression "(*pcVar22)(fd)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(fd)" ( identifier ))) ;) (expression_statement "_Var12 = (_Bool)((byte)~extraout_var >> 7);" (assignment_expression "_Var12 = (_Bool)((byte)~extraout_var >> 7)" identifier = (call_expression "(_Bool)((byte)~extraout_var >> 7)" (parenthesized_expression "(_Bool)" ( identifier )) (argument_list "((byte)~extraout_var >> 7)" ( (binary_expression "(byte)~extraout_var >> 7" (cast_expression "(byte)~extraout_var" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~extraout_var" ~ identifier)) >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)(uVar20 + 1 < uVar20);" (assignment_expression "uVar4 = (uint)(uVar20 + 1 < uVar20)" identifier = (call_expression "(uint)(uVar20 + 1 < uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 + 1 < uVar20)" ( (binary_expression "uVar20 + 1 < uVar20" (binary_expression "uVar20 + 1" identifier + number_literal) < identifier) )))) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) }))) (expression_statement "in_a3 = in_a3 - 1;" (assignment_expression "in_a3 = in_a3 - 1" identifier = (binary_expression "in_a3 - 1" identifier - number_literal)) ;) (expression_statement "uVar16 = in_a2;" (assignment_expression "uVar16 = in_a2" identifier = identifier) ;) }) while (parenthesized_expression "(sVar5 != 0)" ( (binary_expression "sVar5 != 0" identifier != number_literal) )) ;) })) (if_statement "if ((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)) break;" if (parenthesized_expression "((filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_))" ( (binary_expression "(filename == n_lines._0_4_) && (_Var12 = true, uVar20 == n_lines._4_4_)" (parenthesized_expression "(filename == n_lines._0_4_)" ( (binary_expression "filename == n_lines._0_4_" identifier == (field_expression "n_lines._0_4_" identifier . field_identifier)) )) && (parenthesized_expression "(_Var12 = true, uVar20 == n_lines._4_4_)" ( (comma_expression "_Var12 = true, uVar20 == n_lines._4_4_" (assignment_expression "_Var12 = true" identifier = true) , (binary_expression "uVar20 == n_lines._4_4_" identifier == (field_expression "n_lines._4_4_" identifier . field_identifier))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = uVar20 - 0x2000;" (assignment_expression "uVar4 = uVar20 - 0x2000" identifier = (binary_expression "uVar20 - 0x2000" identifier - number_literal)) ;) (expression_statement "filename = filename + ((uVar4 < uVar20) - 1);" (assignment_expression "filename = filename + ((uVar4 < uVar20) - 1)" identifier = (binary_expression "filename + ((uVar4 < uVar20) - 1)" identifier + (parenthesized_expression "((uVar4 < uVar20) - 1)" ( (binary_expression "(uVar4 < uVar20) - 1" (parenthesized_expression "(uVar4 < uVar20)" ( (binary_expression "uVar4 < uVar20" identifier < identifier) )) - number_literal) )))) ;) (expression_statement "iVar6 = (*pcVar22)(fd);" (assignment_expression "iVar6 = (*pcVar22)(fd)" identifier = (call_expression "(*pcVar22)(fd)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(fd)" ( identifier )))) ;) (if_statement "if (iVar6 < 0) goto LAB_00013b8c;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00013b8c;" goto statement_identifier ;)) (expression_statement "sVar5 = safe_read(fd,unaff_s1,0x2000);" (assignment_expression "sVar5 = safe_read(fd,unaff_s1,0x2000)" identifier = (call_expression "safe_read(fd,unaff_s1,0x2000)" identifier (argument_list "(fd,unaff_s1,0x2000)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (sVar5 == 0xffffffff) goto LAB_00013b28;" if (parenthesized_expression "(sVar5 == 0xffffffff)" ( (binary_expression "sVar5 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00013b28;" goto statement_identifier ;)) (expression_statement "_Var12 = true;" (assignment_expression "_Var12 = true" identifier = true) ;) (expression_statement "uVar20 = uVar4;" (assignment_expression "uVar20 = uVar4" identifier = identifier) ;) }) while (parenthesized_expression "(sVar5 != 0)" ( (binary_expression "sVar5 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) (labeled_statement "LAB_00013b28:\n    puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)();" statement_identifier : (expression_statement "puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)();" (assignment_expression "puVar7 = (uint *)(*(code *)PTR___errno_location_0002d264)()" identifier = (cast_expression "(uint *)(*(code *)PTR___errno_location_0002d264)()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002d264)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002d264)" ( (pointer_expression "*(code *)PTR___errno_location_0002d264" * (cast_expression "(code *)PTR___errno_location_0002d264" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "in_a2 = *puVar7;" (assignment_expression "in_a2 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);" (assignment_expression "unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0002d2c8)" ( (pointer_expression "*(code *)PTR_dcgettext_0002d2c8" * (cast_expression "(code *)PTR_dcgettext_0002d2c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0002d108 + -0x4f50,5)" ( number_literal , (binary_expression "PTR_DAT_0002d108 + -0x4f50" identifier + number_literal) , number_literal ))))) ;) (expression_statement "pcVar8 = quotearg_style(shell_escape_always_quoting_style,pretty_filename);" (assignment_expression "pcVar8 = quotearg_style(shell_escape_always_quoting_style,pretty_filename)" identifier = (call_expression "quotearg_style(shell_escape_always_quoting_style,pretty_filename)" identifier (argument_list "(shell_escape_always_quoting_style,pretty_filename)" ( identifier , identifier )))) ;) (expression_statement "(*(code *)PTR_error_0002d2a0)(0,in_a2,unaff_s1,pcVar8);" (call_expression "(*(code *)PTR_error_0002d2a0)(0,in_a2,unaff_s1,pcVar8)" (parenthesized_expression "(*(code *)PTR_error_0002d2a0)" ( (pointer_expression "*(code *)PTR_error_0002d2a0" * (cast_expression "(code *)PTR_error_0002d2a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,in_a2,unaff_s1,pcVar8)" ( number_literal , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00013b8c:\n  _Var12 = false;" statement_identifier : (expression_statement "_Var12 = false;" (assignment_expression "_Var12 = false" identifier = false) ;)) (labeled_statement "LAB_00013b94:\n  if (whence == *(int *)puVar23) {\n    return _Var12;\n  }" statement_identifier : (if_statement "if (whence == *(int *)puVar23) {\n    return _Var12;\n  }" if (parenthesized_expression "(whence == *(int *)puVar23)" ( (binary_expression "whence == *(int *)puVar23" identifier == (pointer_expression "*(int *)puVar23" * (cast_expression "(int *)puVar23" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return _Var12;\n  }" { (return_statement "return _Var12;" return identifier ;) }))) (expression_statement "pcVar24 = usage;" (assignment_expression "pcVar24 = usage" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_0002d2c4;" (assignment_expression "puVar23 = PTR___stack_chk_fail_0002d2c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002d2c4)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002d2c4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002d2c4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002d2c4" * (cast_expression "(code *)PTR___stack_chk_fail_0002d2c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uStackY_2084 = **(undefined4 **)(puVar23 + 0x19674);" (assignment_expression "uStackY_2084 = **(undefined4 **)(puVar23 + 0x19674)" identifier = (pointer_expression "**(undefined4 **)(puVar23 + 0x19674)" * (pointer_expression "*(undefined4 **)(puVar23 + 0x19674)" * (cast_expression "(undefined4 **)(puVar23 + 0x19674)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19674)" ( (binary_expression "puVar23 + 0x19674" identifier + number_literal) )))))) ;) (expression_statement "pcVar22 = *(code **)(puVar23 + 0x19660);" (assignment_expression "pcVar22 = *(code **)(puVar23 + 0x19660)" identifier = (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) ;) (expression_statement "uStackY_2080 = in_a2;" (assignment_expression "uStackY_2080 = in_a2" identifier = identifier) ;) (expression_statement "pcStackY_207c = unaff_s1;" (assignment_expression "pcStackY_207c = unaff_s1" identifier = identifier) ;) (expression_statement "sStackY_2078 = count;" (assignment_expression "sStackY_2078 = count" identifier = identifier) ;) (expression_statement "uStackY_2074 = uVar4;" (assignment_expression "uStackY_2074 = uVar4" identifier = identifier) ;) (expression_statement "pcStackY_2070 = filename;" (assignment_expression "pcStackY_2070 = filename" identifier = identifier) ;) (expression_statement "pcStackY_206c = pcVar24;" (assignment_expression "pcStackY_206c = pcVar24" identifier = identifier) ;) (if_statement "if (whence == 0) goto LAB_00013cf8;" if (parenthesized_expression "(whence == 0)" ( (binary_expression "whence == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013cf8;" goto statement_identifier ;)) (expression_statement "uVar17 = **(undefined4 **)(puVar23 + 0x19684);" (assignment_expression "uVar17 = **(undefined4 **)(puVar23 + 0x19684)" identifier = (pointer_expression "**(undefined4 **)(puVar23 + 0x19684)" * (pointer_expression "*(undefined4 **)(puVar23 + 0x19684)" * (cast_expression "(undefined4 **)(puVar23 + 0x19684)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19684)" ( (binary_expression "puVar23 + 0x19684" identifier + number_literal) )))))) ;) (expression_statement "uVar26 = (*pcVar22)(0,*(int *)(puVar23 + 0x194a0) + -0x4f14,5);" (assignment_expression "uVar26 = (*pcVar22)(0,*(int *)(puVar23 + 0x194a0) + -0x4f14,5)" identifier = (call_expression "(*pcVar22)(0,*(int *)(puVar23 + 0x194a0) + -0x4f14,5)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4f14,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4f14" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x195c4))(uVar17,1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));" (call_expression "(**(code **)(puVar23 + 0x195c4))(uVar17,1,uVar26,**(undefined4 **)(puVar23 + 0x194b8))" (parenthesized_expression "(**(code **)(puVar23 + 0x195c4))" ( (pointer_expression "**(code **)(puVar23 + 0x195c4)" * (pointer_expression "*(code **)(puVar23 + 0x195c4)" * (cast_expression "(code **)(puVar23 + 0x195c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195c4)" ( (binary_expression "puVar23 + 0x195c4" identifier + number_literal) ))))) )) (argument_list "(uVar17,1,uVar26,**(undefined4 **)(puVar23 + 0x194b8))" ( identifier , number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar23 + 0x194b8)" * (pointer_expression "*(undefined4 **)(puVar23 + 0x194b8)" * (cast_expression "(undefined4 **)(puVar23 + 0x194b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x194b8)" ( (binary_expression "puVar23 + 0x194b8" identifier + number_literal) ))))) ))) ;) (do_statement "do {\n    pcVar22 = *(code **)(puVar23 + 0x19620);\n    (*pcVar22)(whence);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar23 + 0x195f4);\n    uVar26 = (*pcVar22)();\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStackY_20bc;\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    iVar6 = *(int *)(puVar23 + 0x19490);\n    piVar10 = (int *)(iVar6 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar13 = piVar3;\n      piVar9 = piVar10;\n      piVar10 = piVar9 + 4;\n      *piVar13 = *piVar9;\n      iVar15 = piVar9[2];\n      iVar14 = piVar9[3];\n      piVar13[1] = piVar9[1];\n      piVar13[2] = iVar15;\n      piVar13[3] = iVar14;\n      piVar3 = piVar13 + 4;\n    } while (piVar10 != (int *)(iVar6 + -0x2fc0));\n    iVar6 = piVar9[5];\n    iVar14 = *(int *)(puVar23 + 0x194a0);\n    piVar13[4] = *piVar10;\n    piVar13[5] = iVar6;\n    iVar6 = aiStackY_20bc[0];\n    while (iVar6 != 0) {\n      iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar6 = *piVar19;\n    }\n    iVar6 = *(int *)(puVar23 + 0x194a0);\nLAB_00013f44:\n    iVar15 = piVar19[1];\n    iVar21 = *(int *)(puVar23 + 0x194a0);\n    if (iVar15 == 0) {\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if ((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)) {\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar15 = iVar14 + -0x4f1c;\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar26 = (**(code **)(puVar23 + 0x19660))();\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar15,iVar6);\n  } while( true );" do (compound_statement "{\n    pcVar22 = *(code **)(puVar23 + 0x19620);\n    (*pcVar22)(whence);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar23 + 0x195f4);\n    uVar26 = (*pcVar22)();\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,10);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStackY_20bc;\n    (**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);\n    iVar6 = *(int *)(puVar23 + 0x19490);\n    piVar10 = (int *)(iVar6 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar13 = piVar3;\n      piVar9 = piVar10;\n      piVar10 = piVar9 + 4;\n      *piVar13 = *piVar9;\n      iVar15 = piVar9[2];\n      iVar14 = piVar9[3];\n      piVar13[1] = piVar9[1];\n      piVar13[2] = iVar15;\n      piVar13[3] = iVar14;\n      piVar3 = piVar13 + 4;\n    } while (piVar10 != (int *)(iVar6 + -0x2fc0));\n    iVar6 = piVar9[5];\n    iVar14 = *(int *)(puVar23 + 0x194a0);\n    piVar13[4] = *piVar10;\n    piVar13[5] = iVar6;\n    iVar6 = aiStackY_20bc[0];\n    while (iVar6 != 0) {\n      iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar6 = *piVar19;\n    }\n    iVar6 = *(int *)(puVar23 + 0x194a0);\nLAB_00013f44:\n    iVar15 = piVar19[1];\n    iVar21 = *(int *)(puVar23 + 0x194a0);\n    if (iVar15 == 0) {\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if ((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)) {\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar15 = iVar14 + -0x4f1c;\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar26 = (**(code **)(puVar23 + 0x19660))();\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar15,iVar6);\n  }" { (expression_statement "pcVar22 = *(code **)(puVar23 + 0x19620);" (assignment_expression "pcVar22 = *(code **)(puVar23 + 0x19620)" identifier = (pointer_expression "*(code **)(puVar23 + 0x19620)" * (cast_expression "(code **)(puVar23 + 0x19620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19620)" ( (binary_expression "puVar23 + 0x19620" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar22)(whence);" (call_expression "(*pcVar22)(whence)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(whence)" ( identifier ))) ;) (labeled_statement "LAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar23 + 0x195f4);" statement_identifier : (expression_statement "puVar18 = *(undefined4 **)(puVar23 + 0x195f4);" (assignment_expression "puVar18 = *(undefined4 **)(puVar23 + 0x195f4)" identifier = (pointer_expression "*(undefined4 **)(puVar23 + 0x195f4)" * (cast_expression "(undefined4 **)(puVar23 + 0x195f4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f4)" ( (binary_expression "puVar23 + 0x195f4" identifier + number_literal) ))))) ;)) (expression_statement "uVar26 = (*pcVar22)();" (assignment_expression "uVar26 = (*pcVar22)()" identifier = (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar23 + 0x195f0))(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8));" (call_expression "(**(code **)(puVar23 + 0x195f0))(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8))" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,**(undefined4 **)(puVar23 + 0x194b8))" ( number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar23 + 0x194b8)" * (pointer_expression "*(undefined4 **)(puVar23 + 0x194b8)" * (cast_expression "(undefined4 **)(puVar23 + 0x194b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x194b8)" ( (binary_expression "puVar23 + 0x194b8" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4ec8,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4ec8" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x195f0))(1,uVar26,10);" (call_expression "(**(code **)(puVar23 + 0x195f0))(1,uVar26,10)" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4e40,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4e40" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);" (call_expression "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18)" (parenthesized_expression "(**(code **)(puVar23 + 0x1969c))" ( (pointer_expression "**(code **)(puVar23 + 0x1969c)" * (pointer_expression "*(code **)(puVar23 + 0x1969c)" * (cast_expression "(code **)(puVar23 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1969c)" ( (binary_expression "puVar23 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar26,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4e08,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4e08" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);" (call_expression "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18)" (parenthesized_expression "(**(code **)(puVar23 + 0x1969c))" ( (pointer_expression "**(code **)(puVar23 + 0x1969c)" * (pointer_expression "*(code **)(puVar23 + 0x1969c)" * (cast_expression "(code **)(puVar23 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1969c)" ( (binary_expression "puVar23 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar26,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4dbc,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4dbc" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x195f0))(1,uVar26,10);" (call_expression "(**(code **)(puVar23 + 0x195f0))(1,uVar26,10)" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4c2c,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4c2c" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);" (call_expression "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18)" (parenthesized_expression "(**(code **)(puVar23 + 0x1969c))" ( (pointer_expression "**(code **)(puVar23 + 0x1969c)" * (pointer_expression "*(code **)(puVar23 + 0x1969c)" * (cast_expression "(code **)(puVar23 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1969c)" ( (binary_expression "puVar23 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar26,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4ba8,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4ba8" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);" (call_expression "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18)" (parenthesized_expression "(**(code **)(puVar23 + 0x1969c))" ( (pointer_expression "**(code **)(puVar23 + 0x1969c)" * (pointer_expression "*(code **)(puVar23 + 0x1969c)" * (cast_expression "(code **)(puVar23 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1969c)" ( (binary_expression "puVar23 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar26,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4b68,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4b68" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);" (call_expression "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18)" (parenthesized_expression "(**(code **)(puVar23 + 0x1969c))" ( (pointer_expression "**(code **)(puVar23 + 0x1969c)" * (pointer_expression "*(code **)(puVar23 + 0x1969c)" * (cast_expression "(code **)(puVar23 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1969c)" ( (binary_expression "puVar23 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar26,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4b38,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4b38" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);" (call_expression "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18)" (parenthesized_expression "(**(code **)(puVar23 + 0x1969c))" ( (pointer_expression "**(code **)(puVar23 + 0x1969c)" * (pointer_expression "*(code **)(puVar23 + 0x1969c)" * (cast_expression "(code **)(puVar23 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1969c)" ( (binary_expression "puVar23 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar26,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4b00,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4b00" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "piVar19 = aiStackY_20bc;" (assignment_expression "piVar19 = aiStackY_20bc" identifier = identifier) ;) (expression_statement "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18);" (call_expression "(**(code **)(puVar23 + 0x1969c))(uVar26,*puVar18)" (parenthesized_expression "(**(code **)(puVar23 + 0x1969c))" ( (pointer_expression "**(code **)(puVar23 + 0x1969c)" * (pointer_expression "*(code **)(puVar23 + 0x1969c)" * (cast_expression "(code **)(puVar23 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1969c)" ( (binary_expression "puVar23 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar26,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "iVar6 = *(int *)(puVar23 + 0x19490);" (assignment_expression "iVar6 = *(int *)(puVar23 + 0x19490)" identifier = (pointer_expression "*(int *)(puVar23 + 0x19490)" * (cast_expression "(int *)(puVar23 + 0x19490)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x19490)" ( (binary_expression "puVar23 + 0x19490" identifier + number_literal) ))))) ;) (expression_statement "piVar10 = (int *)(iVar6 + -0x2ff0);" (assignment_expression "piVar10 = (int *)(iVar6 + -0x2ff0)" identifier = (cast_expression "(int *)(iVar6 + -0x2ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x2ff0)" ( (binary_expression "iVar6 + -0x2ff0" identifier + number_literal) )))) ;) (expression_statement "piVar3 = piVar19;" (assignment_expression "piVar3 = piVar19" identifier = identifier) ;) (do_statement "do {\n      piVar13 = piVar3;\n      piVar9 = piVar10;\n      piVar10 = piVar9 + 4;\n      *piVar13 = *piVar9;\n      iVar15 = piVar9[2];\n      iVar14 = piVar9[3];\n      piVar13[1] = piVar9[1];\n      piVar13[2] = iVar15;\n      piVar13[3] = iVar14;\n      piVar3 = piVar13 + 4;\n    } while (piVar10 != (int *)(iVar6 + -0x2fc0));" do (compound_statement "{\n      piVar13 = piVar3;\n      piVar9 = piVar10;\n      piVar10 = piVar9 + 4;\n      *piVar13 = *piVar9;\n      iVar15 = piVar9[2];\n      iVar14 = piVar9[3];\n      piVar13[1] = piVar9[1];\n      piVar13[2] = iVar15;\n      piVar13[3] = iVar14;\n      piVar3 = piVar13 + 4;\n    }" { (expression_statement "piVar13 = piVar3;" (assignment_expression "piVar13 = piVar3" identifier = identifier) ;) (expression_statement "piVar9 = piVar10;" (assignment_expression "piVar9 = piVar10" identifier = identifier) ;) (expression_statement "piVar10 = piVar9 + 4;" (assignment_expression "piVar10 = piVar9 + 4" identifier = (binary_expression "piVar9 + 4" identifier + number_literal)) ;) (expression_statement "*piVar13 = *piVar9;" (assignment_expression "*piVar13 = *piVar9" (pointer_expression "*piVar13" * identifier) = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "iVar15 = piVar9[2];" (assignment_expression "iVar15 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = piVar9[3];" (assignment_expression "iVar14 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (expression_statement "piVar13[1] = piVar9[1];" (assignment_expression "piVar13[1] = piVar9[1]" (subscript_expression "piVar13[1]" identifier [ number_literal ]) = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (expression_statement "piVar13[2] = iVar15;" (assignment_expression "piVar13[2] = iVar15" (subscript_expression "piVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[3] = iVar14;" (assignment_expression "piVar13[3] = iVar14" (subscript_expression "piVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = piVar13 + 4;" (assignment_expression "piVar3 = piVar13 + 4" identifier = (binary_expression "piVar13 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar10 != (int *)(iVar6 + -0x2fc0))" ( (binary_expression "piVar10 != (int *)(iVar6 + -0x2fc0)" identifier != (cast_expression "(int *)(iVar6 + -0x2fc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x2fc0)" ( (binary_expression "iVar6 + -0x2fc0" identifier + number_literal) )))) )) ;) (expression_statement "iVar6 = piVar9[5];" (assignment_expression "iVar6 = piVar9[5]" identifier = (subscript_expression "piVar9[5]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = *(int *)(puVar23 + 0x194a0);" (assignment_expression "iVar14 = *(int *)(puVar23 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) ))))) ;) (expression_statement "piVar13[4] = *piVar10;" (assignment_expression "piVar13[4] = *piVar10" (subscript_expression "piVar13[4]" identifier [ number_literal ]) = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "piVar13[5] = iVar6;" (assignment_expression "piVar13[5] = iVar6" (subscript_expression "piVar13[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar6 = aiStackY_20bc[0];" (assignment_expression "iVar6 = aiStackY_20bc[0]" identifier = (subscript_expression "aiStackY_20bc[0]" identifier [ number_literal ])) ;) (while_statement "while (iVar6 != 0) {\n      iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar6 = *piVar19;\n    }" while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar6 = *piVar19;\n    }" { (expression_statement "iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c);" (assignment_expression "iVar6 = (**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c)" identifier = (call_expression "(**(code **)(puVar23 + 0x19698))(iVar14 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar23 + 0x19698))" ( (pointer_expression "**(code **)(puVar23 + 0x19698)" * (pointer_expression "*(code **)(puVar23 + 0x19698)" * (cast_expression "(code **)(puVar23 + 0x19698)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19698)" ( (binary_expression "puVar23 + 0x19698" identifier + number_literal) ))))) )) (argument_list "(iVar14 + -0x4f1c)" ( (binary_expression "iVar14 + -0x4f1c" identifier + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = *(int *)(puVar23 + 0x194a0);\n        goto LAB_00013f44;\n      }" { (expression_statement "iVar6 = *(int *)(puVar23 + 0x194a0);" (assignment_expression "iVar6 = *(int *)(puVar23 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00013f44;" goto statement_identifier ;) })) (expression_statement "piVar19 = piVar19 + 2;" (assignment_expression "piVar19 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "iVar6 = *piVar19;" (assignment_expression "iVar6 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) })) (expression_statement "iVar6 = *(int *)(puVar23 + 0x194a0);" (assignment_expression "iVar6 = *(int *)(puVar23 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00013f44:\n    iVar15 = piVar19[1];" statement_identifier : (expression_statement "iVar15 = piVar19[1];" (assignment_expression "iVar15 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;)) (expression_statement "iVar21 = *(int *)(puVar23 + 0x194a0);" (assignment_expression "iVar21 = *(int *)(puVar23 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) ))))) ;) (if_statement "if (iVar15 == 0) {\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if ((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)) {\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar15 = iVar14 + -0x4f1c;\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar26 = (**(code **)(puVar23 + 0x19660))();\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }\n    }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if ((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)) {\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar15 = iVar14 + -0x4f1c;\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n    }" { (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,iVar6 + -0x4a64,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,iVar6 + -0x4a64,5)" ( number_literal , (binary_expression "iVar6 + -0x4a64" identifier + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);" (call_expression "(**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c)" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c)" ( number_literal , identifier , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4a24" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar21 + -0x4a4c" identifier + number_literal) ))) ;) (expression_statement "iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);" (assignment_expression "iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0)" identifier = (call_expression "(**(code **)(puVar23 + 0x195e0))(5,0)" (parenthesized_expression "(**(code **)(puVar23 + 0x195e0))" ( (pointer_expression "**(code **)(puVar23 + 0x195e0)" * (pointer_expression "*(code **)(puVar23 + 0x195e0)" * (cast_expression "(code **)(puVar23 + 0x195e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195e0)" ( (binary_expression "puVar23 + 0x195e0" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if ((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)) {\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }" if (parenthesized_expression "((iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0))" ( (binary_expression "(iVar6 != 0) &&\n         (iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0)" ( (comma_expression "iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3),\n         iVar6 != 0" (assignment_expression "iVar6 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3)" identifier = (call_expression "(**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3)" (parenthesized_expression "(**(code **)(puVar23 + 0x195b8))" ( (pointer_expression "**(code **)(puVar23 + 0x195b8)" * (pointer_expression "*(code **)(puVar23 + 0x195b8)" * (cast_expression "(code **)(puVar23 + 0x195b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195b8)" ( (binary_expression "puVar23 + 0x195b8" identifier + number_literal) ))))) )) (argument_list "(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3)" ( identifier , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4a14" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar15 = iVar14 + -0x4f1c;\n        iVar6 = iVar15;\nLAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);\n        goto LAB_00013fcc;\n      }" { (expression_statement "iVar15 = iVar14 + -0x4f1c;" (assignment_expression "iVar15 = iVar14 + -0x4f1c" identifier = (binary_expression "iVar14 + -0x4f1c" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar15;" (assignment_expression "iVar6 = iVar15" identifier = identifier) ;) (labeled_statement "LAB_00014148:\n        uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);" statement_identifier : (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x4a10,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4a10" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c);" (call_expression "(**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar14 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,iVar14 + -0x4f1c)" ( number_literal , identifier , (binary_expression "iVar14 + -0x4f1c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00013fcc;" goto statement_identifier ;) })) (expression_statement "iVar15 = iVar14 + -0x4f1c;" (assignment_expression "iVar15 = iVar14 + -0x4f1c" identifier = (binary_expression "iVar14 + -0x4f1c" identifier + number_literal)) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x49c8" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15);" (call_expression "(**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar15)" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,iVar21 + -0x4a4c,iVar15)" ( number_literal , identifier , (binary_expression "iVar21 + -0x4a4c" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x49a8" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;" (assignment_expression "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c" identifier = (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x496c" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      uVar26 = (**(code **)(puVar23 + 0x19660))();\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }\n    }" else (compound_statement "{\n      uVar26 = (**(code **)(puVar23 + 0x19660))();\n      (**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);\n      iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);\n      if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);\n      if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }\n    }" { (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))();" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))()" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))()" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c);" (call_expression "(**(code **)(puVar23 + 0x195f0))\n                (1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c)" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,*(int *)(puVar23 + 0x194a0) + -0x4a24,iVar21 + -0x4a4c)" ( number_literal , identifier , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4a24" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar21 + -0x4a4c" identifier + number_literal) ))) ;) (expression_statement "iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0);" (assignment_expression "iVar6 = (**(code **)(puVar23 + 0x195e0))(5,0)" identifier = (call_expression "(**(code **)(puVar23 + 0x195e0))(5,0)" (parenthesized_expression "(**(code **)(puVar23 + 0x195e0))" ( (pointer_expression "**(code **)(puVar23 + 0x195e0)" * (pointer_expression "*(code **)(puVar23 + 0x195e0)" * (cast_expression "(code **)(puVar23 + 0x195e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195e0)" ( (binary_expression "puVar23 + 0x195e0" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n      }" { (expression_statement "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;" (assignment_expression "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c" identifier = (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4f1c" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }" else (compound_statement "{\n        iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;\n        if (iVar11 != 0) goto LAB_00014148;\n      }" { (expression_statement "iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3);" (assignment_expression "iVar11 = (**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3)" identifier = (call_expression "(**(code **)(puVar23 + 0x195b8))(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3)" (parenthesized_expression "(**(code **)(puVar23 + 0x195b8))" ( (pointer_expression "**(code **)(puVar23 + 0x195b8)" * (pointer_expression "*(code **)(puVar23 + 0x195b8)" * (cast_expression "(code **)(puVar23 + 0x195b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195b8)" ( (binary_expression "puVar23 + 0x195b8" identifier + number_literal) ))))) )) (argument_list "(iVar6,*(int *)(puVar23 + 0x194a0) + -0x4a14,3)" ( identifier , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4a14" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c;" (assignment_expression "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x4f1c" identifier = (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x4f1c" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar11 != 0) goto LAB_00014148;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014148;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00013fcc:\n      uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);" statement_identifier : (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x49c8,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x49c8" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c);" (call_expression "(**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,iVar21 + -0x4a4c,iVar14 + -0x4f1c)" ( number_literal , identifier , (binary_expression "iVar21 + -0x4a4c" identifier + number_literal) , (binary_expression "iVar14 + -0x4f1c" identifier + number_literal) ))) ;) (expression_statement "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5);" (assignment_expression "uVar26 = (**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5)" identifier = (call_expression "(**(code **)(puVar23 + 0x19660))(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5)" (parenthesized_expression "(**(code **)(puVar23 + 0x19660))" ( (pointer_expression "**(code **)(puVar23 + 0x19660)" * (pointer_expression "*(code **)(puVar23 + 0x19660)" * (cast_expression "(code **)(puVar23 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x19660)" ( (binary_expression "puVar23 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar23 + 0x194a0) + -0x49a8,5)" ( number_literal , (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x49a8" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar15 == iVar6) {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }" if (parenthesized_expression "(iVar15 == iVar6)" ( (binary_expression "iVar15 == iVar6" identifier == identifier) )) (compound_statement "{\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;\n      }" { (expression_statement "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c;" (assignment_expression "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x496c" identifier = (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x496c" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }" else (compound_statement "{\n        iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;\n      }" { (expression_statement "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858;" (assignment_expression "iVar6 = *(int *)(puVar23 + 0x194a0) + -0x3858" identifier = (binary_expression "*(int *)(puVar23 + 0x194a0) + -0x3858" (pointer_expression "*(int *)(puVar23 + 0x194a0)" * (cast_expression "(int *)(puVar23 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x194a0)" ( (binary_expression "puVar23 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar15,iVar6);" (call_expression "(**(code **)(puVar23 + 0x195f0))(1,uVar26,iVar15,iVar6)" (parenthesized_expression "(**(code **)(puVar23 + 0x195f0))" ( (pointer_expression "**(code **)(puVar23 + 0x195f0)" * (pointer_expression "*(code **)(puVar23 + 0x195f0)" * (cast_expression "(code **)(puVar23 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x195f0)" ( (binary_expression "puVar23 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar26,iVar15,iVar6)" ( number_literal , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "uint FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  int aiStack_20bc [14];\n  undefined4 uStack_2084;\n  uint uStack_2080;\n  char *pcStack_207c;\n  uint uStack_2078;\n  uint uStack_2074;\n  int iStack_2070;\n  code *pcStack_206c;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  char acStack_202d [8193];\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = param_8 - param_6 & 0x1fff;\n  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  local_2058 = 0;\n  uVar20 = 0x2000;\n  if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }\n  uVar4 = param_8 - uVar20;\n  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);\n  param_7 = param_7 - (uint)(param_8 < uVar4);\n  local_2054 = param_1;\n  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);\n  if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }\nLAB_00013b8c:\n  uVar7 = 0;\nLAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }\n  pcVar25 = usage;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);\n  pcVar23 = *(code **)(puVar24 + 0x19660);\n  uStack_2080 = param_3;\n  pcStack_207c = unaff_s1;\n  uStack_2078 = uVar20;\n  uStack_2074 = uVar4;\n  iStack_2070 = param_7;\n  pcStack_206c = pcVar25;\n  if (iVar5 == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar24 + 0x19684);\n  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n  do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );\n}\n\n" (function_definition "uint FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  int aiStack_20bc [14];\n  undefined4 uStack_2084;\n  uint uStack_2080;\n  char *pcStack_207c;\n  uint uStack_2078;\n  uint uStack_2074;\n  int iStack_2070;\n  code *pcStack_206c;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  char acStack_202d [8193];\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = param_8 - param_6 & 0x1fff;\n  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  local_2058 = 0;\n  uVar20 = 0x2000;\n  if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }\n  uVar4 = param_8 - uVar20;\n  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);\n  param_7 = param_7 - (uint)(param_8 < uVar4);\n  local_2054 = param_1;\n  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);\n  if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }\nLAB_00013b8c:\n  uVar7 = 0;\nLAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }\n  pcVar25 = usage;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);\n  pcVar23 = *(code **)(puVar24 + 0x19660);\n  uStack_2080 = param_3;\n  pcStack_207c = unaff_s1;\n  uStack_2078 = uVar20;\n  uStack_2074 = uVar4;\n  iStack_2070 = param_7;\n  pcStack_206c = pcVar25;\n  if (iVar5 == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar24 + 0x19684);\n  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n  do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );\n}" type_identifier (function_declarator "FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "uint param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint param_8" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  int aiStack_20bc [14];\n  undefined4 uStack_2084;\n  uint uStack_2080;\n  char *pcStack_207c;\n  uint uStack_2078;\n  uint uStack_2074;\n  int iStack_2070;\n  code *pcStack_206c;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  char acStack_202d [8193];\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = param_8 - param_6 & 0x1fff;\n  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  local_2058 = 0;\n  uVar20 = 0x2000;\n  if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }\n  uVar4 = param_8 - uVar20;\n  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);\n  param_7 = param_7 - (uint)(param_8 < uVar4);\n  local_2054 = param_1;\n  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);\n  if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }\nLAB_00013b8c:\n  uVar7 = 0;\nLAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }\n  pcVar25 = usage;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);\n  pcVar23 = *(code **)(puVar24 + 0x19660);\n  uStack_2080 = param_3;\n  pcStack_207c = unaff_s1;\n  uStack_2078 = uVar20;\n  uStack_2074 = uVar4;\n  iStack_2070 = param_7;\n  pcStack_206c = pcVar25;\n  if (iVar5 == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar24 + 0x19684);\n  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n  do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "char *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "int aiStack_20bc [14];" primitive_type (array_declarator "aiStack_20bc [14]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_2084;" type_identifier identifier ;) (declaration "uint uStack_2080;" type_identifier identifier ;) (declaration "char *pcStack_207c;" primitive_type (pointer_declarator "*pcStack_207c" * identifier) ;) (declaration "uint uStack_2078;" type_identifier identifier ;) (declaration "uint uStack_2074;" type_identifier identifier ;) (declaration "int iStack_2070;" primitive_type identifier ;) (declaration "code *pcStack_206c;" type_identifier (pointer_declarator "*pcStack_206c" * identifier) ;) (declaration "undefined4 local_2058;" type_identifier identifier ;) (declaration "undefined4 local_2054;" type_identifier identifier ;) (declaration "char acStack_202d [8193];" primitive_type (array_declarator "acStack_202d [8193]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar24 = PTR___stack_chk_guard_0002d2dc;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0002d2dc" identifier = identifier) ;) (expression_statement "uVar4 = param_8 - param_6 & 0x1fff;" (assignment_expression "uVar4 = param_8 - param_6 & 0x1fff" identifier = (binary_expression "param_8 - param_6 & 0x1fff" (binary_expression "param_8 - param_6" identifier - identifier) & number_literal)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0002d2dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0002d2dc" * (cast_expression "(int *)PTR___stack_chk_guard_0002d2dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }" if (parenthesized_expression "((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0)" ( (binary_expression "(int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0" (cast_expression "(int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_7 - param_5) - (uint)(param_8 < param_8 - param_6))" ( (binary_expression "(param_7 - param_5) - (uint)(param_8 < param_8 - param_6)" (parenthesized_expression "(param_7 - param_5)" ( (binary_expression "param_7 - param_5" identifier - identifier) )) - (call_expression "(uint)(param_8 < param_8 - param_6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_8 < param_8 - param_6)" ( (binary_expression "param_8 < param_8 - param_6" identifier < (binary_expression "param_8 - param_6" identifier - identifier)) )))) ))) < number_literal) )) (compound_statement "{\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }" { (expression_statement "uVar4 = (uVar4 - 1 | 0xffffe000) + 1;" (assignment_expression "uVar4 = (uVar4 - 1 | 0xffffe000) + 1" identifier = (binary_expression "(uVar4 - 1 | 0xffffe000) + 1" (parenthesized_expression "(uVar4 - 1 | 0xffffe000)" ( (binary_expression "uVar4 - 1 | 0xffffe000" (binary_expression "uVar4 - 1" identifier - number_literal) | number_literal) )) + number_literal)) ;) })) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = 0x2000;" (assignment_expression "uVar20 = 0x2000" identifier = number_literal) ;) (if_statement "if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar20 = uVar4;\n  }" { (expression_statement "uVar20 = uVar4;" (assignment_expression "uVar20 = uVar4" identifier = identifier) ;) })) (expression_statement "uVar4 = param_8 - uVar20;" (assignment_expression "uVar4 = param_8 - uVar20" identifier = (binary_expression "param_8 - uVar20" identifier - identifier)) ;) (expression_statement "pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);" (assignment_expression "pcVar23 = (code *)(PTR_0002d104 + 0x2fbc)" identifier = (cast_expression "(code *)(PTR_0002d104 + 0x2fbc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0002d104 + 0x2fbc)" ( (binary_expression "PTR_0002d104 + 0x2fbc" identifier + number_literal) )))) ;) (expression_statement "param_7 = param_7 - (uint)(param_8 < uVar4);" (assignment_expression "param_7 = param_7 - (uint)(param_8 < uVar4)" identifier = (binary_expression "param_7 - (uint)(param_8 < uVar4)" identifier - (call_expression "(uint)(param_8 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_8 < uVar4)" ( (binary_expression "param_8 < uVar4" identifier < identifier) ))))) ;) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" identifier = identifier) ;) (expression_statement "iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);" (assignment_expression "iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4)" identifier = (call_expression "FUN_00012fbc(param_2,local_2c,param_7,uVar4)" identifier (argument_list "(param_2,local_2c,param_7,uVar4)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }" { (expression_statement "unaff_s1 = acStack_202d + 1;" (assignment_expression "unaff_s1 = acStack_202d + 1" identifier = (binary_expression "acStack_202d + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = safe_read(param_2,unaff_s1,uVar20);" (assignment_expression "uVar6 = safe_read(param_2,unaff_s1,uVar20)" identifier = (call_expression "safe_read(param_2,unaff_s1,uVar20)" identifier (argument_list "(param_2,unaff_s1,uVar20)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar2 = PTR_DAT_0002d0f8;" (assignment_expression "puVar2 = PTR_DAT_0002d0f8" identifier = identifier) ;) (if_statement "if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }" if (parenthesized_expression "(uVar6 != 0xffffffff)" ( (binary_expression "uVar6 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }" { (expression_statement "uVar20 = param_3 | param_4;" (assignment_expression "uVar20 = param_3 | param_4" identifier = (binary_expression "param_3 | param_4" identifier | identifier)) ;) (expression_statement "uVar21 = uVar4;" (assignment_expression "uVar21 = uVar4" identifier = identifier) ;) (if_statement "if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }" if (parenthesized_expression "(((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf]))" ( (binary_expression "((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])" (parenthesized_expression "((uVar20 != 0) && (uVar6 != 0))" ( (binary_expression "(uVar20 != 0) && (uVar6 != 0)" (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])" ( (binary_expression "acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf]" (subscript_expression "acStack_202d[uVar6]" identifier [ identifier ]) != (subscript_expression "PTR_DAT_0002d0f8[-0x2cdf]" identifier [ number_literal ])) ))) )) (compound_statement "{\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }" { (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1)" identifier = (binary_expression "(uint)(param_4 - 1 < param_4) + (param_3 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 - 1 < param_4)" ( (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) )))) ;) (expression_statement "param_4 = param_4 - 1;" (assignment_expression "param_4 = param_4 - 1" identifier = (binary_expression "param_4 - 1" identifier - number_literal)) ;) })) (do_statement "do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);" do (compound_statement "{\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      }" { (expression_statement "uVar4 = uVar21;" (assignment_expression "uVar4 = uVar21" identifier = identifier) ;) (if_statement "if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }" { (expression_statement "cVar1 = puVar2[-0x2cdf];" (assignment_expression "cVar1 = puVar2[-0x2cdf]" identifier = (subscript_expression "puVar2[-0x2cdf]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" identifier = identifier) ;) (do_statement "do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);" do (compound_statement "{\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          }" { (if_statement "if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }" { (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1)" identifier = (binary_expression "(uint)(param_4 - 1 < param_4) + (uVar7 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 - 1 < param_4)" ( (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;" if (parenthesized_expression "(uVar7 == 0 && param_4 == 0)" ( (binary_expression "uVar7 == 0 && param_4 == 0" (binary_expression "uVar7 == 0" identifier == number_literal) && (binary_expression "param_4 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_000139ec;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" else (compound_statement "{\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" { (expression_statement "iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);" (assignment_expression "iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6)" identifier = (call_expression "(*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6)" (parenthesized_expression "(*(code *)PTR_memrchr_0002d280)" ( (pointer_expression "*(code *)PTR_memrchr_0002d280" * (cast_expression "(code *)PTR_memrchr_0002d280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1,(int)cVar1,uVar6)" ( identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "param_3 = uVar7;" (assignment_expression "param_3 = uVar7" identifier = identifier) ;) (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = iVar5 - (int)unaff_s1;" (assignment_expression "uVar6 = iVar5 - (int)unaff_s1" identifier = (binary_expression "iVar5 - (int)unaff_s1" identifier - (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1)" identifier = (binary_expression "(uint)(param_4 - 1 < param_4) + (uVar7 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 - 1 < param_4)" ( (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }" if (parenthesized_expression "(uVar7 == 0 && param_4 == 0)" ( (binary_expression "uVar7 == 0 && param_4 == 0" (binary_expression "uVar7 == 0" identifier == number_literal) && (binary_expression "param_4 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }" { (labeled_statement "LAB_000139ec:\n                iVar5 = uVar7 - 1;" statement_identifier : (expression_statement "iVar5 = uVar7 - 1;" (assignment_expression "iVar5 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;)) (if_statement "if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }" if (parenthesized_expression "((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))" ( (binary_expression "(param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)))" (parenthesized_expression "(param_5 < param_7)" ( (binary_expression "param_5 < param_7" identifier < identifier) )) || (parenthesized_expression "((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)))" ( (parenthesized_expression "(param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))" ( (comma_expression "param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)" (assignment_expression "param_3 = uVar7" identifier = identifier) , (binary_expression "param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)" (binary_expression "param_7 == param_5" identifier == identifier) && (parenthesized_expression "(iVar5 = uVar6 + 1, param_6 < uVar21)" ( (comma_expression "iVar5 = uVar6 + 1, param_6 < uVar21" (assignment_expression "iVar5 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) , (binary_expression "param_6 < uVar21" identifier < identifier)) )))) )) ))) )) (compound_statement "{\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }" { (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" identifier = number_literal) ;) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" identifier = identifier) ;) (expression_statement "iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);" (assignment_expression "iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6)" identifier = (call_expression "(*pcVar23)(param_2,iVar5,param_5,param_6)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_2,iVar5,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_3 = param_6;" (assignment_expression "param_3 = param_6" identifier = identifier) ;) (if_statement "if (iVar5 < 0) goto LAB_00013b8c;" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00013b8c;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_000131f4(param_2);" (assignment_expression "iVar5 = FUN_000131f4(param_2)" identifier = (call_expression "FUN_000131f4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }" { (expression_statement "FUN_0001373c(iVar5,param_1);" (call_expression "FUN_0001373c(iVar5,param_1)" identifier (argument_list "(iVar5,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) })) (expression_statement "FUN_00013118(unaff_s1,uVar6 + 1);" (call_expression "FUN_00013118(unaff_s1,uVar6 + 1)" identifier (argument_list "(unaff_s1,uVar6 + 1)" ( identifier , (binary_expression "uVar6 + 1" identifier + number_literal) ))) ;) (expression_statement "uVar21 = uVar6 + uVar21;" (assignment_expression "uVar21 = uVar6 + uVar21" identifier = (binary_expression "uVar6 + uVar21" identifier + identifier)) ;) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" identifier = number_literal) ;) (expression_statement "param_7 = (uint)(uVar21 < uVar6) + param_7;" (assignment_expression "param_7 = (uint)(uVar21 < uVar6) + param_7" identifier = (binary_expression "(uint)(uVar21 < uVar6) + param_7" (call_expression "(uint)(uVar21 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 < uVar6)" ( (binary_expression "uVar21 < uVar6" identifier < identifier) ))) + identifier)) ;) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" identifier = identifier) ;) (expression_statement "uVar4 = (*pcVar23)(param_2);" (assignment_expression "uVar4 = (*pcVar23)(param_2)" identifier = (call_expression "(*pcVar23)(param_2)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar7 = ~uVar4 >> 0x1f;" (assignment_expression "uVar7 = ~uVar4 >> 0x1f" identifier = (binary_expression "~uVar4 >> 0x1f" (unary_expression "~uVar4" ~ identifier) >> number_literal)) ;) (expression_statement "uVar4 = (uint)(uVar21 + 1 < uVar21);" (assignment_expression "uVar4 = (uint)(uVar21 + 1 < uVar21)" identifier = (call_expression "(uint)(uVar21 + 1 < uVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 + 1 < uVar21)" ( (binary_expression "uVar21 + 1 < uVar21" (binary_expression "uVar21 + 1" identifier + number_literal) < identifier) )))) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) }))) (expression_statement "param_4 = param_4 - 1;" (assignment_expression "param_4 = param_4 - 1" identifier = (binary_expression "param_4 - 1" identifier - number_literal)) ;) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" identifier = identifier) ;) }) while (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) ;) })) (if_statement "if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;" if (parenthesized_expression "((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6))" ( (binary_expression "(param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)" (parenthesized_expression "(param_7 == param_5)" ( (binary_expression "param_7 == param_5" identifier == identifier) )) && (parenthesized_expression "(uVar7 = 1, uVar21 == param_6)" ( (comma_expression "uVar7 = 1, uVar21 == param_6" (assignment_expression "uVar7 = 1" identifier = number_literal) , (binary_expression "uVar21 == param_6" identifier == identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = uVar21 - 0x2000;" (assignment_expression "uVar4 = uVar21 - 0x2000" identifier = (binary_expression "uVar21 - 0x2000" identifier - number_literal)) ;) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" identifier = number_literal) ;) (expression_statement "param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;" (assignment_expression "param_7 = (uint)(uVar4 < uVar21) + param_7 + -1" identifier = (binary_expression "(uint)(uVar4 < uVar21) + param_7 + -1" (binary_expression "(uint)(uVar4 < uVar21) + param_7" (call_expression "(uint)(uVar4 < uVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar21)" ( (binary_expression "uVar4 < uVar21" identifier < identifier) ))) + identifier) + number_literal)) ;) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" identifier = identifier) ;) (expression_statement "iVar5 = (*pcVar23)(param_2);" (assignment_expression "iVar5 = (*pcVar23)(param_2)" identifier = (call_expression "(*pcVar23)(param_2)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar5 < 0) goto LAB_00013b8c;" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00013b8c;" goto statement_identifier ;)) (expression_statement "uVar6 = safe_read(param_2,unaff_s1,0x2000);" (assignment_expression "uVar6 = safe_read(param_2,unaff_s1,0x2000)" identifier = (call_expression "safe_read(param_2,unaff_s1,0x2000)" identifier (argument_list "(param_2,unaff_s1,0x2000)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (uVar6 == 0xffffffff) goto LAB_00013b28;" if (parenthesized_expression "(uVar6 == 0xffffffff)" ( (binary_expression "uVar6 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00013b28;" goto statement_identifier ;)) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "uVar21 = uVar4;" (assignment_expression "uVar21 = uVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00013b94;" goto statement_identifier ;) })) (labeled_statement "LAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();" statement_identifier : (expression_statement "puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();" (assignment_expression "puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)()" identifier = (cast_expression "(uint *)(*(code *)PTR___errno_location_0002d264)()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002d264)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002d264)" ( (pointer_expression "*(code *)PTR___errno_location_0002d264" * (cast_expression "(code *)PTR___errno_location_0002d264" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "param_3 = *puVar8;" (assignment_expression "param_3 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);" (assignment_expression "unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0002d2c8)" ( (pointer_expression "*(code *)PTR_dcgettext_0002d2c8" * (cast_expression "(code *)PTR_dcgettext_0002d2c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0002d108 + -0x4f50,5)" ( number_literal , (binary_expression "PTR_DAT_0002d108 + -0x4f50" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar9 = quotearg_style(4,param_1);" (assignment_expression "uVar9 = quotearg_style(4,param_1)" identifier = (call_expression "quotearg_style(4,param_1)" identifier (argument_list "(4,param_1)" ( number_literal , identifier )))) ;) (expression_statement "(*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);" (call_expression "(*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9)" (parenthesized_expression "(*(code *)PTR_error_0002d2a0)" ( (pointer_expression "*(code *)PTR_error_0002d2a0" * (cast_expression "(code *)PTR_error_0002d2a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,param_3,unaff_s1,uVar9)" ( number_literal , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00013b8c:\n  uVar7 = 0;" statement_identifier : (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar24)" ( (binary_expression "local_2c == *(int *)puVar24" identifier == (pointer_expression "*(int *)puVar24" * (cast_expression "(int *)puVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) }))) (expression_statement "pcVar25 = usage;" (assignment_expression "pcVar25 = usage" identifier = identifier) ;) (expression_statement "iVar5 = local_2c;" (assignment_expression "iVar5 = local_2c" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_0002d2c4;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0002d2c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002d2c4)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002d2c4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002d2c4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002d2c4" * (cast_expression "(code *)PTR___stack_chk_fail_0002d2c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);" (assignment_expression "uStack_2084 = **(undefined4 **)(puVar24 + 0x19674)" identifier = (pointer_expression "**(undefined4 **)(puVar24 + 0x19674)" * (pointer_expression "*(undefined4 **)(puVar24 + 0x19674)" * (cast_expression "(undefined4 **)(puVar24 + 0x19674)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19674)" ( (binary_expression "puVar24 + 0x19674" identifier + number_literal) )))))) ;) (expression_statement "pcVar23 = *(code **)(puVar24 + 0x19660);" (assignment_expression "pcVar23 = *(code **)(puVar24 + 0x19660)" identifier = (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) ;) (expression_statement "uStack_2080 = param_3;" (assignment_expression "uStack_2080 = param_3" identifier = identifier) ;) (expression_statement "pcStack_207c = unaff_s1;" (assignment_expression "pcStack_207c = unaff_s1" identifier = identifier) ;) (expression_statement "uStack_2078 = uVar20;" (assignment_expression "uStack_2078 = uVar20" identifier = identifier) ;) (expression_statement "uStack_2074 = uVar4;" (assignment_expression "uStack_2074 = uVar4" identifier = identifier) ;) (expression_statement "iStack_2070 = param_7;" (assignment_expression "iStack_2070 = param_7" identifier = identifier) ;) (expression_statement "pcStack_206c = pcVar25;" (assignment_expression "pcStack_206c = pcVar25" identifier = identifier) ;) (if_statement "if (iVar5 == 0) goto LAB_00013cf8;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013cf8;" goto statement_identifier ;)) (expression_statement "uVar17 = **(undefined4 **)(puVar24 + 0x19684);" (assignment_expression "uVar17 = **(undefined4 **)(puVar24 + 0x19684)" identifier = (pointer_expression "**(undefined4 **)(puVar24 + 0x19684)" * (pointer_expression "*(undefined4 **)(puVar24 + 0x19684)" * (cast_expression "(undefined4 **)(puVar24 + 0x19684)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19684)" ( (binary_expression "puVar24 + 0x19684" identifier + number_literal) )))))) ;) (expression_statement "uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);" (assignment_expression "uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" identifier = (call_expression "(*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));" (call_expression "(**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" (parenthesized_expression "(**(code **)(puVar24 + 0x195c4))" ( (pointer_expression "**(code **)(puVar24 + 0x195c4)" * (pointer_expression "*(code **)(puVar24 + 0x195c4)" * (cast_expression "(code **)(puVar24 + 0x195c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195c4)" ( (binary_expression "puVar24 + 0x195c4" identifier + number_literal) ))))) )) (argument_list "(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" ( identifier , number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar24 + 0x194b8)" * (pointer_expression "*(undefined4 **)(puVar24 + 0x194b8)" * (cast_expression "(undefined4 **)(puVar24 + 0x194b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x194b8)" ( (binary_expression "puVar24 + 0x194b8" identifier + number_literal) ))))) ))) ;) (do_statement "do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );" do (compound_statement "{\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  }" { (expression_statement "pcVar23 = *(code **)(puVar24 + 0x19620);" (assignment_expression "pcVar23 = *(code **)(puVar24 + 0x19620)" identifier = (pointer_expression "*(code **)(puVar24 + 0x19620)" * (cast_expression "(code **)(puVar24 + 0x19620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19620)" ( (binary_expression "puVar24 + 0x19620" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar23)(iVar5);" (call_expression "(*pcVar23)(iVar5)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(iVar5)" ( identifier ))) ;) (labeled_statement "LAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);" statement_identifier : (expression_statement "puVar18 = *(undefined4 **)(puVar24 + 0x195f4);" (assignment_expression "puVar18 = *(undefined4 **)(puVar24 + 0x195f4)" identifier = (pointer_expression "*(undefined4 **)(puVar24 + 0x195f4)" * (cast_expression "(undefined4 **)(puVar24 + 0x195f4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f4)" ( (binary_expression "puVar24 + 0x195f4" identifier + number_literal) ))))) ;)) (expression_statement "uVar9 = (*pcVar23)();" (assignment_expression "uVar9 = (*pcVar23)()" identifier = (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" ( number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar24 + 0x194b8)" * (pointer_expression "*(undefined4 **)(puVar24 + 0x194b8)" * (cast_expression "(undefined4 **)(puVar24 + 0x194b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x194b8)" ( (binary_expression "puVar24 + 0x194b8" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4ec8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4e40" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4e08" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4dbc" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4c2c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4ba8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b68" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b38" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b00" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "piVar19 = aiStack_20bc;" (assignment_expression "piVar19 = aiStack_20bc" identifier = identifier) ;) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" ( (pointer_expression "**(code **)(puVar24 + 0x1969c)" * (pointer_expression "*(code **)(puVar24 + 0x1969c)" * (cast_expression "(code **)(puVar24 + 0x1969c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x1969c)" ( (binary_expression "puVar24 + 0x1969c" identifier + number_literal) ))))) )) (argument_list "(uVar9,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + 0x19490);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x19490)" identifier = (pointer_expression "*(int *)(puVar24 + 0x19490)" * (cast_expression "(int *)(puVar24 + 0x19490)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x19490)" ( (binary_expression "puVar24 + 0x19490" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = (int *)(iVar10 + -0x2ff0);" (assignment_expression "piVar12 = (int *)(iVar10 + -0x2ff0)" identifier = (cast_expression "(int *)(iVar10 + -0x2ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x2ff0)" ( (binary_expression "iVar10 + -0x2ff0" identifier + number_literal) )))) ;) (expression_statement "piVar3 = piVar19;" (assignment_expression "piVar3 = piVar19" identifier = identifier) ;) (do_statement "do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));" do (compound_statement "{\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    }" { (expression_statement "piVar14 = piVar3;" (assignment_expression "piVar14 = piVar3" identifier = identifier) ;) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" identifier = identifier) ;) (expression_statement "piVar12 = piVar11 + 4;" (assignment_expression "piVar12 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) (expression_statement "*piVar14 = *piVar11;" (assignment_expression "*piVar14 = *piVar11" (pointer_expression "*piVar14" * identifier) = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iVar16 = piVar11[2];" (assignment_expression "iVar16 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = piVar11[3];" (assignment_expression "iVar15 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (expression_statement "piVar14[1] = piVar11[1];" (assignment_expression "piVar14[1] = piVar11[1]" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "piVar14[2] = iVar16;" (assignment_expression "piVar14[2] = iVar16" (subscript_expression "piVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar14[3] = iVar15;" (assignment_expression "piVar14[3] = iVar15" (subscript_expression "piVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = piVar14 + 4;" (assignment_expression "piVar3 = piVar14 + 4" identifier = (binary_expression "piVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != (int *)(iVar10 + -0x2fc0))" ( (binary_expression "piVar12 != (int *)(iVar10 + -0x2fc0)" identifier != (cast_expression "(int *)(iVar10 + -0x2fc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x2fc0)" ( (binary_expression "iVar10 + -0x2fc0" identifier + number_literal) )))) )) ;) (expression_statement "iVar10 = piVar11[5];" (assignment_expression "iVar10 = piVar11[5]" identifier = (subscript_expression "piVar11[5]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar15 = *(int *)(puVar24 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) ))))) ;) (expression_statement "piVar14[4] = *piVar12;" (assignment_expression "piVar14[4] = *piVar12" (subscript_expression "piVar14[4]" identifier [ number_literal ]) = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "piVar14[5] = iVar10;" (assignment_expression "piVar14[5] = iVar10" (subscript_expression "piVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar10 = aiStack_20bc[0];" (assignment_expression "iVar10 = aiStack_20bc[0]" identifier = (subscript_expression "aiStack_20bc[0]" identifier [ number_literal ])) ;) (while_statement "while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }" while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }" { (expression_statement "iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c)" identifier = (call_expression "(**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x19698))" ( (pointer_expression "**(code **)(puVar24 + 0x19698)" * (pointer_expression "*(code **)(puVar24 + 0x19698)" * (cast_expression "(code **)(puVar24 + 0x19698)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19698)" ( (binary_expression "puVar24 + 0x19698" identifier + number_literal) ))))) )) (argument_list "(iVar15 + -0x4f1c)" ( (binary_expression "iVar15 + -0x4f1c" identifier + number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }" { (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00013f44;" goto statement_identifier ;) })) (expression_statement "piVar19 = piVar19 + 2;" (assignment_expression "piVar19 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "iVar10 = *piVar19;" (assignment_expression "iVar10 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) })) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00013f44:\n    iVar16 = piVar19[1];" statement_identifier : (expression_statement "iVar16 = piVar19[1];" (assignment_expression "iVar16 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;)) (expression_statement "iVar22 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar22 = *(int *)(puVar24 + 0x194a0)" identifier = (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }" { (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,iVar10 + -0x4a64,5)" ( number_literal , (binary_expression "iVar10 + -0x4a64" identifier + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);" (call_expression "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" ( number_literal , identifier , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a24" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar22 + -0x4a4c" identifier + number_literal) ))) ;) (expression_statement "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0)" identifier = (call_expression "(**(code **)(puVar24 + 0x195e0))(5,0)" (parenthesized_expression "(**(code **)(puVar24 + 0x195e0))" ( (pointer_expression "**(code **)(puVar24 + 0x195e0)" * (pointer_expression "*(code **)(puVar24 + 0x195e0)" * (cast_expression "(code **)(puVar24 + 0x195e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195e0)" ( (binary_expression "puVar24 + 0x195e0" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }" if (parenthesized_expression "((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0))" ( (binary_expression "(iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)" ( (comma_expression "iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" identifier = (call_expression "(**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (parenthesized_expression "(**(code **)(puVar24 + 0x195b8))" ( (pointer_expression "**(code **)(puVar24 + 0x195b8)" * (pointer_expression "*(code **)(puVar24 + 0x195b8)" * (cast_expression "(code **)(puVar24 + 0x195b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195b8)" ( (binary_expression "puVar24 + 0x195b8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" ( identifier , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }" { (expression_statement "iVar16 = iVar15 + -0x4f1c;" (assignment_expression "iVar16 = iVar15 + -0x4f1c" identifier = (binary_expression "iVar15 + -0x4f1c" identifier + number_literal)) ;) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" identifier = identifier) ;) (labeled_statement "LAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);" statement_identifier : (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a10" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,iVar15 + -0x4f1c)" ( number_literal , identifier , (binary_expression "iVar15 + -0x4f1c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00013fcc;" goto statement_identifier ;) })) (expression_statement "iVar16 = iVar15 + -0x4f1c;" (assignment_expression "iVar16 = iVar15 + -0x4f1c" identifier = (binary_expression "iVar15 + -0x4f1c" identifier + number_literal)) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49c8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,iVar22 + -0x4a4c,iVar16)" ( number_literal , identifier , (binary_expression "iVar22 + -0x4a4c" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49a8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x496c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" else (compound_statement "{\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" { (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))();" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))()" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))()" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);" (call_expression "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" ( number_literal , identifier , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a24" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar22 + -0x4a4c" identifier + number_literal) ))) ;) (expression_statement "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0)" identifier = (call_expression "(**(code **)(puVar24 + 0x195e0))(5,0)" (parenthesized_expression "(**(code **)(puVar24 + 0x195e0))" ( (pointer_expression "**(code **)(puVar24 + 0x195e0)" * (pointer_expression "*(code **)(puVar24 + 0x195e0)" * (cast_expression "(code **)(puVar24 + 0x195e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195e0)" ( (binary_expression "puVar24 + 0x195e0" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }" { (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f1c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" else (compound_statement "{\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" { (expression_statement "iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);" (assignment_expression "iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" identifier = (call_expression "(**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (parenthesized_expression "(**(code **)(puVar24 + 0x195b8))" ( (pointer_expression "**(code **)(puVar24 + 0x195b8)" * (pointer_expression "*(code **)(puVar24 + 0x195b8)" * (cast_expression "(code **)(puVar24 + 0x195b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195b8)" ( (binary_expression "puVar24 + 0x195b8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" ( identifier , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f1c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar13 != 0) goto LAB_00014148;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014148;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" statement_identifier : (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49c8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c)" ( number_literal , identifier , (binary_expression "iVar22 + -0x4a4c" identifier + number_literal) , (binary_expression "iVar15 + -0x4f1c" identifier + number_literal) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" identifier = (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" ( (pointer_expression "**(code **)(puVar24 + 0x19660)" * (pointer_expression "*(code **)(puVar24 + 0x19660)" * (cast_expression "(code **)(puVar24 + 0x19660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x19660)" ( (binary_expression "puVar24 + 0x19660" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49a8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" if (parenthesized_expression "(iVar16 == iVar10)" ( (binary_expression "iVar16 == iVar10" identifier == identifier) )) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }" { (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x496c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" else (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" { (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858" identifier = (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x3858" (pointer_expression "*(int *)(puVar24 + 0x194a0)" * (cast_expression "(int *)(puVar24 + 0x194a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x194a0)" ( (binary_expression "puVar24 + 0x194a0" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" ( (pointer_expression "**(code **)(puVar24 + 0x195f0)" * (pointer_expression "*(code **)(puVar24 + 0x195f0)" * (cast_expression "(code **)(puVar24 + 0x195f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x195f0)" ( (binary_expression "puVar24 + 0x195f0" identifier + number_literal) ))))) )) (argument_list "(1,uVar9,iVar16,iVar10)" ( number_literal , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT - IDENT)) )))) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) | LIT) )) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT < IDENT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == IDENT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (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 = IDENT) ;) (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 = (pointer_expression * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( IDENT , LIT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (do_statement do (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (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 = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (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 ( LIT , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( LIT , 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( LIT , 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = 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 , (pointer_expression * 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (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 ( (binary_expression IDENT + LIT) )))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (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 = (subscript_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 = (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 , (binary_expression IDENT + LIT) , 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 ( LIT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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 ( LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (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) , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( LIT , IDENT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( LIT , IDENT , (binary_expression IDENT + LIT) , 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (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 ( )))) ;) (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 ( LIT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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 ( LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression 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) )) (goto_statement goto statement_identifier ;)) }))) (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( LIT , IDENT , (binary_expression IDENT + LIT) , (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 ( LIT , IDENT , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "uint FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  int aiStack_20bc [14];\n  undefined4 uStack_2084;\n  uint uStack_2080;\n  char *pcStack_207c;\n  uint uStack_2078;\n  uint uStack_2074;\n  int iStack_2070;\n  code *pcStack_206c;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  char acStack_202d [8193];\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = param_8 - param_6 & 0x1fff;\n  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  local_2058 = 0;\n  uVar20 = 0x2000;\n  if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }\n  uVar4 = param_8 - uVar20;\n  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);\n  param_7 = param_7 - (uint)(param_8 < uVar4);\n  local_2054 = param_1;\n  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);\n  if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }\nLAB_00013b8c:\n  uVar7 = 0;\nLAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }\n  pcVar25 = usage;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);\n  pcVar23 = *(code **)(puVar24 + 0x19660);\n  uStack_2080 = param_3;\n  pcStack_207c = unaff_s1;\n  uStack_2078 = uVar20;\n  uStack_2074 = uVar4;\n  iStack_2070 = param_7;\n  pcStack_206c = pcVar25;\n  if (iVar5 == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar24 + 0x19684);\n  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n  do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );\n}" (type_identifier "uint") (function_declarator "FUN_00013860(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)" (identifier "FUN_00013860") (parameter_list "(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,\n                 uint param_6,int param_7,uint param_8)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "uint param_6" (type_identifier "uint") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "uint param_8" (type_identifier "uint") (identifier "param_8")) () ")"))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  undefined4 *puVar18;\n  int *piVar19;\n  char *unaff_s1;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  int aiStack_20bc [14];\n  undefined4 uStack_2084;\n  uint uStack_2080;\n  char *pcStack_207c;\n  uint uStack_2078;\n  uint uStack_2074;\n  int iStack_2070;\n  code *pcStack_206c;\n  undefined4 local_2058;\n  undefined4 local_2054;\n  char acStack_202d [8193];\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0002d2dc;\n  uVar4 = param_8 - param_6 & 0x1fff;\n  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;\n  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }\n  local_2058 = 0;\n  uVar20 = 0x2000;\n  if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }\n  uVar4 = param_8 - uVar20;\n  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);\n  param_7 = param_7 - (uint)(param_8 < uVar4);\n  local_2054 = param_1;\n  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);\n  if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }\nLAB_00013b8c:\n  uVar7 = 0;\nLAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }\n  pcVar25 = usage;\n  iVar5 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0002d2c4;\n  (*(code *)PTR___stack_chk_fail_0002d2c4)();\n  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);\n  pcVar23 = *(code **)(puVar24 + 0x19660);\n  uStack_2080 = param_3;\n  pcStack_207c = unaff_s1;\n  uStack_2078 = uVar20;\n  uStack_2074 = uVar4;\n  iStack_2070 = param_7;\n  pcStack_206c = pcVar25;\n  if (iVar5 == 0) goto LAB_00013cf8;\n  uVar17 = **(undefined4 **)(puVar24 + 0x19684);\n  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);\n  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n  do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "char *unaff_s1;" (primitive_type "char") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "int aiStack_20bc [14];" (primitive_type "int") (array_declarator "aiStack_20bc [14]" (identifier "aiStack_20bc") ([ "[") (number_literal "14") (] "]")) (; ";")) (declaration "undefined4 uStack_2084;" (type_identifier "undefined4") (identifier "uStack_2084") (; ";")) (declaration "uint uStack_2080;" (type_identifier "uint") (identifier "uStack_2080") (; ";")) (declaration "char *pcStack_207c;" (primitive_type "char") (pointer_declarator "*pcStack_207c" (* "*") (identifier "pcStack_207c")) (; ";")) (declaration "uint uStack_2078;" (type_identifier "uint") (identifier "uStack_2078") (; ";")) (declaration "uint uStack_2074;" (type_identifier "uint") (identifier "uStack_2074") (; ";")) (declaration "int iStack_2070;" (primitive_type "int") (identifier "iStack_2070") (; ";")) (declaration "code *pcStack_206c;" (type_identifier "code") (pointer_declarator "*pcStack_206c" (* "*") (identifier "pcStack_206c")) (; ";")) (declaration "undefined4 local_2058;" (type_identifier "undefined4") (identifier "local_2058") (; ";")) (declaration "undefined4 local_2054;" (type_identifier "undefined4") (identifier "local_2054") (; ";")) (declaration "char acStack_202d [8193];" (primitive_type "char") (array_declarator "acStack_202d [8193]" (identifier "acStack_202d") ([ "[") (number_literal "8193") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar24 = PTR___stack_chk_guard_0002d2dc;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0002d2dc" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_guard_0002d2dc")) (; ";")) (expression_statement "uVar4 = param_8 - param_6 & 0x1fff;" (assignment_expression "uVar4 = param_8 - param_6 & 0x1fff" (identifier "uVar4") (= "=") (binary_expression "param_8 - param_6 & 0x1fff" (binary_expression "param_8 - param_6" (identifier "param_8") (- "-") (identifier "param_6")) (& "&") (number_literal "0x1fff"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0002d2dc" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0002d2dc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0002d2dc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0002d2dc")))) (; ";")) (if_statement "if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }" (if "if") (parenthesized_expression "((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0)" (( "(") (binary_expression "(int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0" (cast_expression "(int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((param_7 - param_5) - (uint)(param_8 < param_8 - param_6))" (( "(") (binary_expression "(param_7 - param_5) - (uint)(param_8 < param_8 - param_6)" (parenthesized_expression "(param_7 - param_5)" (( "(") (binary_expression "param_7 - param_5" (identifier "param_7") (- "-") (identifier "param_5")) () ")")) (- "-") (call_expression "(uint)(param_8 < param_8 - param_6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_8 < param_8 - param_6)" (( "(") (binary_expression "param_8 < param_8 - param_6" (identifier "param_8") (< "<") (binary_expression "param_8 - param_6" (identifier "param_8") (- "-") (identifier "param_6"))) () ")")))) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;\n  }" ({ "{") (expression_statement "uVar4 = (uVar4 - 1 | 0xffffe000) + 1;" (assignment_expression "uVar4 = (uVar4 - 1 | 0xffffe000) + 1" (identifier "uVar4") (= "=") (binary_expression "(uVar4 - 1 | 0xffffe000) + 1" (parenthesized_expression "(uVar4 - 1 | 0xffffe000)" (( "(") (binary_expression "uVar4 - 1 | 0xffffe000" (binary_expression "uVar4 - 1" (identifier "uVar4") (- "-") (number_literal "1")) (| "|") (number_literal "0xffffe000")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" (identifier "local_2058") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar20 = 0x2000;" (assignment_expression "uVar20 = 0x2000" (identifier "uVar20") (= "=") (number_literal "0x2000")) (; ";")) (if_statement "if (uVar4 != 0) {\n    uVar20 = uVar4;\n  }" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar20 = uVar4;\n  }" ({ "{") (expression_statement "uVar20 = uVar4;" (assignment_expression "uVar20 = uVar4" (identifier "uVar20") (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "uVar4 = param_8 - uVar20;" (assignment_expression "uVar4 = param_8 - uVar20" (identifier "uVar4") (= "=") (binary_expression "param_8 - uVar20" (identifier "param_8") (- "-") (identifier "uVar20"))) (; ";")) (expression_statement "pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);" (assignment_expression "pcVar23 = (code *)(PTR_0002d104 + 0x2fbc)" (identifier "pcVar23") (= "=") (cast_expression "(code *)(PTR_0002d104 + 0x2fbc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_0002d104 + 0x2fbc)" (( "(") (binary_expression "PTR_0002d104 + 0x2fbc" (identifier "PTR_0002d104") (+ "+") (number_literal "0x2fbc")) () ")")))) (; ";")) (expression_statement "param_7 = param_7 - (uint)(param_8 < uVar4);" (assignment_expression "param_7 = param_7 - (uint)(param_8 < uVar4)" (identifier "param_7") (= "=") (binary_expression "param_7 - (uint)(param_8 < uVar4)" (identifier "param_7") (- "-") (call_expression "(uint)(param_8 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_8 < uVar4)" (( "(") (binary_expression "param_8 < uVar4" (identifier "param_8") (< "<") (identifier "uVar4")) () ")"))))) (; ";")) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" (identifier "local_2054") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);" (assignment_expression "iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4)" (identifier "iVar5") (= "=") (call_expression "FUN_00012fbc(param_2,local_2c,param_7,uVar4)" (identifier "FUN_00012fbc") (argument_list "(param_2,local_2c,param_7,uVar4)" (( "(") (identifier "param_2") (, ",") (identifier "local_2c") (, ",") (identifier "param_7") (, ",") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (-1 < iVar5) {\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }" (if "if") (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n    unaff_s1 = acStack_202d + 1;\n    uVar6 = safe_read(param_2,unaff_s1,uVar20);\n    puVar2 = PTR_DAT_0002d0f8;\n    if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }\nLAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();\n    param_3 = *puVar8;\n    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);\n    uVar9 = quotearg_style(4,param_1);\n    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);\n  }" ({ "{") (expression_statement "unaff_s1 = acStack_202d + 1;" (assignment_expression "unaff_s1 = acStack_202d + 1" (identifier "unaff_s1") (= "=") (binary_expression "acStack_202d + 1" (identifier "acStack_202d") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = safe_read(param_2,unaff_s1,uVar20);" (assignment_expression "uVar6 = safe_read(param_2,unaff_s1,uVar20)" (identifier "uVar6") (= "=") (call_expression "safe_read(param_2,unaff_s1,uVar20)" (identifier "safe_read") (argument_list "(param_2,unaff_s1,uVar20)" (( "(") (identifier "param_2") (, ",") (identifier "unaff_s1") (, ",") (identifier "uVar20") () ")")))) (; ";")) (expression_statement "puVar2 = PTR_DAT_0002d0f8;" (assignment_expression "puVar2 = PTR_DAT_0002d0f8" (identifier "puVar2") (= "=") (identifier "PTR_DAT_0002d0f8")) (; ";")) (if_statement "if (uVar6 != 0xffffffff) {\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }" (if "if") (parenthesized_expression "(uVar6 != 0xffffffff)" (( "(") (binary_expression "uVar6 != 0xffffffff" (identifier "uVar6") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n      uVar20 = param_3 | param_4;\n      uVar21 = uVar4;\n      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }\n      do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);\n      goto LAB_00013b94;\n    }" ({ "{") (expression_statement "uVar20 = param_3 | param_4;" (assignment_expression "uVar20 = param_3 | param_4" (identifier "uVar20") (= "=") (binary_expression "param_3 | param_4" (identifier "param_3") (| "|") (identifier "param_4"))) (; ";")) (expression_statement "uVar21 = uVar4;" (assignment_expression "uVar21 = uVar4" (identifier "uVar21") (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }" (if "if") (parenthesized_expression "(((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf]))" (( "(") (binary_expression "((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])" (parenthesized_expression "((uVar20 != 0) && (uVar6 != 0))" (( "(") (binary_expression "(uVar20 != 0) && (uVar6 != 0)" (parenthesized_expression "(uVar20 != 0)" (( "(") (binary_expression "uVar20 != 0" (identifier "uVar20") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])" (( "(") (binary_expression "acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf]" (subscript_expression "acStack_202d[uVar6]" (identifier "acStack_202d") ([ "[") (identifier "uVar6") (] "]")) (!= "!=") (subscript_expression "PTR_DAT_0002d0f8[-0x2cdf]" (identifier "PTR_DAT_0002d0f8") ([ "[") (number_literal "-0x2cdf") (] "]"))) () ")"))) () ")")) (compound_statement "{\n        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);\n        param_4 = param_4 - 1;\n      }" ({ "{") (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1)" (identifier "param_3") (= "=") (binary_expression "(uint)(param_4 - 1 < param_4) + (param_3 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 - 1 < param_4)" (( "(") (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" (identifier "param_4") (- "-") (number_literal "1")) (< "<") (identifier "param_4")) () ")"))) (+ "+") (parenthesized_expression "(param_3 - 1)" (( "(") (binary_expression "param_3 - 1" (identifier "param_3") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "param_4 = param_4 - 1;" (assignment_expression "param_4 = param_4 - 1" (identifier "param_4") (= "=") (binary_expression "param_4 - 1" (identifier "param_4") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (do_statement "do {\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      } while (uVar6 != 0);" (do "do") (compound_statement "{\n        uVar4 = uVar21;\n        if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }\n        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;\n        uVar4 = uVar21 - 0x2000;\n        local_2058 = 0;\n        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;\n        local_2054 = param_1;\n        iVar5 = (*pcVar23)(param_2);\n        if (iVar5 < 0) goto LAB_00013b8c;\n        uVar6 = safe_read(param_2,unaff_s1,0x2000);\n        if (uVar6 == 0xffffffff) goto LAB_00013b28;\n        uVar7 = 1;\n        uVar21 = uVar4;\n      }" ({ "{") (expression_statement "uVar4 = uVar21;" (assignment_expression "uVar4 = uVar21" (identifier "uVar4") (= "=") (identifier "uVar21")) (; ";")) (if_statement "if (uVar6 != 0) {\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          cVar1 = puVar2[-0x2cdf];\n          uVar7 = param_3;\n          do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);\n        }" ({ "{") (expression_statement "cVar1 = puVar2[-0x2cdf];" (assignment_expression "cVar1 = puVar2[-0x2cdf]" (identifier "cVar1") (= "=") (subscript_expression "puVar2[-0x2cdf]" (identifier "puVar2") ([ "[") (number_literal "-0x2cdf") (] "]"))) (; ";")) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" (identifier "uVar7") (= "=") (identifier "param_3")) (; ";")) (do_statement "do {\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          } while (uVar6 != 0);" (do "do") (compound_statement "{\n            if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }\n            param_4 = param_4 - 1;\n            uVar7 = param_3;\n          }" ({ "{") (if_statement "if (uVar20 == 0) {\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }\n            else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar6 = uVar6 - 1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;\n            }" ({ "{") (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1"))) (; ";")) (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1)" (identifier "param_3") (= "=") (binary_expression "(uint)(param_4 - 1 < param_4) + (uVar7 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 - 1 < param_4)" (( "(") (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" (identifier "param_4") (- "-") (number_literal "1")) (< "<") (identifier "param_4")) () ")"))) (+ "+") (parenthesized_expression "(uVar7 - 1)" (( "(") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;" (if "if") (parenthesized_expression "(uVar7 == 0 && param_4 == 0)" (( "(") (binary_expression "uVar7 == 0 && param_4 == 0" (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) (&& "&&") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_000139ec;" (goto "goto") (statement_identifier "LAB_000139ec") (; ";"))) (} "}")) (else_clause "else {\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" (else "else") (compound_statement "{\n              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);\n              param_3 = uVar7;\n              if (iVar5 == 0) break;\n              uVar6 = iVar5 - (int)unaff_s1;\n              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);\n              if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }\n            }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);" (assignment_expression "iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6)" (parenthesized_expression "(*(code *)PTR_memrchr_0002d280)" (( "(") (pointer_expression "*(code *)PTR_memrchr_0002d280" (* "*") (cast_expression "(code *)PTR_memrchr_0002d280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memrchr_0002d280"))) () ")")) (argument_list "(unaff_s1,(int)cVar1,uVar6)" (( "(") (identifier "unaff_s1") (, ",") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1")) (, ",") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "param_3 = uVar7;" (assignment_expression "param_3 = uVar7" (identifier "param_3") (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = iVar5 - (int)unaff_s1;" (assignment_expression "uVar6 = iVar5 - (int)unaff_s1" (identifier "uVar6") (= "=") (binary_expression "iVar5 - (int)unaff_s1" (identifier "iVar5") (- "-") (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")))) (; ";")) (expression_statement "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);" (assignment_expression "param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1)" (identifier "param_3") (= "=") (binary_expression "(uint)(param_4 - 1 < param_4) + (uVar7 - 1)" (call_expression "(uint)(param_4 - 1 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 - 1 < param_4)" (( "(") (binary_expression "param_4 - 1 < param_4" (binary_expression "param_4 - 1" (identifier "param_4") (- "-") (number_literal "1")) (< "<") (identifier "param_4")) () ")"))) (+ "+") (parenthesized_expression "(uVar7 - 1)" (( "(") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar7 == 0 && param_4 == 0) {\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }" (if "if") (parenthesized_expression "(uVar7 == 0 && param_4 == 0)" (( "(") (binary_expression "uVar7 == 0 && param_4 == 0" (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) (&& "&&") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\nLAB_000139ec:\n                iVar5 = uVar7 - 1;\n                if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }\n                FUN_00013118(unaff_s1,uVar6 + 1);\n                uVar21 = uVar6 + uVar21;\n                local_2058 = 0;\n                param_7 = (uint)(uVar21 < uVar6) + param_7;\n                local_2054 = param_1;\n                uVar4 = (*pcVar23)(param_2);\n                uVar7 = ~uVar4 >> 0x1f;\n                uVar4 = (uint)(uVar21 + 1 < uVar21);\n                goto LAB_00013b94;\n              }" ({ "{") (labeled_statement "LAB_000139ec:\n                iVar5 = uVar7 - 1;" (statement_identifier "LAB_000139ec") (: ":") (expression_statement "iVar5 = uVar7 - 1;" (assignment_expression "iVar5 = uVar7 - 1" (identifier "iVar5") (= "=") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1"))) (; ";"))) (if_statement "if ((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))\n                {\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }" (if "if") (parenthesized_expression "((param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))" (( "(") (binary_expression "(param_5 < param_7) ||\n                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)))" (parenthesized_expression "(param_5 < param_7)" (( "(") (binary_expression "param_5 < param_7" (identifier "param_5") (< "<") (identifier "param_7")) () ")")) (|| "||") (parenthesized_expression "((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)))" (( "(") (parenthesized_expression "(param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))" (( "(") (comma_expression "param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)" (assignment_expression "param_3 = uVar7" (identifier "param_3") (= "=") (identifier "uVar7")) (, ",") (binary_expression "param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21)" (binary_expression "param_7 == param_5" (identifier "param_7") (== "==") (identifier "param_5")) (&& "&&") (parenthesized_expression "(iVar5 = uVar6 + 1, param_6 < uVar21)" (( "(") (comma_expression "iVar5 = uVar6 + 1, param_6 < uVar21" (assignment_expression "iVar5 = uVar6 + 1" (identifier "iVar5") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (, ",") (binary_expression "param_6 < uVar21" (identifier "param_6") (< "<") (identifier "uVar21"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  local_2058 = 0;\n                  local_2054 = param_1;\n                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);\n                  param_3 = param_6;\n                  if (iVar5 < 0) goto LAB_00013b8c;\n                  iVar5 = FUN_000131f4(param_2);\n                  if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }\n                }" ({ "{") (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" (identifier "local_2058") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" (identifier "local_2054") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);" (assignment_expression "iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6)" (identifier "iVar5") (= "=") (call_expression "(*pcVar23)(param_2,iVar5,param_5,param_6)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(param_2,iVar5,param_5,param_6)" (( "(") (identifier "param_2") (, ",") (identifier "iVar5") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "param_3 = param_6;" (assignment_expression "param_3 = param_6" (identifier "param_3") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (iVar5 < 0) goto LAB_00013b8c;" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00013b8c;" (goto "goto") (statement_identifier "LAB_00013b8c") (; ";"))) (expression_statement "iVar5 = FUN_000131f4(param_2);" (assignment_expression "iVar5 = FUN_000131f4(param_2)" (identifier "iVar5") (= "=") (call_expression "FUN_000131f4(param_2)" (identifier "FUN_000131f4") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    FUN_0001373c(iVar5,param_1);\n                    uVar7 = 0;\n                    goto LAB_00013b94;\n                  }" ({ "{") (expression_statement "FUN_0001373c(iVar5,param_1);" (call_expression "FUN_0001373c(iVar5,param_1)" (identifier "FUN_0001373c") (argument_list "(iVar5,param_1)" (( "(") (identifier "iVar5") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00013b94;" (goto "goto") (statement_identifier "LAB_00013b94") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00013118(unaff_s1,uVar6 + 1);" (call_expression "FUN_00013118(unaff_s1,uVar6 + 1)" (identifier "FUN_00013118") (argument_list "(unaff_s1,uVar6 + 1)" (( "(") (identifier "unaff_s1") (, ",") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "uVar21 = uVar6 + uVar21;" (assignment_expression "uVar21 = uVar6 + uVar21" (identifier "uVar21") (= "=") (binary_expression "uVar6 + uVar21" (identifier "uVar6") (+ "+") (identifier "uVar21"))) (; ";")) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" (identifier "local_2058") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7 = (uint)(uVar21 < uVar6) + param_7;" (assignment_expression "param_7 = (uint)(uVar21 < uVar6) + param_7" (identifier "param_7") (= "=") (binary_expression "(uint)(uVar21 < uVar6) + param_7" (call_expression "(uint)(uVar21 < uVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar21 < uVar6)" (( "(") (binary_expression "uVar21 < uVar6" (identifier "uVar21") (< "<") (identifier "uVar6")) () ")"))) (+ "+") (identifier "param_7"))) (; ";")) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" (identifier "local_2054") (= "=") (identifier "param_1")) (; ";")) (expression_statement "uVar4 = (*pcVar23)(param_2);" (assignment_expression "uVar4 = (*pcVar23)(param_2)" (identifier "uVar4") (= "=") (call_expression "(*pcVar23)(param_2)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar7 = ~uVar4 >> 0x1f;" (assignment_expression "uVar7 = ~uVar4 >> 0x1f" (identifier "uVar7") (= "=") (binary_expression "~uVar4 >> 0x1f" (unary_expression "~uVar4" (~ "~") (identifier "uVar4")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar4 = (uint)(uVar21 + 1 < uVar21);" (assignment_expression "uVar4 = (uint)(uVar21 + 1 < uVar21)" (identifier "uVar4") (= "=") (call_expression "(uint)(uVar21 + 1 < uVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar21 + 1 < uVar21)" (( "(") (binary_expression "uVar21 + 1 < uVar21" (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) (< "<") (identifier "uVar21")) () ")")))) (; ";")) (goto_statement "goto LAB_00013b94;" (goto "goto") (statement_identifier "LAB_00013b94") (; ";")) (} "}"))) (} "}")))) (expression_statement "param_4 = param_4 - 1;" (assignment_expression "param_4 = param_4 - 1" (identifier "param_4") (= "=") (binary_expression "param_4 - 1" (identifier "param_4") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = param_3;" (assignment_expression "uVar7 = param_3" (identifier "uVar7") (= "=") (identifier "param_3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (if_statement "if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;" (if "if") (parenthesized_expression "((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6))" (( "(") (binary_expression "(param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)" (parenthesized_expression "(param_7 == param_5)" (( "(") (binary_expression "param_7 == param_5" (identifier "param_7") (== "==") (identifier "param_5")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = 1, uVar21 == param_6)" (( "(") (comma_expression "uVar7 = 1, uVar21 == param_6" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (, ",") (binary_expression "uVar21 == param_6" (identifier "uVar21") (== "==") (identifier "param_6"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar4 = uVar21 - 0x2000;" (assignment_expression "uVar4 = uVar21 - 0x2000" (identifier "uVar4") (= "=") (binary_expression "uVar21 - 0x2000" (identifier "uVar21") (- "-") (number_literal "0x2000"))) (; ";")) (expression_statement "local_2058 = 0;" (assignment_expression "local_2058 = 0" (identifier "local_2058") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;" (assignment_expression "param_7 = (uint)(uVar4 < uVar21) + param_7 + -1" (identifier "param_7") (= "=") (binary_expression "(uint)(uVar4 < uVar21) + param_7 + -1" (binary_expression "(uint)(uVar4 < uVar21) + param_7" (call_expression "(uint)(uVar4 < uVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 < uVar21)" (( "(") (binary_expression "uVar4 < uVar21" (identifier "uVar4") (< "<") (identifier "uVar21")) () ")"))) (+ "+") (identifier "param_7")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_2054 = param_1;" (assignment_expression "local_2054 = param_1" (identifier "local_2054") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar5 = (*pcVar23)(param_2);" (assignment_expression "iVar5 = (*pcVar23)(param_2)" (identifier "iVar5") (= "=") (call_expression "(*pcVar23)(param_2)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) goto LAB_00013b8c;" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00013b8c;" (goto "goto") (statement_identifier "LAB_00013b8c") (; ";"))) (expression_statement "uVar6 = safe_read(param_2,unaff_s1,0x2000);" (assignment_expression "uVar6 = safe_read(param_2,unaff_s1,0x2000)" (identifier "uVar6") (= "=") (call_expression "safe_read(param_2,unaff_s1,0x2000)" (identifier "safe_read") (argument_list "(param_2,unaff_s1,0x2000)" (( "(") (identifier "param_2") (, ",") (identifier "unaff_s1") (, ",") (number_literal "0x2000") () ")")))) (; ";")) (if_statement "if (uVar6 == 0xffffffff) goto LAB_00013b28;" (if "if") (parenthesized_expression "(uVar6 == 0xffffffff)" (( "(") (binary_expression "uVar6 == 0xffffffff" (identifier "uVar6") (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_00013b28;" (goto "goto") (statement_identifier "LAB_00013b28") (; ";"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar21 = uVar4;" (assignment_expression "uVar21 = uVar4" (identifier "uVar21") (= "=") (identifier "uVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (; ";")) (goto_statement "goto LAB_00013b94;" (goto "goto") (statement_identifier "LAB_00013b94") (; ";")) (} "}"))) (labeled_statement "LAB_00013b28:\n    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();" (statement_identifier "LAB_00013b28") (: ":") (expression_statement "puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();" (assignment_expression "puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)()" (identifier "puVar8") (= "=") (cast_expression "(uint *)(*(code *)PTR___errno_location_0002d264)()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0002d264)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002d264)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0002d264" (* "*") (cast_expression "(code *)PTR___errno_location_0002d264" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0002d264"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "param_3 = *puVar8;" (assignment_expression "param_3 = *puVar8" (identifier "param_3") (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);" (assignment_expression "unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" (identifier "unaff_s1") (= "=") (cast_expression "(char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0002d2c8)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_0002d2c8" (* "*") (cast_expression "(code *)PTR_dcgettext_0002d2c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_0002d2c8"))) () ")")) (argument_list "(0,PTR_DAT_0002d108 + -0x4f50,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_DAT_0002d108 + -0x4f50" (identifier "PTR_DAT_0002d108") (+ "+") (number_literal "-0x4f50")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "uVar9 = quotearg_style(4,param_1);" (assignment_expression "uVar9 = quotearg_style(4,param_1)" (identifier "uVar9") (= "=") (call_expression "quotearg_style(4,param_1)" (identifier "quotearg_style") (argument_list "(4,param_1)" (( "(") (number_literal "4") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);" (call_expression "(*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9)" (parenthesized_expression "(*(code *)PTR_error_0002d2a0)" (( "(") (pointer_expression "*(code *)PTR_error_0002d2a0" (* "*") (cast_expression "(code *)PTR_error_0002d2a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_error_0002d2a0"))) () ")")) (argument_list "(0,param_3,unaff_s1,uVar9)" (( "(") (number_literal "0") (, ",") (identifier "param_3") (, ",") (identifier "unaff_s1") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00013b8c:\n  uVar7 = 0;" (statement_identifier "LAB_00013b8c") (: ":") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_00013b94:\n  if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }" (statement_identifier "LAB_00013b94") (: ":") (if_statement "if (local_2c == *(int *)puVar24) {\n    return uVar7;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar24)" (( "(") (binary_expression "local_2c == *(int *)puVar24" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar24" (* "*") (cast_expression "(int *)puVar24" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar24")))) () ")")) (compound_statement "{\n    return uVar7;\n  }" ({ "{") (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}")))) (expression_statement "pcVar25 = usage;" (assignment_expression "pcVar25 = usage" (identifier "pcVar25") (= "=") (identifier "usage")) (; ";")) (expression_statement "iVar5 = local_2c;" (assignment_expression "iVar5 = local_2c" (identifier "iVar5") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar24 = PTR___stack_chk_fail_0002d2c4;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0002d2c4" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_fail_0002d2c4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0002d2c4)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002d2c4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002d2c4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0002d2c4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0002d2c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0002d2c4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);" (assignment_expression "uStack_2084 = **(undefined4 **)(puVar24 + 0x19674)" (identifier "uStack_2084") (= "=") (pointer_expression "**(undefined4 **)(puVar24 + 0x19674)" (* "*") (pointer_expression "*(undefined4 **)(puVar24 + 0x19674)" (* "*") (cast_expression "(undefined4 **)(puVar24 + 0x19674)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19674)" (( "(") (binary_expression "puVar24 + 0x19674" (identifier "puVar24") (+ "+") (number_literal "0x19674")) () ")")))))) (; ";")) (expression_statement "pcVar23 = *(code **)(puVar24 + 0x19660);" (assignment_expression "pcVar23 = *(code **)(puVar24 + 0x19660)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) (; ";")) (expression_statement "uStack_2080 = param_3;" (assignment_expression "uStack_2080 = param_3" (identifier "uStack_2080") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_207c = unaff_s1;" (assignment_expression "pcStack_207c = unaff_s1" (identifier "pcStack_207c") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "uStack_2078 = uVar20;" (assignment_expression "uStack_2078 = uVar20" (identifier "uStack_2078") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "uStack_2074 = uVar4;" (assignment_expression "uStack_2074 = uVar4" (identifier "uStack_2074") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iStack_2070 = param_7;" (assignment_expression "iStack_2070 = param_7" (identifier "iStack_2070") (= "=") (identifier "param_7")) (; ";")) (expression_statement "pcStack_206c = pcVar25;" (assignment_expression "pcStack_206c = pcVar25" (identifier "pcStack_206c") (= "=") (identifier "pcVar25")) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00013cf8;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00013cf8;" (goto "goto") (statement_identifier "LAB_00013cf8") (; ";"))) (expression_statement "uVar17 = **(undefined4 **)(puVar24 + 0x19684);" (assignment_expression "uVar17 = **(undefined4 **)(puVar24 + 0x19684)" (identifier "uVar17") (= "=") (pointer_expression "**(undefined4 **)(puVar24 + 0x19684)" (* "*") (pointer_expression "*(undefined4 **)(puVar24 + 0x19684)" (* "*") (cast_expression "(undefined4 **)(puVar24 + 0x19684)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19684)" (( "(") (binary_expression "puVar24 + 0x19684" (identifier "puVar24") (+ "+") (number_literal "0x19684")) () ")")))))) (; ";")) (expression_statement "uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);" (assignment_expression "uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" (identifier "uVar9") (= "=") (call_expression "(*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4f14")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));" (call_expression "(**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" (parenthesized_expression "(**(code **)(puVar24 + 0x195c4))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195c4)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195c4)" (* "*") (cast_expression "(code **)(puVar24 + 0x195c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195c4)" (( "(") (binary_expression "puVar24 + 0x195c4" (identifier "puVar24") (+ "+") (number_literal "0x195c4")) () ")"))))) () ")")) (argument_list "(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" (( "(") (identifier "uVar17") (, ",") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (pointer_expression "**(undefined4 **)(puVar24 + 0x194b8)" (* "*") (pointer_expression "*(undefined4 **)(puVar24 + 0x194b8)" (* "*") (cast_expression "(undefined4 **)(puVar24 + 0x194b8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x194b8)" (( "(") (binary_expression "puVar24 + 0x194b8" (identifier "puVar24") (+ "+") (number_literal "0x194b8")) () ")"))))) () ")"))) (; ";")) (do_statement "do {\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  } while( true );" (do "do") (compound_statement "{\n    pcVar23 = *(code **)(puVar24 + 0x19620);\n    (*pcVar23)(iVar5);\nLAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);\n    uVar9 = (*pcVar23)();\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);\n    piVar19 = aiStack_20bc;\n    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);\n    iVar10 = *(int *)(puVar24 + 0x19490);\n    piVar12 = (int *)(iVar10 + -0x2ff0);\n    piVar3 = piVar19;\n    do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));\n    iVar10 = piVar11[5];\n    iVar15 = *(int *)(puVar24 + 0x194a0);\n    piVar14[4] = *piVar12;\n    piVar14[5] = iVar10;\n    iVar10 = aiStack_20bc[0];\n    while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }\n    iVar10 = *(int *)(puVar24 + 0x194a0);\nLAB_00013f44:\n    iVar16 = piVar19[1];\n    iVar22 = *(int *)(puVar24 + 0x194a0);\n    if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }\n    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);\n  }" ({ "{") (expression_statement "pcVar23 = *(code **)(puVar24 + 0x19620);" (assignment_expression "pcVar23 = *(code **)(puVar24 + 0x19620)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar24 + 0x19620)" (* "*") (cast_expression "(code **)(puVar24 + 0x19620)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19620)" (( "(") (binary_expression "puVar24 + 0x19620" (identifier "puVar24") (+ "+") (number_literal "0x19620")) () ")"))))) (; ";")) (expression_statement "(*pcVar23)(iVar5);" (call_expression "(*pcVar23)(iVar5)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (labeled_statement "LAB_00013cf8:\n    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);" (statement_identifier "LAB_00013cf8") (: ":") (expression_statement "puVar18 = *(undefined4 **)(puVar24 + 0x195f4);" (assignment_expression "puVar18 = *(undefined4 **)(puVar24 + 0x195f4)" (identifier "puVar18") (= "=") (pointer_expression "*(undefined4 **)(puVar24 + 0x195f4)" (* "*") (cast_expression "(undefined4 **)(puVar24 + 0x195f4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f4)" (( "(") (binary_expression "puVar24 + 0x195f4" (identifier "puVar24") (+ "+") (number_literal "0x195f4")) () ")"))))) (; ";"))) (expression_statement "uVar9 = (*pcVar23)();" (assignment_expression "uVar9 = (*pcVar23)()" (identifier "uVar9") (= "=") (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8))" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (pointer_expression "**(undefined4 **)(puVar24 + 0x194b8)" (* "*") (pointer_expression "*(undefined4 **)(puVar24 + 0x194b8)" (* "*") (cast_expression "(undefined4 **)(puVar24 + 0x194b8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x194b8)" (( "(") (binary_expression "puVar24 + 0x194b8" (identifier "puVar24") (+ "+") (number_literal "0x194b8")) () ")"))))) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4ec8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4ec8")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,10)" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4e40" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4e40")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x1969c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x1969c)" (* "*") (cast_expression "(code **)(puVar24 + 0x1969c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x1969c)" (( "(") (binary_expression "puVar24 + 0x1969c" (identifier "puVar24") (+ "+") (number_literal "0x1969c")) () ")"))))) () ")")) (argument_list "(uVar9,*puVar18)" (( "(") (identifier "uVar9") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4e08" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4e08")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x1969c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x1969c)" (* "*") (cast_expression "(code **)(puVar24 + 0x1969c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x1969c)" (( "(") (binary_expression "puVar24 + 0x1969c" (identifier "puVar24") (+ "+") (number_literal "0x1969c")) () ")"))))) () ")")) (argument_list "(uVar9,*puVar18)" (( "(") (identifier "uVar9") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4dbc" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4dbc")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,10)" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4c2c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4c2c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x1969c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x1969c)" (* "*") (cast_expression "(code **)(puVar24 + 0x1969c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x1969c)" (( "(") (binary_expression "puVar24 + 0x1969c" (identifier "puVar24") (+ "+") (number_literal "0x1969c")) () ")"))))) () ")")) (argument_list "(uVar9,*puVar18)" (( "(") (identifier "uVar9") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4ba8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4ba8")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x1969c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x1969c)" (* "*") (cast_expression "(code **)(puVar24 + 0x1969c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x1969c)" (( "(") (binary_expression "puVar24 + 0x1969c" (identifier "puVar24") (+ "+") (number_literal "0x1969c")) () ")"))))) () ")")) (argument_list "(uVar9,*puVar18)" (( "(") (identifier "uVar9") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b68" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4b68")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x1969c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x1969c)" (* "*") (cast_expression "(code **)(puVar24 + 0x1969c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x1969c)" (( "(") (binary_expression "puVar24 + 0x1969c" (identifier "puVar24") (+ "+") (number_literal "0x1969c")) () ")"))))) () ")")) (argument_list "(uVar9,*puVar18)" (( "(") (identifier "uVar9") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b38" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4b38")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x1969c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x1969c)" (* "*") (cast_expression "(code **)(puVar24 + 0x1969c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x1969c)" (( "(") (binary_expression "puVar24 + 0x1969c" (identifier "puVar24") (+ "+") (number_literal "0x1969c")) () ")"))))) () ")")) (argument_list "(uVar9,*puVar18)" (( "(") (identifier "uVar9") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4b00" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4b00")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "piVar19 = aiStack_20bc;" (assignment_expression "piVar19 = aiStack_20bc" (identifier "piVar19") (= "=") (identifier "aiStack_20bc")) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);" (call_expression "(**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0x1969c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x1969c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x1969c)" (* "*") (cast_expression "(code **)(puVar24 + 0x1969c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x1969c)" (( "(") (binary_expression "puVar24 + 0x1969c" (identifier "puVar24") (+ "+") (number_literal "0x1969c")) () ")"))))) () ")")) (argument_list "(uVar9,*puVar18)" (( "(") (identifier "uVar9") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) () ")"))) (; ";")) (expression_statement "iVar10 = *(int *)(puVar24 + 0x19490);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x19490)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar24 + 0x19490)" (* "*") (cast_expression "(int *)(puVar24 + 0x19490)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x19490)" (( "(") (binary_expression "puVar24 + 0x19490" (identifier "puVar24") (+ "+") (number_literal "0x19490")) () ")"))))) (; ";")) (expression_statement "piVar12 = (int *)(iVar10 + -0x2ff0);" (assignment_expression "piVar12 = (int *)(iVar10 + -0x2ff0)" (identifier "piVar12") (= "=") (cast_expression "(int *)(iVar10 + -0x2ff0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + -0x2ff0)" (( "(") (binary_expression "iVar10 + -0x2ff0" (identifier "iVar10") (+ "+") (number_literal "-0x2ff0")) () ")")))) (; ";")) (expression_statement "piVar3 = piVar19;" (assignment_expression "piVar3 = piVar19" (identifier "piVar3") (= "=") (identifier "piVar19")) (; ";")) (do_statement "do {\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    } while (piVar12 != (int *)(iVar10 + -0x2fc0));" (do "do") (compound_statement "{\n      piVar14 = piVar3;\n      piVar11 = piVar12;\n      piVar12 = piVar11 + 4;\n      *piVar14 = *piVar11;\n      iVar16 = piVar11[2];\n      iVar15 = piVar11[3];\n      piVar14[1] = piVar11[1];\n      piVar14[2] = iVar16;\n      piVar14[3] = iVar15;\n      piVar3 = piVar14 + 4;\n    }" ({ "{") (expression_statement "piVar14 = piVar3;" (assignment_expression "piVar14 = piVar3" (identifier "piVar14") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" (identifier "piVar11") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "piVar12 = piVar11 + 4;" (assignment_expression "piVar12 = piVar11 + 4" (identifier "piVar12") (= "=") (binary_expression "piVar11 + 4" (identifier "piVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*piVar14 = *piVar11;" (assignment_expression "*piVar14 = *piVar11" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "iVar16 = piVar11[2];" (assignment_expression "iVar16 = piVar11[2]" (identifier "iVar16") (= "=") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar15 = piVar11[3];" (assignment_expression "iVar15 = piVar11[3]" (identifier "iVar15") (= "=") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar14[1] = piVar11[1];" (assignment_expression "piVar14[1] = piVar11[1]" (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar14[2] = iVar16;" (assignment_expression "piVar14[2] = iVar16" (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "piVar14[3] = iVar15;" (assignment_expression "piVar14[3] = iVar15" (subscript_expression "piVar14[3]" (identifier "piVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "piVar3 = piVar14 + 4;" (assignment_expression "piVar3 = piVar14 + 4" (identifier "piVar3") (= "=") (binary_expression "piVar14 + 4" (identifier "piVar14") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar12 != (int *)(iVar10 + -0x2fc0))" (( "(") (binary_expression "piVar12 != (int *)(iVar10 + -0x2fc0)" (identifier "piVar12") (!= "!=") (cast_expression "(int *)(iVar10 + -0x2fc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + -0x2fc0)" (( "(") (binary_expression "iVar10 + -0x2fc0" (identifier "iVar10") (+ "+") (number_literal "-0x2fc0")) () ")")))) () ")")) (; ";")) (expression_statement "iVar10 = piVar11[5];" (assignment_expression "iVar10 = piVar11[5]" (identifier "iVar10") (= "=") (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar15 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar15 = *(int *)(puVar24 + 0x194a0)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")"))))) (; ";")) (expression_statement "piVar14[4] = *piVar12;" (assignment_expression "piVar14[4] = *piVar12" (subscript_expression "piVar14[4]" (identifier "piVar14") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "piVar14[5] = iVar10;" (assignment_expression "piVar14[5] = iVar10" (subscript_expression "piVar14[5]" (identifier "piVar14") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "iVar10 = aiStack_20bc[0];" (assignment_expression "iVar10 = aiStack_20bc[0]" (identifier "iVar10") (= "=") (subscript_expression "aiStack_20bc[0]" (identifier "aiStack_20bc") ([ "[") (number_literal "0") (] "]"))) (; ";")) (while_statement "while (iVar10 != 0) {\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }" (while "while") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }\n      piVar19 = piVar19 + 2;\n      iVar10 = *piVar19;\n    }" ({ "{") (expression_statement "iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x19698))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19698)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19698)" (* "*") (cast_expression "(code **)(puVar24 + 0x19698)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19698)" (( "(") (binary_expression "puVar24 + 0x19698" (identifier "puVar24") (+ "+") (number_literal "0x19698")) () ")"))))) () ")")) (argument_list "(iVar15 + -0x4f1c)" (( "(") (binary_expression "iVar15 + -0x4f1c" (identifier "iVar15") (+ "+") (number_literal "-0x4f1c")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0);\n        goto LAB_00013f44;\n      }" ({ "{") (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")"))))) (; ";")) (goto_statement "goto LAB_00013f44;" (goto "goto") (statement_identifier "LAB_00013f44") (; ";")) (} "}"))) (expression_statement "piVar19 = piVar19 + 2;" (assignment_expression "piVar19 = piVar19 + 2" (identifier "piVar19") (= "=") (binary_expression "piVar19 + 2" (identifier "piVar19") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar10 = *piVar19;" (assignment_expression "iVar10 = *piVar19" (identifier "iVar10") (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")"))))) (; ";")) (labeled_statement "LAB_00013f44:\n    iVar16 = piVar19[1];" (statement_identifier "LAB_00013f44") (: ":") (expression_statement "iVar16 = piVar19[1];" (assignment_expression "iVar16 = piVar19[1]" (identifier "iVar16") (= "=") (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "iVar22 = *(int *)(puVar24 + 0x194a0);" (assignment_expression "iVar22 = *(int *)(puVar24 + 0x194a0)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")"))))) (; ";")) (if_statement "if (iVar16 == 0) {\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }\n    else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }\n      iVar16 = iVar15 + -0x4f1c;\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n    }" ({ "{") (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,iVar10 + -0x4a64,5)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar10 + -0x4a64" (identifier "iVar10") (+ "+") (number_literal "-0x4a64")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);" (call_expression "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a24" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4a24")) (, ",") (binary_expression "iVar22 + -0x4a4c" (identifier "iVar22") (+ "+") (number_literal "-0x4a4c")) () ")"))) (; ";")) (expression_statement "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar24 + 0x195e0))(5,0)" (parenthesized_expression "(**(code **)(puVar24 + 0x195e0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195e0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195e0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195e0)" (( "(") (binary_expression "puVar24 + 0x195e0" (identifier "puVar24") (+ "+") (number_literal "0x195e0")) () ")"))))) () ")")) (argument_list "(5,0)" (( "(") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)) {\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }" (if "if") (parenthesized_expression "((iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0))" (( "(") (binary_expression "(iVar10 != 0) &&\n         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)" (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0)" (( "(") (comma_expression "iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),\n         iVar10 != 0" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (parenthesized_expression "(**(code **)(puVar24 + 0x195b8))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195b8)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195b8)" (* "*") (cast_expression "(code **)(puVar24 + 0x195b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195b8)" (( "(") (binary_expression "puVar24 + 0x195b8" (identifier "puVar24") (+ "+") (number_literal "0x195b8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4a14")) (, ",") (number_literal "3") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        iVar16 = iVar15 + -0x4f1c;\n        iVar10 = iVar16;\nLAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);\n        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);\n        goto LAB_00013fcc;\n      }" ({ "{") (expression_statement "iVar16 = iVar15 + -0x4f1c;" (assignment_expression "iVar16 = iVar15 + -0x4f1c" (identifier "iVar16") (= "=") (binary_expression "iVar15 + -0x4f1c" (identifier "iVar15") (+ "+") (number_literal "-0x4f1c"))) (; ";")) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" (identifier "iVar10") (= "=") (identifier "iVar16")) (; ";")) (labeled_statement "LAB_00014148:\n        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);" (statement_identifier "LAB_00014148") (: ":") (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a10" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4a10")) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,iVar15 + -0x4f1c)" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (binary_expression "iVar15 + -0x4f1c" (identifier "iVar15") (+ "+") (number_literal "-0x4f1c")) () ")"))) (; ";")) (goto_statement "goto LAB_00013fcc;" (goto "goto") (statement_identifier "LAB_00013fcc") (; ";")) (} "}"))) (expression_statement "iVar16 = iVar15 + -0x4f1c;" (assignment_expression "iVar16 = iVar15 + -0x4f1c" (identifier "iVar16") (= "=") (binary_expression "iVar15 + -0x4f1c" (identifier "iVar15") (+ "+") (number_literal "-0x4f1c"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49c8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x49c8")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,iVar22 + -0x4a4c,iVar16)" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (binary_expression "iVar22 + -0x4a4c" (identifier "iVar22") (+ "+") (number_literal "-0x4a4c")) (, ",") (identifier "iVar16") () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49a8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x49a8")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c" (identifier "iVar10") (= "=") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x496c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x496c"))) (; ";")) (} "}")) (else_clause "else {\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" (else "else") (compound_statement "{\n      uVar9 = (**(code **)(puVar24 + 0x19660))();\n      (**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);\n      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);\n      if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }\nLAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);\n      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);\n      if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }\n    }" ({ "{") (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))();" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))()" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))()" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);" (call_expression "(**(code **)(puVar24 + 0x195f0))\n                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c)" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a24" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4a24")) (, ",") (binary_expression "iVar22 + -0x4a4c" (identifier "iVar22") (+ "+") (number_literal "-0x4a4c")) () ")"))) (; ";")) (expression_statement "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);" (assignment_expression "iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar24 + 0x195e0))(5,0)" (parenthesized_expression "(**(code **)(puVar24 + 0x195e0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195e0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195e0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195e0)" (( "(") (binary_expression "puVar24 + 0x195e0" (identifier "puVar24") (+ "+") (number_literal "0x195e0")) () ")"))))) () ")")) (argument_list "(5,0)" (( "(") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }\n      else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n      }" ({ "{") (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c" (identifier "iVar10") (= "=") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f1c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4f1c"))) (; ";")) (} "}")) (else_clause "else {\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" (else "else") (compound_statement "{\n        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;\n        if (iVar13 != 0) goto LAB_00014148;\n      }" ({ "{") (expression_statement "iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);" (assignment_expression "iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (parenthesized_expression "(**(code **)(puVar24 + 0x195b8))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195b8)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195b8)" (* "*") (cast_expression "(code **)(puVar24 + 0x195b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195b8)" (( "(") (binary_expression "puVar24 + 0x195b8" (identifier "puVar24") (+ "+") (number_literal "0x195b8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4a14" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4a14")) (, ",") (number_literal "3") () ")")))) (; ";")) (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c" (identifier "iVar10") (= "=") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x4f1c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x4f1c"))) (; ";")) (if_statement "if (iVar13 != 0) goto LAB_00014148;" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00014148;" (goto "goto") (statement_identifier "LAB_00014148") (; ";"))) (} "}")))) (labeled_statement "LAB_00013fcc:\n      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" (statement_identifier "LAB_00013fcc") (: ":") (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49c8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x49c8")) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c)" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (binary_expression "iVar22 + -0x4a4c" (identifier "iVar22") (+ "+") (number_literal "-0x4a4c")) (, ",") (binary_expression "iVar15 + -0x4f1c" (identifier "iVar15") (+ "+") (number_literal "-0x4f1c")) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);" (assignment_expression "uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (parenthesized_expression "(**(code **)(puVar24 + 0x19660))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x19660)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x19660)" (* "*") (cast_expression "(code **)(puVar24 + 0x19660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x19660)" (( "(") (binary_expression "puVar24 + 0x19660" (identifier "puVar24") (+ "+") (number_literal "0x19660")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x49a8" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x49a8")) (, ",") (number_literal "5") () ")")))) (; ";")) (if_statement "if (iVar16 == iVar10) {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }\n      else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" (if "if") (parenthesized_expression "(iVar16 == iVar10)" (( "(") (binary_expression "iVar16 == iVar10" (identifier "iVar16") (== "==") (identifier "iVar10")) () ")")) (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;\n      }" ({ "{") (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c" (identifier "iVar10") (= "=") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x496c" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x496c"))) (; ";")) (} "}")) (else_clause "else {\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" (else "else") (compound_statement "{\n        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;\n      }" ({ "{") (expression_statement "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;" (assignment_expression "iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858" (identifier "iVar10") (= "=") (binary_expression "*(int *)(puVar24 + 0x194a0) + -0x3858" (pointer_expression "*(int *)(puVar24 + 0x194a0)" (* "*") (cast_expression "(int *)(puVar24 + 0x194a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x194a0)" (( "(") (binary_expression "puVar24 + 0x194a0" (identifier "puVar24") (+ "+") (number_literal "0x194a0")) () ")")))) (+ "+") (number_literal "-0x3858"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);" (call_expression "(**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10)" (parenthesized_expression "(**(code **)(puVar24 + 0x195f0))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x195f0)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x195f0)" (* "*") (cast_expression "(code **)(puVar24 + 0x195f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x195f0)" (( "(") (binary_expression "puVar24 + 0x195f0" (identifier "puVar24") (+ "+") (number_literal "0x195f0")) () ")"))))) () ")")) (argument_list "(1,uVar9,iVar16,iVar10)" (( "(") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (identifier "iVar16") (, ",") (identifier "iVar10") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (expression_statement (assignment_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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (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) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (identifier)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) 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: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (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: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) 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: (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 (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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 (number_literal) (identifier) (identifier) (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_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: (identifier))) (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: (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)))))))) (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) 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)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (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)) (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 (identifier) (number_literal) (identifier) (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))))))))) (do_statement body: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (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))) 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: (identifier))) arguments: (argument_list)))) (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 (number_literal) (identifier) (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))))))))) (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) (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)) (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 (number_literal) (identifier) (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) (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)) (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 (identifier) (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 (number_literal) (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)) (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 (identifier) (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 (number_literal) (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)) (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 (number_literal) (identifier) (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) (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)) (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 (identifier) (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 (number_literal) (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)) (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 (identifier) (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 (number_literal) (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)) (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 (identifier) (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 (number_literal) (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)) (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 (identifier) (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 (number_literal) (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)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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) (pointer_expression argument: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (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 (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: (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))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (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) (binary_expression left: (identifier) right: (number_literal)) (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 (number_literal) (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)) (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 (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (number_literal) (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)) (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 (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (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)) (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 (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal)) (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) (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)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) 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))))) alternative: (else_clause (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)))) (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 (number_literal) (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)) (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 (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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))))) alternative: (else_clause (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) (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)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) 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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (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 (number_literal) (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)) (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 (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal)) (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 (number_literal) (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)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) 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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) 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 (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) (identifier))))) condition: (parenthesized_expression (true))))))

uint MASKED(undefined4 param_1,undefined4 param_2,uint param_3,uint param_4,int param_5,
                 uint param_6,int param_7,uint param_8)

{
  char cVar1;
  undefined *puVar2;
  int *piVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  uint *puVar8;
  undefined4 uVar9;
  int iVar10;
  int *piVar11;
  int *piVar12;
  int iVar13;
  int *piVar14;
  int iVar15;
  int iVar16;
  undefined4 uVar17;
  undefined4 *puVar18;
  int *piVar19;
  char *unaff_s1;
  uint uVar20;
  uint uVar21;
  int iVar22;
  code *pcVar23;
  undefined *puVar24;
  code *pcVar25;
  int aiStack_20bc [14];
  undefined4 uStack_2084;
  uint uStack_2080;
  char *pcStack_207c;
  uint uStack_2078;
  uint uStack_2074;
  int iStack_2070;
  code *pcStack_206c;
  undefined4 local_2058;
  undefined4 local_2054;
  char acStack_202d [8193];
  int local_2c;
  
  puVar24 = PTR___stack_chk_guard_0002d2dc;
  uVar4 = param_8 - param_6 & 0x1fff;
  local_2c = *(int *)PTR___stack_chk_guard_0002d2dc;
  if ((int)((param_7 - param_5) - (uint)(param_8 < param_8 - param_6)) < 0) {
    uVar4 = (uVar4 - 1 | 0xffffe000) + 1;
  }
  local_2058 = 0;
  uVar20 = 0x2000;
  if (uVar4 != 0) {
    uVar20 = uVar4;
  }
  uVar4 = param_8 - uVar20;
  pcVar23 = (code *)(PTR_0002d104 + 0x2fbc);
  param_7 = param_7 - (uint)(param_8 < uVar4);
  local_2054 = param_1;
  iVar5 = FUN_00012fbc(param_2,local_2c,param_7,uVar4);
  if (-1 < iVar5) {
    unaff_s1 = acStack_202d + 1;
    uVar6 = safe_read(param_2,unaff_s1,uVar20);
    puVar2 = PTR_DAT_0002d0f8;
    if (uVar6 != 0xffffffff) {
      uVar20 = param_3 | param_4;
      uVar21 = uVar4;
      if (((uVar20 != 0) && (uVar6 != 0)) && (acStack_202d[uVar6] != PTR_DAT_0002d0f8[-0x2cdf])) {
        param_3 = (uint)(param_4 - 1 < param_4) + (param_3 - 1);
        param_4 = param_4 - 1;
      }
      do {
        uVar4 = uVar21;
        if (uVar6 != 0) {
          cVar1 = puVar2[-0x2cdf];
          uVar7 = param_3;
          do {
            if (uVar20 == 0) {
              uVar6 = uVar6 - 1;
              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);
              if (uVar7 == 0 && param_4 == 0) goto LAB_000139ec;
            }
            else {
              iVar5 = (*(code *)PTR_memrchr_0002d280)(unaff_s1,(int)cVar1,uVar6);
              param_3 = uVar7;
              if (iVar5 == 0) break;
              uVar6 = iVar5 - (int)unaff_s1;
              param_3 = (uint)(param_4 - 1 < param_4) + (uVar7 - 1);
              if (uVar7 == 0 && param_4 == 0) {
LAB_000139ec:
                iVar5 = uVar7 - 1;
                if ((param_5 < param_7) ||
                   ((param_3 = uVar7, param_7 == param_5 && (iVar5 = uVar6 + 1, param_6 < uVar21))))
                {
                  local_2058 = 0;
                  local_2054 = param_1;
                  iVar5 = (*pcVar23)(param_2,iVar5,param_5,param_6);
                  param_3 = param_6;
                  if (iVar5 < 0) goto LAB_00013b8c;
                  iVar5 = FUN_000131f4(param_2);
                  if (iVar5 != 0) {
                    FUN_0001373c(iVar5,param_1);
                    uVar7 = 0;
                    goto LAB_00013b94;
                  }
                }
                FUN_00013118(unaff_s1,uVar6 + 1);
                uVar21 = uVar6 + uVar21;
                local_2058 = 0;
                param_7 = (uint)(uVar21 < uVar6) + param_7;
                local_2054 = param_1;
                uVar4 = (*pcVar23)(param_2);
                uVar7 = ~uVar4 >> 0x1f;
                uVar4 = (uint)(uVar21 + 1 < uVar21);
                goto LAB_00013b94;
              }
            }
            param_4 = param_4 - 1;
            uVar7 = param_3;
          } while (uVar6 != 0);
        }
        if ((param_7 == param_5) && (uVar7 = 1, uVar21 == param_6)) break;
        uVar4 = uVar21 - 0x2000;
        local_2058 = 0;
        param_7 = (uint)(uVar4 < uVar21) + param_7 + -1;
        local_2054 = param_1;
        iVar5 = (*pcVar23)(param_2);
        if (iVar5 < 0) goto LAB_00013b8c;
        uVar6 = safe_read(param_2,unaff_s1,0x2000);
        if (uVar6 == 0xffffffff) goto LAB_00013b28;
        uVar7 = 1;
        uVar21 = uVar4;
      } while (uVar6 != 0);
      goto LAB_00013b94;
    }
LAB_00013b28:
    puVar8 = (uint *)(*(code *)PTR___errno_location_0002d264)();
    param_3 = *puVar8;
    unaff_s1 = (char *)(*(code *)PTR_dcgettext_0002d2c8)(0,PTR_DAT_0002d108 + -0x4f50,5);
    uVar9 = quotearg_style(4,param_1);
    (*(code *)PTR_error_0002d2a0)(0,param_3,unaff_s1,uVar9);
  }
LAB_00013b8c:
  uVar7 = 0;
LAB_00013b94:
  if (local_2c == *(int *)puVar24) {
    return uVar7;
  }
  pcVar25 = usage;
  iVar5 = local_2c;
  puVar24 = PTR___stack_chk_fail_0002d2c4;
  (*(code *)PTR___stack_chk_fail_0002d2c4)();
  uStack_2084 = **(undefined4 **)(puVar24 + 0x19674);
  pcVar23 = *(code **)(puVar24 + 0x19660);
  uStack_2080 = param_3;
  pcStack_207c = unaff_s1;
  uStack_2078 = uVar20;
  uStack_2074 = uVar4;
  iStack_2070 = param_7;
  pcStack_206c = pcVar25;
  if (iVar5 == 0) goto LAB_00013cf8;
  uVar17 = **(undefined4 **)(puVar24 + 0x19684);
  uVar9 = (*pcVar23)(0,*(int *)(puVar24 + 0x194a0) + -0x4f14,5);
  (**(code **)(puVar24 + 0x195c4))(uVar17,1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));
  do {
    pcVar23 = *(code **)(puVar24 + 0x19620);
    (*pcVar23)(iVar5);
LAB_00013cf8:
    puVar18 = *(undefined4 **)(puVar24 + 0x195f4);
    uVar9 = (*pcVar23)();
    (**(code **)(puVar24 + 0x195f0))(1,uVar9,**(undefined4 **)(puVar24 + 0x194b8));
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ec8,5);
    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e40,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4e08,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4dbc,5);
    (**(code **)(puVar24 + 0x195f0))(1,uVar9,10);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4c2c,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4ba8,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b68,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b38,5);
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4b00,5);
    piVar19 = aiStack_20bc;
    (**(code **)(puVar24 + 0x1969c))(uVar9,*puVar18);
    iVar10 = *(int *)(puVar24 + 0x19490);
    piVar12 = (int *)(iVar10 + -0x2ff0);
    piVar3 = piVar19;
    do {
      piVar14 = piVar3;
      piVar11 = piVar12;
      piVar12 = piVar11 + 4;
      *piVar14 = *piVar11;
      iVar16 = piVar11[2];
      iVar15 = piVar11[3];
      piVar14[1] = piVar11[1];
      piVar14[2] = iVar16;
      piVar14[3] = iVar15;
      piVar3 = piVar14 + 4;
    } while (piVar12 != (int *)(iVar10 + -0x2fc0));
    iVar10 = piVar11[5];
    iVar15 = *(int *)(puVar24 + 0x194a0);
    piVar14[4] = *piVar12;
    piVar14[5] = iVar10;
    iVar10 = aiStack_20bc[0];
    while (iVar10 != 0) {
      iVar10 = (**(code **)(puVar24 + 0x19698))(iVar15 + -0x4f1c);
      if (iVar10 == 0) {
        iVar10 = *(int *)(puVar24 + 0x194a0);
        goto LAB_00013f44;
      }
      piVar19 = piVar19 + 2;
      iVar10 = *piVar19;
    }
    iVar10 = *(int *)(puVar24 + 0x194a0);
LAB_00013f44:
    iVar16 = piVar19[1];
    iVar22 = *(int *)(puVar24 + 0x194a0);
    if (iVar16 == 0) {
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,iVar10 + -0x4a64,5);
      (**(code **)(puVar24 + 0x195f0))
                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);
      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);
      if ((iVar10 != 0) &&
         (iVar10 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3),
         iVar10 != 0)) {
        iVar16 = iVar15 + -0x4f1c;
        iVar10 = iVar16;
LAB_00014148:
        uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x4a10,5);
        (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar15 + -0x4f1c);
        goto LAB_00013fcc;
      }
      iVar16 = iVar15 + -0x4f1c;
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);
      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar16);
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);
      iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;
    }
    else {
      uVar9 = (**(code **)(puVar24 + 0x19660))();
      (**(code **)(puVar24 + 0x195f0))
                (1,uVar9,*(int *)(puVar24 + 0x194a0) + -0x4a24,iVar22 + -0x4a4c);
      iVar10 = (**(code **)(puVar24 + 0x195e0))(5,0);
      if (iVar10 == 0) {
        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;
      }
      else {
        iVar13 = (**(code **)(puVar24 + 0x195b8))(iVar10,*(int *)(puVar24 + 0x194a0) + -0x4a14,3);
        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x4f1c;
        if (iVar13 != 0) goto LAB_00014148;
      }
LAB_00013fcc:
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49c8,5);
      (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar22 + -0x4a4c,iVar15 + -0x4f1c);
      uVar9 = (**(code **)(puVar24 + 0x19660))(0,*(int *)(puVar24 + 0x194a0) + -0x49a8,5);
      if (iVar16 == iVar10) {
        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x496c;
      }
      else {
        iVar10 = *(int *)(puVar24 + 0x194a0) + -0x3858;
      }
    }
    (**(code **)(puVar24 + 0x195f0))(1,uVar9,iVar16,iVar10);
  } while( true );
}

