
_Bool read_block(size_t n,char *block,size_t *n_bytes_in_buffer)

{
  int *piVar1;
  int *piVar2;
  _Bool _Var8;
  _Bool _Var9;
  int iVar3;
  undefined4 uVar4;
  undefined1 uVar10;
  int *piVar5;
  int *piVar6;
  int iVar7;
  int *piVar11;
  size_t sVar12;
  undefined *puVar13;
  int iVar14;
  int iVar15;
  undefined4 uVar16;
  undefined4 *puVar17;
  _Bool _Var18;
  int iVar19;
  undefined *puVar20;
  int aiStack_94 [14];
  undefined4 uStack_5c;
  
  puVar20 = PTR_DAT_00031108;
  if ((n != 0) && (n <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {
    *n_bytes_in_buffer = 0;
    if (*(int *)(puVar20 + 0x13c0) == 0) {
      _Var18 = true;
    }
    else {
      sVar12 = 0;
      _Var18 = true;
      while( true ) {
        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);
        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;
        if (n - sVar12 == iVar3) break;
        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();
        _Var8 = check_and_close(*piVar2);
        _Var9 = open_next_file();
        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));
        if (*(int *)(puVar20 + 0x13c0) == 0) {
          return _Var18;
        }
        sVar12 = *n_bytes_in_buffer;
      }
    }
    return _Var18;
  }
  puVar13 = PTR_UINT_00031118 + -0x25cc;
  puVar20 = PTR___assert_fail_00031234;
  (*(code *)PTR___assert_fail_00031234)
            (puVar13,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);
  uStack_5c = **(undefined4 **)(puVar20 + 0x1af14);
  if (puVar13 != (undefined *)0x0) {
    uVar16 = **(undefined4 **)(puVar20 + 0x1af24);
    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8);
    (**(code **)(puVar20 + 0x1ae40))(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44));
    goto LAB_00016490;
  }
  puVar17 = *(undefined4 **)(puVar20 + 0x1ae7c);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))();
  uVar16 = **(undefined4 **)(puVar20 + 0x1ad44);
  (**(code **)(puVar20 + 0x1ae78))(1,uVar4,uVar16,uVar16,uVar16);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x24dc,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2424,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x23ec,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2264,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2218,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x20f8,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ed0,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ea0,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1e68,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1d2c,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1c18,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1b70,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1a74,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1980,5);
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1920,5);
  piVar2 = aiStack_94;
  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);
  iVar3 = *(int *)(puVar20 + 0x1acfc);
  piVar6 = (int *)(iVar3 + 0x1010);
  piVar1 = piVar2;
  do {
    piVar11 = piVar1;
    piVar5 = piVar6;
    piVar6 = piVar5 + 4;
    *piVar11 = *piVar5;
    iVar15 = piVar5[2];
    iVar14 = piVar5[3];
    piVar11[1] = piVar5[1];
    piVar11[2] = iVar15;
    piVar11[3] = iVar14;
    piVar1 = piVar11 + 4;
  } while (piVar6 != (int *)(iVar3 + 0x1040));
  iVar3 = piVar5[5];
  iVar14 = *(int *)(puVar20 + 0x1ad0c);
  piVar11[4] = *piVar6;
  piVar11[5] = iVar3;
  while (aiStack_94[0] != 0) {
    iVar3 = (**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac);
    if (iVar3 == 0) {
      iVar3 = *(int *)(puVar20 + 0x1ad0c);
      goto LAB_00016808;
    }
    piVar2 = piVar2 + 2;
    aiStack_94[0] = *piVar2;
  }
  iVar3 = *(int *)(puVar20 + 0x1ad0c);
LAB_00016808:
  iVar15 = piVar2[1];
  iVar19 = *(int *)(puVar20 + 0x1ad0c);
  if (iVar15 == 0) {
    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5);
    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)
    ;
    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);
    if ((iVar3 != 0) &&
       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),
       iVar3 != 0)) {
      iVar15 = iVar14 + -0x25ac;
      iVar3 = iVar15;
LAB_00016a0c:
      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);
      (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);
      goto LAB_00016890;
    }
    iVar15 = iVar14 + -0x25ac;
    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);
    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar15);
    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);
    iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;
  }
  else {
    uVar4 = (**(code **)(puVar20 + 0x1aef8))();
    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)
    ;
    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);
    if (iVar3 == 0) {
      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;
    }
    else {
      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);
      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;
      if (iVar7 != 0) goto LAB_00016a0c;
    }
LAB_00016890:
    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);
    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac);
    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);
    if (iVar15 == iVar3) {
      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;
    }
    else {
      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;
    }
  }
  (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar15,iVar3);
LAB_00016490:
  uVar10 = (**(code **)(puVar20 + 0x1aeb0))(puVar13);
  return (_Bool)uVar10;
}



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

{
  int *piVar1;
  undefined4 *puVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  int *piVar7;
  int *piVar8;
  int iVar9;
  int *piVar10;
  int iVar11;
  undefined *puVar12;
  int iVar13;
  undefined4 uVar14;
  int *piVar15;
  uint uVar16;
  int iVar17;
  undefined *puVar18;
  int aiStack_94 [14];
  undefined4 uStack_5c;
  
  puVar18 = PTR_DAT_00031108;
  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {
    *param_3 = 0;
    if (*(int *)(puVar18 + 0x13c0) == 0) {
      uVar16 = 1;
    }
    else {
      iVar11 = 0;
      uVar16 = 1;
      while( true ) {
        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);
        *param_3 = *param_3 + iVar5;
        if (param_1 - iVar11 == iVar5) break;
        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();
        uVar3 = FUN_00014c30(*puVar2);
        uVar4 = FUN_00014e20();
        uVar16 = uVar16 & uVar3 & uVar4;
        if (*(int *)(puVar18 + 0x13c0) == 0) {
          return uVar16;
        }
        iVar11 = *param_3;
      }
    }
    return uVar16;
  }
  puVar12 = PTR_UINT_00031118 + -0x25cc;
  puVar18 = PTR___assert_fail_00031234;
  (*(code *)PTR___assert_fail_00031234)
            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);
  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);
  if (puVar12 != (undefined *)0x0) {
    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);
    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));
    goto LAB_00016490;
  }
  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))();
  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);
  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);
  piVar15 = aiStack_94;
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  iVar11 = *(int *)(puVar18 + 0x1acfc);
  piVar8 = (int *)(iVar11 + 0x1010);
  piVar1 = piVar15;
  do {
    piVar10 = piVar1;
    piVar7 = piVar8;
    piVar8 = piVar7 + 4;
    *piVar10 = *piVar7;
    iVar13 = piVar7[2];
    iVar5 = piVar7[3];
    piVar10[1] = piVar7[1];
    piVar10[2] = iVar13;
    piVar10[3] = iVar5;
    piVar1 = piVar10 + 4;
  } while (piVar8 != (int *)(iVar11 + 0x1040));
  iVar11 = piVar7[5];
  iVar5 = *(int *)(puVar18 + 0x1ad0c);
  piVar10[4] = *piVar8;
  piVar10[5] = iVar11;
  while (aiStack_94[0] != 0) {
    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);
    if (iVar11 == 0) {
      iVar11 = *(int *)(puVar18 + 0x1ad0c);
      goto LAB_00016808;
    }
    piVar15 = piVar15 + 2;
    aiStack_94[0] = *piVar15;
  }
  iVar11 = *(int *)(puVar18 + 0x1ad0c);
LAB_00016808:
  iVar13 = piVar15[1];
  iVar17 = *(int *)(puVar18 + 0x1ad0c);
  if (iVar13 == 0) {
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);
    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)
    ;
    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);
    if ((iVar11 != 0) &&
       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),
       iVar11 != 0)) {
      iVar13 = iVar5 + -0x25ac;
      iVar11 = iVar13;
LAB_00016a0c:
      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);
      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);
      goto LAB_00016890;
    }
    iVar13 = iVar5 + -0x25ac;
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);
    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);
    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;
  }
  else {
    uVar6 = (**(code **)(puVar18 + 0x1aef8))();
    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)
    ;
    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);
    if (iVar11 == 0) {
      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;
    }
    else {
      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);
      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;
      if (iVar9 != 0) goto LAB_00016a0c;
    }
LAB_00016890:
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);
    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);
    if (iVar13 == iVar11) {
      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;
    }
    else {
      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;
    }
  }
  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);
LAB_00016490:
  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);
  return uVar16;
}


lui gp,0x2
addiu gp,gp,0x2e1c
addu gp,gp,t9
addiu sp,sp,-0x40
sw gp,0x10(sp)
sw ra,0x3c(sp)
sw s7,0x38(sp)
sw s6,0x34(sp)
sw s5,0x30(sp)
sw s4,0x2c(sp)
sw s3,0x28(sp)
sw s2,0x24(sp)
sw s1,0x20(sp)
beq a0,zero,0x000163e8
_sw s0,0x1c(sp)
lw v0,-0x7fd8(gp)
lw v0,0x13cc(v0)
sltu v0,v0,a0
bne v0,zero,0x000163e8
_or s2,a0,zero
lw s5,-0x7fd8(gp)
sw zero,0x0(a2)
lw a3,0x13c0(s5)
beq a3,zero,0x000163e0
_or s7,a2,zero
lw s4,-0x7fcc(gp)
or s6,a1,zero
lw s3,-0x7fcc(gp)
or a0,zero,zero
li s1,0x1
addiu s4,s4,0x4c30
b 0x00016384
_addiu s3,s3,0x4e20
lw t9,-0x7e48(gp)
jalr t9
_nop
or t9,s4,zero
bal 0x00014c30
_lw a0,0x0(v0)
or t9,s3,zero
bal 0x00014e20
_or s0,v0,zero
lw a3,0x13c0(s5)
and v0,s0,v0
lw gp,0x10(sp)
beq a3,zero,0x000163b0
_and s1,s1,v0
lw a0,0x0(s7)
lw t9,-0x7ea0(gp)
subu s0,s2,a0
li a1,0x1
addu a0,s6,a0
jalr t9
_or a2,s0,zero
lw v1,0x0(s7)
lw gp,0x10(sp)
addu v1,v1,v0
bne s0,v0,0x00016348
_sw v1,0x0(s7)
lw ra,0x3c(sp)
or v0,s1,zero
lw s7,0x38(sp)
lw s6,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x40
b 0x000163b0
_li s1,0x1
lw a3,-0x7fc8(gp)
li a2,0x507
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7eac(gp)
addiu a3,a3,-0xff0
addiu a1,a1,-0x2704
jalr t9
_addiu a0,a0,-0x25cc
(translation_unit "uint FUN_000162c4(uint param_1,int param_2,int *param_3)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  undefined *puVar18;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar18 = PTR_DAT_00031108;\n  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }\n  puVar12 = PTR_UINT_00031118 + -0x25cc;\n  puVar18 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);\n  if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);\n  piVar15 = aiStack_94;\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  iVar11 = *(int *)(puVar18 + 0x1acfc);\n  piVar8 = (int *)(iVar11 + 0x1010);\n  piVar1 = piVar15;\n  do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));\n  iVar11 = piVar7[5];\n  iVar5 = *(int *)(puVar18 + 0x1ad0c);\n  piVar10[4] = *piVar8;\n  piVar10[5] = iVar11;\n  while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }\n  iVar11 = *(int *)(puVar18 + 0x1ad0c);\nLAB_00016808:\n  iVar13 = piVar15[1];\n  iVar17 = *(int *)(puVar18 + 0x1ad0c);\n  if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);\nLAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);\n  return uVar16;\n}\n\n" (function_definition "uint FUN_000162c4(uint param_1,int param_2,int *param_3)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  undefined *puVar18;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar18 = PTR_DAT_00031108;\n  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }\n  puVar12 = PTR_UINT_00031118 + -0x25cc;\n  puVar18 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);\n  if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);\n  piVar15 = aiStack_94;\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  iVar11 = *(int *)(puVar18 + 0x1acfc);\n  piVar8 = (int *)(iVar11 + 0x1010);\n  piVar1 = piVar15;\n  do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));\n  iVar11 = piVar7[5];\n  iVar5 = *(int *)(puVar18 + 0x1ad0c);\n  piVar10[4] = *piVar8;\n  piVar10[5] = iVar11;\n  while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }\n  iVar11 = *(int *)(puVar18 + 0x1ad0c);\nLAB_00016808:\n  iVar13 = piVar15[1];\n  iVar17 = *(int *)(puVar18 + 0x1ad0c);\n  if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);\nLAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);\n  return uVar16;\n}" type_identifier (function_declarator "FUN_000162c4(uint param_1,int param_2,int *param_3)" identifier (parameter_list "(uint param_1,int param_2,int *param_3)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  undefined *puVar18;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar18 = PTR_DAT_00031108;\n  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }\n  puVar12 = PTR_UINT_00031118 + -0x25cc;\n  puVar18 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);\n  if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);\n  piVar15 = aiStack_94;\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  iVar11 = *(int *)(puVar18 + 0x1acfc);\n  piVar8 = (int *)(iVar11 + 0x1010);\n  piVar1 = piVar15;\n  do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));\n  iVar11 = piVar7[5];\n  iVar5 = *(int *)(puVar18 + 0x1ad0c);\n  piVar10[4] = *piVar8;\n  piVar10[5] = iVar11;\n  while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }\n  iVar11 = *(int *)(puVar18 + 0x1ad0c);\nLAB_00016808:\n  iVar13 = piVar15[1];\n  iVar17 = *(int *)(puVar18 + 0x1ad0c);\n  if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);\nLAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);\n  return uVar16;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int aiStack_94 [14];" primitive_type (array_declarator "aiStack_94 [14]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (expression_statement "puVar18 = PTR_DAT_00031108;" (assignment_expression "puVar18 = PTR_DAT_00031108" identifier = identifier) ;) (if_statement "if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }" if (parenthesized_expression "((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc)))" ( (binary_expression "(param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))" (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))" ( (binary_expression "param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc)" identifier <= (pointer_expression "*(uint *)(PTR_DAT_00031108 + 0x13cc)" * (cast_expression "(uint *)(PTR_DAT_00031108 + 0x13cc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00031108 + 0x13cc)" ( (binary_expression "PTR_DAT_00031108 + 0x13cc" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }" { (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (if_statement "if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" if (parenthesized_expression "(*(int *)(puVar18 + 0x13c0) == 0)" ( (binary_expression "*(int *)(puVar18 + 0x13c0) == 0" (pointer_expression "*(int *)(puVar18 + 0x13c0)" * (cast_expression "(int *)(puVar18 + 0x13c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x13c0)" ( (binary_expression "puVar18 + 0x13c0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar16 = 1;\n    }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" else (compound_statement "{\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (while_statement "while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }" { (expression_statement "iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);" (assignment_expression "iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11)" identifier = (call_expression "(*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11)" (parenthesized_expression "(*(code *)PTR_fread_unlocked_00031240)" ( (pointer_expression "*(code *)PTR_fread_unlocked_00031240" * (cast_expression "(code *)PTR_fread_unlocked_00031240" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2 + iVar11,1,param_1 - iVar11)" ( (binary_expression "param_2 + iVar11" identifier + identifier) , number_literal , (binary_expression "param_1 - iVar11" identifier - identifier) )))) ;) (expression_statement "*param_3 = *param_3 + iVar5;" (assignment_expression "*param_3 = *param_3 + iVar5" (pointer_expression "*param_3" * identifier) = (binary_expression "*param_3 + iVar5" (pointer_expression "*param_3" * identifier) + identifier)) ;) (if_statement "if (param_1 - iVar11 == iVar5) break;" if (parenthesized_expression "(param_1 - iVar11 == iVar5)" ( (binary_expression "param_1 - iVar11 == iVar5" (binary_expression "param_1 - iVar11" identifier - identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00031298)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00031298)()" (parenthesized_expression "(*(code *)PTR___errno_location_00031298)" ( (pointer_expression "*(code *)PTR___errno_location_00031298" * (cast_expression "(code *)PTR___errno_location_00031298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar3 = FUN_00014c30(*puVar2);" (assignment_expression "uVar3 = FUN_00014c30(*puVar2)" identifier = (call_expression "FUN_00014c30(*puVar2)" identifier (argument_list "(*puVar2)" ( (pointer_expression "*puVar2" * identifier) )))) ;) (expression_statement "uVar4 = FUN_00014e20();" (assignment_expression "uVar4 = FUN_00014e20()" identifier = (call_expression "FUN_00014e20()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar16 = uVar16 & uVar3 & uVar4;" (assignment_expression "uVar16 = uVar16 & uVar3 & uVar4" identifier = (binary_expression "uVar16 & uVar3 & uVar4" (binary_expression "uVar16 & uVar3" identifier & identifier) & identifier)) ;) (if_statement "if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }" if (parenthesized_expression "(*(int *)(puVar18 + 0x13c0) == 0)" ( (binary_expression "*(int *)(puVar18 + 0x13c0) == 0" (pointer_expression "*(int *)(puVar18 + 0x13c0)" * (cast_expression "(int *)(puVar18 + 0x13c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x13c0)" ( (binary_expression "puVar18 + 0x13c0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          return uVar16;\n        }" { (return_statement "return uVar16;" return identifier ;) })) (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) }))) (return_statement "return uVar16;" return identifier ;) })) (expression_statement "puVar12 = PTR_UINT_00031118 + -0x25cc;" (assignment_expression "puVar12 = PTR_UINT_00031118 + -0x25cc" identifier = (binary_expression "PTR_UINT_00031118 + -0x25cc" identifier + number_literal)) ;) (expression_statement "puVar18 = PTR___assert_fail_00031234;" (assignment_expression "puVar18 = PTR___assert_fail_00031234" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);" (call_expression "(*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0)" (parenthesized_expression "(*(code *)PTR___assert_fail_00031234)" ( (pointer_expression "*(code *)PTR___assert_fail_00031234" * (cast_expression "(code *)PTR___assert_fail_00031234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0)" ( identifier , (binary_expression "PTR_UINT_00031118 + -0x2704" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_00031118 + -0xff0" identifier + number_literal) ))) ;) (expression_statement "uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);" (assignment_expression "uStack_5c = **(undefined4 **)(puVar18 + 0x1af14)" identifier = (pointer_expression "**(undefined4 **)(puVar18 + 0x1af14)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1af14)" * (cast_expression "(undefined4 **)(puVar18 + 0x1af14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af14)" ( (binary_expression "puVar18 + 0x1af14" identifier + number_literal) )))))) ;) (if_statement "if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }" if (parenthesized_expression "(puVar12 != (undefined *)0x0)" ( (binary_expression "puVar12 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }" { (expression_statement "uVar14 = **(undefined4 **)(puVar18 + 0x1af24);" (assignment_expression "uVar14 = **(undefined4 **)(puVar18 + 0x1af24)" identifier = (pointer_expression "**(undefined4 **)(puVar18 + 0x1af24)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1af24)" * (cast_expression "(undefined4 **)(puVar18 + 0x1af24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af24)" ( (binary_expression "puVar18 + 0x1af24" identifier + number_literal) )))))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25a8" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));" (call_expression "(**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44))" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae40))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae40)" * (pointer_expression "*(code **)(puVar18 + 0x1ae40)" * (cast_expression "(code **)(puVar18 + 0x1ae40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae40)" ( (binary_expression "puVar18 + 0x1ae40" identifier + number_literal) ))))) )) (argument_list "(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44))" ( identifier , number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar18 + 0x1ad44)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1ad44)" * (cast_expression "(undefined4 **)(puVar18 + 0x1ad44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ad44)" ( (binary_expression "puVar18 + 0x1ad44" identifier + number_literal) ))))) ))) ;) (goto_statement "goto LAB_00016490;" goto statement_identifier ;) })) (expression_statement "puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);" (assignment_expression "puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c)" identifier = (pointer_expression "*(undefined4 **)(puVar18 + 0x1ae7c)" * (cast_expression "(undefined4 **)(puVar18 + 0x1ae7c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae7c)" ( (binary_expression "puVar18 + 0x1ae7c" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))();" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))()" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);" (assignment_expression "uVar14 = **(undefined4 **)(puVar18 + 0x1ad44)" identifier = (pointer_expression "**(undefined4 **)(puVar18 + 0x1ad44)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1ad44)" * (cast_expression "(undefined4 **)(puVar18 + 0x1ad44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ad44)" ( (binary_expression "puVar18 + 0x1ad44" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,uVar14,uVar14,uVar14)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x24dc" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2424" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x23ec" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2264" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2218" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x20f8" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1ed0" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1ea0" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1e68" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1d2c" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1c18" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1b70" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1a74" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1980" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1920" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "piVar15 = aiStack_94;" (assignment_expression "piVar15 = aiStack_94" identifier = identifier) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1acfc);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1acfc)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1acfc)" * (cast_expression "(int *)(puVar18 + 0x1acfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1acfc)" ( (binary_expression "puVar18 + 0x1acfc" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = (int *)(iVar11 + 0x1010);" (assignment_expression "piVar8 = (int *)(iVar11 + 0x1010)" identifier = (cast_expression "(int *)(iVar11 + 0x1010)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1010)" ( (binary_expression "iVar11 + 0x1010" identifier + number_literal) )))) ;) (expression_statement "piVar1 = piVar15;" (assignment_expression "piVar1 = piVar15" identifier = identifier) ;) (do_statement "do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));" do (compound_statement "{\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  }" { (expression_statement "piVar10 = piVar1;" (assignment_expression "piVar10 = piVar1" identifier = identifier) ;) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" identifier = identifier) ;) (expression_statement "piVar8 = piVar7 + 4;" (assignment_expression "piVar8 = piVar7 + 4" identifier = (binary_expression "piVar7 + 4" identifier + number_literal)) ;) (expression_statement "*piVar10 = *piVar7;" (assignment_expression "*piVar10 = *piVar7" (pointer_expression "*piVar10" * identifier) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar13 = piVar7[2];" (assignment_expression "iVar13 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar7[3];" (assignment_expression "iVar5 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "piVar10[1] = piVar7[1];" (assignment_expression "piVar10[1] = piVar7[1]" (subscript_expression "piVar10[1]" identifier [ number_literal ]) = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "piVar10[2] = iVar13;" (assignment_expression "piVar10[2] = iVar13" (subscript_expression "piVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10[3] = iVar5;" (assignment_expression "piVar10[3] = iVar5" (subscript_expression "piVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1 = piVar10 + 4;" (assignment_expression "piVar1 = piVar10 + 4" identifier = (binary_expression "piVar10 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != (int *)(iVar11 + 0x1040))" ( (binary_expression "piVar8 != (int *)(iVar11 + 0x1040)" identifier != (cast_expression "(int *)(iVar11 + 0x1040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1040)" ( (binary_expression "iVar11 + 0x1040" identifier + number_literal) )))) )) ;) (expression_statement "iVar11 = piVar7[5];" (assignment_expression "iVar11 = piVar7[5]" identifier = (subscript_expression "piVar7[5]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar5 = *(int *)(puVar18 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) ))))) ;) (expression_statement "piVar10[4] = *piVar8;" (assignment_expression "piVar10[4] = *piVar8" (subscript_expression "piVar10[4]" identifier [ number_literal ]) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar10[5] = iVar11;" (assignment_expression "piVar10[5] = iVar11" (subscript_expression "piVar10[5]" identifier [ number_literal ]) = identifier) ;) (while_statement "while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }" while (parenthesized_expression "(aiStack_94[0] != 0)" ( (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }" { (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac)" identifier = (call_expression "(**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af38))" ( (pointer_expression "**(code **)(puVar18 + 0x1af38)" * (pointer_expression "*(code **)(puVar18 + 0x1af38)" * (cast_expression "(code **)(puVar18 + 0x1af38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af38)" ( (binary_expression "puVar18 + 0x1af38" identifier + number_literal) ))))) )) (argument_list "(iVar5 + -0x25ac)" ( (binary_expression "iVar5 + -0x25ac" identifier + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }" { (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00016808;" goto statement_identifier ;) })) (expression_statement "piVar15 = piVar15 + 2;" (assignment_expression "piVar15 = piVar15 + 2" identifier = (binary_expression "piVar15 + 2" identifier + number_literal)) ;) (expression_statement "aiStack_94[0] = *piVar15;" (assignment_expression "aiStack_94[0] = *piVar15" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = (pointer_expression "*piVar15" * identifier)) ;) })) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00016808:\n  iVar13 = piVar15[1];" statement_identifier : (expression_statement "iVar13 = piVar15[1];" (assignment_expression "iVar13 = piVar15[1]" identifier = (subscript_expression "piVar15[1]" identifier [ number_literal ])) ;)) (expression_statement "iVar17 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar17 = *(int *)(puVar18 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,iVar11 + -0x1870,5)" ( number_literal , (binary_expression "iVar11 + -0x1870" identifier + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" ( number_literal , identifier , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1830" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar17 + -0x1858" identifier + number_literal) ))) ;) (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0)" identifier = (call_expression "(**(code **)(puVar18 + 0x1ae68))(5,0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae68))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae68)" * (pointer_expression "*(code **)(puVar18 + 0x1ae68)" * (cast_expression "(code **)(puVar18 + 0x1ae68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae68)" ( (binary_expression "puVar18 + 0x1ae68" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }" if (parenthesized_expression "((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0))" ( (binary_expression "(iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)" ( (comma_expression "iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" identifier = (call_expression "(**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae30)" * (pointer_expression "*(code **)(puVar18 + 0x1ae30)" * (cast_expression "(code **)(puVar18 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae30)" ( (binary_expression "puVar18 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" ( identifier , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1820" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }" { (expression_statement "iVar13 = iVar5 + -0x25ac;" (assignment_expression "iVar13 = iVar5 + -0x25ac" identifier = (binary_expression "iVar5 + -0x25ac" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) (labeled_statement "LAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);" statement_identifier : (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x181c" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,iVar5 + -0x25ac)" ( number_literal , identifier , (binary_expression "iVar5 + -0x25ac" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00016890;" goto statement_identifier ;) })) (expression_statement "iVar13 = iVar5 + -0x25ac;" (assignment_expression "iVar13 = iVar5 + -0x25ac" identifier = (binary_expression "iVar5 + -0x25ac" identifier + number_literal)) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17d4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,iVar17 + -0x1858,iVar13)" ( number_literal , identifier , (binary_expression "iVar17 + -0x1858" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17b4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1778" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" else (compound_statement "{\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" { (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))();" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))()" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" ( number_literal , identifier , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1830" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar17 + -0x1858" identifier + number_literal) ))) ;) (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0)" identifier = (call_expression "(**(code **)(puVar18 + 0x1ae68))(5,0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae68))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae68)" * (pointer_expression "*(code **)(puVar18 + 0x1ae68)" * (cast_expression "(code **)(puVar18 + 0x1ae68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae68)" ( (binary_expression "puVar18 + 0x1ae68" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }" { (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25ac" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" else (compound_statement "{\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" { (expression_statement "iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);" (assignment_expression "iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" identifier = (call_expression "(**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae30)" * (pointer_expression "*(code **)(puVar18 + 0x1ae30)" * (cast_expression "(code **)(puVar18 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae30)" ( (binary_expression "puVar18 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" ( identifier , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1820" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25ac" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar9 != 0) goto LAB_00016a0c;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016a0c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" statement_identifier : (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17d4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac)" ( number_literal , identifier , (binary_expression "iVar17 + -0x1858" identifier + number_literal) , (binary_expression "iVar5 + -0x25ac" identifier + number_literal) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17b4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" if (parenthesized_expression "(iVar13 == iVar11)" ( (binary_expression "iVar13 == iVar11" identifier == identifier) )) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }" { (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1778" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" else (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" { (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + 0x234" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,iVar13,iVar11)" ( number_literal , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);" statement_identifier : (expression_statement "uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);" (assignment_expression "uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aeb0))(puVar12)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aeb0))" ( (pointer_expression "**(code **)(puVar18 + 0x1aeb0)" * (pointer_expression "*(code **)(puVar18 + 0x1aeb0)" * (cast_expression "(code **)(puVar18 + 0x1aeb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aeb0)" ( (binary_expression "puVar18 + 0x1aeb0" identifier + number_literal) ))))) )) (argument_list "(puVar12)" ( identifier )))) ;)) (return_statement "return uVar16;" return identifier ;) })))
(translation_unit "_Bool read_block(size_t n,char *block,size_t *n_bytes_in_buffer)\n\n{\n  int *piVar1;\n  int *piVar2;\n  _Bool _Var8;\n  _Bool _Var9;\n  int iVar3;\n  undefined4 uVar4;\n  undefined1 uVar10;\n  int *piVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar11;\n  size_t sVar12;\n  undefined *puVar13;\n  int iVar14;\n  int iVar15;\n  undefined4 uVar16;\n  undefined4 *puVar17;\n  _Bool _Var18;\n  int iVar19;\n  undefined *puVar20;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar20 = PTR_DAT_00031108;\n  if ((n != 0) && (n <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *n_bytes_in_buffer = 0;\n    if (*(int *)(puVar20 + 0x13c0) == 0) {\n      _Var18 = true;\n    }\n    else {\n      sVar12 = 0;\n      _Var18 = true;\n      while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }\n    }\n    return _Var18;\n  }\n  puVar13 = PTR_UINT_00031118 + -0x25cc;\n  puVar20 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar13,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar20 + 0x1af14);\n  if (puVar13 != (undefined *)0x0) {\n    uVar16 = **(undefined4 **)(puVar20 + 0x1af24);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar20 + 0x1ae40))(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar17 = *(undefined4 **)(puVar20 + 0x1ae7c);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n  uVar16 = **(undefined4 **)(puVar20 + 0x1ad44);\n  (**(code **)(puVar20 + 0x1ae78))(1,uVar4,uVar16,uVar16,uVar16);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1920,5);\n  piVar2 = aiStack_94;\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  iVar3 = *(int *)(puVar20 + 0x1acfc);\n  piVar6 = (int *)(iVar3 + 0x1010);\n  piVar1 = piVar2;\n  do {\n    piVar11 = piVar1;\n    piVar5 = piVar6;\n    piVar6 = piVar5 + 4;\n    *piVar11 = *piVar5;\n    iVar15 = piVar5[2];\n    iVar14 = piVar5[3];\n    piVar11[1] = piVar5[1];\n    piVar11[2] = iVar15;\n    piVar11[3] = iVar14;\n    piVar1 = piVar11 + 4;\n  } while (piVar6 != (int *)(iVar3 + 0x1040));\n  iVar3 = piVar5[5];\n  iVar14 = *(int *)(puVar20 + 0x1ad0c);\n  piVar11[4] = *piVar6;\n  piVar11[5] = iVar3;\n  while (aiStack_94[0] != 0) {\n    iVar3 = (**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar2 = piVar2 + 2;\n    aiStack_94[0] = *piVar2;\n  }\n  iVar3 = *(int *)(puVar20 + 0x1ad0c);\nLAB_00016808:\n  iVar15 = piVar2[1];\n  iVar19 = *(int *)(puVar20 + 0x1ad0c);\n  if (iVar15 == 0) {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if ((iVar3 != 0) &&\n       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0)) {\n      iVar15 = iVar14 + -0x25ac;\n      iVar3 = iVar15;\nLAB_00016a0c:\n      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar15 = iVar14 + -0x25ac;\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar15);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    if (iVar15 == iVar3) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar15,iVar3);\nLAB_00016490:\n  uVar10 = (**(code **)(puVar20 + 0x1aeb0))(puVar13);\n  return (_Bool)uVar10;\n}\n\n" (function_definition "_Bool read_block(size_t n,char *block,size_t *n_bytes_in_buffer)\n\n{\n  int *piVar1;\n  int *piVar2;\n  _Bool _Var8;\n  _Bool _Var9;\n  int iVar3;\n  undefined4 uVar4;\n  undefined1 uVar10;\n  int *piVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar11;\n  size_t sVar12;\n  undefined *puVar13;\n  int iVar14;\n  int iVar15;\n  undefined4 uVar16;\n  undefined4 *puVar17;\n  _Bool _Var18;\n  int iVar19;\n  undefined *puVar20;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar20 = PTR_DAT_00031108;\n  if ((n != 0) && (n <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *n_bytes_in_buffer = 0;\n    if (*(int *)(puVar20 + 0x13c0) == 0) {\n      _Var18 = true;\n    }\n    else {\n      sVar12 = 0;\n      _Var18 = true;\n      while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }\n    }\n    return _Var18;\n  }\n  puVar13 = PTR_UINT_00031118 + -0x25cc;\n  puVar20 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar13,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar20 + 0x1af14);\n  if (puVar13 != (undefined *)0x0) {\n    uVar16 = **(undefined4 **)(puVar20 + 0x1af24);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar20 + 0x1ae40))(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar17 = *(undefined4 **)(puVar20 + 0x1ae7c);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n  uVar16 = **(undefined4 **)(puVar20 + 0x1ad44);\n  (**(code **)(puVar20 + 0x1ae78))(1,uVar4,uVar16,uVar16,uVar16);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1920,5);\n  piVar2 = aiStack_94;\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  iVar3 = *(int *)(puVar20 + 0x1acfc);\n  piVar6 = (int *)(iVar3 + 0x1010);\n  piVar1 = piVar2;\n  do {\n    piVar11 = piVar1;\n    piVar5 = piVar6;\n    piVar6 = piVar5 + 4;\n    *piVar11 = *piVar5;\n    iVar15 = piVar5[2];\n    iVar14 = piVar5[3];\n    piVar11[1] = piVar5[1];\n    piVar11[2] = iVar15;\n    piVar11[3] = iVar14;\n    piVar1 = piVar11 + 4;\n  } while (piVar6 != (int *)(iVar3 + 0x1040));\n  iVar3 = piVar5[5];\n  iVar14 = *(int *)(puVar20 + 0x1ad0c);\n  piVar11[4] = *piVar6;\n  piVar11[5] = iVar3;\n  while (aiStack_94[0] != 0) {\n    iVar3 = (**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar2 = piVar2 + 2;\n    aiStack_94[0] = *piVar2;\n  }\n  iVar3 = *(int *)(puVar20 + 0x1ad0c);\nLAB_00016808:\n  iVar15 = piVar2[1];\n  iVar19 = *(int *)(puVar20 + 0x1ad0c);\n  if (iVar15 == 0) {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if ((iVar3 != 0) &&\n       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0)) {\n      iVar15 = iVar14 + -0x25ac;\n      iVar3 = iVar15;\nLAB_00016a0c:\n      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar15 = iVar14 + -0x25ac;\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar15);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    if (iVar15 == iVar3) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar15,iVar3);\nLAB_00016490:\n  uVar10 = (**(code **)(puVar20 + 0x1aeb0))(puVar13);\n  return (_Bool)uVar10;\n}" type_identifier (function_declarator "read_block(size_t n,char *block,size_t *n_bytes_in_buffer)" identifier (parameter_list "(size_t n,char *block,size_t *n_bytes_in_buffer)" ( (parameter_declaration "size_t n" primitive_type identifier) , (parameter_declaration "char *block" primitive_type (pointer_declarator "*block" * identifier)) , (parameter_declaration "size_t *n_bytes_in_buffer" primitive_type (pointer_declarator "*n_bytes_in_buffer" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  _Bool _Var8;\n  _Bool _Var9;\n  int iVar3;\n  undefined4 uVar4;\n  undefined1 uVar10;\n  int *piVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar11;\n  size_t sVar12;\n  undefined *puVar13;\n  int iVar14;\n  int iVar15;\n  undefined4 uVar16;\n  undefined4 *puVar17;\n  _Bool _Var18;\n  int iVar19;\n  undefined *puVar20;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar20 = PTR_DAT_00031108;\n  if ((n != 0) && (n <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *n_bytes_in_buffer = 0;\n    if (*(int *)(puVar20 + 0x13c0) == 0) {\n      _Var18 = true;\n    }\n    else {\n      sVar12 = 0;\n      _Var18 = true;\n      while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }\n    }\n    return _Var18;\n  }\n  puVar13 = PTR_UINT_00031118 + -0x25cc;\n  puVar20 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar13,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar20 + 0x1af14);\n  if (puVar13 != (undefined *)0x0) {\n    uVar16 = **(undefined4 **)(puVar20 + 0x1af24);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar20 + 0x1ae40))(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar17 = *(undefined4 **)(puVar20 + 0x1ae7c);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n  uVar16 = **(undefined4 **)(puVar20 + 0x1ad44);\n  (**(code **)(puVar20 + 0x1ae78))(1,uVar4,uVar16,uVar16,uVar16);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1920,5);\n  piVar2 = aiStack_94;\n  (**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);\n  iVar3 = *(int *)(puVar20 + 0x1acfc);\n  piVar6 = (int *)(iVar3 + 0x1010);\n  piVar1 = piVar2;\n  do {\n    piVar11 = piVar1;\n    piVar5 = piVar6;\n    piVar6 = piVar5 + 4;\n    *piVar11 = *piVar5;\n    iVar15 = piVar5[2];\n    iVar14 = piVar5[3];\n    piVar11[1] = piVar5[1];\n    piVar11[2] = iVar15;\n    piVar11[3] = iVar14;\n    piVar1 = piVar11 + 4;\n  } while (piVar6 != (int *)(iVar3 + 0x1040));\n  iVar3 = piVar5[5];\n  iVar14 = *(int *)(puVar20 + 0x1ad0c);\n  piVar11[4] = *piVar6;\n  piVar11[5] = iVar3;\n  while (aiStack_94[0] != 0) {\n    iVar3 = (**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar2 = piVar2 + 2;\n    aiStack_94[0] = *piVar2;\n  }\n  iVar3 = *(int *)(puVar20 + 0x1ad0c);\nLAB_00016808:\n  iVar15 = piVar2[1];\n  iVar19 = *(int *)(puVar20 + 0x1ad0c);\n  if (iVar15 == 0) {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if ((iVar3 != 0) &&\n       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0)) {\n      iVar15 = iVar14 + -0x25ac;\n      iVar3 = iVar15;\nLAB_00016a0c:\n      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar15 = iVar14 + -0x25ac;\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar15);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    if (iVar15 == iVar3) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar15,iVar3);\nLAB_00016490:\n  uVar10 = (**(code **)(puVar20 + 0x1aeb0))(puVar13);\n  return (_Bool)uVar10;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "_Bool _Var8;" type_identifier identifier ;) (declaration "_Bool _Var9;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined1 uVar10;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "_Bool _Var18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int aiStack_94 [14];" primitive_type (array_declarator "aiStack_94 [14]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (expression_statement "puVar20 = PTR_DAT_00031108;" (assignment_expression "puVar20 = PTR_DAT_00031108" identifier = identifier) ;) (if_statement "if ((n != 0) && (n <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *n_bytes_in_buffer = 0;\n    if (*(int *)(puVar20 + 0x13c0) == 0) {\n      _Var18 = true;\n    }\n    else {\n      sVar12 = 0;\n      _Var18 = true;\n      while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }\n    }\n    return _Var18;\n  }" if (parenthesized_expression "((n != 0) && (n <= *(uint *)(PTR_DAT_00031108 + 0x13cc)))" ( (binary_expression "(n != 0) && (n <= *(uint *)(PTR_DAT_00031108 + 0x13cc))" (parenthesized_expression "(n != 0)" ( (binary_expression "n != 0" identifier != number_literal) )) && (parenthesized_expression "(n <= *(uint *)(PTR_DAT_00031108 + 0x13cc))" ( (binary_expression "n <= *(uint *)(PTR_DAT_00031108 + 0x13cc)" identifier <= (pointer_expression "*(uint *)(PTR_DAT_00031108 + 0x13cc)" * (cast_expression "(uint *)(PTR_DAT_00031108 + 0x13cc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00031108 + 0x13cc)" ( (binary_expression "PTR_DAT_00031108 + 0x13cc" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    *n_bytes_in_buffer = 0;\n    if (*(int *)(puVar20 + 0x13c0) == 0) {\n      _Var18 = true;\n    }\n    else {\n      sVar12 = 0;\n      _Var18 = true;\n      while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }\n    }\n    return _Var18;\n  }" { (expression_statement "*n_bytes_in_buffer = 0;" (assignment_expression "*n_bytes_in_buffer = 0" (pointer_expression "*n_bytes_in_buffer" * identifier) = number_literal) ;) (if_statement "if (*(int *)(puVar20 + 0x13c0) == 0) {\n      _Var18 = true;\n    }\n    else {\n      sVar12 = 0;\n      _Var18 = true;\n      while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }\n    }" if (parenthesized_expression "(*(int *)(puVar20 + 0x13c0) == 0)" ( (binary_expression "*(int *)(puVar20 + 0x13c0) == 0" (pointer_expression "*(int *)(puVar20 + 0x13c0)" * (cast_expression "(int *)(puVar20 + 0x13c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x13c0)" ( (binary_expression "puVar20 + 0x13c0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      _Var18 = true;\n    }" { (expression_statement "_Var18 = true;" (assignment_expression "_Var18 = true" identifier = true) ;) }) (else_clause "else {\n      sVar12 = 0;\n      _Var18 = true;\n      while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }\n    }" else (compound_statement "{\n      sVar12 = 0;\n      _Var18 = true;\n      while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }\n    }" { (expression_statement "sVar12 = 0;" (assignment_expression "sVar12 = 0" identifier = number_literal) ;) (expression_statement "_Var18 = true;" (assignment_expression "_Var18 = true" identifier = true) ;) (while_statement "while( true ) {\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);\n        *n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;\n        if (n - sVar12 == iVar3) break;\n        piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();\n        _Var8 = check_and_close(*piVar2);\n        _Var9 = open_next_file();\n        _Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));\n        if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }\n        sVar12 = *n_bytes_in_buffer;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12);" (assignment_expression "iVar3 = (*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12)" identifier = (call_expression "(*(code *)PTR_fread_unlocked_00031240)(block + sVar12,1,n - sVar12)" (parenthesized_expression "(*(code *)PTR_fread_unlocked_00031240)" ( (pointer_expression "*(code *)PTR_fread_unlocked_00031240" * (cast_expression "(code *)PTR_fread_unlocked_00031240" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(block + sVar12,1,n - sVar12)" ( (binary_expression "block + sVar12" identifier + identifier) , number_literal , (binary_expression "n - sVar12" identifier - identifier) )))) ;) (expression_statement "*n_bytes_in_buffer = *n_bytes_in_buffer + iVar3;" (assignment_expression "*n_bytes_in_buffer = *n_bytes_in_buffer + iVar3" (pointer_expression "*n_bytes_in_buffer" * identifier) = (binary_expression "*n_bytes_in_buffer + iVar3" (pointer_expression "*n_bytes_in_buffer" * identifier) + identifier)) ;) (if_statement "if (n - sVar12 == iVar3) break;" if (parenthesized_expression "(n - sVar12 == iVar3)" ( (binary_expression "n - sVar12 == iVar3" (binary_expression "n - sVar12" identifier - identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "piVar2 = (int *)(*(code *)PTR___errno_location_00031298)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR___errno_location_00031298)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00031298)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00031298)()" (parenthesized_expression "(*(code *)PTR___errno_location_00031298)" ( (pointer_expression "*(code *)PTR___errno_location_00031298" * (cast_expression "(code *)PTR___errno_location_00031298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "_Var8 = check_and_close(*piVar2);" (assignment_expression "_Var8 = check_and_close(*piVar2)" identifier = (call_expression "check_and_close(*piVar2)" identifier (argument_list "(*piVar2)" ( (pointer_expression "*piVar2" * identifier) )))) ;) (expression_statement "_Var9 = open_next_file();" (assignment_expression "_Var9 = open_next_file()" identifier = (call_expression "open_next_file()" identifier (argument_list "()" ( )))) ;) (expression_statement "_Var18 = (_Bool)(_Var18 & (_Var8 && _Var9));" (assignment_expression "_Var18 = (_Bool)(_Var18 & (_Var8 && _Var9))" identifier = (call_expression "(_Bool)(_Var18 & (_Var8 && _Var9))" (parenthesized_expression "(_Bool)" ( identifier )) (argument_list "(_Var18 & (_Var8 && _Var9))" ( (binary_expression "_Var18 & (_Var8 && _Var9)" identifier & (parenthesized_expression "(_Var8 && _Var9)" ( (binary_expression "_Var8 && _Var9" identifier && identifier) ))) )))) ;) (if_statement "if (*(int *)(puVar20 + 0x13c0) == 0) {\n          return _Var18;\n        }" if (parenthesized_expression "(*(int *)(puVar20 + 0x13c0) == 0)" ( (binary_expression "*(int *)(puVar20 + 0x13c0) == 0" (pointer_expression "*(int *)(puVar20 + 0x13c0)" * (cast_expression "(int *)(puVar20 + 0x13c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x13c0)" ( (binary_expression "puVar20 + 0x13c0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          return _Var18;\n        }" { (return_statement "return _Var18;" return identifier ;) })) (expression_statement "sVar12 = *n_bytes_in_buffer;" (assignment_expression "sVar12 = *n_bytes_in_buffer" identifier = (pointer_expression "*n_bytes_in_buffer" * identifier)) ;) })) }))) (return_statement "return _Var18;" return identifier ;) })) (expression_statement "puVar13 = PTR_UINT_00031118 + -0x25cc;" (assignment_expression "puVar13 = PTR_UINT_00031118 + -0x25cc" identifier = (binary_expression "PTR_UINT_00031118 + -0x25cc" identifier + number_literal)) ;) (expression_statement "puVar20 = PTR___assert_fail_00031234;" (assignment_expression "puVar20 = PTR___assert_fail_00031234" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_00031234)\n            (puVar13,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);" (call_expression "(*(code *)PTR___assert_fail_00031234)\n            (puVar13,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0)" (parenthesized_expression "(*(code *)PTR___assert_fail_00031234)" ( (pointer_expression "*(code *)PTR___assert_fail_00031234" * (cast_expression "(code *)PTR___assert_fail_00031234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0)" ( identifier , (binary_expression "PTR_UINT_00031118 + -0x2704" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_00031118 + -0xff0" identifier + number_literal) ))) ;) (expression_statement "uStack_5c = **(undefined4 **)(puVar20 + 0x1af14);" (assignment_expression "uStack_5c = **(undefined4 **)(puVar20 + 0x1af14)" identifier = (pointer_expression "**(undefined4 **)(puVar20 + 0x1af14)" * (pointer_expression "*(undefined4 **)(puVar20 + 0x1af14)" * (cast_expression "(undefined4 **)(puVar20 + 0x1af14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af14)" ( (binary_expression "puVar20 + 0x1af14" identifier + number_literal) )))))) ;) (if_statement "if (puVar13 != (undefined *)0x0) {\n    uVar16 = **(undefined4 **)(puVar20 + 0x1af24);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar20 + 0x1ae40))(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44));\n    goto LAB_00016490;\n  }" if (parenthesized_expression "(puVar13 != (undefined *)0x0)" ( (binary_expression "puVar13 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar16 = **(undefined4 **)(puVar20 + 0x1af24);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar20 + 0x1ae40))(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44));\n    goto LAB_00016490;\n  }" { (expression_statement "uVar16 = **(undefined4 **)(puVar20 + 0x1af24);" (assignment_expression "uVar16 = **(undefined4 **)(puVar20 + 0x1af24)" identifier = (pointer_expression "**(undefined4 **)(puVar20 + 0x1af24)" * (pointer_expression "*(undefined4 **)(puVar20 + 0x1af24)" * (cast_expression "(undefined4 **)(puVar20 + 0x1af24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af24)" ( (binary_expression "puVar20 + 0x1af24" identifier + number_literal) )))))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x25a8)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x25a8" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1ae40))(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44));" (call_expression "(**(code **)(puVar20 + 0x1ae40))(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44))" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae40))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae40)" * (pointer_expression "*(code **)(puVar20 + 0x1ae40)" * (cast_expression "(code **)(puVar20 + 0x1ae40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae40)" ( (binary_expression "puVar20 + 0x1ae40" identifier + number_literal) ))))) )) (argument_list "(uVar16,1,uVar4,**(undefined4 **)(puVar20 + 0x1ad44))" ( identifier , number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar20 + 0x1ad44)" * (pointer_expression "*(undefined4 **)(puVar20 + 0x1ad44)" * (cast_expression "(undefined4 **)(puVar20 + 0x1ad44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ad44)" ( (binary_expression "puVar20 + 0x1ad44" identifier + number_literal) ))))) ))) ;) (goto_statement "goto LAB_00016490;" goto statement_identifier ;) })) (expression_statement "puVar17 = *(undefined4 **)(puVar20 + 0x1ae7c);" (assignment_expression "puVar17 = *(undefined4 **)(puVar20 + 0x1ae7c)" identifier = (pointer_expression "*(undefined4 **)(puVar20 + 0x1ae7c)" * (cast_expression "(undefined4 **)(puVar20 + 0x1ae7c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae7c)" ( (binary_expression "puVar20 + 0x1ae7c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))();" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))()" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))()" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar16 = **(undefined4 **)(puVar20 + 0x1ad44);" (assignment_expression "uVar16 = **(undefined4 **)(puVar20 + 0x1ad44)" identifier = (pointer_expression "**(undefined4 **)(puVar20 + 0x1ad44)" * (pointer_expression "*(undefined4 **)(puVar20 + 0x1ad44)" * (cast_expression "(undefined4 **)(puVar20 + 0x1ad44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ad44)" ( (binary_expression "puVar20 + 0x1ad44" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,uVar16,uVar16,uVar16);" (call_expression "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,uVar16,uVar16,uVar16)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae78)" * (pointer_expression "*(code **)(puVar20 + 0x1ae78)" * (cast_expression "(code **)(puVar20 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae78)" ( (binary_expression "puVar20 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar4,uVar16,uVar16,uVar16)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x24dc,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x24dc,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x24dc,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x24dc,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x24dc" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2424,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2424,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2424,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x2424,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x2424" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x23ec,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x23ec,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x23ec,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x23ec,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x23ec" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2264,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2264,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2264,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x2264,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x2264" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2218,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2218,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x2218,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x2218,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x2218" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x20f8,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x20f8,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x20f8,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x20f8,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x20f8" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ed0,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ed0,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ed0,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ed0,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1ed0" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ea0,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ea0,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ea0,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1ea0,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1ea0" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1e68,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1e68,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1e68,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1e68,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1e68" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1d2c,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1d2c,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1d2c,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1d2c,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1d2c" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1c18,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1c18,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1c18,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1c18,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1c18" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1b70,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1b70,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1b70,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1b70,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1b70" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1a74,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1a74,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1a74,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1a74,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1a74" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1980,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1980,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1980,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1980,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1980" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1920,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1920,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x1920,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x1920,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1920" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "piVar2 = aiStack_94;" (assignment_expression "piVar2 = aiStack_94" identifier = identifier) ;) (expression_statement "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17);" (call_expression "(**(code **)(puVar20 + 0x1af40))(uVar4,*puVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af40))" ( (pointer_expression "**(code **)(puVar20 + 0x1af40)" * (pointer_expression "*(code **)(puVar20 + 0x1af40)" * (cast_expression "(code **)(puVar20 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af40)" ( (binary_expression "puVar20 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar4,*puVar17)" ( identifier , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + 0x1acfc);" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x1acfc)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1acfc)" * (cast_expression "(int *)(puVar20 + 0x1acfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1acfc)" ( (binary_expression "puVar20 + 0x1acfc" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = (int *)(iVar3 + 0x1010);" (assignment_expression "piVar6 = (int *)(iVar3 + 0x1010)" identifier = (cast_expression "(int *)(iVar3 + 0x1010)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1010)" ( (binary_expression "iVar3 + 0x1010" identifier + number_literal) )))) ;) (expression_statement "piVar1 = piVar2;" (assignment_expression "piVar1 = piVar2" identifier = identifier) ;) (do_statement "do {\n    piVar11 = piVar1;\n    piVar5 = piVar6;\n    piVar6 = piVar5 + 4;\n    *piVar11 = *piVar5;\n    iVar15 = piVar5[2];\n    iVar14 = piVar5[3];\n    piVar11[1] = piVar5[1];\n    piVar11[2] = iVar15;\n    piVar11[3] = iVar14;\n    piVar1 = piVar11 + 4;\n  } while (piVar6 != (int *)(iVar3 + 0x1040));" do (compound_statement "{\n    piVar11 = piVar1;\n    piVar5 = piVar6;\n    piVar6 = piVar5 + 4;\n    *piVar11 = *piVar5;\n    iVar15 = piVar5[2];\n    iVar14 = piVar5[3];\n    piVar11[1] = piVar5[1];\n    piVar11[2] = iVar15;\n    piVar11[3] = iVar14;\n    piVar1 = piVar11 + 4;\n  }" { (expression_statement "piVar11 = piVar1;" (assignment_expression "piVar11 = piVar1" identifier = identifier) ;) (expression_statement "piVar5 = piVar6;" (assignment_expression "piVar5 = piVar6" identifier = identifier) ;) (expression_statement "piVar6 = piVar5 + 4;" (assignment_expression "piVar6 = piVar5 + 4" identifier = (binary_expression "piVar5 + 4" identifier + number_literal)) ;) (expression_statement "*piVar11 = *piVar5;" (assignment_expression "*piVar11 = *piVar5" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "iVar15 = piVar5[2];" (assignment_expression "iVar15 = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = piVar5[3];" (assignment_expression "iVar14 = piVar5[3]" identifier = (subscript_expression "piVar5[3]" identifier [ number_literal ])) ;) (expression_statement "piVar11[1] = piVar5[1];" (assignment_expression "piVar11[1] = piVar5[1]" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "piVar11[2] = iVar15;" (assignment_expression "piVar11[2] = iVar15" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[3] = iVar14;" (assignment_expression "piVar11[3] = iVar14" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1 = piVar11 + 4;" (assignment_expression "piVar1 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar6 != (int *)(iVar3 + 0x1040))" ( (binary_expression "piVar6 != (int *)(iVar3 + 0x1040)" identifier != (cast_expression "(int *)(iVar3 + 0x1040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1040)" ( (binary_expression "iVar3 + 0x1040" identifier + number_literal) )))) )) ;) (expression_statement "iVar3 = piVar5[5];" (assignment_expression "iVar3 = piVar5[5]" identifier = (subscript_expression "piVar5[5]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = *(int *)(puVar20 + 0x1ad0c);" (assignment_expression "iVar14 = *(int *)(puVar20 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) ))))) ;) (expression_statement "piVar11[4] = *piVar6;" (assignment_expression "piVar11[4] = *piVar6" (subscript_expression "piVar11[4]" identifier [ number_literal ]) = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar11[5] = iVar3;" (assignment_expression "piVar11[5] = iVar3" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) (while_statement "while (aiStack_94[0] != 0) {\n    iVar3 = (**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar2 = piVar2 + 2;\n    aiStack_94[0] = *piVar2;\n  }" while (parenthesized_expression "(aiStack_94[0] != 0)" ( (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    iVar3 = (**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar2 = piVar2 + 2;\n    aiStack_94[0] = *piVar2;\n  }" { (expression_statement "iVar3 = (**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac);" (assignment_expression "iVar3 = (**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac)" identifier = (call_expression "(**(code **)(puVar20 + 0x1af38))(iVar14 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar20 + 0x1af38))" ( (pointer_expression "**(code **)(puVar20 + 0x1af38)" * (pointer_expression "*(code **)(puVar20 + 0x1af38)" * (cast_expression "(code **)(puVar20 + 0x1af38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1af38)" ( (binary_expression "puVar20 + 0x1af38" identifier + number_literal) ))))) )) (argument_list "(iVar14 + -0x25ac)" ( (binary_expression "iVar14 + -0x25ac" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c);\n      goto LAB_00016808;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(puVar20 + 0x1ad0c);\n      goto LAB_00016808;\n    }" { (expression_statement "iVar3 = *(int *)(puVar20 + 0x1ad0c);" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00016808;" goto statement_identifier ;) })) (expression_statement "piVar2 = piVar2 + 2;" (assignment_expression "piVar2 = piVar2 + 2" identifier = (binary_expression "piVar2 + 2" identifier + number_literal)) ;) (expression_statement "aiStack_94[0] = *piVar2;" (assignment_expression "aiStack_94[0] = *piVar2" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = (pointer_expression "*piVar2" * identifier)) ;) })) (expression_statement "iVar3 = *(int *)(puVar20 + 0x1ad0c);" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00016808:\n  iVar15 = piVar2[1];" statement_identifier : (expression_statement "iVar15 = piVar2[1];" (assignment_expression "iVar15 = piVar2[1]" identifier = (subscript_expression "piVar2[1]" identifier [ number_literal ])) ;)) (expression_statement "iVar19 = *(int *)(puVar20 + 0x1ad0c);" (assignment_expression "iVar19 = *(int *)(puVar20 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) ))))) ;) (if_statement "if (iVar15 == 0) {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if ((iVar3 != 0) &&\n       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0)) {\n      iVar15 = iVar14 + -0x25ac;\n      iVar3 = iVar15;\nLAB_00016a0c:\n      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar15 = iVar14 + -0x25ac;\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar15);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    if (iVar15 == iVar3) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }\n  }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if ((iVar3 != 0) &&\n       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0)) {\n      iVar15 = iVar14 + -0x25ac;\n      iVar3 = iVar15;\nLAB_00016a0c:\n      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar15 = iVar14 + -0x25ac;\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar15);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n  }" { (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,iVar3 + -0x1870,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,iVar3 + -0x1870,5)" ( number_literal , (binary_expression "iVar3 + -0x1870" identifier + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;" (call_expression "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae78)" * (pointer_expression "*(code **)(puVar20 + 0x1ae78)" * (cast_expression "(code **)(puVar20 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae78)" ( (binary_expression "puVar20 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)" ( number_literal , identifier , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1830" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar19 + -0x1858" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);" (assignment_expression "iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0)" identifier = (call_expression "(**(code **)(puVar20 + 0x1ae68))(5,0)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae68))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae68)" * (pointer_expression "*(code **)(puVar20 + 0x1ae68)" * (cast_expression "(code **)(puVar20 + 0x1ae68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae68)" ( (binary_expression "puVar20 + 0x1ae68" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if ((iVar3 != 0) &&\n       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0)) {\n      iVar15 = iVar14 + -0x25ac;\n      iVar3 = iVar15;\nLAB_00016a0c:\n      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);\n      goto LAB_00016890;\n    }" if (parenthesized_expression "((iVar3 != 0) &&\n       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0))" ( (binary_expression "(iVar3 != 0) &&\n       (iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0)" ( (comma_expression "iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3),\n       iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3)" identifier = (call_expression "(**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae30)" * (pointer_expression "*(code **)(puVar20 + 0x1ae30)" * (cast_expression "(code **)(puVar20 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae30)" ( (binary_expression "puVar20 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3)" ( identifier , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1820" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar15 = iVar14 + -0x25ac;\n      iVar3 = iVar15;\nLAB_00016a0c:\n      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);\n      goto LAB_00016890;\n    }" { (expression_statement "iVar15 = iVar14 + -0x25ac;" (assignment_expression "iVar15 = iVar14 + -0x25ac" identifier = (binary_expression "iVar14 + -0x25ac" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar15;" (assignment_expression "iVar3 = iVar15" identifier = identifier) ;) (labeled_statement "LAB_00016a0c:\n      uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);" statement_identifier : (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x181c,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x181c" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac);" (call_expression "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar14 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae78)" * (pointer_expression "*(code **)(puVar20 + 0x1ae78)" * (cast_expression "(code **)(puVar20 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae78)" ( (binary_expression "puVar20 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar4,iVar14 + -0x25ac)" ( number_literal , identifier , (binary_expression "iVar14 + -0x25ac" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00016890;" goto statement_identifier ;) })) (expression_statement "iVar15 = iVar14 + -0x25ac;" (assignment_expression "iVar15 = iVar14 + -0x25ac" identifier = (binary_expression "iVar14 + -0x25ac" identifier + number_literal)) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x17d4" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar15);" (call_expression "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar15)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae78)" * (pointer_expression "*(code **)(puVar20 + 0x1ae78)" * (cast_expression "(code **)(puVar20 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae78)" ( (binary_expression "puVar20 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar4,iVar19 + -0x1858,iVar15)" ( number_literal , identifier , (binary_expression "iVar19 + -0x1858" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x17b4" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778" identifier = (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1778" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    if (iVar15 == iVar3) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }\n  }" else (compound_statement "{\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))();\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;\n    iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);\n    if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac);\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);\n    if (iVar15 == iVar3) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }\n  }" { (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))();" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))()" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))()" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)\n    ;" (call_expression "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae78)" * (pointer_expression "*(code **)(puVar20 + 0x1ae78)" * (cast_expression "(code **)(puVar20 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae78)" ( (binary_expression "puVar20 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar4,*(int *)(puVar20 + 0x1ad0c) + -0x1830,iVar19 + -0x1858)" ( number_literal , identifier , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1830" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar19 + -0x1858" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0);" (assignment_expression "iVar3 = (**(code **)(puVar20 + 0x1ae68))(5,0)" identifier = (call_expression "(**(code **)(puVar20 + 0x1ae68))(5,0)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae68))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae68)" * (pointer_expression "*(code **)(puVar20 + 0x1ae68)" * (cast_expression "(code **)(puVar20 + 0x1ae68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae68)" ( (binary_expression "puVar20 + 0x1ae68" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n    }" { (expression_statement "iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac" identifier = (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x25ac" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }" else (compound_statement "{\n      iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;\n      if (iVar7 != 0) goto LAB_00016a0c;\n    }" { (expression_statement "iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3);" (assignment_expression "iVar7 = (**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3)" identifier = (call_expression "(**(code **)(puVar20 + 0x1ae30))(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae30)" * (pointer_expression "*(code **)(puVar20 + 0x1ae30)" * (cast_expression "(code **)(puVar20 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae30)" ( (binary_expression "puVar20 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(iVar3,*(int *)(puVar20 + 0x1ad0c) + -0x1820,3)" ( identifier , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1820" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac;" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x25ac" identifier = (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x25ac" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar7 != 0) goto LAB_00016a0c;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016a0c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00016890:\n    uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);" statement_identifier : (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x17d4,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x17d4" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac);" (call_expression "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae78)" * (pointer_expression "*(code **)(puVar20 + 0x1ae78)" * (cast_expression "(code **)(puVar20 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae78)" ( (binary_expression "puVar20 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar4,iVar19 + -0x1858,iVar14 + -0x25ac)" ( number_literal , identifier , (binary_expression "iVar19 + -0x1858" identifier + number_literal) , (binary_expression "iVar14 + -0x25ac" identifier + number_literal) ))) ;) (expression_statement "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5);" (assignment_expression "uVar4 = (**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aef8))(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar20 + 0x1aef8)" * (pointer_expression "*(code **)(puVar20 + 0x1aef8)" * (cast_expression "(code **)(puVar20 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aef8)" ( (binary_expression "puVar20 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar20 + 0x1ad0c) + -0x17b4,5)" ( number_literal , (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x17b4" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar15 == iVar3) {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }" if (parenthesized_expression "(iVar15 == iVar3)" ( (binary_expression "iVar15 == iVar3" identifier == identifier) )) (compound_statement "{\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;\n    }" { (expression_statement "iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778;" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x1ad0c) + -0x1778" identifier = (binary_expression "*(int *)(puVar20 + 0x1ad0c) + -0x1778" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }" else (compound_statement "{\n      iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;\n    }" { (expression_statement "iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234;" (assignment_expression "iVar3 = *(int *)(puVar20 + 0x1ad0c) + 0x234" identifier = (binary_expression "*(int *)(puVar20 + 0x1ad0c) + 0x234" (pointer_expression "*(int *)(puVar20 + 0x1ad0c)" * (cast_expression "(int *)(puVar20 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x1ad0c)" ( (binary_expression "puVar20 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar15,iVar3);" (call_expression "(**(code **)(puVar20 + 0x1ae78))(1,uVar4,iVar15,iVar3)" (parenthesized_expression "(**(code **)(puVar20 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar20 + 0x1ae78)" * (pointer_expression "*(code **)(puVar20 + 0x1ae78)" * (cast_expression "(code **)(puVar20 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1ae78)" ( (binary_expression "puVar20 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar4,iVar15,iVar3)" ( number_literal , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00016490:\n  uVar10 = (**(code **)(puVar20 + 0x1aeb0))(puVar13);" statement_identifier : (expression_statement "uVar10 = (**(code **)(puVar20 + 0x1aeb0))(puVar13);" (assignment_expression "uVar10 = (**(code **)(puVar20 + 0x1aeb0))(puVar13)" identifier = (call_expression "(**(code **)(puVar20 + 0x1aeb0))(puVar13)" (parenthesized_expression "(**(code **)(puVar20 + 0x1aeb0))" ( (pointer_expression "**(code **)(puVar20 + 0x1aeb0)" * (pointer_expression "*(code **)(puVar20 + 0x1aeb0)" * (cast_expression "(code **)(puVar20 + 0x1aeb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x1aeb0)" ( (binary_expression "puVar20 + 0x1aeb0" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;)) (return_statement "return (_Bool)uVar10;" return (cast_expression "(_Bool)uVar10" ( (type_descriptor "_Bool" type_identifier) ) identifier) ;) })))
(translation_unit "uint FUN_000162c4(uint param_1,int param_2,int *param_3)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  undefined *puVar18;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar18 = PTR_DAT_00031108;\n  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }\n  puVar12 = PTR_UINT_00031118 + -0x25cc;\n  puVar18 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);\n  if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);\n  piVar15 = aiStack_94;\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  iVar11 = *(int *)(puVar18 + 0x1acfc);\n  piVar8 = (int *)(iVar11 + 0x1010);\n  piVar1 = piVar15;\n  do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));\n  iVar11 = piVar7[5];\n  iVar5 = *(int *)(puVar18 + 0x1ad0c);\n  piVar10[4] = *piVar8;\n  piVar10[5] = iVar11;\n  while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }\n  iVar11 = *(int *)(puVar18 + 0x1ad0c);\nLAB_00016808:\n  iVar13 = piVar15[1];\n  iVar17 = *(int *)(puVar18 + 0x1ad0c);\n  if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);\nLAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);\n  return uVar16;\n}\n\n" (function_definition "uint FUN_000162c4(uint param_1,int param_2,int *param_3)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  undefined *puVar18;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar18 = PTR_DAT_00031108;\n  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }\n  puVar12 = PTR_UINT_00031118 + -0x25cc;\n  puVar18 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);\n  if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);\n  piVar15 = aiStack_94;\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  iVar11 = *(int *)(puVar18 + 0x1acfc);\n  piVar8 = (int *)(iVar11 + 0x1010);\n  piVar1 = piVar15;\n  do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));\n  iVar11 = piVar7[5];\n  iVar5 = *(int *)(puVar18 + 0x1ad0c);\n  piVar10[4] = *piVar8;\n  piVar10[5] = iVar11;\n  while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }\n  iVar11 = *(int *)(puVar18 + 0x1ad0c);\nLAB_00016808:\n  iVar13 = piVar15[1];\n  iVar17 = *(int *)(puVar18 + 0x1ad0c);\n  if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);\nLAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);\n  return uVar16;\n}" type_identifier (function_declarator "FUN_000162c4(uint param_1,int param_2,int *param_3)" identifier (parameter_list "(uint param_1,int param_2,int *param_3)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  undefined *puVar18;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar18 = PTR_DAT_00031108;\n  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }\n  puVar12 = PTR_UINT_00031118 + -0x25cc;\n  puVar18 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);\n  if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);\n  piVar15 = aiStack_94;\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  iVar11 = *(int *)(puVar18 + 0x1acfc);\n  piVar8 = (int *)(iVar11 + 0x1010);\n  piVar1 = piVar15;\n  do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));\n  iVar11 = piVar7[5];\n  iVar5 = *(int *)(puVar18 + 0x1ad0c);\n  piVar10[4] = *piVar8;\n  piVar10[5] = iVar11;\n  while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }\n  iVar11 = *(int *)(puVar18 + 0x1ad0c);\nLAB_00016808:\n  iVar13 = piVar15[1];\n  iVar17 = *(int *)(puVar18 + 0x1ad0c);\n  if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);\nLAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);\n  return uVar16;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int aiStack_94 [14];" primitive_type (array_declarator "aiStack_94 [14]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (expression_statement "puVar18 = PTR_DAT_00031108;" (assignment_expression "puVar18 = PTR_DAT_00031108" identifier = identifier) ;) (if_statement "if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }" if (parenthesized_expression "((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc)))" ( (binary_expression "(param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))" (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))" ( (binary_expression "param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc)" identifier <= (pointer_expression "*(uint *)(PTR_DAT_00031108 + 0x13cc)" * (cast_expression "(uint *)(PTR_DAT_00031108 + 0x13cc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00031108 + 0x13cc)" ( (binary_expression "PTR_DAT_00031108 + 0x13cc" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }" { (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (if_statement "if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" if (parenthesized_expression "(*(int *)(puVar18 + 0x13c0) == 0)" ( (binary_expression "*(int *)(puVar18 + 0x13c0) == 0" (pointer_expression "*(int *)(puVar18 + 0x13c0)" * (cast_expression "(int *)(puVar18 + 0x13c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x13c0)" ( (binary_expression "puVar18 + 0x13c0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar16 = 1;\n    }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" else (compound_statement "{\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (while_statement "while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }" { (expression_statement "iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);" (assignment_expression "iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11)" identifier = (call_expression "(*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11)" (parenthesized_expression "(*(code *)PTR_fread_unlocked_00031240)" ( (pointer_expression "*(code *)PTR_fread_unlocked_00031240" * (cast_expression "(code *)PTR_fread_unlocked_00031240" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2 + iVar11,1,param_1 - iVar11)" ( (binary_expression "param_2 + iVar11" identifier + identifier) , number_literal , (binary_expression "param_1 - iVar11" identifier - identifier) )))) ;) (expression_statement "*param_3 = *param_3 + iVar5;" (assignment_expression "*param_3 = *param_3 + iVar5" (pointer_expression "*param_3" * identifier) = (binary_expression "*param_3 + iVar5" (pointer_expression "*param_3" * identifier) + identifier)) ;) (if_statement "if (param_1 - iVar11 == iVar5) break;" if (parenthesized_expression "(param_1 - iVar11 == iVar5)" ( (binary_expression "param_1 - iVar11 == iVar5" (binary_expression "param_1 - iVar11" identifier - identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00031298)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00031298)()" (parenthesized_expression "(*(code *)PTR___errno_location_00031298)" ( (pointer_expression "*(code *)PTR___errno_location_00031298" * (cast_expression "(code *)PTR___errno_location_00031298" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar3 = FUN_00014c30(*puVar2);" (assignment_expression "uVar3 = FUN_00014c30(*puVar2)" identifier = (call_expression "FUN_00014c30(*puVar2)" identifier (argument_list "(*puVar2)" ( (pointer_expression "*puVar2" * identifier) )))) ;) (expression_statement "uVar4 = FUN_00014e20();" (assignment_expression "uVar4 = FUN_00014e20()" identifier = (call_expression "FUN_00014e20()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar16 = uVar16 & uVar3 & uVar4;" (assignment_expression "uVar16 = uVar16 & uVar3 & uVar4" identifier = (binary_expression "uVar16 & uVar3 & uVar4" (binary_expression "uVar16 & uVar3" identifier & identifier) & identifier)) ;) (if_statement "if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }" if (parenthesized_expression "(*(int *)(puVar18 + 0x13c0) == 0)" ( (binary_expression "*(int *)(puVar18 + 0x13c0) == 0" (pointer_expression "*(int *)(puVar18 + 0x13c0)" * (cast_expression "(int *)(puVar18 + 0x13c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x13c0)" ( (binary_expression "puVar18 + 0x13c0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          return uVar16;\n        }" { (return_statement "return uVar16;" return identifier ;) })) (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) }))) (return_statement "return uVar16;" return identifier ;) })) (expression_statement "puVar12 = PTR_UINT_00031118 + -0x25cc;" (assignment_expression "puVar12 = PTR_UINT_00031118 + -0x25cc" identifier = (binary_expression "PTR_UINT_00031118 + -0x25cc" identifier + number_literal)) ;) (expression_statement "puVar18 = PTR___assert_fail_00031234;" (assignment_expression "puVar18 = PTR___assert_fail_00031234" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);" (call_expression "(*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0)" (parenthesized_expression "(*(code *)PTR___assert_fail_00031234)" ( (pointer_expression "*(code *)PTR___assert_fail_00031234" * (cast_expression "(code *)PTR___assert_fail_00031234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0)" ( identifier , (binary_expression "PTR_UINT_00031118 + -0x2704" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_00031118 + -0xff0" identifier + number_literal) ))) ;) (expression_statement "uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);" (assignment_expression "uStack_5c = **(undefined4 **)(puVar18 + 0x1af14)" identifier = (pointer_expression "**(undefined4 **)(puVar18 + 0x1af14)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1af14)" * (cast_expression "(undefined4 **)(puVar18 + 0x1af14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af14)" ( (binary_expression "puVar18 + 0x1af14" identifier + number_literal) )))))) ;) (if_statement "if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }" if (parenthesized_expression "(puVar12 != (undefined *)0x0)" ( (binary_expression "puVar12 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }" { (expression_statement "uVar14 = **(undefined4 **)(puVar18 + 0x1af24);" (assignment_expression "uVar14 = **(undefined4 **)(puVar18 + 0x1af24)" identifier = (pointer_expression "**(undefined4 **)(puVar18 + 0x1af24)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1af24)" * (cast_expression "(undefined4 **)(puVar18 + 0x1af24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af24)" ( (binary_expression "puVar18 + 0x1af24" identifier + number_literal) )))))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25a8" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));" (call_expression "(**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44))" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae40))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae40)" * (pointer_expression "*(code **)(puVar18 + 0x1ae40)" * (cast_expression "(code **)(puVar18 + 0x1ae40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae40)" ( (binary_expression "puVar18 + 0x1ae40" identifier + number_literal) ))))) )) (argument_list "(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44))" ( identifier , number_literal , identifier , (pointer_expression "**(undefined4 **)(puVar18 + 0x1ad44)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1ad44)" * (cast_expression "(undefined4 **)(puVar18 + 0x1ad44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ad44)" ( (binary_expression "puVar18 + 0x1ad44" identifier + number_literal) ))))) ))) ;) (goto_statement "goto LAB_00016490;" goto statement_identifier ;) })) (expression_statement "puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);" (assignment_expression "puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c)" identifier = (pointer_expression "*(undefined4 **)(puVar18 + 0x1ae7c)" * (cast_expression "(undefined4 **)(puVar18 + 0x1ae7c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae7c)" ( (binary_expression "puVar18 + 0x1ae7c" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))();" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))()" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);" (assignment_expression "uVar14 = **(undefined4 **)(puVar18 + 0x1ad44)" identifier = (pointer_expression "**(undefined4 **)(puVar18 + 0x1ad44)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x1ad44)" * (cast_expression "(undefined4 **)(puVar18 + 0x1ad44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ad44)" ( (binary_expression "puVar18 + 0x1ad44" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,uVar14,uVar14,uVar14)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x24dc" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2424" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x23ec" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2264" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2218" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x20f8" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1ed0" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1ea0" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1e68" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1d2c" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1c18" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1b70" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1a74" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1980" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1920" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "piVar15 = aiStack_94;" (assignment_expression "piVar15 = aiStack_94" identifier = identifier) ;) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" ( (pointer_expression "**(code **)(puVar18 + 0x1af40)" * (pointer_expression "*(code **)(puVar18 + 0x1af40)" * (cast_expression "(code **)(puVar18 + 0x1af40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af40)" ( (binary_expression "puVar18 + 0x1af40" identifier + number_literal) ))))) )) (argument_list "(uVar6,*puVar2)" ( identifier , (pointer_expression "*puVar2" * identifier) ))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1acfc);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1acfc)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1acfc)" * (cast_expression "(int *)(puVar18 + 0x1acfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1acfc)" ( (binary_expression "puVar18 + 0x1acfc" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = (int *)(iVar11 + 0x1010);" (assignment_expression "piVar8 = (int *)(iVar11 + 0x1010)" identifier = (cast_expression "(int *)(iVar11 + 0x1010)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1010)" ( (binary_expression "iVar11 + 0x1010" identifier + number_literal) )))) ;) (expression_statement "piVar1 = piVar15;" (assignment_expression "piVar1 = piVar15" identifier = identifier) ;) (do_statement "do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));" do (compound_statement "{\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  }" { (expression_statement "piVar10 = piVar1;" (assignment_expression "piVar10 = piVar1" identifier = identifier) ;) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" identifier = identifier) ;) (expression_statement "piVar8 = piVar7 + 4;" (assignment_expression "piVar8 = piVar7 + 4" identifier = (binary_expression "piVar7 + 4" identifier + number_literal)) ;) (expression_statement "*piVar10 = *piVar7;" (assignment_expression "*piVar10 = *piVar7" (pointer_expression "*piVar10" * identifier) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar13 = piVar7[2];" (assignment_expression "iVar13 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar7[3];" (assignment_expression "iVar5 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "piVar10[1] = piVar7[1];" (assignment_expression "piVar10[1] = piVar7[1]" (subscript_expression "piVar10[1]" identifier [ number_literal ]) = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "piVar10[2] = iVar13;" (assignment_expression "piVar10[2] = iVar13" (subscript_expression "piVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10[3] = iVar5;" (assignment_expression "piVar10[3] = iVar5" (subscript_expression "piVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1 = piVar10 + 4;" (assignment_expression "piVar1 = piVar10 + 4" identifier = (binary_expression "piVar10 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != (int *)(iVar11 + 0x1040))" ( (binary_expression "piVar8 != (int *)(iVar11 + 0x1040)" identifier != (cast_expression "(int *)(iVar11 + 0x1040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1040)" ( (binary_expression "iVar11 + 0x1040" identifier + number_literal) )))) )) ;) (expression_statement "iVar11 = piVar7[5];" (assignment_expression "iVar11 = piVar7[5]" identifier = (subscript_expression "piVar7[5]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar5 = *(int *)(puVar18 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) ))))) ;) (expression_statement "piVar10[4] = *piVar8;" (assignment_expression "piVar10[4] = *piVar8" (subscript_expression "piVar10[4]" identifier [ number_literal ]) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar10[5] = iVar11;" (assignment_expression "piVar10[5] = iVar11" (subscript_expression "piVar10[5]" identifier [ number_literal ]) = identifier) ;) (while_statement "while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }" while (parenthesized_expression "(aiStack_94[0] != 0)" ( (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }" { (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac)" identifier = (call_expression "(**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af38))" ( (pointer_expression "**(code **)(puVar18 + 0x1af38)" * (pointer_expression "*(code **)(puVar18 + 0x1af38)" * (cast_expression "(code **)(puVar18 + 0x1af38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1af38)" ( (binary_expression "puVar18 + 0x1af38" identifier + number_literal) ))))) )) (argument_list "(iVar5 + -0x25ac)" ( (binary_expression "iVar5 + -0x25ac" identifier + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }" { (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00016808;" goto statement_identifier ;) })) (expression_statement "piVar15 = piVar15 + 2;" (assignment_expression "piVar15 = piVar15 + 2" identifier = (binary_expression "piVar15 + 2" identifier + number_literal)) ;) (expression_statement "aiStack_94[0] = *piVar15;" (assignment_expression "aiStack_94[0] = *piVar15" (subscript_expression "aiStack_94[0]" identifier [ number_literal ]) = (pointer_expression "*piVar15" * identifier)) ;) })) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00016808:\n  iVar13 = piVar15[1];" statement_identifier : (expression_statement "iVar13 = piVar15[1];" (assignment_expression "iVar13 = piVar15[1]" identifier = (subscript_expression "piVar15[1]" identifier [ number_literal ])) ;)) (expression_statement "iVar17 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar17 = *(int *)(puVar18 + 0x1ad0c)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,iVar11 + -0x1870,5)" ( number_literal , (binary_expression "iVar11 + -0x1870" identifier + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" ( number_literal , identifier , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1830" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar17 + -0x1858" identifier + number_literal) ))) ;) (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0)" identifier = (call_expression "(**(code **)(puVar18 + 0x1ae68))(5,0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae68))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae68)" * (pointer_expression "*(code **)(puVar18 + 0x1ae68)" * (cast_expression "(code **)(puVar18 + 0x1ae68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae68)" ( (binary_expression "puVar18 + 0x1ae68" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }" if (parenthesized_expression "((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0))" ( (binary_expression "(iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)" ( (comma_expression "iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" identifier = (call_expression "(**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae30)" * (pointer_expression "*(code **)(puVar18 + 0x1ae30)" * (cast_expression "(code **)(puVar18 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae30)" ( (binary_expression "puVar18 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" ( identifier , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1820" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }" { (expression_statement "iVar13 = iVar5 + -0x25ac;" (assignment_expression "iVar13 = iVar5 + -0x25ac" identifier = (binary_expression "iVar5 + -0x25ac" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) (labeled_statement "LAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);" statement_identifier : (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x181c" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,iVar5 + -0x25ac)" ( number_literal , identifier , (binary_expression "iVar5 + -0x25ac" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00016890;" goto statement_identifier ;) })) (expression_statement "iVar13 = iVar5 + -0x25ac;" (assignment_expression "iVar13 = iVar5 + -0x25ac" identifier = (binary_expression "iVar5 + -0x25ac" identifier + number_literal)) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17d4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,iVar17 + -0x1858,iVar13)" ( number_literal , identifier , (binary_expression "iVar17 + -0x1858" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17b4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1778" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" else (compound_statement "{\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" { (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))();" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))()" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" ( number_literal , identifier , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1830" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar17 + -0x1858" identifier + number_literal) ))) ;) (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0)" identifier = (call_expression "(**(code **)(puVar18 + 0x1ae68))(5,0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae68))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae68)" * (pointer_expression "*(code **)(puVar18 + 0x1ae68)" * (cast_expression "(code **)(puVar18 + 0x1ae68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae68)" ( (binary_expression "puVar18 + 0x1ae68" identifier + number_literal) ))))) )) (argument_list "(5,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }" { (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25ac" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" else (compound_statement "{\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" { (expression_statement "iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);" (assignment_expression "iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" identifier = (call_expression "(**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae30)" * (pointer_expression "*(code **)(puVar18 + 0x1ae30)" * (cast_expression "(code **)(puVar18 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae30)" ( (binary_expression "puVar18 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" ( identifier , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1820" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25ac" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar9 != 0) goto LAB_00016a0c;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016a0c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" statement_identifier : (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17d4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;)) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac)" ( number_literal , identifier , (binary_expression "iVar17 + -0x1858" identifier + number_literal) , (binary_expression "iVar5 + -0x25ac" identifier + number_literal) ))) ;) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" ( (pointer_expression "**(code **)(puVar18 + 0x1aef8)" * (pointer_expression "*(code **)(puVar18 + 0x1aef8)" * (cast_expression "(code **)(puVar18 + 0x1aef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aef8)" ( (binary_expression "puVar18 + 0x1aef8" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" ( number_literal , (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17b4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" if (parenthesized_expression "(iVar13 == iVar11)" ( (binary_expression "iVar13 == iVar11" identifier == identifier) )) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }" { (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1778" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" else (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" { (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234" identifier = (binary_expression "*(int *)(puVar18 + 0x1ad0c) + 0x234" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" * (cast_expression "(int *)(puVar18 + 0x1ad0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1ad0c)" ( (binary_expression "puVar18 + 0x1ad0c" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" ( (pointer_expression "**(code **)(puVar18 + 0x1ae78)" * (pointer_expression "*(code **)(puVar18 + 0x1ae78)" * (cast_expression "(code **)(puVar18 + 0x1ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1ae78)" ( (binary_expression "puVar18 + 0x1ae78" identifier + number_literal) ))))) )) (argument_list "(1,uVar6,iVar13,iVar11)" ( number_literal , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);" statement_identifier : (expression_statement "uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);" (assignment_expression "uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12)" identifier = (call_expression "(**(code **)(puVar18 + 0x1aeb0))(puVar12)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aeb0))" ( (pointer_expression "**(code **)(puVar18 + 0x1aeb0)" * (pointer_expression "*(code **)(puVar18 + 0x1aeb0)" * (cast_expression "(code **)(puVar18 + 0x1aeb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1aeb0)" ( (binary_expression "puVar18 + 0x1aeb0" identifier + number_literal) ))))) )) (argument_list "(puVar12)" ( identifier )))) ;)) (return_statement "return uVar16;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) , LIT , (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) == IDENT) )) (break_statement break ;)) (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 = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & IDENT) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) }))) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 ( IDENT , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (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) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (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) )))) ;) (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) ))))) ))) ;) (goto_statement goto 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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 * (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 , 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 (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 (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 (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) ;) (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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 (subscript_expression IDENT [ LIT ]) = (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 ))) ;) (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 ( IDENT )))) ;)) (return_statement return IDENT ;) })))
(function_definition "uint FUN_000162c4(uint param_1,int param_2,int *param_3)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  undefined *puVar18;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar18 = PTR_DAT_00031108;\n  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }\n  puVar12 = PTR_UINT_00031118 + -0x25cc;\n  puVar18 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);\n  if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);\n  piVar15 = aiStack_94;\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  iVar11 = *(int *)(puVar18 + 0x1acfc);\n  piVar8 = (int *)(iVar11 + 0x1010);\n  piVar1 = piVar15;\n  do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));\n  iVar11 = piVar7[5];\n  iVar5 = *(int *)(puVar18 + 0x1ad0c);\n  piVar10[4] = *piVar8;\n  piVar10[5] = iVar11;\n  while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }\n  iVar11 = *(int *)(puVar18 + 0x1ad0c);\nLAB_00016808:\n  iVar13 = piVar15[1];\n  iVar17 = *(int *)(puVar18 + 0x1ad0c);\n  if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);\nLAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);\n  return uVar16;\n}" (type_identifier "uint") (function_declarator "FUN_000162c4(uint param_1,int param_2,int *param_3)" (identifier "FUN_000162c4") (parameter_list "(uint param_1,int param_2,int *param_3)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int *piVar15;\n  uint uVar16;\n  int iVar17;\n  undefined *puVar18;\n  int aiStack_94 [14];\n  undefined4 uStack_5c;\n  \n  puVar18 = PTR_DAT_00031108;\n  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }\n  puVar12 = PTR_UINT_00031118 + -0x25cc;\n  puVar18 = PTR___assert_fail_00031234;\n  (*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);\n  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);\n  if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }\n  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);\n  piVar15 = aiStack_94;\n  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);\n  iVar11 = *(int *)(puVar18 + 0x1acfc);\n  piVar8 = (int *)(iVar11 + 0x1010);\n  piVar1 = piVar15;\n  do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));\n  iVar11 = piVar7[5];\n  iVar5 = *(int *)(puVar18 + 0x1ad0c);\n  piVar10[4] = *piVar8;\n  piVar10[5] = iVar11;\n  while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }\n  iVar11 = *(int *)(puVar18 + 0x1ad0c);\nLAB_00016808:\n  iVar13 = piVar15[1];\n  iVar17 = *(int *)(puVar18 + 0x1ad0c);\n  if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }\n  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);\nLAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);\n  return uVar16;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int aiStack_94 [14];" (primitive_type "int") (array_declarator "aiStack_94 [14]" (identifier "aiStack_94") ([ "[") (number_literal "14") (] "]")) (; ";")) (declaration "undefined4 uStack_5c;" (type_identifier "undefined4") (identifier "uStack_5c") (; ";")) (expression_statement "puVar18 = PTR_DAT_00031108;" (assignment_expression "puVar18 = PTR_DAT_00031108" (identifier "puVar18") (= "=") (identifier "PTR_DAT_00031108")) (; ";")) (if_statement "if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }" (if "if") (parenthesized_expression "((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc)))" (( "(") (binary_expression "(param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))" (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))" (( "(") (binary_expression "param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc)" (identifier "param_1") (<= "<=") (pointer_expression "*(uint *)(PTR_DAT_00031108 + 0x13cc)" (* "*") (cast_expression "(uint *)(PTR_DAT_00031108 + 0x13cc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00031108 + 0x13cc)" (( "(") (binary_expression "PTR_DAT_00031108 + 0x13cc" (identifier "PTR_DAT_00031108") (+ "+") (number_literal "0x13cc")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n    *param_3 = 0;\n    if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }\n    return uVar16;\n  }" ({ "{") (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(puVar18 + 0x13c0) == 0) {\n      uVar16 = 1;\n    }\n    else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + 0x13c0) == 0)" (( "(") (binary_expression "*(int *)(puVar18 + 0x13c0) == 0" (pointer_expression "*(int *)(puVar18 + 0x13c0)" (* "*") (cast_expression "(int *)(puVar18 + 0x13c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x13c0)" (( "(") (binary_expression "puVar18 + 0x13c0" (identifier "puVar18") (+ "+") (number_literal "0x13c0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar16 = 1;\n    }" ({ "{") (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" (else "else") (compound_statement "{\n      iVar11 = 0;\n      uVar16 = 1;\n      while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }\n    }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (while_statement "while( true ) {\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);\n        *param_3 = *param_3 + iVar5;\n        if (param_1 - iVar11 == iVar5) break;\n        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();\n        uVar3 = FUN_00014c30(*puVar2);\n        uVar4 = FUN_00014e20();\n        uVar16 = uVar16 & uVar3 & uVar4;\n        if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }\n        iVar11 = *param_3;\n      }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);" (assignment_expression "iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11)" (parenthesized_expression "(*(code *)PTR_fread_unlocked_00031240)" (( "(") (pointer_expression "*(code *)PTR_fread_unlocked_00031240" (* "*") (cast_expression "(code *)PTR_fread_unlocked_00031240" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fread_unlocked_00031240"))) () ")")) (argument_list "(param_2 + iVar11,1,param_1 - iVar11)" (( "(") (binary_expression "param_2 + iVar11" (identifier "param_2") (+ "+") (identifier "iVar11")) (, ",") (number_literal "1") (, ",") (binary_expression "param_1 - iVar11" (identifier "param_1") (- "-") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "*param_3 = *param_3 + iVar5;" (assignment_expression "*param_3 = *param_3 + iVar5" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "*param_3 + iVar5" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (identifier "iVar5"))) (; ";")) (if_statement "if (param_1 - iVar11 == iVar5) break;" (if "if") (parenthesized_expression "(param_1 - iVar11 == iVar5)" (( "(") (binary_expression "param_1 - iVar11 == iVar5" (binary_expression "param_1 - iVar11" (identifier "param_1") (- "-") (identifier "iVar11")) (== "==") (identifier "iVar5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)()" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00031298)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00031298)()" (parenthesized_expression "(*(code *)PTR___errno_location_00031298)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00031298" (* "*") (cast_expression "(code *)PTR___errno_location_00031298" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00031298"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar3 = FUN_00014c30(*puVar2);" (assignment_expression "uVar3 = FUN_00014c30(*puVar2)" (identifier "uVar3") (= "=") (call_expression "FUN_00014c30(*puVar2)" (identifier "FUN_00014c30") (argument_list "(*puVar2)" (( "(") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00014e20();" (assignment_expression "uVar4 = FUN_00014e20()" (identifier "uVar4") (= "=") (call_expression "FUN_00014e20()" (identifier "FUN_00014e20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar16 = uVar16 & uVar3 & uVar4;" (assignment_expression "uVar16 = uVar16 & uVar3 & uVar4" (identifier "uVar16") (= "=") (binary_expression "uVar16 & uVar3 & uVar4" (binary_expression "uVar16 & uVar3" (identifier "uVar16") (& "&") (identifier "uVar3")) (& "&") (identifier "uVar4"))) (; ";")) (if_statement "if (*(int *)(puVar18 + 0x13c0) == 0) {\n          return uVar16;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + 0x13c0) == 0)" (( "(") (binary_expression "*(int *)(puVar18 + 0x13c0) == 0" (pointer_expression "*(int *)(puVar18 + 0x13c0)" (* "*") (cast_expression "(int *)(puVar18 + 0x13c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x13c0)" (( "(") (binary_expression "puVar18 + 0x13c0" (identifier "puVar18") (+ "+") (number_literal "0x13c0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return uVar16;\n        }" ({ "{") (return_statement "return uVar16;" (return "return") (identifier "uVar16") (; ";")) (} "}"))) (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" (identifier "iVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}"))) (} "}")))) (return_statement "return uVar16;" (return "return") (identifier "uVar16") (; ";")) (} "}"))) (expression_statement "puVar12 = PTR_UINT_00031118 + -0x25cc;" (assignment_expression "puVar12 = PTR_UINT_00031118 + -0x25cc" (identifier "puVar12") (= "=") (binary_expression "PTR_UINT_00031118 + -0x25cc" (identifier "PTR_UINT_00031118") (+ "+") (number_literal "-0x25cc"))) (; ";")) (expression_statement "puVar18 = PTR___assert_fail_00031234;" (assignment_expression "puVar18 = PTR___assert_fail_00031234" (identifier "puVar18") (= "=") (identifier "PTR___assert_fail_00031234")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);" (call_expression "(*(code *)PTR___assert_fail_00031234)\n            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0)" (parenthesized_expression "(*(code *)PTR___assert_fail_00031234)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00031234" (* "*") (cast_expression "(code *)PTR___assert_fail_00031234" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00031234"))) () ")")) (argument_list "(puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0)" (( "(") (identifier "puVar12") (, ",") (binary_expression "PTR_UINT_00031118 + -0x2704" (identifier "PTR_UINT_00031118") (+ "+") (number_literal "-0x2704")) (, ",") (number_literal "0x507") (, ",") (binary_expression "PTR_UINT_00031118 + -0xff0" (identifier "PTR_UINT_00031118") (+ "+") (number_literal "-0xff0")) () ")"))) (; ";")) (expression_statement "uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);" (assignment_expression "uStack_5c = **(undefined4 **)(puVar18 + 0x1af14)" (identifier "uStack_5c") (= "=") (pointer_expression "**(undefined4 **)(puVar18 + 0x1af14)" (* "*") (pointer_expression "*(undefined4 **)(puVar18 + 0x1af14)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 0x1af14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af14)" (( "(") (binary_expression "puVar18 + 0x1af14" (identifier "puVar18") (+ "+") (number_literal "0x1af14")) () ")")))))) (; ";")) (if_statement "if (puVar12 != (undefined *)0x0) {\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }" (if "if") (parenthesized_expression "(puVar12 != (undefined *)0x0)" (( "(") (binary_expression "puVar12 != (undefined *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);\n    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));\n    goto LAB_00016490;\n  }" ({ "{") (expression_statement "uVar14 = **(undefined4 **)(puVar18 + 0x1af24);" (assignment_expression "uVar14 = **(undefined4 **)(puVar18 + 0x1af24)" (identifier "uVar14") (= "=") (pointer_expression "**(undefined4 **)(puVar18 + 0x1af24)" (* "*") (pointer_expression "*(undefined4 **)(puVar18 + 0x1af24)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 0x1af24)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af24)" (( "(") (binary_expression "puVar18 + 0x1af24" (identifier "puVar18") (+ "+") (number_literal "0x1af24")) () ")")))))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25a8" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x25a8")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));" (call_expression "(**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44))" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae40)" (( "(") (binary_expression "puVar18 + 0x1ae40" (identifier "puVar18") (+ "+") (number_literal "0x1ae40")) () ")"))))) () ")")) (argument_list "(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44))" (( "(") (identifier "uVar14") (, ",") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (pointer_expression "**(undefined4 **)(puVar18 + 0x1ad44)" (* "*") (pointer_expression "*(undefined4 **)(puVar18 + 0x1ad44)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 0x1ad44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ad44)" (( "(") (binary_expression "puVar18 + 0x1ad44" (identifier "puVar18") (+ "+") (number_literal "0x1ad44")) () ")"))))) () ")"))) (; ";")) (goto_statement "goto LAB_00016490;" (goto "goto") (statement_identifier "LAB_00016490") (; ";")) (} "}"))) (expression_statement "puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);" (assignment_expression "puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(puVar18 + 0x1ae7c)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 0x1ae7c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae7c)" (( "(") (binary_expression "puVar18 + 0x1ae7c" (identifier "puVar18") (+ "+") (number_literal "0x1ae7c")) () ")"))))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))();" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))()" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);" (assignment_expression "uVar14 = **(undefined4 **)(puVar18 + 0x1ad44)" (identifier "uVar14") (= "=") (pointer_expression "**(undefined4 **)(puVar18 + 0x1ad44)" (* "*") (pointer_expression "*(undefined4 **)(puVar18 + 0x1ad44)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 0x1ad44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ad44)" (( "(") (binary_expression "puVar18 + 0x1ad44" (identifier "puVar18") (+ "+") (number_literal "0x1ad44")) () ")")))))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae78)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae78)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae78)" (( "(") (binary_expression "puVar18 + 0x1ae78" (identifier "puVar18") (+ "+") (number_literal "0x1ae78")) () ")"))))) () ")")) (argument_list "(1,uVar6,uVar14,uVar14,uVar14)" (( "(") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (identifier "uVar14") (, ",") (identifier "uVar14") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x24dc" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x24dc")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2424" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x2424")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x23ec" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x23ec")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2264" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x2264")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x2218" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x2218")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x20f8" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x20f8")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1ed0" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1ed0")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1ea0" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1ea0")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1e68" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1e68")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1d2c" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1d2c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1c18" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1c18")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1b70" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1b70")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1a74" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1a74")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1980" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1980")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1920" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1920")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "piVar15 = aiStack_94;" (assignment_expression "piVar15 = aiStack_94" (identifier "piVar15") (= "=") (identifier "aiStack_94")) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);" (call_expression "(**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af40))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af40)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af40)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af40)" (( "(") (binary_expression "puVar18 + 0x1af40" (identifier "puVar18") (+ "+") (number_literal "0x1af40")) () ")"))))) () ")")) (argument_list "(uVar6,*puVar2)" (( "(") (identifier "uVar6") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1acfc);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1acfc)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + 0x1acfc)" (* "*") (cast_expression "(int *)(puVar18 + 0x1acfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1acfc)" (( "(") (binary_expression "puVar18 + 0x1acfc" (identifier "puVar18") (+ "+") (number_literal "0x1acfc")) () ")"))))) (; ";")) (expression_statement "piVar8 = (int *)(iVar11 + 0x1010);" (assignment_expression "piVar8 = (int *)(iVar11 + 0x1010)" (identifier "piVar8") (= "=") (cast_expression "(int *)(iVar11 + 0x1010)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1010)" (( "(") (binary_expression "iVar11 + 0x1010" (identifier "iVar11") (+ "+") (number_literal "0x1010")) () ")")))) (; ";")) (expression_statement "piVar1 = piVar15;" (assignment_expression "piVar1 = piVar15" (identifier "piVar1") (= "=") (identifier "piVar15")) (; ";")) (do_statement "do {\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  } while (piVar8 != (int *)(iVar11 + 0x1040));" (do "do") (compound_statement "{\n    piVar10 = piVar1;\n    piVar7 = piVar8;\n    piVar8 = piVar7 + 4;\n    *piVar10 = *piVar7;\n    iVar13 = piVar7[2];\n    iVar5 = piVar7[3];\n    piVar10[1] = piVar7[1];\n    piVar10[2] = iVar13;\n    piVar10[3] = iVar5;\n    piVar1 = piVar10 + 4;\n  }" ({ "{") (expression_statement "piVar10 = piVar1;" (assignment_expression "piVar10 = piVar1" (identifier "piVar10") (= "=") (identifier "piVar1")) (; ";")) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" (identifier "piVar7") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "piVar8 = piVar7 + 4;" (assignment_expression "piVar8 = piVar7 + 4" (identifier "piVar8") (= "=") (binary_expression "piVar7 + 4" (identifier "piVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*piVar10 = *piVar7;" (assignment_expression "*piVar10 = *piVar7" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "iVar13 = piVar7[2];" (assignment_expression "iVar13 = piVar7[2]" (identifier "iVar13") (= "=") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar5 = piVar7[3];" (assignment_expression "iVar5 = piVar7[3]" (identifier "iVar5") (= "=") (subscript_expression "piVar7[3]" (identifier "piVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar10[1] = piVar7[1];" (assignment_expression "piVar10[1] = piVar7[1]" (subscript_expression "piVar10[1]" (identifier "piVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar10[2] = iVar13;" (assignment_expression "piVar10[2] = iVar13" (subscript_expression "piVar10[2]" (identifier "piVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "piVar10[3] = iVar5;" (assignment_expression "piVar10[3] = iVar5" (subscript_expression "piVar10[3]" (identifier "piVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar1 = piVar10 + 4;" (assignment_expression "piVar1 = piVar10 + 4" (identifier "piVar1") (= "=") (binary_expression "piVar10 + 4" (identifier "piVar10") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar8 != (int *)(iVar11 + 0x1040))" (( "(") (binary_expression "piVar8 != (int *)(iVar11 + 0x1040)" (identifier "piVar8") (!= "!=") (cast_expression "(int *)(iVar11 + 0x1040)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1040)" (( "(") (binary_expression "iVar11 + 0x1040" (identifier "iVar11") (+ "+") (number_literal "0x1040")) () ")")))) () ")")) (; ";")) (expression_statement "iVar11 = piVar7[5];" (assignment_expression "iVar11 = piVar7[5]" (identifier "iVar11") (= "=") (subscript_expression "piVar7[5]" (identifier "piVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar5 = *(int *)(puVar18 + 0x1ad0c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")"))))) (; ";")) (expression_statement "piVar10[4] = *piVar8;" (assignment_expression "piVar10[4] = *piVar8" (subscript_expression "piVar10[4]" (identifier "piVar10") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "piVar10[5] = iVar11;" (assignment_expression "piVar10[5] = iVar11" (subscript_expression "piVar10[5]" (identifier "piVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (while_statement "while (aiStack_94[0] != 0) {\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }" (while "while") (parenthesized_expression "(aiStack_94[0] != 0)" (( "(") (binary_expression "aiStack_94[0] != 0" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }\n    piVar15 = piVar15 + 2;\n    aiStack_94[0] = *piVar15;\n  }" ({ "{") (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1af38))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1af38)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1af38)" (* "*") (cast_expression "(code **)(puVar18 + 0x1af38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1af38)" (( "(") (binary_expression "puVar18 + 0x1af38" (identifier "puVar18") (+ "+") (number_literal "0x1af38")) () ")"))))) () ")")) (argument_list "(iVar5 + -0x25ac)" (( "(") (binary_expression "iVar5 + -0x25ac" (identifier "iVar5") (+ "+") (number_literal "-0x25ac")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c);\n      goto LAB_00016808;\n    }" ({ "{") (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")"))))) (; ";")) (goto_statement "goto LAB_00016808;" (goto "goto") (statement_identifier "LAB_00016808") (; ";")) (} "}"))) (expression_statement "piVar15 = piVar15 + 2;" (assignment_expression "piVar15 = piVar15 + 2" (identifier "piVar15") (= "=") (binary_expression "piVar15 + 2" (identifier "piVar15") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "aiStack_94[0] = *piVar15;" (assignment_expression "aiStack_94[0] = *piVar15" (subscript_expression "aiStack_94[0]" (identifier "aiStack_94") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")"))))) (; ";")) (labeled_statement "LAB_00016808:\n  iVar13 = piVar15[1];" (statement_identifier "LAB_00016808") (: ":") (expression_statement "iVar13 = piVar15[1];" (assignment_expression "iVar13 = piVar15[1]" (identifier "iVar13") (= "=") (subscript_expression "piVar15[1]" (identifier "piVar15") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "iVar17 = *(int *)(puVar18 + 0x1ad0c);" (assignment_expression "iVar17 = *(int *)(puVar18 + 0x1ad0c)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")"))))) (; ";")) (if_statement "if (iVar13 == 0) {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }\n  else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }\n    iVar13 = iVar5 + -0x25ac;\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n  }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,iVar11 + -0x1870,5)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar11 + -0x1870" (identifier "iVar11") (+ "+") (number_literal "-0x1870")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae78)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae78)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae78)" (( "(") (binary_expression "puVar18 + 0x1ae78" (identifier "puVar18") (+ "+") (number_literal "0x1ae78")) () ")"))))) () ")")) (argument_list "(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" (( "(") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1830" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1830")) (, ",") (binary_expression "iVar17 + -0x1858" (identifier "iVar17") (+ "+") (number_literal "-0x1858")) () ")"))) (; ";")) (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar18 + 0x1ae68))(5,0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae68))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae68)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae68)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae68)" (( "(") (binary_expression "puVar18 + 0x1ae68" (identifier "puVar18") (+ "+") (number_literal "0x1ae68")) () ")"))))) () ")")) (argument_list "(5,0)" (( "(") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)) {\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }" (if "if") (parenthesized_expression "((iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0))" (( "(") (binary_expression "(iVar11 != 0) &&\n       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)" (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0)" (( "(") (comma_expression "iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),\n       iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae30))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae30)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae30)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae30)" (( "(") (binary_expression "puVar18 + 0x1ae30" (identifier "puVar18") (+ "+") (number_literal "0x1ae30")) () ")"))))) () ")")) (argument_list "(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (( "(") (identifier "iVar11") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1820" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1820")) (, ",") (number_literal "3") () ")")))) (, ",") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar13 = iVar5 + -0x25ac;\n      iVar11 = iVar13;\nLAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);\n      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);\n      goto LAB_00016890;\n    }" ({ "{") (expression_statement "iVar13 = iVar5 + -0x25ac;" (assignment_expression "iVar13 = iVar5 + -0x25ac" (identifier "iVar13") (= "=") (binary_expression "iVar5 + -0x25ac" (identifier "iVar5") (+ "+") (number_literal "-0x25ac"))) (; ";")) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" (identifier "iVar11") (= "=") (identifier "iVar13")) (; ";")) (labeled_statement "LAB_00016a0c:\n      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);" (statement_identifier "LAB_00016a0c") (: ":") (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x181c" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x181c")) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae78)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae78)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae78)" (( "(") (binary_expression "puVar18 + 0x1ae78" (identifier "puVar18") (+ "+") (number_literal "0x1ae78")) () ")"))))) () ")")) (argument_list "(1,uVar6,iVar5 + -0x25ac)" (( "(") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (binary_expression "iVar5 + -0x25ac" (identifier "iVar5") (+ "+") (number_literal "-0x25ac")) () ")"))) (; ";")) (goto_statement "goto LAB_00016890;" (goto "goto") (statement_identifier "LAB_00016890") (; ";")) (} "}"))) (expression_statement "iVar13 = iVar5 + -0x25ac;" (assignment_expression "iVar13 = iVar5 + -0x25ac" (identifier "iVar13") (= "=") (binary_expression "iVar5 + -0x25ac" (identifier "iVar5") (+ "+") (number_literal "-0x25ac"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17d4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x17d4")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae78)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae78)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae78)" (( "(") (binary_expression "puVar18 + 0x1ae78" (identifier "puVar18") (+ "+") (number_literal "0x1ae78")) () ")"))))) () ")")) (argument_list "(1,uVar6,iVar17 + -0x1858,iVar13)" (( "(") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (binary_expression "iVar17 + -0x1858" (identifier "iVar17") (+ "+") (number_literal "-0x1858")) (, ",") (identifier "iVar13") () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17b4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x17b4")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1778" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1778"))) (; ";")) (} "}")) (else_clause "else {\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" (else "else") (compound_statement "{\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))();\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;\n    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);\n    if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }\nLAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);\n    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);\n    if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }\n  }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))();" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))()" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)\n    ;" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae78)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae78)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae78)" (( "(") (binary_expression "puVar18 + 0x1ae78" (identifier "puVar18") (+ "+") (number_literal "0x1ae78")) () ")"))))) () ")")) (argument_list "(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)" (( "(") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1830" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1830")) (, ",") (binary_expression "iVar17 + -0x1858" (identifier "iVar17") (+ "+") (number_literal "-0x1858")) () ")"))) (; ";")) (expression_statement "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);" (assignment_expression "iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar18 + 0x1ae68))(5,0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae68))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae68)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae68)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae68)" (( "(") (binary_expression "puVar18 + 0x1ae68" (identifier "puVar18") (+ "+") (number_literal "0x1ae68")) () ")"))))) () ")")) (argument_list "(5,0)" (( "(") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }\n    else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n    }" ({ "{") (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25ac" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x25ac"))) (; ";")) (} "}")) (else_clause "else {\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" (else "else") (compound_statement "{\n      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;\n      if (iVar9 != 0) goto LAB_00016a0c;\n    }" ({ "{") (expression_statement "iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);" (assignment_expression "iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae30))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae30)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae30)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae30)" (( "(") (binary_expression "puVar18 + 0x1ae30" (identifier "puVar18") (+ "+") (number_literal "0x1ae30")) () ")"))))) () ")")) (argument_list "(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3)" (( "(") (identifier "iVar11") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1820" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1820")) (, ",") (number_literal "3") () ")")))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x25ac" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x25ac"))) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_00016a0c;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016a0c;" (goto "goto") (statement_identifier "LAB_00016a0c") (; ";"))) (} "}")))) (labeled_statement "LAB_00016890:\n    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" (statement_identifier "LAB_00016890") (: ":") (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17d4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x17d4")) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae78)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae78)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae78)" (( "(") (binary_expression "puVar18 + 0x1ae78" (identifier "puVar18") (+ "+") (number_literal "0x1ae78")) () ")"))))) () ")")) (argument_list "(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac)" (( "(") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (binary_expression "iVar17 + -0x1858" (identifier "iVar17") (+ "+") (number_literal "-0x1858")) (, ",") (binary_expression "iVar5 + -0x25ac" (identifier "iVar5") (+ "+") (number_literal "-0x25ac")) () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);" (assignment_expression "uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aef8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aef8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aef8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aef8)" (( "(") (binary_expression "puVar18 + 0x1aef8" (identifier "puVar18") (+ "+") (number_literal "0x1aef8")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x17b4" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x17b4")) (, ",") (number_literal "5") () ")")))) (; ";")) (if_statement "if (iVar13 == iVar11) {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }\n    else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" (if "if") (parenthesized_expression "(iVar13 == iVar11)" (( "(") (binary_expression "iVar13 == iVar11" (identifier "iVar13") (== "==") (identifier "iVar11")) () ")")) (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;\n    }" ({ "{") (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + -0x1778" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "-0x1778"))) (; ";")) (} "}")) (else_clause "else {\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" (else "else") (compound_statement "{\n      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;\n    }" ({ "{") (expression_statement "iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;" (assignment_expression "iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar18 + 0x1ad0c) + 0x234" (pointer_expression "*(int *)(puVar18 + 0x1ad0c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1ad0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1ad0c)" (( "(") (binary_expression "puVar18 + 0x1ad0c" (identifier "puVar18") (+ "+") (number_literal "0x1ad0c")) () ")")))) (+ "+") (number_literal "0x234"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);" (call_expression "(**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11)" (parenthesized_expression "(**(code **)(puVar18 + 0x1ae78))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1ae78)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1ae78)" (* "*") (cast_expression "(code **)(puVar18 + 0x1ae78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1ae78)" (( "(") (binary_expression "puVar18 + 0x1ae78" (identifier "puVar18") (+ "+") (number_literal "0x1ae78")) () ")"))))) () ")")) (argument_list "(1,uVar6,iVar13,iVar11)" (( "(") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (identifier "iVar13") (, ",") (identifier "iVar11") () ")"))) (; ";")) (labeled_statement "LAB_00016490:\n  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);" (statement_identifier "LAB_00016490") (: ":") (expression_statement "uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);" (assignment_expression "uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12)" (identifier "uVar16") (= "=") (call_expression "(**(code **)(puVar18 + 0x1aeb0))(puVar12)" (parenthesized_expression "(**(code **)(puVar18 + 0x1aeb0))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1aeb0)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1aeb0)" (* "*") (cast_expression "(code **)(puVar18 + 0x1aeb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1aeb0)" (( "(") (binary_expression "puVar18 + 0x1aeb0" (identifier "puVar18") (+ "+") (number_literal "0x1aeb0")) () ")"))))) () ")")) (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")")))) (; ";"))) (return_statement "return uVar16;" (return "return") (identifier "uVar16") (; ";")) (} "}")))

type_1 function_1(size_t var_1,char *var_4,size_t *n_bytes_in_buffer)

{
  int *piVar1;
  int *var_18;
  type_1 var_10;
  type_1 var_11;
  int var_6;
  type_2 uVar4;
  type_3 uVar10;
  int *var_14;
  int *var_16;
  int var_21;
  int *var_15;
  size_t var_5;
  type_4 *var_13;
  int var_17;
  int var_19;
  type_2 uVar16;
  type_2 *puVar17;
  type_1 var_9;
  int var_20;
  type_4 *var_3;
  int aiStack_94 [14];
  type_2 uStack_5c;
  
  var_3 = var_2;
  if ((var_1 != 0) && (var_1 <= *(type_5 *)(var_2 + 0x13cc))) {
    *n_bytes_in_buffer = 0;
    if (*(int *)(var_3 + 0x13c0) == 0) {
      var_9 = true;
    }
    else {
      var_5 = 0;
      var_9 = true;
      while( true ) {
        var_6 = (*(type_6 *)PTR_fread_unlocked_00031240)(var_4 + var_5,1,var_1 - var_5);
        *n_bytes_in_buffer = *n_bytes_in_buffer + var_6;
        if (var_1 - var_5 == var_6) break;
        var_18 = (int *)(*(type_6 *)PTR___errno_location_00031298)();
        var_10 = var_7(*var_18);
        var_11 = var_8();
        var_9 = (type_1)(var_9 & (var_10 && var_11));
        if (*(int *)(var_3 + 0x13c0) == 0) {
          return var_9;
        }
        var_5 = *n_bytes_in_buffer;
      }
    }
    return var_9;
  }
  var_13 = var_12 + -0x25cc;
  var_3 = PTR___assert_fail_00031234;
  (*(type_6 *)PTR___assert_fail_00031234)
            (var_13,var_12 + -0x2704,0x507,var_12 + -0xff0);
  uStack_5c = **(type_2 **)(var_3 + 0x1af14);
  if (var_13 != (type_4 *)0x0) {
    uVar16 = **(type_2 **)(var_3 + 0x1af24);
    uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x25a8);
    (**(type_6 **)(var_3 + 0x1ae40))(uVar16,1,uVar4,**(type_2 **)(var_3 + 0x1ad44));
    goto LAB_00016490;
  }
  puVar17 = *(type_2 **)(var_3 + 0x1ae7c);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))();
  uVar16 = **(type_2 **)(var_3 + 0x1ad44);
  (**(type_6 **)(var_3 + 0x1ae78))(1,uVar4,uVar16,uVar16,uVar16);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x24dc,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x2424,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x23ec,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x2264,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x2218,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x20f8,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1ed0,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1ea0,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1e68,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1d2c,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1c18,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1b70,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1a74,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1980,5);
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x1920,5);
  var_18 = aiStack_94;
  (**(type_6 **)(var_3 + 0x1af40))(uVar4,*puVar17);
  var_6 = *(int *)(var_3 + 0x1acfc);
  var_16 = (int *)(var_6 + 0x1010);
  piVar1 = var_18;
  do {
    var_15 = piVar1;
    var_14 = var_16;
    var_16 = var_14 + 4;
    *var_15 = *var_14;
    var_19 = var_14[2];
    var_17 = var_14[3];
    var_15[1] = var_14[1];
    var_15[2] = var_19;
    var_15[3] = var_17;
    piVar1 = var_15 + 4;
  } while (var_16 != (int *)(var_6 + 0x1040));
  var_6 = var_14[5];
  var_17 = *(int *)(var_3 + 0x1ad0c);
  var_15[4] = *var_16;
  var_15[5] = var_6;
  while (aiStack_94[0] != 0) {
    var_6 = (**(type_6 **)(var_3 + 0x1af38))(var_17 + -0x25ac);
    if (var_6 == 0) {
      var_6 = *(int *)(var_3 + 0x1ad0c);
      goto LAB_00016808;
    }
    var_18 = var_18 + 2;
    aiStack_94[0] = *var_18;
  }
  var_6 = *(int *)(var_3 + 0x1ad0c);
LAB_00016808:
  var_19 = var_18[1];
  var_20 = *(int *)(var_3 + 0x1ad0c);
  if (var_19 == 0) {
    uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,var_6 + -0x1870,5);
    (**(type_6 **)(var_3 + 0x1ae78))(1,uVar4,*(int *)(var_3 + 0x1ad0c) + -0x1830,var_20 + -0x1858)
    ;
    var_6 = (**(type_6 **)(var_3 + 0x1ae68))(5,0);
    if ((var_6 != 0) &&
       (var_6 = (**(type_6 **)(var_3 + 0x1ae30))(var_6,*(int *)(var_3 + 0x1ad0c) + -0x1820,3),
       var_6 != 0)) {
      var_19 = var_17 + -0x25ac;
      var_6 = var_19;
LAB_00016a0c:
      uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x181c,5);
      (**(type_6 **)(var_3 + 0x1ae78))(1,uVar4,var_17 + -0x25ac);
      goto LAB_00016890;
    }
    var_19 = var_17 + -0x25ac;
    uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x17d4,5);
    (**(type_6 **)(var_3 + 0x1ae78))(1,uVar4,var_20 + -0x1858,var_19);
    uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x17b4,5);
    var_6 = *(int *)(var_3 + 0x1ad0c) + -0x1778;
  }
  else {
    uVar4 = (**(type_6 **)(var_3 + 0x1aef8))();
    (**(type_6 **)(var_3 + 0x1ae78))(1,uVar4,*(int *)(var_3 + 0x1ad0c) + -0x1830,var_20 + -0x1858)
    ;
    var_6 = (**(type_6 **)(var_3 + 0x1ae68))(5,0);
    if (var_6 == 0) {
      var_6 = *(int *)(var_3 + 0x1ad0c) + -0x25ac;
    }
    else {
      var_21 = (**(type_6 **)(var_3 + 0x1ae30))(var_6,*(int *)(var_3 + 0x1ad0c) + -0x1820,3);
      var_6 = *(int *)(var_3 + 0x1ad0c) + -0x25ac;
      if (var_21 != 0) goto LAB_00016a0c;
    }
LAB_00016890:
    uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x17d4,5);
    (**(type_6 **)(var_3 + 0x1ae78))(1,uVar4,var_20 + -0x1858,var_17 + -0x25ac);
    uVar4 = (**(type_6 **)(var_3 + 0x1aef8))(0,*(int *)(var_3 + 0x1ad0c) + -0x17b4,5);
    if (var_19 == var_6) {
      var_6 = *(int *)(var_3 + 0x1ad0c) + -0x1778;
    }
    else {
      var_6 = *(int *)(var_3 + 0x1ad0c) + 0x234;
    }
  }
  (**(type_6 **)(var_3 + 0x1ae78))(1,uVar4,var_19,var_6);
LAB_00016490:
  uVar10 = (**(type_6 **)(var_3 + 0x1aeb0))(var_13);
  return (type_1)uVar10;
}


(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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (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 (binary_expression left: (identifier) right: (identifier)) (number_literal) (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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 (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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)))))) (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))))))))) (goto_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (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) (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 (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 (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 (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))) (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 (identifier)))))) (return_statement (identifier)))))

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

{
  int *piVar1;
  undefined4 *puVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  int *piVar7;
  int *piVar8;
  int iVar9;
  int *piVar10;
  int iVar11;
  undefined *puVar12;
  int iVar13;
  undefined4 uVar14;
  int *piVar15;
  uint uVar16;
  int iVar17;
  undefined *puVar18;
  int aiStack_94 [14];
  undefined4 uStack_5c;
  
  puVar18 = PTR_DAT_00031108;
  if ((param_1 != 0) && (param_1 <= *(uint *)(PTR_DAT_00031108 + 0x13cc))) {
    *param_3 = 0;
    if (*(int *)(puVar18 + 0x13c0) == 0) {
      uVar16 = 1;
    }
    else {
      iVar11 = 0;
      uVar16 = 1;
      while( true ) {
        iVar5 = (*(code *)PTR_fread_unlocked_00031240)(param_2 + iVar11,1,param_1 - iVar11);
        *param_3 = *param_3 + iVar5;
        if (param_1 - iVar11 == iVar5) break;
        puVar2 = (undefined4 *)(*(code *)PTR___errno_location_00031298)();
        uVar3 = FUN_00014c30(*puVar2);
        uVar4 = FUN_00014e20();
        uVar16 = uVar16 & uVar3 & uVar4;
        if (*(int *)(puVar18 + 0x13c0) == 0) {
          return uVar16;
        }
        iVar11 = *param_3;
      }
    }
    return uVar16;
  }
  puVar12 = PTR_UINT_00031118 + -0x25cc;
  puVar18 = PTR___assert_fail_00031234;
  (*(code *)PTR___assert_fail_00031234)
            (puVar12,PTR_UINT_00031118 + -0x2704,0x507,PTR_UINT_00031118 + -0xff0);
  uStack_5c = **(undefined4 **)(puVar18 + 0x1af14);
  if (puVar12 != (undefined *)0x0) {
    uVar14 = **(undefined4 **)(puVar18 + 0x1af24);
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x25a8);
    (**(code **)(puVar18 + 0x1ae40))(uVar14,1,uVar6,**(undefined4 **)(puVar18 + 0x1ad44));
    goto LAB_00016490;
  }
  puVar2 = *(undefined4 **)(puVar18 + 0x1ae7c);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))();
  uVar14 = **(undefined4 **)(puVar18 + 0x1ad44);
  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,uVar14,uVar14,uVar14);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x24dc,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2424,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x23ec,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2264,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x2218,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x20f8,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ed0,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1ea0,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1e68,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1d2c,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1c18,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1b70,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1a74,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1980,5);
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x1920,5);
  piVar15 = aiStack_94;
  (**(code **)(puVar18 + 0x1af40))(uVar6,*puVar2);
  iVar11 = *(int *)(puVar18 + 0x1acfc);
  piVar8 = (int *)(iVar11 + 0x1010);
  piVar1 = piVar15;
  do {
    piVar10 = piVar1;
    piVar7 = piVar8;
    piVar8 = piVar7 + 4;
    *piVar10 = *piVar7;
    iVar13 = piVar7[2];
    iVar5 = piVar7[3];
    piVar10[1] = piVar7[1];
    piVar10[2] = iVar13;
    piVar10[3] = iVar5;
    piVar1 = piVar10 + 4;
  } while (piVar8 != (int *)(iVar11 + 0x1040));
  iVar11 = piVar7[5];
  iVar5 = *(int *)(puVar18 + 0x1ad0c);
  piVar10[4] = *piVar8;
  piVar10[5] = iVar11;
  while (aiStack_94[0] != 0) {
    iVar11 = (**(code **)(puVar18 + 0x1af38))(iVar5 + -0x25ac);
    if (iVar11 == 0) {
      iVar11 = *(int *)(puVar18 + 0x1ad0c);
      goto LAB_00016808;
    }
    piVar15 = piVar15 + 2;
    aiStack_94[0] = *piVar15;
  }
  iVar11 = *(int *)(puVar18 + 0x1ad0c);
LAB_00016808:
  iVar13 = piVar15[1];
  iVar17 = *(int *)(puVar18 + 0x1ad0c);
  if (iVar13 == 0) {
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,iVar11 + -0x1870,5);
    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)
    ;
    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);
    if ((iVar11 != 0) &&
       (iVar11 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3),
       iVar11 != 0)) {
      iVar13 = iVar5 + -0x25ac;
      iVar11 = iVar13;
LAB_00016a0c:
      uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x181c,5);
      (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar5 + -0x25ac);
      goto LAB_00016890;
    }
    iVar13 = iVar5 + -0x25ac;
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);
    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar13);
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);
    iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;
  }
  else {
    uVar6 = (**(code **)(puVar18 + 0x1aef8))();
    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,*(int *)(puVar18 + 0x1ad0c) + -0x1830,iVar17 + -0x1858)
    ;
    iVar11 = (**(code **)(puVar18 + 0x1ae68))(5,0);
    if (iVar11 == 0) {
      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;
    }
    else {
      iVar9 = (**(code **)(puVar18 + 0x1ae30))(iVar11,*(int *)(puVar18 + 0x1ad0c) + -0x1820,3);
      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x25ac;
      if (iVar9 != 0) goto LAB_00016a0c;
    }
LAB_00016890:
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17d4,5);
    (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar17 + -0x1858,iVar5 + -0x25ac);
    uVar6 = (**(code **)(puVar18 + 0x1aef8))(0,*(int *)(puVar18 + 0x1ad0c) + -0x17b4,5);
    if (iVar13 == iVar11) {
      iVar11 = *(int *)(puVar18 + 0x1ad0c) + -0x1778;
    }
    else {
      iVar11 = *(int *)(puVar18 + 0x1ad0c) + 0x234;
    }
  }
  (**(code **)(puVar18 + 0x1ae78))(1,uVar6,iVar13,iVar11);
LAB_00016490:
  uVar16 = (**(code **)(puVar18 + 0x1aeb0))(puVar12);
  return uVar16;
}

