
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: Output_section * do_output_section(Relobj * this, uint shndx) */

Output_section * __thiscall gold::Relobj::do_output_section(Relobj *this,uint shndx)

{
  Output_section *pOVar1;
  pointer ppOVar2;
  int iVar3;
  int *piVar4;
  undefined *puVar5;
  int iVar6;
  undefined4 *puVar7;
  uint uVar8;
  undefined *puVar9;
  int iVar10;
  int in_a3;
  undefined *puVar11;
  code *pcVar12;
  code *pcVar13;
  
  ppOVar2 = (this->output_sections_).
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_start;
  if (shndx < (uint)((int)(this->output_sections_).
                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                          ._M_impl._M_finish - (int)ppOVar2 >> 2)) {
    return ppOVar2[shndx];
  }
  uVar8 = 0x5c8;
  puVar9 = PTR_LAB_0043220c + 0x5a90;
  puVar5 = PTR_LAB_0043220c + 0x44a8;
  puVar11 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)();
  iVar3 = *(int *)(puVar5 + 0x84);
  if (uVar8 < (uint)(*(int *)(puVar5 + 0x88) - iVar3 >> 2)) {
    if ((puVar9 == (undefined *)0xffffffff) && (in_a3 == -1)) {
      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;
      return (Output_section *)0xffffffff;
    }
    if (puVar9 == (undefined *)0x0) {
      *(int *)(iVar3 + uVar8 * 4) = in_a3;
      return (Output_section *)0xffffffff;
    }
  }
  else {
    (**(code **)(puVar11 + 0x37e1d4))
              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678);
  }
  uVar8 = 0x70;
  pcVar12 = *(code **)(puVar11 + 0x37e1d4);
  iVar10 = *(int *)(puVar11 + 0x37e01c) + 0x5668;
  iVar6 = *(int *)(puVar11 + 0x37e01c) + 0x44bc;
  (*pcVar12)();
  iVar3 = *(int *)(iVar6 + 0x84);
  if (uVar8 < (uint)(*(int *)(iVar6 + 0x88) - iVar3 >> 2)) {
    if ((iVar10 == -1) && (in_a3 == -1)) {
      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;
      return (Output_section *)0xffffffff;
    }
    if (iVar10 == 0) {
      *(int *)(iVar3 + uVar8 * 4) = in_a3;
      return (Output_section *)0xffffffff;
    }
  }
  else {
    (**(code **)(pcVar12 + 0x37e124))
              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4);
  }
  uVar8 = 0x70;
  pcVar13 = *(code **)(pcVar12 + 0x37e124);
  iVar6 = *(int *)(pcVar12 + 0x37df6c) + 0x5668;
  iVar3 = *(int *)(pcVar12 + 0x37df6c) + 0x44bc;
  (*pcVar13)();
  pOVar1 = (Output_section *)
           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));
  if (pOVar1 != (Output_section *)0x0) {
    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);
    piVar4[1] = in_a3;
    *piVar4 = iVar6;
    return pOVar1;
  }
  uVar8 = 0x81f;
  pcVar12 = *(code **)(pcVar13 + 0x37e074);
  iVar6 = *(int *)(pcVar13 + 0x37debc) + 0x5d60;
  iVar3 = *(int *)(pcVar13 + 0x37debc) + 0x44a8;
  (*pcVar12)();
  pOVar1 = (Output_section *)
           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));
  if (pOVar1 != (Output_section *)0x0) {
    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);
    piVar4[1] = in_a3;
    *piVar4 = iVar6;
    return pOVar1;
  }
  uVar8 = 0x81f;
  pcVar13 = *(code **)(pcVar12 + 0x37e014);
  iVar3 = *(int *)(pcVar12 + 0x37de5c) + 0x44a8;
  (*pcVar13)(iVar3,0x81f,*(int *)(pcVar12 + 0x37de5c) + 0x58ec);
  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {
    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);
  }
  uVar8 = 0x7f7;
  pcVar12 = *(code **)(pcVar13 + 0x37dfb4);
  iVar3 = *(int *)(pcVar13 + 0x37ddfc) + 0x44a8;
  (*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37ddfc) + 0x5aec);
  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {
    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);
  }
  uVar8 = 0x7f7;
  pcVar13 = *(code **)(pcVar12 + 0x37df54);
  iVar3 = *(int *)(pcVar12 + 0x37dd9c) + 0x44a8;
  (*pcVar13)(iVar3,0x7f7,*(int *)(pcVar12 + 0x37dd9c) + 0x57b8);
  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {
    pOVar1 = (Output_section *)0xffffffff;
    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {
      pOVar1 = (Output_section *)0x0;
    }
    return pOVar1;
  }
  uVar8 = 0x7f7;
  pcVar12 = *(code **)(pcVar13 + 0x37def4);
  iVar3 = *(int *)(pcVar13 + 0x37dd3c) + 0x44a8;
  (*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37dd3c) + 0x5534);
  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {
    pOVar1 = (Output_section *)0xffffffff;
    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {
      pOVar1 = (Output_section *)0x0;
    }
    return pOVar1;
  }
  pcVar13 = *(code **)(pcVar12 + 0x37de88);
  puVar7 = (undefined4 *)(*(int *)(pcVar12 + 0x37dcd0) + 0x44a8);
  (*pcVar13)(puVar7,0x7f7,*(int *)(pcVar12 + 0x37dcd0) + 0x52c0);
  iVar3 = *(int *)(pcVar13 + 0x37df34);
  *puVar7 = (Output_section *)(iVar3 + 8);
  if ((undefined4 *)puVar7[1] != puVar7 + 3) {
                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pOVar1 = (Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1]);
    return pOVar1;
  }
  return (Output_section *)(iVar3 + 8);
}



/* gold::Relobj::do_output_section(unsigned int) const */

ulonglong __thiscall gold::Relobj::do_output_section(Relobj *this,uint param_1)

{
  bool bVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  int iVar4;
  int *piVar5;
  undefined *puVar6;
  int iVar7;
  int *piVar8;
  uint uVar9;
  undefined *puVar10;
  int iVar11;
  int in_a3;
  undefined *puVar12;
  code *pcVar13;
  code *pcVar14;
  ulonglong uVar15;
  
  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {
    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);
    return CONCAT44(*puVar3,puVar3);
  }
  uVar9 = 0x5c8;
  puVar10 = PTR_LAB_0043220c + 0x5a90;
  puVar6 = PTR_LAB_0043220c + 0x44a8;
  puVar12 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)();
  iVar4 = *(int *)(puVar6 + 0x84);
  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {
    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {
      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);
      *puVar3 = 0xffffffff;
      return CONCAT44(0xffffffff,puVar3);
    }
    if (puVar10 == (undefined *)0x0) {
      piVar5 = (int *)(iVar4 + uVar9 * 4);
      *piVar5 = in_a3;
      return CONCAT44(0xffffffff,piVar5);
    }
  }
  else {
    (**(code **)(puVar12 + 0x37e1d4))
              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);
  }
  uVar9 = 0x70;
  pcVar13 = *(code **)(puVar12 + 0x37e1d4);
  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;
  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;
  (*pcVar13)();
  iVar4 = *(int *)(iVar7 + 0x84);
  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {
    if ((iVar11 == -1) && (in_a3 == -1)) {
      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);
      *puVar3 = 0xffffffff;
      return CONCAT44(0xffffffff,puVar3);
    }
    if (iVar11 == 0) {
      piVar5 = (int *)(iVar4 + uVar9 * 4);
      *piVar5 = in_a3;
      return CONCAT44(0xffffffff,piVar5);
    }
  }
  else {
    (**(code **)(pcVar13 + 0x37e124))
              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);
  }
  uVar9 = 0x70;
  pcVar14 = *(code **)(pcVar13 + 0x37e124);
  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;
  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;
  (*pcVar14)();
  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);
  if (bVar1) {
    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);
    piVar5[1] = in_a3;
    *piVar5 = iVar7;
    return (ulonglong)CONCAT14(bVar1,piVar5);
  }
  uVar9 = 0x81f;
  pcVar13 = *(code **)(pcVar14 + 0x37e074);
  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;
  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;
  (*pcVar13)();
  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);
  if (bVar1) {
    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);
    piVar5[1] = in_a3;
    *piVar5 = iVar7;
    return (ulonglong)CONCAT14(bVar1,piVar5);
  }
  uVar9 = 0x81f;
  pcVar14 = *(code **)(pcVar13 + 0x37e014);
  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;
  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);
  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {
    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);
  }
  uVar9 = 0x7f7;
  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);
  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;
  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);
  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {
    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);
  }
  uVar9 = 0x7f7;
  pcVar14 = *(code **)(pcVar13 + 0x37df54);
  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;
  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);
  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {
    uVar2 = 0xffffffff;
    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);
    if (iVar4 == -1) {
      iVar4 = -1;
    }
    else {
      uVar2 = 0;
    }
    return CONCAT44(uVar2,iVar4);
  }
  uVar9 = 0x7f7;
  pcVar13 = *(code **)(pcVar14 + 0x37def4);
  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;
  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);
  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {
    pcVar14 = *(code **)(pcVar13 + 0x37de88);
    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);
    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);
    iVar4 = *(int *)(pcVar14 + 0x37df34);
    piVar5 = (int *)piVar8[1];
    *piVar8 = iVar4 + 8;
    if (piVar5 == piVar8 + 3) {
      return CONCAT44(iVar4 + 8,piVar5);
    }
                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);
    return uVar15;
  }
  uVar2 = 0xffffffff;
  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);
  if (iVar4 == -1) {
    iVar4 = -1;
  }
  else {
    uVar2 = 0;
  }
  return CONCAT44(uVar2,iVar4);
}


lui gp,0x38
addiu gp,gp,0x603c
addu gp,gp,t9
lw v1,0x38(a0)
lw v0,0x3c(a0)
subu v0,v0,v1
sra v0,v0,0x2
sltu v0,a1,v0
beq v0,zero,0x000b41c8
_sll a1,a1,0x2
addu v1,v1,a1
jr ra
_lw v0,0x0(v1)
lw a2,-0x7fc4(gp)
addiu sp,sp,-0x20
lw a0,-0x7fc4(gp)
li a1,0x5c8
lw t9,-0x7e0c(gp)
addiu a2,a2,0x5a90
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,0x44a8
(translation_unit "/* gold::Relobj::do_output_section(unsigned int) const */\n\nulonglong __thiscall gold::Relobj::do_output_section(Relobj *this,uint param_1)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined *puVar10;\n  int iVar11;\n  int in_a3;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  ulonglong uVar15;\n  \n  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }\n  uVar9 = 0x5c8;\n  puVar10 = PTR_LAB_0043220c + 0x5a90;\n  puVar6 = PTR_LAB_0043220c + 0x44a8;\n  puVar12 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar4 = *(int *)(puVar6 + 0x84);\n  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }\n  uVar9 = 0x70;\n  pcVar13 = *(code **)(puVar12 + 0x37e1d4);\n  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;\n  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;\n  (*pcVar13)();\n  iVar4 = *(int *)(iVar7 + 0x84);\n  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }\n  uVar9 = 0x70;\n  pcVar14 = *(code **)(pcVar13 + 0x37e124);\n  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;\n  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;\n  (*pcVar14)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar13 = *(code **)(pcVar14 + 0x37e074);\n  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;\n  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;\n  (*pcVar13)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar14 = *(code **)(pcVar13 + 0x37e014);\n  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;\n  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);\n  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar14 = *(code **)(pcVar13 + 0x37df54);\n  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;\n  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37def4);\n  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);\n  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }\n  uVar2 = 0xffffffff;\n  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n  if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }\n  return CONCAT44(uVar2,iVar4);\n}\n\n" comment (function_definition "ulonglong __thiscall gold::Relobj::do_output_section(Relobj *this,uint param_1)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined *puVar10;\n  int iVar11;\n  int in_a3;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  ulonglong uVar15;\n  \n  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }\n  uVar9 = 0x5c8;\n  puVar10 = PTR_LAB_0043220c + 0x5a90;\n  puVar6 = PTR_LAB_0043220c + 0x44a8;\n  puVar12 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar4 = *(int *)(puVar6 + 0x84);\n  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }\n  uVar9 = 0x70;\n  pcVar13 = *(code **)(puVar12 + 0x37e1d4);\n  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;\n  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;\n  (*pcVar13)();\n  iVar4 = *(int *)(iVar7 + 0x84);\n  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }\n  uVar9 = 0x70;\n  pcVar14 = *(code **)(pcVar13 + 0x37e124);\n  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;\n  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;\n  (*pcVar14)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar13 = *(code **)(pcVar14 + 0x37e074);\n  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;\n  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;\n  (*pcVar13)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar14 = *(code **)(pcVar13 + 0x37e014);\n  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;\n  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);\n  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar14 = *(code **)(pcVar13 + 0x37df54);\n  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;\n  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37def4);\n  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);\n  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }\n  uVar2 = 0xffffffff;\n  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n  if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }\n  return CONCAT44(uVar2,iVar4);\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Relobj::" identifier : : identifier : :) (function_declarator "do_output_section(Relobj *this,uint param_1)" identifier (parameter_list "(Relobj *this,uint param_1)" ( (parameter_declaration "Relobj *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined *puVar10;\n  int iVar11;\n  int in_a3;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  ulonglong uVar15;\n  \n  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }\n  uVar9 = 0x5c8;\n  puVar10 = PTR_LAB_0043220c + 0x5a90;\n  puVar6 = PTR_LAB_0043220c + 0x44a8;\n  puVar12 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar4 = *(int *)(puVar6 + 0x84);\n  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }\n  uVar9 = 0x70;\n  pcVar13 = *(code **)(puVar12 + 0x37e1d4);\n  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;\n  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;\n  (*pcVar13)();\n  iVar4 = *(int *)(iVar7 + 0x84);\n  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }\n  uVar9 = 0x70;\n  pcVar14 = *(code **)(pcVar13 + 0x37e124);\n  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;\n  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;\n  (*pcVar14)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar13 = *(code **)(pcVar14 + 0x37e074);\n  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;\n  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;\n  (*pcVar13)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar14 = *(code **)(pcVar13 + 0x37e014);\n  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;\n  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);\n  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar14 = *(code **)(pcVar13 + 0x37df54);\n  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;\n  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37def4);\n  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);\n  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }\n  uVar2 = 0xffffffff;\n  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n  if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }\n  return CONCAT44(uVar2,iVar4);\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_a3;" primitive_type identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "ulonglong uVar15;" type_identifier identifier ;) (if_statement "if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }" if (parenthesized_expression "(param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2))" ( (binary_expression "param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" identifier < (call_expression "(uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" ( (binary_expression "*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2" (binary_expression "*(int *)(this + 0x3c) - *(int *)(this + 0x38)" (pointer_expression "*(int *)(this + 0x3c)" * (cast_expression "(int *)(this + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x3c)" ( (binary_expression "this + 0x3c" identifier + number_literal) )))) - (pointer_expression "*(int *)(this + 0x38)" * (cast_expression "(int *)(this + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }" { (expression_statement "puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);" (assignment_expression "puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4)" identifier = (cast_expression "(undefined4 *)(*(int *)(this + 0x38) + param_1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x38) + param_1 * 4)" ( (binary_expression "*(int *)(this + 0x38) + param_1 * 4" (pointer_expression "*(int *)(this + 0x38)" * (cast_expression "(int *)(this + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) )))) + (binary_expression "param_1 * 4" identifier * number_literal)) )))) ;) (return_statement "return CONCAT44(*puVar3,puVar3);" return (call_expression "CONCAT44(*puVar3,puVar3)" identifier (argument_list "(*puVar3,puVar3)" ( (pointer_expression "*puVar3" * identifier) , identifier ))) ;) })) (expression_statement "uVar9 = 0x5c8;" (assignment_expression "uVar9 = 0x5c8" identifier = number_literal) ;) (expression_statement "puVar10 = PTR_LAB_0043220c + 0x5a90;" (assignment_expression "puVar10 = PTR_LAB_0043220c + 0x5a90" identifier = (binary_expression "PTR_LAB_0043220c + 0x5a90" identifier + number_literal)) ;) (expression_statement "puVar6 = PTR_LAB_0043220c + 0x44a8;" (assignment_expression "puVar6 = PTR_LAB_0043220c + 0x44a8" identifier = (binary_expression "PTR_LAB_0043220c + 0x44a8" identifier + number_literal)) ;) (expression_statement "puVar12 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar12 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(puVar6 + 0x84);" (assignment_expression "iVar4 = *(int *)(puVar6 + 0x84)" identifier = (pointer_expression "*(int *)(puVar6 + 0x84)" * (cast_expression "(int *)(puVar6 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x84)" ( (binary_expression "puVar6 + 0x84" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2))" ( (binary_expression "uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" identifier < (call_expression "(uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" ( (binary_expression "*(int *)(puVar6 + 0x88) - iVar4 >> 2" (binary_expression "*(int *)(puVar6 + 0x88) - iVar4" (pointer_expression "*(int *)(puVar6 + 0x88)" * (cast_expression "(int *)(puVar6 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x88)" ( (binary_expression "puVar6 + 0x88" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) (compound_statement "{\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }" { (if_statement "if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" if (parenthesized_expression "((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1))" ( (binary_expression "(puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)" (parenthesized_expression "(puVar10 == (undefined *)0xffffffff)" ( (binary_expression "puVar10 == (undefined *)0xffffffff" identifier == (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(in_a3 == -1)" ( (binary_expression "in_a3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" { (expression_statement "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);" (assignment_expression "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar4 + uVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar9 * 4)" ( (binary_expression "iVar4 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "*puVar3 = 0xffffffff;" (assignment_expression "*puVar3 = 0xffffffff" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (return_statement "return CONCAT44(0xffffffff,puVar3);" return (call_expression "CONCAT44(0xffffffff,puVar3)" identifier (argument_list "(0xffffffff,puVar3)" ( number_literal , identifier ))) ;) })) (if_statement "if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" if (parenthesized_expression "(puVar10 == (undefined *)0x0)" ( (binary_expression "puVar10 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" { (expression_statement "piVar5 = (int *)(iVar4 + uVar9 * 4);" (assignment_expression "piVar5 = (int *)(iVar4 + uVar9 * 4)" identifier = (cast_expression "(int *)(iVar4 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar9 * 4)" ( (binary_expression "iVar4 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "*piVar5 = in_a3;" (assignment_expression "*piVar5 = in_a3" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return CONCAT44(0xffffffff,piVar5);" return (call_expression "CONCAT44(0xffffffff,piVar5)" identifier (argument_list "(0xffffffff,piVar5)" ( number_literal , identifier ))) ;) })) }) (else_clause "else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" else (compound_statement "{\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" { (expression_statement "(**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);" (call_expression "(**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678)" (parenthesized_expression "(**(code **)(puVar12 + 0x37e1d4))" ( (pointer_expression "**(code **)(puVar12 + 0x37e1d4)" * (pointer_expression "*(code **)(puVar12 + 0x37e1d4)" * (cast_expression "(code **)(puVar12 + 0x37e1d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x37e1d4)" ( (binary_expression "puVar12 + 0x37e1d4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678)" ( (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x44a8" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" * (cast_expression "(int *)(puVar12 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x37e01c)" ( (binary_expression "puVar12 + 0x37e01c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x5678" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" * (cast_expression "(int *)(puVar12 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x37e01c)" ( (binary_expression "puVar12 + 0x37e01c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "uVar9 = 0x70;" (assignment_expression "uVar9 = 0x70" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x37e1d4);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x37e1d4)" identifier = (pointer_expression "*(code **)(puVar12 + 0x37e1d4)" * (cast_expression "(code **)(puVar12 + 0x37e1d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x37e1d4)" ( (binary_expression "puVar12 + 0x37e1d4" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;" (assignment_expression "iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668" identifier = (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x5668" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" * (cast_expression "(int *)(puVar12 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x37e01c)" ( (binary_expression "puVar12 + 0x37e01c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;" (assignment_expression "iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc" identifier = (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x44bc" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" * (cast_expression "(int *)(puVar12 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x37e01c)" ( (binary_expression "puVar12 + 0x37e01c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(iVar7 + 0x84);" (assignment_expression "iVar4 = *(int *)(iVar7 + 0x84)" identifier = (pointer_expression "*(int *)(iVar7 + 0x84)" * (cast_expression "(int *)(iVar7 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x84)" ( (binary_expression "iVar7 + 0x84" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2))" ( (binary_expression "uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" identifier < (call_expression "(uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" ( (binary_expression "*(int *)(iVar7 + 0x88) - iVar4 >> 2" (binary_expression "*(int *)(iVar7 + 0x88) - iVar4" (pointer_expression "*(int *)(iVar7 + 0x88)" * (cast_expression "(int *)(iVar7 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x88)" ( (binary_expression "iVar7 + 0x88" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) (compound_statement "{\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }" { (if_statement "if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" if (parenthesized_expression "((iVar11 == -1) && (in_a3 == -1))" ( (binary_expression "(iVar11 == -1) && (in_a3 == -1)" (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) && (parenthesized_expression "(in_a3 == -1)" ( (binary_expression "in_a3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" { (expression_statement "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);" (assignment_expression "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar4 + uVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar9 * 4)" ( (binary_expression "iVar4 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "*puVar3 = 0xffffffff;" (assignment_expression "*puVar3 = 0xffffffff" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (return_statement "return CONCAT44(0xffffffff,puVar3);" return (call_expression "CONCAT44(0xffffffff,puVar3)" identifier (argument_list "(0xffffffff,puVar3)" ( number_literal , identifier ))) ;) })) (if_statement "if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" { (expression_statement "piVar5 = (int *)(iVar4 + uVar9 * 4);" (assignment_expression "piVar5 = (int *)(iVar4 + uVar9 * 4)" identifier = (cast_expression "(int *)(iVar4 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar9 * 4)" ( (binary_expression "iVar4 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "*piVar5 = in_a3;" (assignment_expression "*piVar5 = in_a3" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return CONCAT44(0xffffffff,piVar5);" return (call_expression "CONCAT44(0xffffffff,piVar5)" identifier (argument_list "(0xffffffff,piVar5)" ( number_literal , identifier ))) ;) })) }) (else_clause "else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" else (compound_statement "{\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" { (expression_statement "(**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);" (call_expression "(**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4)" (parenthesized_expression "(**(code **)(pcVar13 + 0x37e124))" ( (pointer_expression "**(code **)(pcVar13 + 0x37e124)" * (pointer_expression "*(code **)(pcVar13 + 0x37e124)" * (cast_expression "(code **)(pcVar13 + 0x37e124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37e124)" ( (binary_expression "pcVar13 + 0x37e124" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4)" ( (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" * (cast_expression "(int *)(pcVar13 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df6c)" ( (binary_expression "pcVar13 + 0x37df6c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x53f4" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" * (cast_expression "(int *)(pcVar13 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df6c)" ( (binary_expression "pcVar13 + 0x37df6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "uVar9 = 0x70;" (assignment_expression "uVar9 = 0x70" identifier = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37e124);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37e124)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37e124)" * (cast_expression "(code **)(pcVar13 + 0x37e124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37e124)" ( (binary_expression "pcVar13 + 0x37e124" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;" (assignment_expression "iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668" identifier = (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x5668" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" * (cast_expression "(int *)(pcVar13 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df6c)" ( (binary_expression "pcVar13 + 0x37df6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc" identifier = (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x44bc" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" * (cast_expression "(int *)(pcVar13 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df6c)" ( (binary_expression "pcVar13 + 0x37df6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);" (assignment_expression "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier = (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) ))))) ;) (if_statement "if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" { (expression_statement "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" identifier = (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar5[1] = in_a3;" (assignment_expression "piVar5[1] = in_a3" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return (ulonglong)CONCAT14(bVar1,piVar5);" return (cast_expression "(ulonglong)CONCAT14(bVar1,piVar5)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,piVar5)" identifier (argument_list "(bVar1,piVar5)" ( identifier , identifier )))) ;) })) (expression_statement "uVar9 = 0x81f;" (assignment_expression "uVar9 = 0x81f" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37e074);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37e074)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x37e074)" * (cast_expression "(code **)(pcVar14 + 0x37e074)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x37e074)" ( (binary_expression "pcVar14 + 0x37e074" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;" (assignment_expression "iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60" identifier = (binary_expression "*(int *)(pcVar14 + 0x37debc) + 0x5d60" (pointer_expression "*(int *)(pcVar14 + 0x37debc)" * (cast_expression "(int *)(pcVar14 + 0x37debc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37debc)" ( (binary_expression "pcVar14 + 0x37debc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar14 + 0x37debc) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37debc)" * (cast_expression "(int *)(pcVar14 + 0x37debc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37debc)" ( (binary_expression "pcVar14 + 0x37debc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);" (assignment_expression "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier = (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) ))))) ;) (if_statement "if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" { (expression_statement "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" identifier = (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar5[1] = in_a3;" (assignment_expression "piVar5[1] = in_a3" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return (ulonglong)CONCAT14(bVar1,piVar5);" return (cast_expression "(ulonglong)CONCAT14(bVar1,piVar5)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,piVar5)" identifier (argument_list "(bVar1,piVar5)" ( identifier , identifier )))) ;) })) (expression_statement "uVar9 = 0x81f;" (assignment_expression "uVar9 = 0x81f" identifier = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37e014);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37e014)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37e014)" * (cast_expression "(code **)(pcVar13 + 0x37e014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37e014)" ( (binary_expression "pcVar13 + 0x37e014" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar13 + 0x37de5c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37de5c)" * (cast_expression "(int *)(pcVar13 + 0x37de5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37de5c)" ( (binary_expression "pcVar13 + 0x37de5c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);" (call_expression "(*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37de5c) + 0x58ec" (pointer_expression "*(int *)(pcVar13 + 0x37de5c)" * (cast_expression "(int *)(pcVar13 + 0x37de5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37de5c)" ( (binary_expression "pcVar13 + 0x37de5c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3))" ( (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" { (return_statement "return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" return (pointer_expression "*(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" * (cast_expression "(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) })) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37dfb4);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37dfb4)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x37dfb4)" * (cast_expression "(code **)(pcVar14 + 0x37dfb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x37dfb4)" ( (binary_expression "pcVar14 + 0x37dfb4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar14 + 0x37ddfc) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37ddfc)" * (cast_expression "(int *)(pcVar14 + 0x37ddfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37ddfc)" ( (binary_expression "pcVar14 + 0x37ddfc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);" (call_expression "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x37ddfc) + 0x5aec" (pointer_expression "*(int *)(pcVar14 + 0x37ddfc)" * (cast_expression "(int *)(pcVar14 + 0x37ddfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37ddfc)" ( (binary_expression "pcVar14 + 0x37ddfc" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3))" ( (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" { (return_statement "return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" return (pointer_expression "*(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" * (cast_expression "(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) })) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37df54);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37df54)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37df54)" * (cast_expression "(code **)(pcVar13 + 0x37df54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37df54)" ( (binary_expression "pcVar13 + 0x37df54" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar13 + 0x37dd9c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37dd9c)" * (cast_expression "(int *)(pcVar13 + 0x37dd9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dd9c)" ( (binary_expression "pcVar13 + 0x37dd9c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);" (call_expression "(*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37dd9c) + 0x57b8" (pointer_expression "*(int *)(pcVar13 + 0x37dd9c)" * (cast_expression "(int *)(pcVar13 + 0x37dd9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dd9c)" ( (binary_expression "pcVar13 + 0x37dd9c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2))" ( (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }" { (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 4)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 4" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n      iVar4 = -1;\n    }" { (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar2 = 0;\n    }" else (compound_statement "{\n      uVar2 = 0;\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (return_statement "return CONCAT44(uVar2,iVar4);" return (call_expression "CONCAT44(uVar2,iVar4)" identifier (argument_list "(uVar2,iVar4)" ( identifier , identifier ))) ;) })) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37def4);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37def4)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x37def4)" * (cast_expression "(code **)(pcVar14 + 0x37def4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x37def4)" ( (binary_expression "pcVar14 + 0x37def4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar14 + 0x37dd3c) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37dd3c)" * (cast_expression "(int *)(pcVar14 + 0x37dd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37dd3c)" ( (binary_expression "pcVar14 + 0x37dd3c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);" (call_expression "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x37dd3c) + 0x5534" (pointer_expression "*(int *)(pcVar14 + 0x37dd3c)" * (cast_expression "(int *)(pcVar14 + 0x37dd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37dd3c)" ( (binary_expression "pcVar14 + 0x37dd3c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }" if (parenthesized_expression "((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9)" ( (binary_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9" (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }" { (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37de88);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37de88)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37de88)" * (cast_expression "(code **)(pcVar13 + 0x37de88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37de88)" ( (binary_expression "pcVar13 + 0x37de88" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);" (assignment_expression "piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" identifier = (cast_expression "(int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" ( (binary_expression "*(int *)(pcVar13 + 0x37dcd0) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37dcd0)" * (cast_expression "(int *)(pcVar13 + 0x37dcd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dcd0)" ( (binary_expression "pcVar13 + 0x37dcd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);" (call_expression "(*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37dcd0) + 0x52c0" (pointer_expression "*(int *)(pcVar13 + 0x37dcd0)" * (cast_expression "(int *)(pcVar13 + 0x37dcd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dcd0)" ( (binary_expression "pcVar13 + 0x37dcd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37df34);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37df34)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x37df34)" * (cast_expression "(int *)(pcVar14 + 0x37df34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37df34)" ( (binary_expression "pcVar14 + 0x37df34" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)piVar8[1];" (assignment_expression "piVar5 = (int *)piVar8[1]" identifier = (cast_expression "(int *)piVar8[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "*piVar8 = iVar4 + 8;" (assignment_expression "*piVar8 = iVar4 + 8" (pointer_expression "*piVar8" * identifier) = (binary_expression "iVar4 + 8" identifier + number_literal)) ;) (if_statement "if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }" if (parenthesized_expression "(piVar5 == piVar8 + 3)" ( (binary_expression "piVar5 == piVar8 + 3" identifier == (binary_expression "piVar8 + 3" identifier + number_literal)) )) (compound_statement "{\n      return CONCAT44(iVar4 + 8,piVar5);\n    }" { (return_statement "return CONCAT44(iVar4 + 8,piVar5);" return (call_expression "CONCAT44(iVar4 + 8,piVar5)" identifier (argument_list "(iVar4 + 8,piVar5)" ( (binary_expression "iVar4 + 8" identifier + number_literal) , identifier ))) ;) })) comment comment (expression_statement "uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);" (assignment_expression "uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5)" identifier = (call_expression "(**(code **)(pcVar14 + 0x37dce4))(piVar5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x37dce4))" ( (pointer_expression "**(code **)(pcVar14 + 0x37dce4)" * (pointer_expression "*(code **)(pcVar14 + 0x37dce4)" * (cast_expression "(code **)(pcVar14 + 0x37dce4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x37dce4)" ( (binary_expression "pcVar14 + 0x37dce4" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) (return_statement "return uVar15;" return identifier ;) })) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 4)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 4" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    iVar4 = -1;\n  }" { (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) }) (else_clause "else {\n    uVar2 = 0;\n  }" else (compound_statement "{\n    uVar2 = 0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (return_statement "return CONCAT44(uVar2,iVar4);" return (call_expression "CONCAT44(uVar2,iVar4)" identifier (argument_list "(uVar2,iVar4)" ( identifier , identifier ))) ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: Output_section * do_output_section(Relobj * this, uint shndx) */\n\nOutput_section * __thiscall gold::Relobj::do_output_section(Relobj *this,uint shndx)\n\n{\n  Output_section *pOVar1;\n  pointer ppOVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined *puVar9;\n  int iVar10;\n  int in_a3;\n  undefined *puVar11;\n  code *pcVar12;\n  code *pcVar13;\n  \n  ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (shndx < (uint)((int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2)) {\n    return ppOVar2[shndx];\n  }\n  uVar8 = 0x5c8;\n  puVar9 = PTR_LAB_0043220c + 0x5a90;\n  puVar5 = PTR_LAB_0043220c + 0x44a8;\n  puVar11 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar3 = *(int *)(puVar5 + 0x84);\n  if (uVar8 < (uint)(*(int *)(puVar5 + 0x88) - iVar3 >> 2)) {\n    if ((puVar9 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (puVar9 == (undefined *)0x0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }\n  else {\n    (**(code **)(puVar11 + 0x37e1d4))\n              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678);\n  }\n  uVar8 = 0x70;\n  pcVar12 = *(code **)(puVar11 + 0x37e1d4);\n  iVar10 = *(int *)(puVar11 + 0x37e01c) + 0x5668;\n  iVar6 = *(int *)(puVar11 + 0x37e01c) + 0x44bc;\n  (*pcVar12)();\n  iVar3 = *(int *)(iVar6 + 0x84);\n  if (uVar8 < (uint)(*(int *)(iVar6 + 0x88) - iVar3 >> 2)) {\n    if ((iVar10 == -1) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (iVar10 == 0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }\n  else {\n    (**(code **)(pcVar12 + 0x37e124))\n              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4);\n  }\n  uVar8 = 0x70;\n  pcVar13 = *(code **)(pcVar12 + 0x37e124);\n  iVar6 = *(int *)(pcVar12 + 0x37df6c) + 0x5668;\n  iVar3 = *(int *)(pcVar12 + 0x37df6c) + 0x44bc;\n  (*pcVar13)();\n  pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));\n  if (pOVar1 != (Output_section *)0x0) {\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }\n  uVar8 = 0x81f;\n  pcVar12 = *(code **)(pcVar13 + 0x37e074);\n  iVar6 = *(int *)(pcVar13 + 0x37debc) + 0x5d60;\n  iVar3 = *(int *)(pcVar13 + 0x37debc) + 0x44a8;\n  (*pcVar12)();\n  pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));\n  if (pOVar1 != (Output_section *)0x0) {\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }\n  uVar8 = 0x81f;\n  pcVar13 = *(code **)(pcVar12 + 0x37e014);\n  iVar3 = *(int *)(pcVar12 + 0x37de5c) + 0x44a8;\n  (*pcVar13)(iVar3,0x81f,*(int *)(pcVar12 + 0x37de5c) + 0x58ec);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }\n  uVar8 = 0x7f7;\n  pcVar12 = *(code **)(pcVar13 + 0x37dfb4);\n  iVar3 = *(int *)(pcVar13 + 0x37ddfc) + 0x44a8;\n  (*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37ddfc) + 0x5aec);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }\n  uVar8 = 0x7f7;\n  pcVar13 = *(code **)(pcVar12 + 0x37df54);\n  iVar3 = *(int *)(pcVar12 + 0x37dd9c) + 0x44a8;\n  (*pcVar13)(iVar3,0x7f7,*(int *)(pcVar12 + 0x37dd9c) + 0x57b8);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }\n  uVar8 = 0x7f7;\n  pcVar12 = *(code **)(pcVar13 + 0x37def4);\n  iVar3 = *(int *)(pcVar13 + 0x37dd3c) + 0x44a8;\n  (*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37dd3c) + 0x5534);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }\n  pcVar13 = *(code **)(pcVar12 + 0x37de88);\n  puVar7 = (undefined4 *)(*(int *)(pcVar12 + 0x37dcd0) + 0x44a8);\n  (*pcVar13)(puVar7,0x7f7,*(int *)(pcVar12 + 0x37dcd0) + 0x52c0);\n  iVar3 = *(int *)(pcVar13 + 0x37df34);\n  *puVar7 = (Output_section *)(iVar3 + 8);\n  if ((undefined4 *)puVar7[1] != puVar7 + 3) {\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pOVar1 = (Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1]);\n    return pOVar1;\n  }\n  return (Output_section *)(iVar3 + 8);\n}\n\n" comment comment comment (ERROR "Output_section * __thiscall gold::Relobj::do_output_section(Relobj *this," (binary_expression "Output_section * __thiscall gold::Relobj::do_output_section(Relobj *this" (binary_expression "Output_section * __thiscall" identifier * identifier) (ERROR "gold::Relobj::do_output_section(Relobj" identifier : : identifier : : identifier ( identifier) * identifier) ,) (function_definition "uint shndx)\n\n{\n  Output_section *pOVar1;\n  pointer ppOVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined *puVar9;\n  int iVar10;\n  int in_a3;\n  undefined *puVar11;\n  code *pcVar12;\n  code *pcVar13;\n  \n  ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (shndx < (uint)((int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2)) {\n    return ppOVar2[shndx];\n  }\n  uVar8 = 0x5c8;\n  puVar9 = PTR_LAB_0043220c + 0x5a90;\n  puVar5 = PTR_LAB_0043220c + 0x44a8;\n  puVar11 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar3 = *(int *)(puVar5 + 0x84);\n  if (uVar8 < (uint)(*(int *)(puVar5 + 0x88) - iVar3 >> 2)) {\n    if ((puVar9 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (puVar9 == (undefined *)0x0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }\n  else {\n    (**(code **)(puVar11 + 0x37e1d4))\n              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678);\n  }\n  uVar8 = 0x70;\n  pcVar12 = *(code **)(puVar11 + 0x37e1d4);\n  iVar10 = *(int *)(puVar11 + 0x37e01c) + 0x5668;\n  iVar6 = *(int *)(puVar11 + 0x37e01c) + 0x44bc;\n  (*pcVar12)();\n  iVar3 = *(int *)(iVar6 + 0x84);\n  if (uVar8 < (uint)(*(int *)(iVar6 + 0x88) - iVar3 >> 2)) {\n    if ((iVar10 == -1) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (iVar10 == 0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }\n  else {\n    (**(code **)(pcVar12 + 0x37e124))\n              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4);\n  }\n  uVar8 = 0x70;\n  pcVar13 = *(code **)(pcVar12 + 0x37e124);\n  iVar6 = *(int *)(pcVar12 + 0x37df6c) + 0x5668;\n  iVar3 = *(int *)(pcVar12 + 0x37df6c) + 0x44bc;\n  (*pcVar13)();\n  pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));\n  if (pOVar1 != (Output_section *)0x0) {\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }\n  uVar8 = 0x81f;\n  pcVar12 = *(code **)(pcVar13 + 0x37e074);\n  iVar6 = *(int *)(pcVar13 + 0x37debc) + 0x5d60;\n  iVar3 = *(int *)(pcVar13 + 0x37debc) + 0x44a8;\n  (*pcVar12)();\n  pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));\n  if (pOVar1 != (Output_section *)0x0) {\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }\n  uVar8 = 0x81f;\n  pcVar13 = *(code **)(pcVar12 + 0x37e014);\n  iVar3 = *(int *)(pcVar12 + 0x37de5c) + 0x44a8;\n  (*pcVar13)(iVar3,0x81f,*(int *)(pcVar12 + 0x37de5c) + 0x58ec);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }\n  uVar8 = 0x7f7;\n  pcVar12 = *(code **)(pcVar13 + 0x37dfb4);\n  iVar3 = *(int *)(pcVar13 + 0x37ddfc) + 0x44a8;\n  (*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37ddfc) + 0x5aec);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }\n  uVar8 = 0x7f7;\n  pcVar13 = *(code **)(pcVar12 + 0x37df54);\n  iVar3 = *(int *)(pcVar12 + 0x37dd9c) + 0x44a8;\n  (*pcVar13)(iVar3,0x7f7,*(int *)(pcVar12 + 0x37dd9c) + 0x57b8);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }\n  uVar8 = 0x7f7;\n  pcVar12 = *(code **)(pcVar13 + 0x37def4);\n  iVar3 = *(int *)(pcVar13 + 0x37dd3c) + 0x44a8;\n  (*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37dd3c) + 0x5534);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }\n  pcVar13 = *(code **)(pcVar12 + 0x37de88);\n  puVar7 = (undefined4 *)(*(int *)(pcVar12 + 0x37dcd0) + 0x44a8);\n  (*pcVar13)(puVar7,0x7f7,*(int *)(pcVar12 + 0x37dcd0) + 0x52c0);\n  iVar3 = *(int *)(pcVar13 + 0x37df34);\n  *puVar7 = (Output_section *)(iVar3 + 8);\n  if ((undefined4 *)puVar7[1] != puVar7 + 3) {\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pOVar1 = (Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1]);\n    return pOVar1;\n  }\n  return (Output_section *)(iVar3 + 8);\n}" type_identifier identifier (ERROR ")" )) (compound_statement "{\n  Output_section *pOVar1;\n  pointer ppOVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined *puVar9;\n  int iVar10;\n  int in_a3;\n  undefined *puVar11;\n  code *pcVar12;\n  code *pcVar13;\n  \n  ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (shndx < (uint)((int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2)) {\n    return ppOVar2[shndx];\n  }\n  uVar8 = 0x5c8;\n  puVar9 = PTR_LAB_0043220c + 0x5a90;\n  puVar5 = PTR_LAB_0043220c + 0x44a8;\n  puVar11 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar3 = *(int *)(puVar5 + 0x84);\n  if (uVar8 < (uint)(*(int *)(puVar5 + 0x88) - iVar3 >> 2)) {\n    if ((puVar9 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (puVar9 == (undefined *)0x0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }\n  else {\n    (**(code **)(puVar11 + 0x37e1d4))\n              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678);\n  }\n  uVar8 = 0x70;\n  pcVar12 = *(code **)(puVar11 + 0x37e1d4);\n  iVar10 = *(int *)(puVar11 + 0x37e01c) + 0x5668;\n  iVar6 = *(int *)(puVar11 + 0x37e01c) + 0x44bc;\n  (*pcVar12)();\n  iVar3 = *(int *)(iVar6 + 0x84);\n  if (uVar8 < (uint)(*(int *)(iVar6 + 0x88) - iVar3 >> 2)) {\n    if ((iVar10 == -1) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (iVar10 == 0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }\n  else {\n    (**(code **)(pcVar12 + 0x37e124))\n              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4);\n  }\n  uVar8 = 0x70;\n  pcVar13 = *(code **)(pcVar12 + 0x37e124);\n  iVar6 = *(int *)(pcVar12 + 0x37df6c) + 0x5668;\n  iVar3 = *(int *)(pcVar12 + 0x37df6c) + 0x44bc;\n  (*pcVar13)();\n  pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));\n  if (pOVar1 != (Output_section *)0x0) {\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }\n  uVar8 = 0x81f;\n  pcVar12 = *(code **)(pcVar13 + 0x37e074);\n  iVar6 = *(int *)(pcVar13 + 0x37debc) + 0x5d60;\n  iVar3 = *(int *)(pcVar13 + 0x37debc) + 0x44a8;\n  (*pcVar12)();\n  pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));\n  if (pOVar1 != (Output_section *)0x0) {\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }\n  uVar8 = 0x81f;\n  pcVar13 = *(code **)(pcVar12 + 0x37e014);\n  iVar3 = *(int *)(pcVar12 + 0x37de5c) + 0x44a8;\n  (*pcVar13)(iVar3,0x81f,*(int *)(pcVar12 + 0x37de5c) + 0x58ec);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }\n  uVar8 = 0x7f7;\n  pcVar12 = *(code **)(pcVar13 + 0x37dfb4);\n  iVar3 = *(int *)(pcVar13 + 0x37ddfc) + 0x44a8;\n  (*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37ddfc) + 0x5aec);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }\n  uVar8 = 0x7f7;\n  pcVar13 = *(code **)(pcVar12 + 0x37df54);\n  iVar3 = *(int *)(pcVar12 + 0x37dd9c) + 0x44a8;\n  (*pcVar13)(iVar3,0x7f7,*(int *)(pcVar12 + 0x37dd9c) + 0x57b8);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }\n  uVar8 = 0x7f7;\n  pcVar12 = *(code **)(pcVar13 + 0x37def4);\n  iVar3 = *(int *)(pcVar13 + 0x37dd3c) + 0x44a8;\n  (*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37dd3c) + 0x5534);\n  if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }\n  pcVar13 = *(code **)(pcVar12 + 0x37de88);\n  puVar7 = (undefined4 *)(*(int *)(pcVar12 + 0x37dcd0) + 0x44a8);\n  (*pcVar13)(puVar7,0x7f7,*(int *)(pcVar12 + 0x37dcd0) + 0x52c0);\n  iVar3 = *(int *)(pcVar13 + 0x37df34);\n  *puVar7 = (Output_section *)(iVar3 + 8);\n  if ((undefined4 *)puVar7[1] != puVar7 + 3) {\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pOVar1 = (Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1]);\n    return pOVar1;\n  }\n  return (Output_section *)(iVar3 + 8);\n}" { (declaration "Output_section *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;) (declaration "pointer ppOVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_a3;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (expression_statement "ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;" (field_expression "ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start" (field_expression "ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl" (binary_expression "ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar2 = (this->output_sections_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->output_sections_).\n            super__Vector_base<gold" (field_expression "(this->output_sections_).\n            super__Vector_base" (parenthesized_expression "(this->output_sections_)" ( (field_expression "this->output_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (shndx < (uint)((int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2)) {\n    return ppOVar2[shndx];\n  }" if (parenthesized_expression "(shndx < (uint)((int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2))" ( (binary_expression "shndx < (uint)((int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2)" identifier < (call_expression "(uint)((int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2)" ( (binary_expression "(int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2 >> 2" (binary_expression "(int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish - (int)ppOVar2" (field_expression "(int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_finish" (field_expression "(int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl" (binary_expression "(int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(this->output_sections_).\n                          super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(this->output_sections_).\n                          super__Vector_base<gold" (cast_expression "(int)(this->output_sections_).\n                          super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->output_sections_).\n                          super__Vector_base" (parenthesized_expression "(this->output_sections_)" ( (field_expression "this->output_sections_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar2" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n    return ppOVar2[shndx];\n  }" { (return_statement "return ppOVar2[shndx];" return (subscript_expression "ppOVar2[shndx]" identifier [ identifier ]) ;) })) (expression_statement "uVar8 = 0x5c8;" (assignment_expression "uVar8 = 0x5c8" identifier = number_literal) ;) (expression_statement "puVar9 = PTR_LAB_0043220c + 0x5a90;" (assignment_expression "puVar9 = PTR_LAB_0043220c + 0x5a90" identifier = (binary_expression "PTR_LAB_0043220c + 0x5a90" identifier + number_literal)) ;) (expression_statement "puVar5 = PTR_LAB_0043220c + 0x44a8;" (assignment_expression "puVar5 = PTR_LAB_0043220c + 0x44a8" identifier = (binary_expression "PTR_LAB_0043220c + 0x44a8" identifier + number_literal)) ;) (expression_statement "puVar11 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar11 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *(int *)(puVar5 + 0x84);" (assignment_expression "iVar3 = *(int *)(puVar5 + 0x84)" identifier = (pointer_expression "*(int *)(puVar5 + 0x84)" * (cast_expression "(int *)(puVar5 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x84)" ( (binary_expression "puVar5 + 0x84" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 < (uint)(*(int *)(puVar5 + 0x88) - iVar3 >> 2)) {\n    if ((puVar9 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (puVar9 == (undefined *)0x0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }\n  else {\n    (**(code **)(puVar11 + 0x37e1d4))\n              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678);\n  }" if (parenthesized_expression "(uVar8 < (uint)(*(int *)(puVar5 + 0x88) - iVar3 >> 2))" ( (binary_expression "uVar8 < (uint)(*(int *)(puVar5 + 0x88) - iVar3 >> 2)" identifier < (call_expression "(uint)(*(int *)(puVar5 + 0x88) - iVar3 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar5 + 0x88) - iVar3 >> 2)" ( (binary_expression "*(int *)(puVar5 + 0x88) - iVar3 >> 2" (binary_expression "*(int *)(puVar5 + 0x88) - iVar3" (pointer_expression "*(int *)(puVar5 + 0x88)" * (cast_expression "(int *)(puVar5 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x88)" ( (binary_expression "puVar5 + 0x88" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) (compound_statement "{\n    if ((puVar9 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (puVar9 == (undefined *)0x0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }" { (if_statement "if ((puVar9 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }" if (parenthesized_expression "((puVar9 == (undefined *)0xffffffff) && (in_a3 == -1))" ( (binary_expression "(puVar9 == (undefined *)0xffffffff) && (in_a3 == -1)" (parenthesized_expression "(puVar9 == (undefined *)0xffffffff)" ( (binary_expression "puVar9 == (undefined *)0xffffffff" identifier == (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(in_a3 == -1)" ( (binary_expression "in_a3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }" { (expression_statement "*(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + uVar8 * 4)" * (cast_expression "(undefined4 *)(iVar3 + uVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar8 * 4)" ( (binary_expression "iVar3 + uVar8 * 4" identifier + (binary_expression "uVar8 * 4" identifier * number_literal)) )))) = number_literal) ;) (return_statement "return (Output_section *)0xffffffff;" return (cast_expression "(Output_section *)0xffffffff" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (puVar9 == (undefined *)0x0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }" if (parenthesized_expression "(puVar9 == (undefined *)0x0)" ( (binary_expression "puVar9 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }" { (expression_statement "*(int *)(iVar3 + uVar8 * 4) = in_a3;" (assignment_expression "*(int *)(iVar3 + uVar8 * 4) = in_a3" (pointer_expression "*(int *)(iVar3 + uVar8 * 4)" * (cast_expression "(int *)(iVar3 + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar8 * 4)" ( (binary_expression "iVar3 + uVar8 * 4" identifier + (binary_expression "uVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (return_statement "return (Output_section *)0xffffffff;" return (cast_expression "(Output_section *)0xffffffff" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) (else_clause "else {\n    (**(code **)(puVar11 + 0x37e1d4))\n              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678);\n  }" else (compound_statement "{\n    (**(code **)(puVar11 + 0x37e1d4))\n              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678);\n  }" { (expression_statement "(**(code **)(puVar11 + 0x37e1d4))\n              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678);" (call_expression "(**(code **)(puVar11 + 0x37e1d4))\n              (*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678)" (parenthesized_expression "(**(code **)(puVar11 + 0x37e1d4))" ( (pointer_expression "**(code **)(puVar11 + 0x37e1d4)" * (pointer_expression "*(code **)(puVar11 + 0x37e1d4)" * (cast_expression "(code **)(puVar11 + 0x37e1d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x37e1d4)" ( (binary_expression "puVar11 + 0x37e1d4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar11 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar11 + 0x37e01c) + 0x5678)" ( (binary_expression "*(int *)(puVar11 + 0x37e01c) + 0x44a8" (pointer_expression "*(int *)(puVar11 + 0x37e01c)" * (cast_expression "(int *)(puVar11 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x37e01c)" ( (binary_expression "puVar11 + 0x37e01c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar11 + 0x37e01c) + 0x5678" (pointer_expression "*(int *)(puVar11 + 0x37e01c)" * (cast_expression "(int *)(puVar11 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x37e01c)" ( (binary_expression "puVar11 + 0x37e01c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "uVar8 = 0x70;" (assignment_expression "uVar8 = 0x70" identifier = number_literal) ;) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x37e1d4);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x37e1d4)" identifier = (pointer_expression "*(code **)(puVar11 + 0x37e1d4)" * (cast_expression "(code **)(puVar11 + 0x37e1d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x37e1d4)" ( (binary_expression "puVar11 + 0x37e1d4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar11 + 0x37e01c) + 0x5668;" (assignment_expression "iVar10 = *(int *)(puVar11 + 0x37e01c) + 0x5668" identifier = (binary_expression "*(int *)(puVar11 + 0x37e01c) + 0x5668" (pointer_expression "*(int *)(puVar11 + 0x37e01c)" * (cast_expression "(int *)(puVar11 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x37e01c)" ( (binary_expression "puVar11 + 0x37e01c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar6 = *(int *)(puVar11 + 0x37e01c) + 0x44bc;" (assignment_expression "iVar6 = *(int *)(puVar11 + 0x37e01c) + 0x44bc" identifier = (binary_expression "*(int *)(puVar11 + 0x37e01c) + 0x44bc" (pointer_expression "*(int *)(puVar11 + 0x37e01c)" * (cast_expression "(int *)(puVar11 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x37e01c)" ( (binary_expression "puVar11 + 0x37e01c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *(int *)(iVar6 + 0x84);" (assignment_expression "iVar3 = *(int *)(iVar6 + 0x84)" identifier = (pointer_expression "*(int *)(iVar6 + 0x84)" * (cast_expression "(int *)(iVar6 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x84)" ( (binary_expression "iVar6 + 0x84" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 < (uint)(*(int *)(iVar6 + 0x88) - iVar3 >> 2)) {\n    if ((iVar10 == -1) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (iVar10 == 0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }\n  else {\n    (**(code **)(pcVar12 + 0x37e124))\n              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4);\n  }" if (parenthesized_expression "(uVar8 < (uint)(*(int *)(iVar6 + 0x88) - iVar3 >> 2))" ( (binary_expression "uVar8 < (uint)(*(int *)(iVar6 + 0x88) - iVar3 >> 2)" identifier < (call_expression "(uint)(*(int *)(iVar6 + 0x88) - iVar3 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar6 + 0x88) - iVar3 >> 2)" ( (binary_expression "*(int *)(iVar6 + 0x88) - iVar3 >> 2" (binary_expression "*(int *)(iVar6 + 0x88) - iVar3" (pointer_expression "*(int *)(iVar6 + 0x88)" * (cast_expression "(int *)(iVar6 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x88)" ( (binary_expression "iVar6 + 0x88" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) (compound_statement "{\n    if ((iVar10 == -1) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }\n    if (iVar10 == 0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }\n  }" { (if_statement "if ((iVar10 == -1) && (in_a3 == -1)) {\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }" if (parenthesized_expression "((iVar10 == -1) && (in_a3 == -1))" ( (binary_expression "(iVar10 == -1) && (in_a3 == -1)" (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) && (parenthesized_expression "(in_a3 == -1)" ( (binary_expression "in_a3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      *(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;\n      return (Output_section *)0xffffffff;\n    }" { (expression_statement "*(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + uVar8 * 4) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + uVar8 * 4)" * (cast_expression "(undefined4 *)(iVar3 + uVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar8 * 4)" ( (binary_expression "iVar3 + uVar8 * 4" identifier + (binary_expression "uVar8 * 4" identifier * number_literal)) )))) = number_literal) ;) (return_statement "return (Output_section *)0xffffffff;" return (cast_expression "(Output_section *)0xffffffff" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (iVar10 == 0) {\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      *(int *)(iVar3 + uVar8 * 4) = in_a3;\n      return (Output_section *)0xffffffff;\n    }" { (expression_statement "*(int *)(iVar3 + uVar8 * 4) = in_a3;" (assignment_expression "*(int *)(iVar3 + uVar8 * 4) = in_a3" (pointer_expression "*(int *)(iVar3 + uVar8 * 4)" * (cast_expression "(int *)(iVar3 + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar8 * 4)" ( (binary_expression "iVar3 + uVar8 * 4" identifier + (binary_expression "uVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (return_statement "return (Output_section *)0xffffffff;" return (cast_expression "(Output_section *)0xffffffff" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) (else_clause "else {\n    (**(code **)(pcVar12 + 0x37e124))\n              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4);\n  }" else (compound_statement "{\n    (**(code **)(pcVar12 + 0x37e124))\n              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4);\n  }" { (expression_statement "(**(code **)(pcVar12 + 0x37e124))\n              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4);" (call_expression "(**(code **)(pcVar12 + 0x37e124))\n              (*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4)" (parenthesized_expression "(**(code **)(pcVar12 + 0x37e124))" ( (pointer_expression "**(code **)(pcVar12 + 0x37e124)" * (pointer_expression "*(code **)(pcVar12 + 0x37e124)" * (cast_expression "(code **)(pcVar12 + 0x37e124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x37e124)" ( (binary_expression "pcVar12 + 0x37e124" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar12 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar12 + 0x37df6c) + 0x53f4)" ( (binary_expression "*(int *)(pcVar12 + 0x37df6c) + 0x44a8" (pointer_expression "*(int *)(pcVar12 + 0x37df6c)" * (cast_expression "(int *)(pcVar12 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37df6c)" ( (binary_expression "pcVar12 + 0x37df6c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar12 + 0x37df6c) + 0x53f4" (pointer_expression "*(int *)(pcVar12 + 0x37df6c)" * (cast_expression "(int *)(pcVar12 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37df6c)" ( (binary_expression "pcVar12 + 0x37df6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "uVar8 = 0x70;" (assignment_expression "uVar8 = 0x70" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar12 + 0x37e124);" (assignment_expression "pcVar13 = *(code **)(pcVar12 + 0x37e124)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x37e124)" * (cast_expression "(code **)(pcVar12 + 0x37e124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x37e124)" ( (binary_expression "pcVar12 + 0x37e124" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar12 + 0x37df6c) + 0x5668;" (assignment_expression "iVar6 = *(int *)(pcVar12 + 0x37df6c) + 0x5668" identifier = (binary_expression "*(int *)(pcVar12 + 0x37df6c) + 0x5668" (pointer_expression "*(int *)(pcVar12 + 0x37df6c)" * (cast_expression "(int *)(pcVar12 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37df6c)" ( (binary_expression "pcVar12 + 0x37df6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar3 = *(int *)(pcVar12 + 0x37df6c) + 0x44bc;" (assignment_expression "iVar3 = *(int *)(pcVar12 + 0x37df6c) + 0x44bc" identifier = (binary_expression "*(int *)(pcVar12 + 0x37df6c) + 0x44bc" (pointer_expression "*(int *)(pcVar12 + 0x37df6c)" * (cast_expression "(int *)(pcVar12 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37df6c)" ( (binary_expression "pcVar12 + 0x37df6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));" (assignment_expression "pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" identifier = (cast_expression "(Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" ( (binary_expression "uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3" (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84)" (pointer_expression "*(int *)(iVar3 + 0x88)" * (cast_expression "(int *)(iVar3 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x88)" ( (binary_expression "iVar3 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) ))))) ;) (if_statement "if (pOVar1 != (Output_section *)0x0) {\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }" if (parenthesized_expression "(pOVar1 != (Output_section *)0x0)" ( (binary_expression "pOVar1 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }" { (expression_statement "piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);" (assignment_expression "piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8)" identifier = (cast_expression "(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x84) + uVar8 * 8)" ( (binary_expression "*(int *)(iVar3 + 0x84) + uVar8 * 8" (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar8 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar4[1] = in_a3;" (assignment_expression "piVar4[1] = in_a3" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar4 = iVar6;" (assignment_expression "*piVar4 = iVar6" (pointer_expression "*piVar4" * identifier) = identifier) ;) (return_statement "return pOVar1;" return identifier ;) })) (expression_statement "uVar8 = 0x81f;" (assignment_expression "uVar8 = 0x81f" identifier = number_literal) ;) (expression_statement "pcVar12 = *(code **)(pcVar13 + 0x37e074);" (assignment_expression "pcVar12 = *(code **)(pcVar13 + 0x37e074)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37e074)" * (cast_expression "(code **)(pcVar13 + 0x37e074)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37e074)" ( (binary_expression "pcVar13 + 0x37e074" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar13 + 0x37debc) + 0x5d60;" (assignment_expression "iVar6 = *(int *)(pcVar13 + 0x37debc) + 0x5d60" identifier = (binary_expression "*(int *)(pcVar13 + 0x37debc) + 0x5d60" (pointer_expression "*(int *)(pcVar13 + 0x37debc)" * (cast_expression "(int *)(pcVar13 + 0x37debc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37debc)" ( (binary_expression "pcVar13 + 0x37debc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar3 = *(int *)(pcVar13 + 0x37debc) + 0x44a8;" (assignment_expression "iVar3 = *(int *)(pcVar13 + 0x37debc) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar13 + 0x37debc) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37debc)" * (cast_expression "(int *)(pcVar13 + 0x37debc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37debc)" ( (binary_expression "pcVar13 + 0x37debc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3));" (assignment_expression "pOVar1 = (Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" identifier = (cast_expression "(Output_section *)\n           (uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" ( (binary_expression "uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3" (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84)" (pointer_expression "*(int *)(iVar3 + 0x88)" * (cast_expression "(int *)(iVar3 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x88)" ( (binary_expression "iVar3 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) ))))) ;) (if_statement "if (pOVar1 != (Output_section *)0x0) {\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }" if (parenthesized_expression "(pOVar1 != (Output_section *)0x0)" ( (binary_expression "pOVar1 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n    piVar4[1] = in_a3;\n    *piVar4 = iVar6;\n    return pOVar1;\n  }" { (expression_statement "piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8);" (assignment_expression "piVar4 = (int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8)" identifier = (cast_expression "(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x84) + uVar8 * 8)" ( (binary_expression "*(int *)(iVar3 + 0x84) + uVar8 * 8" (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar8 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar4[1] = in_a3;" (assignment_expression "piVar4[1] = in_a3" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar4 = iVar6;" (assignment_expression "*piVar4 = iVar6" (pointer_expression "*piVar4" * identifier) = identifier) ;) (return_statement "return pOVar1;" return identifier ;) })) (expression_statement "uVar8 = 0x81f;" (assignment_expression "uVar8 = 0x81f" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar12 + 0x37e014);" (assignment_expression "pcVar13 = *(code **)(pcVar12 + 0x37e014)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x37e014)" * (cast_expression "(code **)(pcVar12 + 0x37e014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x37e014)" ( (binary_expression "pcVar12 + 0x37e014" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar12 + 0x37de5c) + 0x44a8;" (assignment_expression "iVar3 = *(int *)(pcVar12 + 0x37de5c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar12 + 0x37de5c) + 0x44a8" (pointer_expression "*(int *)(pcVar12 + 0x37de5c)" * (cast_expression "(int *)(pcVar12 + 0x37de5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37de5c)" ( (binary_expression "pcVar12 + 0x37de5c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar3,0x81f,*(int *)(pcVar12 + 0x37de5c) + 0x58ec);" (call_expression "(*pcVar13)(iVar3,0x81f,*(int *)(pcVar12 + 0x37de5c) + 0x58ec)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar3,0x81f,*(int *)(pcVar12 + 0x37de5c) + 0x58ec)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar12 + 0x37de5c) + 0x58ec" (pointer_expression "*(int *)(pcVar12 + 0x37de5c)" * (cast_expression "(int *)(pcVar12 + 0x37de5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37de5c)" ( (binary_expression "pcVar12 + 0x37de5c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }" if (parenthesized_expression "(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" ( (binary_expression "uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3" (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84)" (pointer_expression "*(int *)(iVar3 + 0x88)" * (cast_expression "(int *)(iVar3 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x88)" ( (binary_expression "iVar3 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }" { (return_statement "return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);" return (pointer_expression "*(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8)" * (cast_expression "(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar3 + 0x84) + uVar8 * 8)" ( (binary_expression "*(int *)(iVar3 + 0x84) + uVar8 * 8" (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar8 * 8" identifier * number_literal)) )))) ;) })) (expression_statement "uVar8 = 0x7f7;" (assignment_expression "uVar8 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar12 = *(code **)(pcVar13 + 0x37dfb4);" (assignment_expression "pcVar12 = *(code **)(pcVar13 + 0x37dfb4)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37dfb4)" * (cast_expression "(code **)(pcVar13 + 0x37dfb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37dfb4)" ( (binary_expression "pcVar13 + 0x37dfb4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar13 + 0x37ddfc) + 0x44a8;" (assignment_expression "iVar3 = *(int *)(pcVar13 + 0x37ddfc) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar13 + 0x37ddfc) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37ddfc)" * (cast_expression "(int *)(pcVar13 + 0x37ddfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37ddfc)" ( (binary_expression "pcVar13 + 0x37ddfc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37ddfc) + 0x5aec);" (call_expression "(*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37ddfc) + 0x5aec)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar3,0x7f7,*(int *)(pcVar13 + 0x37ddfc) + 0x5aec)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37ddfc) + 0x5aec" (pointer_expression "*(int *)(pcVar13 + 0x37ddfc)" * (cast_expression "(int *)(pcVar13 + 0x37ddfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37ddfc)" ( (binary_expression "pcVar13 + 0x37ddfc" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)) {\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }" if (parenthesized_expression "(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3))" ( (binary_expression "uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 3" (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84)" (pointer_expression "*(int *)(iVar3 + 0x88)" * (cast_expression "(int *)(iVar3 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x88)" ( (binary_expression "iVar3 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);\n  }" { (return_statement "return *(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8);" return (pointer_expression "*(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8)" * (cast_expression "(Output_section **)(*(int *)(iVar3 + 0x84) + uVar8 * 8)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar3 + 0x84) + uVar8 * 8)" ( (binary_expression "*(int *)(iVar3 + 0x84) + uVar8 * 8" (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar8 * 8" identifier * number_literal)) )))) ;) })) (expression_statement "uVar8 = 0x7f7;" (assignment_expression "uVar8 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar12 + 0x37df54);" (assignment_expression "pcVar13 = *(code **)(pcVar12 + 0x37df54)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x37df54)" * (cast_expression "(code **)(pcVar12 + 0x37df54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x37df54)" ( (binary_expression "pcVar12 + 0x37df54" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar12 + 0x37dd9c) + 0x44a8;" (assignment_expression "iVar3 = *(int *)(pcVar12 + 0x37dd9c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar12 + 0x37dd9c) + 0x44a8" (pointer_expression "*(int *)(pcVar12 + 0x37dd9c)" * (cast_expression "(int *)(pcVar12 + 0x37dd9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37dd9c)" ( (binary_expression "pcVar12 + 0x37dd9c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar3,0x7f7,*(int *)(pcVar12 + 0x37dd9c) + 0x57b8);" (call_expression "(*pcVar13)(iVar3,0x7f7,*(int *)(pcVar12 + 0x37dd9c) + 0x57b8)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar3,0x7f7,*(int *)(pcVar12 + 0x37dd9c) + 0x57b8)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar12 + 0x37dd9c) + 0x57b8" (pointer_expression "*(int *)(pcVar12 + 0x37dd9c)" * (cast_expression "(int *)(pcVar12 + 0x37dd9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37dd9c)" ( (binary_expression "pcVar12 + 0x37dd9c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }" if (parenthesized_expression "(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2))" ( (binary_expression "uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)" identifier < (call_expression "(uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)" ( (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2" (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84)" (pointer_expression "*(int *)(iVar3 + 0x88)" * (cast_expression "(int *)(iVar3 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x88)" ( (binary_expression "iVar3 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }" { (expression_statement "pOVar1 = (Output_section *)0xffffffff;" (assignment_expression "pOVar1 = (Output_section *)0xffffffff" identifier = (cast_expression "(Output_section *)0xffffffff" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }" if (parenthesized_expression "(*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1)" ( (binary_expression "*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x84) + uVar8 * 4)" ( (binary_expression "*(int *)(iVar3 + 0x84) + uVar8 * 4" (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar8 * 4" identifier * number_literal)) )))) != number_literal) )) (compound_statement "{\n      pOVar1 = (Output_section *)0x0;\n    }" { (expression_statement "pOVar1 = (Output_section *)0x0;" (assignment_expression "pOVar1 = (Output_section *)0x0" identifier = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return pOVar1;" return identifier ;) })) (expression_statement "uVar8 = 0x7f7;" (assignment_expression "uVar8 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar12 = *(code **)(pcVar13 + 0x37def4);" (assignment_expression "pcVar12 = *(code **)(pcVar13 + 0x37def4)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37def4)" * (cast_expression "(code **)(pcVar13 + 0x37def4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37def4)" ( (binary_expression "pcVar13 + 0x37def4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar13 + 0x37dd3c) + 0x44a8;" (assignment_expression "iVar3 = *(int *)(pcVar13 + 0x37dd3c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar13 + 0x37dd3c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37dd3c)" * (cast_expression "(int *)(pcVar13 + 0x37dd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dd3c)" ( (binary_expression "pcVar13 + 0x37dd3c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37dd3c) + 0x5534);" (call_expression "(*pcVar12)(iVar3,0x7f7,*(int *)(pcVar13 + 0x37dd3c) + 0x5534)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar3,0x7f7,*(int *)(pcVar13 + 0x37dd3c) + 0x5534)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37dd3c) + 0x5534" (pointer_expression "*(int *)(pcVar13 + 0x37dd3c)" * (cast_expression "(int *)(pcVar13 + 0x37dd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dd3c)" ( (binary_expression "pcVar13 + 0x37dd3c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)) {\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }" if (parenthesized_expression "(uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2))" ( (binary_expression "uVar8 < (uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)" identifier < (call_expression "(uint)(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2)" ( (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84) >> 2" (binary_expression "*(int *)(iVar3 + 0x88) - *(int *)(iVar3 + 0x84)" (pointer_expression "*(int *)(iVar3 + 0x88)" * (cast_expression "(int *)(iVar3 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x88)" ( (binary_expression "iVar3 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    pOVar1 = (Output_section *)0xffffffff;\n    if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }\n    return pOVar1;\n  }" { (expression_statement "pOVar1 = (Output_section *)0xffffffff;" (assignment_expression "pOVar1 = (Output_section *)0xffffffff" identifier = (cast_expression "(Output_section *)0xffffffff" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1) {\n      pOVar1 = (Output_section *)0x0;\n    }" if (parenthesized_expression "(*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1)" ( (binary_expression "*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4) != -1" (pointer_expression "*(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x84) + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x84) + uVar8 * 4)" ( (binary_expression "*(int *)(iVar3 + 0x84) + uVar8 * 4" (pointer_expression "*(int *)(iVar3 + 0x84)" * (cast_expression "(int *)(iVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x84)" ( (binary_expression "iVar3 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar8 * 4" identifier * number_literal)) )))) != number_literal) )) (compound_statement "{\n      pOVar1 = (Output_section *)0x0;\n    }" { (expression_statement "pOVar1 = (Output_section *)0x0;" (assignment_expression "pOVar1 = (Output_section *)0x0" identifier = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return pOVar1;" return identifier ;) })) (expression_statement "pcVar13 = *(code **)(pcVar12 + 0x37de88);" (assignment_expression "pcVar13 = *(code **)(pcVar12 + 0x37de88)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x37de88)" * (cast_expression "(code **)(pcVar12 + 0x37de88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x37de88)" ( (binary_expression "pcVar12 + 0x37de88" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)(*(int *)(pcVar12 + 0x37dcd0) + 0x44a8);" (assignment_expression "puVar7 = (undefined4 *)(*(int *)(pcVar12 + 0x37dcd0) + 0x44a8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar12 + 0x37dcd0) + 0x44a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar12 + 0x37dcd0) + 0x44a8)" ( (binary_expression "*(int *)(pcVar12 + 0x37dcd0) + 0x44a8" (pointer_expression "*(int *)(pcVar12 + 0x37dcd0)" * (cast_expression "(int *)(pcVar12 + 0x37dcd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37dcd0)" ( (binary_expression "pcVar12 + 0x37dcd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar13)(puVar7,0x7f7,*(int *)(pcVar12 + 0x37dcd0) + 0x52c0);" (call_expression "(*pcVar13)(puVar7,0x7f7,*(int *)(pcVar12 + 0x37dcd0) + 0x52c0)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(puVar7,0x7f7,*(int *)(pcVar12 + 0x37dcd0) + 0x52c0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar12 + 0x37dcd0) + 0x52c0" (pointer_expression "*(int *)(pcVar12 + 0x37dcd0)" * (cast_expression "(int *)(pcVar12 + 0x37dcd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x37dcd0)" ( (binary_expression "pcVar12 + 0x37dcd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar3 = *(int *)(pcVar13 + 0x37df34);" (assignment_expression "iVar3 = *(int *)(pcVar13 + 0x37df34)" identifier = (pointer_expression "*(int *)(pcVar13 + 0x37df34)" * (cast_expression "(int *)(pcVar13 + 0x37df34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df34)" ( (binary_expression "pcVar13 + 0x37df34" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = (Output_section *)(iVar3 + 8);" (assignment_expression "*puVar7 = (Output_section *)(iVar3 + 8)" (pointer_expression "*puVar7" * identifier) = (cast_expression "(Output_section *)(iVar3 + 8)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) ;) (if_statement "if ((undefined4 *)puVar7[1] != puVar7 + 3) {\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pOVar1 = (Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1]);\n    return pOVar1;\n  }" if (parenthesized_expression "((undefined4 *)puVar7[1] != puVar7 + 3)" ( (binary_expression "(undefined4 *)puVar7[1] != puVar7 + 3" (cast_expression "(undefined4 *)puVar7[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])) != (binary_expression "puVar7 + 3" identifier + number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pOVar1 = (Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1]);\n    return pOVar1;\n  }" { comment comment (expression_statement "pOVar1 = (Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1]);" (assignment_expression "pOVar1 = (Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1])" identifier = (cast_expression "(Output_section *)(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1])" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar13 + 0x37dce4))((undefined4 *)puVar7[1])" (parenthesized_expression "(**(code **)(pcVar13 + 0x37dce4))" ( (pointer_expression "**(code **)(pcVar13 + 0x37dce4)" * (pointer_expression "*(code **)(pcVar13 + 0x37dce4)" * (cast_expression "(code **)(pcVar13 + 0x37dce4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37dce4)" ( (binary_expression "pcVar13 + 0x37dce4" identifier + number_literal) ))))) )) (argument_list "((undefined4 *)puVar7[1])" ( (cast_expression "(undefined4 *)puVar7[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])) ))))) ;) (return_statement "return pOVar1;" return identifier ;) })) (return_statement "return (Output_section *)(iVar3 + 8);" return (cast_expression "(Output_section *)(iVar3 + 8)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))) ;) })))
(translation_unit "ulonglong __thiscall gold::Relobj::do_output_section(Relobj *this,uint param_1)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined *puVar10;\n  int iVar11;\n  int in_a3;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  ulonglong uVar15;\n  \n  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }\n  uVar9 = 0x5c8;\n  puVar10 = PTR_LAB_0043220c + 0x5a90;\n  puVar6 = PTR_LAB_0043220c + 0x44a8;\n  puVar12 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar4 = *(int *)(puVar6 + 0x84);\n  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }\n  uVar9 = 0x70;\n  pcVar13 = *(code **)(puVar12 + 0x37e1d4);\n  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;\n  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;\n  (*pcVar13)();\n  iVar4 = *(int *)(iVar7 + 0x84);\n  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }\n  uVar9 = 0x70;\n  pcVar14 = *(code **)(pcVar13 + 0x37e124);\n  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;\n  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;\n  (*pcVar14)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar13 = *(code **)(pcVar14 + 0x37e074);\n  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;\n  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;\n  (*pcVar13)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar14 = *(code **)(pcVar13 + 0x37e014);\n  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;\n  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);\n  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar14 = *(code **)(pcVar13 + 0x37df54);\n  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;\n  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37def4);\n  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);\n  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }\n  uVar2 = 0xffffffff;\n  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n  if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }\n  return CONCAT44(uVar2,iVar4);\n}\n\n" (function_definition "ulonglong __thiscall gold::Relobj::do_output_section(Relobj *this,uint param_1)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined *puVar10;\n  int iVar11;\n  int in_a3;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  ulonglong uVar15;\n  \n  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }\n  uVar9 = 0x5c8;\n  puVar10 = PTR_LAB_0043220c + 0x5a90;\n  puVar6 = PTR_LAB_0043220c + 0x44a8;\n  puVar12 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar4 = *(int *)(puVar6 + 0x84);\n  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }\n  uVar9 = 0x70;\n  pcVar13 = *(code **)(puVar12 + 0x37e1d4);\n  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;\n  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;\n  (*pcVar13)();\n  iVar4 = *(int *)(iVar7 + 0x84);\n  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }\n  uVar9 = 0x70;\n  pcVar14 = *(code **)(pcVar13 + 0x37e124);\n  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;\n  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;\n  (*pcVar14)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar13 = *(code **)(pcVar14 + 0x37e074);\n  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;\n  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;\n  (*pcVar13)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar14 = *(code **)(pcVar13 + 0x37e014);\n  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;\n  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);\n  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar14 = *(code **)(pcVar13 + 0x37df54);\n  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;\n  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37def4);\n  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);\n  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }\n  uVar2 = 0xffffffff;\n  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n  if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }\n  return CONCAT44(uVar2,iVar4);\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Relobj::" identifier : : identifier : :) (function_declarator "do_output_section(Relobj *this,uint param_1)" identifier (parameter_list "(Relobj *this,uint param_1)" ( (parameter_declaration "Relobj *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined *puVar10;\n  int iVar11;\n  int in_a3;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  ulonglong uVar15;\n  \n  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }\n  uVar9 = 0x5c8;\n  puVar10 = PTR_LAB_0043220c + 0x5a90;\n  puVar6 = PTR_LAB_0043220c + 0x44a8;\n  puVar12 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar4 = *(int *)(puVar6 + 0x84);\n  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }\n  uVar9 = 0x70;\n  pcVar13 = *(code **)(puVar12 + 0x37e1d4);\n  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;\n  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;\n  (*pcVar13)();\n  iVar4 = *(int *)(iVar7 + 0x84);\n  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }\n  uVar9 = 0x70;\n  pcVar14 = *(code **)(pcVar13 + 0x37e124);\n  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;\n  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;\n  (*pcVar14)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar13 = *(code **)(pcVar14 + 0x37e074);\n  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;\n  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;\n  (*pcVar13)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar14 = *(code **)(pcVar13 + 0x37e014);\n  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;\n  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);\n  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar14 = *(code **)(pcVar13 + 0x37df54);\n  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;\n  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37def4);\n  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);\n  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }\n  uVar2 = 0xffffffff;\n  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n  if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }\n  return CONCAT44(uVar2,iVar4);\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_a3;" primitive_type identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "ulonglong uVar15;" type_identifier identifier ;) (if_statement "if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }" if (parenthesized_expression "(param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2))" ( (binary_expression "param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" identifier < (call_expression "(uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" ( (binary_expression "*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2" (binary_expression "*(int *)(this + 0x3c) - *(int *)(this + 0x38)" (pointer_expression "*(int *)(this + 0x3c)" * (cast_expression "(int *)(this + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x3c)" ( (binary_expression "this + 0x3c" identifier + number_literal) )))) - (pointer_expression "*(int *)(this + 0x38)" * (cast_expression "(int *)(this + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }" { (expression_statement "puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);" (assignment_expression "puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4)" identifier = (cast_expression "(undefined4 *)(*(int *)(this + 0x38) + param_1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x38) + param_1 * 4)" ( (binary_expression "*(int *)(this + 0x38) + param_1 * 4" (pointer_expression "*(int *)(this + 0x38)" * (cast_expression "(int *)(this + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) )))) + (binary_expression "param_1 * 4" identifier * number_literal)) )))) ;) (return_statement "return CONCAT44(*puVar3,puVar3);" return (call_expression "CONCAT44(*puVar3,puVar3)" identifier (argument_list "(*puVar3,puVar3)" ( (pointer_expression "*puVar3" * identifier) , identifier ))) ;) })) (expression_statement "uVar9 = 0x5c8;" (assignment_expression "uVar9 = 0x5c8" identifier = number_literal) ;) (expression_statement "puVar10 = PTR_LAB_0043220c + 0x5a90;" (assignment_expression "puVar10 = PTR_LAB_0043220c + 0x5a90" identifier = (binary_expression "PTR_LAB_0043220c + 0x5a90" identifier + number_literal)) ;) (expression_statement "puVar6 = PTR_LAB_0043220c + 0x44a8;" (assignment_expression "puVar6 = PTR_LAB_0043220c + 0x44a8" identifier = (binary_expression "PTR_LAB_0043220c + 0x44a8" identifier + number_literal)) ;) (expression_statement "puVar12 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar12 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(puVar6 + 0x84);" (assignment_expression "iVar4 = *(int *)(puVar6 + 0x84)" identifier = (pointer_expression "*(int *)(puVar6 + 0x84)" * (cast_expression "(int *)(puVar6 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x84)" ( (binary_expression "puVar6 + 0x84" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2))" ( (binary_expression "uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" identifier < (call_expression "(uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" ( (binary_expression "*(int *)(puVar6 + 0x88) - iVar4 >> 2" (binary_expression "*(int *)(puVar6 + 0x88) - iVar4" (pointer_expression "*(int *)(puVar6 + 0x88)" * (cast_expression "(int *)(puVar6 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x88)" ( (binary_expression "puVar6 + 0x88" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) (compound_statement "{\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }" { (if_statement "if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" if (parenthesized_expression "((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1))" ( (binary_expression "(puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)" (parenthesized_expression "(puVar10 == (undefined *)0xffffffff)" ( (binary_expression "puVar10 == (undefined *)0xffffffff" identifier == (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(in_a3 == -1)" ( (binary_expression "in_a3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" { (expression_statement "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);" (assignment_expression "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar4 + uVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar9 * 4)" ( (binary_expression "iVar4 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "*puVar3 = 0xffffffff;" (assignment_expression "*puVar3 = 0xffffffff" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (return_statement "return CONCAT44(0xffffffff,puVar3);" return (call_expression "CONCAT44(0xffffffff,puVar3)" identifier (argument_list "(0xffffffff,puVar3)" ( number_literal , identifier ))) ;) })) (if_statement "if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" if (parenthesized_expression "(puVar10 == (undefined *)0x0)" ( (binary_expression "puVar10 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" { (expression_statement "piVar5 = (int *)(iVar4 + uVar9 * 4);" (assignment_expression "piVar5 = (int *)(iVar4 + uVar9 * 4)" identifier = (cast_expression "(int *)(iVar4 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar9 * 4)" ( (binary_expression "iVar4 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "*piVar5 = in_a3;" (assignment_expression "*piVar5 = in_a3" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return CONCAT44(0xffffffff,piVar5);" return (call_expression "CONCAT44(0xffffffff,piVar5)" identifier (argument_list "(0xffffffff,piVar5)" ( number_literal , identifier ))) ;) })) }) (else_clause "else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" else (compound_statement "{\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" { (expression_statement "(**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);" (call_expression "(**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678)" (parenthesized_expression "(**(code **)(puVar12 + 0x37e1d4))" ( (pointer_expression "**(code **)(puVar12 + 0x37e1d4)" * (pointer_expression "*(code **)(puVar12 + 0x37e1d4)" * (cast_expression "(code **)(puVar12 + 0x37e1d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x37e1d4)" ( (binary_expression "puVar12 + 0x37e1d4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678)" ( (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x44a8" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" * (cast_expression "(int *)(puVar12 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x37e01c)" ( (binary_expression "puVar12 + 0x37e01c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x5678" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" * (cast_expression "(int *)(puVar12 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x37e01c)" ( (binary_expression "puVar12 + 0x37e01c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "uVar9 = 0x70;" (assignment_expression "uVar9 = 0x70" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x37e1d4);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x37e1d4)" identifier = (pointer_expression "*(code **)(puVar12 + 0x37e1d4)" * (cast_expression "(code **)(puVar12 + 0x37e1d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x37e1d4)" ( (binary_expression "puVar12 + 0x37e1d4" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;" (assignment_expression "iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668" identifier = (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x5668" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" * (cast_expression "(int *)(puVar12 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x37e01c)" ( (binary_expression "puVar12 + 0x37e01c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;" (assignment_expression "iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc" identifier = (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x44bc" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" * (cast_expression "(int *)(puVar12 + 0x37e01c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x37e01c)" ( (binary_expression "puVar12 + 0x37e01c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(iVar7 + 0x84);" (assignment_expression "iVar4 = *(int *)(iVar7 + 0x84)" identifier = (pointer_expression "*(int *)(iVar7 + 0x84)" * (cast_expression "(int *)(iVar7 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x84)" ( (binary_expression "iVar7 + 0x84" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2))" ( (binary_expression "uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" identifier < (call_expression "(uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" ( (binary_expression "*(int *)(iVar7 + 0x88) - iVar4 >> 2" (binary_expression "*(int *)(iVar7 + 0x88) - iVar4" (pointer_expression "*(int *)(iVar7 + 0x88)" * (cast_expression "(int *)(iVar7 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x88)" ( (binary_expression "iVar7 + 0x88" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) (compound_statement "{\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }" { (if_statement "if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" if (parenthesized_expression "((iVar11 == -1) && (in_a3 == -1))" ( (binary_expression "(iVar11 == -1) && (in_a3 == -1)" (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) && (parenthesized_expression "(in_a3 == -1)" ( (binary_expression "in_a3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" { (expression_statement "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);" (assignment_expression "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4)" identifier = (cast_expression "(undefined4 *)(iVar4 + uVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar9 * 4)" ( (binary_expression "iVar4 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "*puVar3 = 0xffffffff;" (assignment_expression "*puVar3 = 0xffffffff" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (return_statement "return CONCAT44(0xffffffff,puVar3);" return (call_expression "CONCAT44(0xffffffff,puVar3)" identifier (argument_list "(0xffffffff,puVar3)" ( number_literal , identifier ))) ;) })) (if_statement "if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" { (expression_statement "piVar5 = (int *)(iVar4 + uVar9 * 4);" (assignment_expression "piVar5 = (int *)(iVar4 + uVar9 * 4)" identifier = (cast_expression "(int *)(iVar4 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar9 * 4)" ( (binary_expression "iVar4 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) ;) (expression_statement "*piVar5 = in_a3;" (assignment_expression "*piVar5 = in_a3" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return CONCAT44(0xffffffff,piVar5);" return (call_expression "CONCAT44(0xffffffff,piVar5)" identifier (argument_list "(0xffffffff,piVar5)" ( number_literal , identifier ))) ;) })) }) (else_clause "else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" else (compound_statement "{\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" { (expression_statement "(**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);" (call_expression "(**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4)" (parenthesized_expression "(**(code **)(pcVar13 + 0x37e124))" ( (pointer_expression "**(code **)(pcVar13 + 0x37e124)" * (pointer_expression "*(code **)(pcVar13 + 0x37e124)" * (cast_expression "(code **)(pcVar13 + 0x37e124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37e124)" ( (binary_expression "pcVar13 + 0x37e124" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4)" ( (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" * (cast_expression "(int *)(pcVar13 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df6c)" ( (binary_expression "pcVar13 + 0x37df6c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x53f4" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" * (cast_expression "(int *)(pcVar13 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df6c)" ( (binary_expression "pcVar13 + 0x37df6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "uVar9 = 0x70;" (assignment_expression "uVar9 = 0x70" identifier = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37e124);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37e124)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37e124)" * (cast_expression "(code **)(pcVar13 + 0x37e124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37e124)" ( (binary_expression "pcVar13 + 0x37e124" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;" (assignment_expression "iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668" identifier = (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x5668" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" * (cast_expression "(int *)(pcVar13 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df6c)" ( (binary_expression "pcVar13 + 0x37df6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc" identifier = (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x44bc" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" * (cast_expression "(int *)(pcVar13 + 0x37df6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37df6c)" ( (binary_expression "pcVar13 + 0x37df6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);" (assignment_expression "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier = (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) ))))) ;) (if_statement "if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" { (expression_statement "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" identifier = (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar5[1] = in_a3;" (assignment_expression "piVar5[1] = in_a3" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return (ulonglong)CONCAT14(bVar1,piVar5);" return (cast_expression "(ulonglong)CONCAT14(bVar1,piVar5)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,piVar5)" identifier (argument_list "(bVar1,piVar5)" ( identifier , identifier )))) ;) })) (expression_statement "uVar9 = 0x81f;" (assignment_expression "uVar9 = 0x81f" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37e074);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37e074)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x37e074)" * (cast_expression "(code **)(pcVar14 + 0x37e074)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x37e074)" ( (binary_expression "pcVar14 + 0x37e074" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;" (assignment_expression "iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60" identifier = (binary_expression "*(int *)(pcVar14 + 0x37debc) + 0x5d60" (pointer_expression "*(int *)(pcVar14 + 0x37debc)" * (cast_expression "(int *)(pcVar14 + 0x37debc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37debc)" ( (binary_expression "pcVar14 + 0x37debc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar14 + 0x37debc) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37debc)" * (cast_expression "(int *)(pcVar14 + 0x37debc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37debc)" ( (binary_expression "pcVar14 + 0x37debc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);" (assignment_expression "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier = (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) ))))) ;) (if_statement "if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" { (expression_statement "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" identifier = (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar5[1] = in_a3;" (assignment_expression "piVar5[1] = in_a3" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return (ulonglong)CONCAT14(bVar1,piVar5);" return (cast_expression "(ulonglong)CONCAT14(bVar1,piVar5)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,piVar5)" identifier (argument_list "(bVar1,piVar5)" ( identifier , identifier )))) ;) })) (expression_statement "uVar9 = 0x81f;" (assignment_expression "uVar9 = 0x81f" identifier = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37e014);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37e014)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37e014)" * (cast_expression "(code **)(pcVar13 + 0x37e014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37e014)" ( (binary_expression "pcVar13 + 0x37e014" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar13 + 0x37de5c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37de5c)" * (cast_expression "(int *)(pcVar13 + 0x37de5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37de5c)" ( (binary_expression "pcVar13 + 0x37de5c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);" (call_expression "(*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37de5c) + 0x58ec" (pointer_expression "*(int *)(pcVar13 + 0x37de5c)" * (cast_expression "(int *)(pcVar13 + 0x37de5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37de5c)" ( (binary_expression "pcVar13 + 0x37de5c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3))" ( (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" { (return_statement "return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" return (pointer_expression "*(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" * (cast_expression "(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) })) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37dfb4);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37dfb4)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x37dfb4)" * (cast_expression "(code **)(pcVar14 + 0x37dfb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x37dfb4)" ( (binary_expression "pcVar14 + 0x37dfb4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar14 + 0x37ddfc) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37ddfc)" * (cast_expression "(int *)(pcVar14 + 0x37ddfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37ddfc)" ( (binary_expression "pcVar14 + 0x37ddfc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);" (call_expression "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x37ddfc) + 0x5aec" (pointer_expression "*(int *)(pcVar14 + 0x37ddfc)" * (cast_expression "(int *)(pcVar14 + 0x37ddfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37ddfc)" ( (binary_expression "pcVar14 + 0x37ddfc" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3))" ( (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" { (return_statement "return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" return (pointer_expression "*(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" * (cast_expression "(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) })) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37df54);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37df54)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37df54)" * (cast_expression "(code **)(pcVar13 + 0x37df54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37df54)" ( (binary_expression "pcVar13 + 0x37df54" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar13 + 0x37dd9c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37dd9c)" * (cast_expression "(int *)(pcVar13 + 0x37dd9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dd9c)" ( (binary_expression "pcVar13 + 0x37dd9c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);" (call_expression "(*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37dd9c) + 0x57b8" (pointer_expression "*(int *)(pcVar13 + 0x37dd9c)" * (cast_expression "(int *)(pcVar13 + 0x37dd9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dd9c)" ( (binary_expression "pcVar13 + 0x37dd9c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }" if (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2))" ( (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" identifier < (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) )))) )) (compound_statement "{\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }" { (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 4)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 4" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n      iVar4 = -1;\n    }" { (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar2 = 0;\n    }" else (compound_statement "{\n      uVar2 = 0;\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (return_statement "return CONCAT44(uVar2,iVar4);" return (call_expression "CONCAT44(uVar2,iVar4)" identifier (argument_list "(uVar2,iVar4)" ( identifier , identifier ))) ;) })) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" identifier = number_literal) ;) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37def4);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37def4)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x37def4)" * (cast_expression "(code **)(pcVar14 + 0x37def4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x37def4)" ( (binary_expression "pcVar14 + 0x37def4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8" identifier = (binary_expression "*(int *)(pcVar14 + 0x37dd3c) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37dd3c)" * (cast_expression "(int *)(pcVar14 + 0x37dd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37dd3c)" ( (binary_expression "pcVar14 + 0x37dd3c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);" (call_expression "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x37dd3c) + 0x5534" (pointer_expression "*(int *)(pcVar14 + 0x37dd3c)" * (cast_expression "(int *)(pcVar14 + 0x37dd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37dd3c)" ( (binary_expression "pcVar14 + 0x37dd3c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }" if (parenthesized_expression "((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9)" ( (binary_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9" (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" ( (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" * (cast_expression "(int *)(iVar4 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }" { (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37de88);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37de88)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x37de88)" * (cast_expression "(code **)(pcVar13 + 0x37de88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x37de88)" ( (binary_expression "pcVar13 + 0x37de88" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);" (assignment_expression "piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" identifier = (cast_expression "(int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" ( (binary_expression "*(int *)(pcVar13 + 0x37dcd0) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37dcd0)" * (cast_expression "(int *)(pcVar13 + 0x37dcd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dcd0)" ( (binary_expression "pcVar13 + 0x37dcd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);" (call_expression "(*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x37dcd0) + 0x52c0" (pointer_expression "*(int *)(pcVar13 + 0x37dcd0)" * (cast_expression "(int *)(pcVar13 + 0x37dcd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x37dcd0)" ( (binary_expression "pcVar13 + 0x37dcd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37df34);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37df34)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x37df34)" * (cast_expression "(int *)(pcVar14 + 0x37df34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x37df34)" ( (binary_expression "pcVar14 + 0x37df34" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)piVar8[1];" (assignment_expression "piVar5 = (int *)piVar8[1]" identifier = (cast_expression "(int *)piVar8[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "*piVar8 = iVar4 + 8;" (assignment_expression "*piVar8 = iVar4 + 8" (pointer_expression "*piVar8" * identifier) = (binary_expression "iVar4 + 8" identifier + number_literal)) ;) (if_statement "if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }" if (parenthesized_expression "(piVar5 == piVar8 + 3)" ( (binary_expression "piVar5 == piVar8 + 3" identifier == (binary_expression "piVar8 + 3" identifier + number_literal)) )) (compound_statement "{\n      return CONCAT44(iVar4 + 8,piVar5);\n    }" { (return_statement "return CONCAT44(iVar4 + 8,piVar5);" return (call_expression "CONCAT44(iVar4 + 8,piVar5)" identifier (argument_list "(iVar4 + 8,piVar5)" ( (binary_expression "iVar4 + 8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);" (assignment_expression "uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5)" identifier = (call_expression "(**(code **)(pcVar14 + 0x37dce4))(piVar5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x37dce4))" ( (pointer_expression "**(code **)(pcVar14 + 0x37dce4)" * (pointer_expression "*(code **)(pcVar14 + 0x37dce4)" * (cast_expression "(code **)(pcVar14 + 0x37dce4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x37dce4)" ( (binary_expression "pcVar14 + 0x37dce4" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) (return_statement "return uVar15;" return identifier ;) })) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 4)" ( (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 4" (pointer_expression "*(int *)(iVar4 + 0x84)" * (cast_expression "(int *)(iVar4 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    iVar4 = -1;\n  }" { (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) }) (else_clause "else {\n    uVar2 = 0;\n  }" else (compound_statement "{\n    uVar2 = 0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (return_statement "return CONCAT44(uVar2,iVar4);" return (call_expression "CONCAT44(uVar2,iVar4)" identifier (argument_list "(uVar2,iVar4)" ( identifier , identifier ))) ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (return_statement return (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 ( ))) ;) (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 < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) >> LIT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) >> LIT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 * IDENT) )) (argument_list ( IDENT , LIT , (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 < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 * IDENT) )) (argument_list ( IDENT , LIT , (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 < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 * IDENT) )) (argument_list ( IDENT , LIT , (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 < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 * IDENT) )) (argument_list ( IDENT , LIT , (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 (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( (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 ( IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))
(function_definition "ulonglong __thiscall gold::Relobj::do_output_section(Relobj *this,uint param_1)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined *puVar10;\n  int iVar11;\n  int in_a3;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  ulonglong uVar15;\n  \n  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }\n  uVar9 = 0x5c8;\n  puVar10 = PTR_LAB_0043220c + 0x5a90;\n  puVar6 = PTR_LAB_0043220c + 0x44a8;\n  puVar12 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar4 = *(int *)(puVar6 + 0x84);\n  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }\n  uVar9 = 0x70;\n  pcVar13 = *(code **)(puVar12 + 0x37e1d4);\n  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;\n  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;\n  (*pcVar13)();\n  iVar4 = *(int *)(iVar7 + 0x84);\n  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }\n  uVar9 = 0x70;\n  pcVar14 = *(code **)(pcVar13 + 0x37e124);\n  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;\n  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;\n  (*pcVar14)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar13 = *(code **)(pcVar14 + 0x37e074);\n  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;\n  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;\n  (*pcVar13)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar14 = *(code **)(pcVar13 + 0x37e014);\n  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;\n  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);\n  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar14 = *(code **)(pcVar13 + 0x37df54);\n  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;\n  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37def4);\n  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);\n  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }\n  uVar2 = 0xffffffff;\n  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n  if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }\n  return CONCAT44(uVar2,iVar4);\n}" (type_identifier "ulonglong") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Relobj::" (identifier "gold") (: ":") (: ":") (identifier "Relobj") (: ":") (: ":")) (function_declarator "do_output_section(Relobj *this,uint param_1)" (identifier "do_output_section") (parameter_list "(Relobj *this,uint param_1)" (( "(") (parameter_declaration "Relobj *this" (type_identifier "Relobj") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined *puVar10;\n  int iVar11;\n  int in_a3;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  ulonglong uVar15;\n  \n  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }\n  uVar9 = 0x5c8;\n  puVar10 = PTR_LAB_0043220c + 0x5a90;\n  puVar6 = PTR_LAB_0043220c + 0x44a8;\n  puVar12 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  iVar4 = *(int *)(puVar6 + 0x84);\n  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }\n  uVar9 = 0x70;\n  pcVar13 = *(code **)(puVar12 + 0x37e1d4);\n  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;\n  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;\n  (*pcVar13)();\n  iVar4 = *(int *)(iVar7 + 0x84);\n  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }\n  uVar9 = 0x70;\n  pcVar14 = *(code **)(pcVar13 + 0x37e124);\n  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;\n  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;\n  (*pcVar14)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar13 = *(code **)(pcVar14 + 0x37e074);\n  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;\n  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;\n  (*pcVar13)();\n  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);\n  if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }\n  uVar9 = 0x81f;\n  pcVar14 = *(code **)(pcVar13 + 0x37e014);\n  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;\n  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);\n  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }\n  uVar9 = 0x7f7;\n  pcVar14 = *(code **)(pcVar13 + 0x37df54);\n  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;\n  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);\n  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }\n  uVar9 = 0x7f7;\n  pcVar13 = *(code **)(pcVar14 + 0x37def4);\n  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;\n  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);\n  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }\n  uVar2 = 0xffffffff;\n  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n  if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }\n  return CONCAT44(uVar2,iVar4);\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int in_a3;" (primitive_type "int") (identifier "in_a3") (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "code *pcVar13;" (type_identifier "code") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "ulonglong uVar15;" (type_identifier "ulonglong") (identifier "uVar15") (; ";")) (if_statement "if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }" (if "if") (parenthesized_expression "(param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2))" (( "(") (binary_expression "param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" (identifier "param_1") (< "<") (call_expression "(uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)" (( "(") (binary_expression "*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2" (binary_expression "*(int *)(this + 0x3c) - *(int *)(this + 0x38)" (pointer_expression "*(int *)(this + 0x3c)" (* "*") (cast_expression "(int *)(this + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x3c)" (( "(") (binary_expression "this + 0x3c" (identifier "this") (+ "+") (number_literal "0x3c")) () ")")))) (- "-") (pointer_expression "*(int *)(this + 0x38)" (* "*") (cast_expression "(int *)(this + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x38)" (( "(") (binary_expression "this + 0x38" (identifier "this") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);\n    return CONCAT44(*puVar3,puVar3);\n  }" ({ "{") (expression_statement "puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);" (assignment_expression "puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(*(int *)(this + 0x38) + param_1 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 0x38) + param_1 * 4)" (( "(") (binary_expression "*(int *)(this + 0x38) + param_1 * 4" (pointer_expression "*(int *)(this + 0x38)" (* "*") (cast_expression "(int *)(this + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x38)" (( "(") (binary_expression "this + 0x38" (identifier "this") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4"))) () ")")))) (; ";")) (return_statement "return CONCAT44(*puVar3,puVar3);" (return "return") (call_expression "CONCAT44(*puVar3,puVar3)" (identifier "CONCAT44") (argument_list "(*puVar3,puVar3)" (( "(") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (, ",") (identifier "puVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = 0x5c8;" (assignment_expression "uVar9 = 0x5c8" (identifier "uVar9") (= "=") (number_literal "0x5c8")) (; ";")) (expression_statement "puVar10 = PTR_LAB_0043220c + 0x5a90;" (assignment_expression "puVar10 = PTR_LAB_0043220c + 0x5a90" (identifier "puVar10") (= "=") (binary_expression "PTR_LAB_0043220c + 0x5a90" (identifier "PTR_LAB_0043220c") (+ "+") (number_literal "0x5a90"))) (; ";")) (expression_statement "puVar6 = PTR_LAB_0043220c + 0x44a8;" (assignment_expression "puVar6 = PTR_LAB_0043220c + 0x44a8" (identifier "puVar6") (= "=") (binary_expression "PTR_LAB_0043220c + 0x44a8" (identifier "PTR_LAB_0043220c") (+ "+") (number_literal "0x44a8"))) (; ";")) (expression_statement "puVar12 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar12 = PTR_do_gold_unreachable_004323c4" (identifier "puVar12") (= "=") (identifier "PTR_do_gold_unreachable_004323c4")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar6 + 0x84);" (assignment_expression "iVar4 = *(int *)(puVar6 + 0x84)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar6 + 0x84)" (* "*") (cast_expression "(int *)(puVar6 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0x84)" (( "(") (binary_expression "puVar6 + 0x84" (identifier "puVar6") (+ "+") (number_literal "0x84")) () ")"))))) (; ";")) (if_statement "if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" (if "if") (parenthesized_expression "(uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2))" (( "(") (binary_expression "uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" (identifier "uVar9") (< "<") (call_expression "(uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar6 + 0x88) - iVar4 >> 2)" (( "(") (binary_expression "*(int *)(puVar6 + 0x88) - iVar4 >> 2" (binary_expression "*(int *)(puVar6 + 0x88) - iVar4" (pointer_expression "*(int *)(puVar6 + 0x88)" (* "*") (cast_expression "(int *)(puVar6 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0x88)" (( "(") (binary_expression "puVar6 + 0x88" (identifier "puVar6") (+ "+") (number_literal "0x88")) () ")")))) (- "-") (identifier "iVar4")) (>> ">>") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }" ({ "{") (if_statement "if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" (if "if") (parenthesized_expression "((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1))" (( "(") (binary_expression "(puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)" (parenthesized_expression "(puVar10 == (undefined *)0xffffffff)" (( "(") (binary_expression "puVar10 == (undefined *)0xffffffff" (identifier "puVar10") (== "==") (cast_expression "(undefined *)0xffffffff" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (&& "&&") (parenthesized_expression "(in_a3 == -1)" (( "(") (binary_expression "in_a3 == -1" (identifier "in_a3") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" ({ "{") (expression_statement "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);" (assignment_expression "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(iVar4 + uVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + uVar9 * 4)" (( "(") (binary_expression "iVar4 + uVar9 * 4" (identifier "iVar4") (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar3 = 0xffffffff;" (assignment_expression "*puVar3 = 0xffffffff" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0xffffffff")) (; ";")) (return_statement "return CONCAT44(0xffffffff,puVar3);" (return "return") (call_expression "CONCAT44(0xffffffff,puVar3)" (identifier "CONCAT44") (argument_list "(0xffffffff,puVar3)" (( "(") (number_literal "0xffffffff") (, ",") (identifier "puVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if (puVar10 == (undefined *)0x0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" (if "if") (parenthesized_expression "(puVar10 == (undefined *)0x0)" (( "(") (binary_expression "puVar10 == (undefined *)0x0" (identifier "puVar10") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" ({ "{") (expression_statement "piVar5 = (int *)(iVar4 + uVar9 * 4);" (assignment_expression "piVar5 = (int *)(iVar4 + uVar9 * 4)" (identifier "piVar5") (= "=") (cast_expression "(int *)(iVar4 + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + uVar9 * 4)" (( "(") (binary_expression "iVar4 + uVar9 * 4" (identifier "iVar4") (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*piVar5 = in_a3;" (assignment_expression "*piVar5 = in_a3" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "in_a3")) (; ";")) (return_statement "return CONCAT44(0xffffffff,piVar5);" (return "return") (call_expression "CONCAT44(0xffffffff,piVar5)" (identifier "CONCAT44") (argument_list "(0xffffffff,piVar5)" (( "(") (number_literal "0xffffffff") (, ",") (identifier "piVar5") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);\n  }" ({ "{") (expression_statement "(**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);" (call_expression "(**(code **)(puVar12 + 0x37e1d4))\n              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678)" (parenthesized_expression "(**(code **)(puVar12 + 0x37e1d4))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x37e1d4)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x37e1d4)" (* "*") (cast_expression "(code **)(puVar12 + 0x37e1d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x37e1d4)" (( "(") (binary_expression "puVar12 + 0x37e1d4" (identifier "puVar12") (+ "+") (number_literal "0x37e1d4")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678)" (( "(") (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x44a8" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" (* "*") (cast_expression "(int *)(puVar12 + 0x37e01c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x37e01c)" (( "(") (binary_expression "puVar12 + 0x37e01c" (identifier "puVar12") (+ "+") (number_literal "0x37e01c")) () ")")))) (+ "+") (number_literal "0x44a8")) (, ",") (number_literal "0x81f") (, ",") (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x5678" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" (* "*") (cast_expression "(int *)(puVar12 + 0x37e01c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x37e01c)" (( "(") (binary_expression "puVar12 + 0x37e01c" (identifier "puVar12") (+ "+") (number_literal "0x37e01c")) () ")")))) (+ "+") (number_literal "0x5678")) () ")"))) (; ";")) (} "}")))) (expression_statement "uVar9 = 0x70;" (assignment_expression "uVar9 = 0x70" (identifier "uVar9") (= "=") (number_literal "0x70")) (; ";")) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x37e1d4);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x37e1d4)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(puVar12 + 0x37e1d4)" (* "*") (cast_expression "(code **)(puVar12 + 0x37e1d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x37e1d4)" (( "(") (binary_expression "puVar12 + 0x37e1d4" (identifier "puVar12") (+ "+") (number_literal "0x37e1d4")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;" (assignment_expression "iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x5668" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" (* "*") (cast_expression "(int *)(puVar12 + 0x37e01c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x37e01c)" (( "(") (binary_expression "puVar12 + 0x37e01c" (identifier "puVar12") (+ "+") (number_literal "0x37e01c")) () ")")))) (+ "+") (number_literal "0x5668"))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;" (assignment_expression "iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc" (identifier "iVar7") (= "=") (binary_expression "*(int *)(puVar12 + 0x37e01c) + 0x44bc" (pointer_expression "*(int *)(puVar12 + 0x37e01c)" (* "*") (cast_expression "(int *)(puVar12 + 0x37e01c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x37e01c)" (( "(") (binary_expression "puVar12 + 0x37e01c" (identifier "puVar12") (+ "+") (number_literal "0x37e01c")) () ")")))) (+ "+") (number_literal "0x44bc"))) (; ";")) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar7 + 0x84);" (assignment_expression "iVar4 = *(int *)(iVar7 + 0x84)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar7 + 0x84)" (* "*") (cast_expression "(int *)(iVar7 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x84)" (( "(") (binary_expression "iVar7 + 0x84" (identifier "iVar7") (+ "+") (number_literal "0x84")) () ")"))))) (; ";")) (if_statement "if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }\n  else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" (if "if") (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2))" (( "(") (binary_expression "uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" (identifier "uVar9") (< "<") (call_expression "(uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar7 + 0x88) - iVar4 >> 2)" (( "(") (binary_expression "*(int *)(iVar7 + 0x88) - iVar4 >> 2" (binary_expression "*(int *)(iVar7 + 0x88) - iVar4" (pointer_expression "*(int *)(iVar7 + 0x88)" (* "*") (cast_expression "(int *)(iVar7 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x88)" (( "(") (binary_expression "iVar7 + 0x88" (identifier "iVar7") (+ "+") (number_literal "0x88")) () ")")))) (- "-") (identifier "iVar4")) (>> ">>") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n    if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }\n    if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }\n  }" ({ "{") (if_statement "if ((iVar11 == -1) && (in_a3 == -1)) {\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" (if "if") (parenthesized_expression "((iVar11 == -1) && (in_a3 == -1))" (( "(") (binary_expression "(iVar11 == -1) && (in_a3 == -1)" (parenthesized_expression "(iVar11 == -1)" (( "(") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(in_a3 == -1)" (( "(") (binary_expression "in_a3 == -1" (identifier "in_a3") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);\n      *puVar3 = 0xffffffff;\n      return CONCAT44(0xffffffff,puVar3);\n    }" ({ "{") (expression_statement "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);" (assignment_expression "puVar3 = (undefined4 *)(iVar4 + uVar9 * 4)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(iVar4 + uVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + uVar9 * 4)" (( "(") (binary_expression "iVar4 + uVar9 * 4" (identifier "iVar4") (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar3 = 0xffffffff;" (assignment_expression "*puVar3 = 0xffffffff" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0xffffffff")) (; ";")) (return_statement "return CONCAT44(0xffffffff,puVar3);" (return "return") (call_expression "CONCAT44(0xffffffff,puVar3)" (identifier "CONCAT44") (argument_list "(0xffffffff,puVar3)" (( "(") (number_literal "0xffffffff") (, ",") (identifier "puVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar11 == 0) {\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar5 = (int *)(iVar4 + uVar9 * 4);\n      *piVar5 = in_a3;\n      return CONCAT44(0xffffffff,piVar5);\n    }" ({ "{") (expression_statement "piVar5 = (int *)(iVar4 + uVar9 * 4);" (assignment_expression "piVar5 = (int *)(iVar4 + uVar9 * 4)" (identifier "piVar5") (= "=") (cast_expression "(int *)(iVar4 + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + uVar9 * 4)" (( "(") (binary_expression "iVar4 + uVar9 * 4" (identifier "iVar4") (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*piVar5 = in_a3;" (assignment_expression "*piVar5 = in_a3" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "in_a3")) (; ";")) (return_statement "return CONCAT44(0xffffffff,piVar5);" (return "return") (call_expression "CONCAT44(0xffffffff,piVar5)" (identifier "CONCAT44") (argument_list "(0xffffffff,piVar5)" (( "(") (number_literal "0xffffffff") (, ",") (identifier "piVar5") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);" (call_expression "(**(code **)(pcVar13 + 0x37e124))\n              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4)" (parenthesized_expression "(**(code **)(pcVar13 + 0x37e124))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0x37e124)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0x37e124)" (* "*") (cast_expression "(code **)(pcVar13 + 0x37e124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x37e124)" (( "(") (binary_expression "pcVar13 + 0x37e124" (identifier "pcVar13") (+ "+") (number_literal "0x37e124")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4)" (( "(") (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37df6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37df6c)" (( "(") (binary_expression "pcVar13 + 0x37df6c" (identifier "pcVar13") (+ "+") (number_literal "0x37df6c")) () ")")))) (+ "+") (number_literal "0x44a8")) (, ",") (number_literal "0x81f") (, ",") (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x53f4" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37df6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37df6c)" (( "(") (binary_expression "pcVar13 + 0x37df6c" (identifier "pcVar13") (+ "+") (number_literal "0x37df6c")) () ")")))) (+ "+") (number_literal "0x53f4")) () ")"))) (; ";")) (} "}")))) (expression_statement "uVar9 = 0x70;" (assignment_expression "uVar9 = 0x70" (identifier "uVar9") (= "=") (number_literal "0x70")) (; ";")) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37e124);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37e124)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x37e124)" (* "*") (cast_expression "(code **)(pcVar13 + 0x37e124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x37e124)" (( "(") (binary_expression "pcVar13 + 0x37e124" (identifier "pcVar13") (+ "+") (number_literal "0x37e124")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;" (assignment_expression "iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668" (identifier "iVar7") (= "=") (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x5668" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37df6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37df6c)" (( "(") (binary_expression "pcVar13 + 0x37df6c" (identifier "pcVar13") (+ "+") (number_literal "0x37df6c")) () ")")))) (+ "+") (number_literal "0x5668"))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar13 + 0x37df6c) + 0x44bc" (pointer_expression "*(int *)(pcVar13 + 0x37df6c)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37df6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37df6c)" (( "(") (binary_expression "pcVar13 + 0x37df6c" (identifier "pcVar13") (+ "+") (number_literal "0x37df6c")) () ")")))) (+ "+") (number_literal "0x44bc"))) (; ";")) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);" (assignment_expression "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (identifier "bVar1") (= "=") (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (identifier "uVar9") (< "<") (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (( "(") (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" (* "*") (cast_expression "(int *)(iVar4 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x88)" (( "(") (binary_expression "iVar4 + 0x88" (identifier "iVar4") (+ "+") (number_literal "0x88")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))))) (; ";")) (if_statement "if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" ({ "{") (expression_statement "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (( "(") (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "piVar5[1] = in_a3;" (assignment_expression "piVar5[1] = in_a3" (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "in_a3")) (; ";")) (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar7")) (; ";")) (return_statement "return (ulonglong)CONCAT14(bVar1,piVar5);" (return "return") (cast_expression "(ulonglong)CONCAT14(bVar1,piVar5)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(bVar1,piVar5)" (identifier "CONCAT14") (argument_list "(bVar1,piVar5)" (( "(") (identifier "bVar1") (, ",") (identifier "piVar5") () ")")))) (; ";")) (} "}"))) (expression_statement "uVar9 = 0x81f;" (assignment_expression "uVar9 = 0x81f" (identifier "uVar9") (= "=") (number_literal "0x81f")) (; ";")) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37e074);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37e074)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x37e074)" (* "*") (cast_expression "(code **)(pcVar14 + 0x37e074)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x37e074)" (( "(") (binary_expression "pcVar14 + 0x37e074" (identifier "pcVar14") (+ "+") (number_literal "0x37e074")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;" (assignment_expression "iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60" (identifier "iVar7") (= "=") (binary_expression "*(int *)(pcVar14 + 0x37debc) + 0x5d60" (pointer_expression "*(int *)(pcVar14 + 0x37debc)" (* "*") (cast_expression "(int *)(pcVar14 + 0x37debc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x37debc)" (( "(") (binary_expression "pcVar14 + 0x37debc" (identifier "pcVar14") (+ "+") (number_literal "0x37debc")) () ")")))) (+ "+") (number_literal "0x5d60"))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar14 + 0x37debc) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37debc)" (* "*") (cast_expression "(int *)(pcVar14 + 0x37debc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x37debc)" (( "(") (binary_expression "pcVar14 + 0x37debc" (identifier "pcVar14") (+ "+") (number_literal "0x37debc")) () ")")))) (+ "+") (number_literal "0x44a8"))) (; ";")) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);" (assignment_expression "bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (identifier "bVar1") (= "=") (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (identifier "uVar9") (< "<") (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (( "(") (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" (* "*") (cast_expression "(int *)(iVar4 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x88)" (( "(") (binary_expression "iVar4 + 0x88" (identifier "iVar4") (+ "+") (number_literal "0x88")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))))) (; ";")) (if_statement "if (bVar1) {\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n    piVar5[1] = in_a3;\n    *piVar5 = iVar7;\n    return (ulonglong)CONCAT14(bVar1,piVar5);\n  }" ({ "{") (expression_statement "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (( "(") (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "piVar5[1] = in_a3;" (assignment_expression "piVar5[1] = in_a3" (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "in_a3")) (; ";")) (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar7")) (; ";")) (return_statement "return (ulonglong)CONCAT14(bVar1,piVar5);" (return "return") (cast_expression "(ulonglong)CONCAT14(bVar1,piVar5)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(bVar1,piVar5)" (identifier "CONCAT14") (argument_list "(bVar1,piVar5)" (( "(") (identifier "bVar1") (, ",") (identifier "piVar5") () ")")))) (; ";")) (} "}"))) (expression_statement "uVar9 = 0x81f;" (assignment_expression "uVar9 = 0x81f" (identifier "uVar9") (= "=") (number_literal "0x81f")) (; ";")) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37e014);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37e014)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x37e014)" (* "*") (cast_expression "(code **)(pcVar13 + 0x37e014)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x37e014)" (( "(") (binary_expression "pcVar13 + 0x37e014" (identifier "pcVar13") (+ "+") (number_literal "0x37e014")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar13 + 0x37de5c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37de5c)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37de5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37de5c)" (( "(") (binary_expression "pcVar13 + 0x37de5c" (identifier "pcVar13") (+ "+") (number_literal "0x37de5c")) () ")")))) (+ "+") (number_literal "0x44a8"))) (; ";")) (expression_statement "(*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);" (call_expression "(*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec)" (( "(") (identifier "iVar4") (, ",") (number_literal "0x81f") (, ",") (binary_expression "*(int *)(pcVar13 + 0x37de5c) + 0x58ec" (pointer_expression "*(int *)(pcVar13 + 0x37de5c)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37de5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37de5c)" (( "(") (binary_expression "pcVar13 + 0x37de5c" (identifier "pcVar13") (+ "+") (number_literal "0x37de5c")) () ")")))) (+ "+") (number_literal "0x58ec")) () ")"))) (; ";")) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" (if "if") (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3))" (( "(") (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (identifier "uVar9") (< "<") (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (( "(") (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" (* "*") (cast_expression "(int *)(iVar4 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x88)" (( "(") (binary_expression "iVar4 + 0x88" (identifier "iVar4") (+ "+") (number_literal "0x88")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")"))))) (>> ">>") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" ({ "{") (return_statement "return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" (return "return") (pointer_expression "*(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (* "*") (cast_expression "(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (( "(") (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" (identifier "uVar9") (= "=") (number_literal "0x7f7")) (; ";")) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37dfb4);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37dfb4)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x37dfb4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x37dfb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x37dfb4)" (( "(") (binary_expression "pcVar14 + 0x37dfb4" (identifier "pcVar14") (+ "+") (number_literal "0x37dfb4")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar14 + 0x37ddfc) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37ddfc)" (* "*") (cast_expression "(int *)(pcVar14 + 0x37ddfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x37ddfc)" (( "(") (binary_expression "pcVar14 + 0x37ddfc" (identifier "pcVar14") (+ "+") (number_literal "0x37ddfc")) () ")")))) (+ "+") (number_literal "0x44a8"))) (; ";")) (expression_statement "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);" (call_expression "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec)" (( "(") (identifier "iVar4") (, ",") (number_literal "0x7f7") (, ",") (binary_expression "*(int *)(pcVar14 + 0x37ddfc) + 0x5aec" (pointer_expression "*(int *)(pcVar14 + 0x37ddfc)" (* "*") (cast_expression "(int *)(pcVar14 + 0x37ddfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x37ddfc)" (( "(") (binary_expression "pcVar14 + 0x37ddfc" (identifier "pcVar14") (+ "+") (number_literal "0x37ddfc")) () ")")))) (+ "+") (number_literal "0x5aec")) () ")"))) (; ";")) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" (if "if") (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3))" (( "(") (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (identifier "uVar9") (< "<") (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)" (( "(") (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" (* "*") (cast_expression "(int *)(iVar4 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x88)" (( "(") (binary_expression "iVar4 + 0x88" (identifier "iVar4") (+ "+") (number_literal "0x88")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")"))))) (>> ">>") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);\n  }" ({ "{") (return_statement "return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);" (return "return") (pointer_expression "*(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (* "*") (cast_expression "(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 8)" (( "(") (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 8" (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" (identifier "uVar9") (= "=") (number_literal "0x7f7")) (; ";")) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37df54);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37df54)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x37df54)" (* "*") (cast_expression "(code **)(pcVar13 + 0x37df54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x37df54)" (( "(") (binary_expression "pcVar13 + 0x37df54" (identifier "pcVar13") (+ "+") (number_literal "0x37df54")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar13 + 0x37dd9c) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37dd9c)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37dd9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37dd9c)" (( "(") (binary_expression "pcVar13 + 0x37dd9c" (identifier "pcVar13") (+ "+") (number_literal "0x37dd9c")) () ")")))) (+ "+") (number_literal "0x44a8"))) (; ";")) (expression_statement "(*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);" (call_expression "(*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8)" (( "(") (identifier "iVar4") (, ",") (number_literal "0x7f7") (, ",") (binary_expression "*(int *)(pcVar13 + 0x37dd9c) + 0x57b8" (pointer_expression "*(int *)(pcVar13 + 0x37dd9c)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37dd9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37dd9c)" (( "(") (binary_expression "pcVar13 + 0x37dd9c" (identifier "pcVar13") (+ "+") (number_literal "0x37dd9c")) () ")")))) (+ "+") (number_literal "0x57b8")) () ")"))) (; ";")) (if_statement "if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }" (if "if") (parenthesized_expression "(uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2))" (( "(") (binary_expression "uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (identifier "uVar9") (< "<") (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (( "(") (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" (* "*") (cast_expression "(int *)(iVar4 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x88)" (( "(") (binary_expression "iVar4 + 0x88" (identifier "iVar4") (+ "+") (number_literal "0x88")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")"))))) (>> ">>") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n    uVar2 = 0xffffffff;\n    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);\n    if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }\n    return CONCAT44(uVar2,iVar4);\n  }" ({ "{") (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 4)" (( "(") (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 4" (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar4 == -1) {\n      iVar4 = -1;\n    }\n    else {\n      uVar2 = 0;\n    }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      iVar4 = -1;\n    }" ({ "{") (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n      uVar2 = 0;\n    }" (else "else") (compound_statement "{\n      uVar2 = 0;\n    }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")))) (return_statement "return CONCAT44(uVar2,iVar4);" (return "return") (call_expression "CONCAT44(uVar2,iVar4)" (identifier "CONCAT44") (argument_list "(uVar2,iVar4)" (( "(") (identifier "uVar2") (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = 0x7f7;" (assignment_expression "uVar9 = 0x7f7" (identifier "uVar9") (= "=") (number_literal "0x7f7")) (; ";")) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x37def4);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x37def4)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x37def4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x37def4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x37def4)" (( "(") (binary_expression "pcVar14 + 0x37def4" (identifier "pcVar14") (+ "+") (number_literal "0x37def4")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar14 + 0x37dd3c) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x37dd3c)" (* "*") (cast_expression "(int *)(pcVar14 + 0x37dd3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x37dd3c)" (( "(") (binary_expression "pcVar14 + 0x37dd3c" (identifier "pcVar14") (+ "+") (number_literal "0x37dd3c")) () ")")))) (+ "+") (number_literal "0x44a8"))) (; ";")) (expression_statement "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);" (call_expression "(*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534)" (( "(") (identifier "iVar4") (, ",") (number_literal "0x7f7") (, ",") (binary_expression "*(int *)(pcVar14 + 0x37dd3c) + 0x5534" (pointer_expression "*(int *)(pcVar14 + 0x37dd3c)" (* "*") (cast_expression "(int *)(pcVar14 + 0x37dd3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x37dd3c)" (( "(") (binary_expression "pcVar14 + 0x37dd3c" (identifier "pcVar14") (+ "+") (number_literal "0x37dd3c")) () ")")))) (+ "+") (number_literal "0x5534")) () ")"))) (; ";")) (if_statement "if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }" (if "if") (parenthesized_expression "((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9)" (( "(") (binary_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9" (call_expression "(uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)" (( "(") (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2" (binary_expression "*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84)" (pointer_expression "*(int *)(iVar4 + 0x88)" (* "*") (cast_expression "(int *)(iVar4 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x88)" (( "(") (binary_expression "iVar4 + 0x88" (identifier "iVar4") (+ "+") (number_literal "0x88")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")"))))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n    pcVar14 = *(code **)(pcVar13 + 0x37de88);\n    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);\n    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);\n    iVar4 = *(int *)(pcVar14 + 0x37df34);\n    piVar5 = (int *)piVar8[1];\n    *piVar8 = iVar4 + 8;\n    if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }\n                    \n                    \n    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);\n    return uVar15;\n  }" ({ "{") (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x37de88);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x37de88)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x37de88)" (* "*") (cast_expression "(code **)(pcVar13 + 0x37de88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x37de88)" (( "(") (binary_expression "pcVar13 + 0x37de88" (identifier "pcVar13") (+ "+") (number_literal "0x37de88")) () ")"))))) (; ";")) (expression_statement "piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);" (assignment_expression "piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" (identifier "piVar8") (= "=") (cast_expression "(int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8)" (( "(") (binary_expression "*(int *)(pcVar13 + 0x37dcd0) + 0x44a8" (pointer_expression "*(int *)(pcVar13 + 0x37dcd0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37dcd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37dcd0)" (( "(") (binary_expression "pcVar13 + 0x37dcd0" (identifier "pcVar13") (+ "+") (number_literal "0x37dcd0")) () ")")))) (+ "+") (number_literal "0x44a8")) () ")")))) (; ";")) (expression_statement "(*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);" (call_expression "(*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0)" (( "(") (identifier "piVar8") (, ",") (number_literal "0x7f7") (, ",") (binary_expression "*(int *)(pcVar13 + 0x37dcd0) + 0x52c0" (pointer_expression "*(int *)(pcVar13 + 0x37dcd0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x37dcd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x37dcd0)" (( "(") (binary_expression "pcVar13 + 0x37dcd0" (identifier "pcVar13") (+ "+") (number_literal "0x37dcd0")) () ")")))) (+ "+") (number_literal "0x52c0")) () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x37df34);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x37df34)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar14 + 0x37df34)" (* "*") (cast_expression "(int *)(pcVar14 + 0x37df34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x37df34)" (( "(") (binary_expression "pcVar14 + 0x37df34" (identifier "pcVar14") (+ "+") (number_literal "0x37df34")) () ")"))))) (; ";")) (expression_statement "piVar5 = (int *)piVar8[1];" (assignment_expression "piVar5 = (int *)piVar8[1]" (identifier "piVar5") (= "=") (cast_expression "(int *)piVar8[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*piVar8 = iVar4 + 8;" (assignment_expression "*piVar8 = iVar4 + 8" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (piVar5 == piVar8 + 3) {\n      return CONCAT44(iVar4 + 8,piVar5);\n    }" (if "if") (parenthesized_expression "(piVar5 == piVar8 + 3)" (( "(") (binary_expression "piVar5 == piVar8 + 3" (identifier "piVar5") (== "==") (binary_expression "piVar8 + 3" (identifier "piVar8") (+ "+") (number_literal "3"))) () ")")) (compound_statement "{\n      return CONCAT44(iVar4 + 8,piVar5);\n    }" ({ "{") (return_statement "return CONCAT44(iVar4 + 8,piVar5);" (return "return") (call_expression "CONCAT44(iVar4 + 8,piVar5)" (identifier "CONCAT44") (argument_list "(iVar4 + 8,piVar5)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) (, ",") (identifier "piVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);" (assignment_expression "uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5)" (identifier "uVar15") (= "=") (call_expression "(**(code **)(pcVar14 + 0x37dce4))(piVar5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x37dce4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x37dce4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x37dce4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x37dce4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x37dce4)" (( "(") (binary_expression "pcVar14 + 0x37dce4" (identifier "pcVar14") (+ "+") (number_literal "0x37dce4")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")")))) (; ";")) (return_statement "return uVar15;" (return "return") (identifier "uVar15") (; ";")) (} "}"))) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x84) + uVar9 * 4)" (( "(") (binary_expression "*(int *)(iVar4 + 0x84) + uVar9 * 4" (pointer_expression "*(int *)(iVar4 + 0x84)" (* "*") (cast_expression "(int *)(iVar4 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar4 == -1) {\n    iVar4 = -1;\n  }\n  else {\n    uVar2 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    iVar4 = -1;\n  }" ({ "{") (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n    uVar2 = 0;\n  }" (else "else") (compound_statement "{\n    uVar2 = 0;\n  }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")))) (return_statement "return CONCAT44(uVar2,iVar4);" (return "return") (call_expression "CONCAT44(uVar2,iVar4)" (identifier "CONCAT44") (argument_list "(uVar2,iVar4)" (( "(") (identifier "uVar2") (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) arguments: (argument_list))) (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))) consequence: (compound_statement (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: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) arguments: (argument_list (identifier) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) arguments: (argument_list (identifier) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) arguments: (argument_list (identifier) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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)))))) (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) arguments: (argument_list (identifier) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) 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: (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: (identifier))) arguments: (argument_list (identifier) (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 (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (return_statement (call_expression function: (identifier) arguments: (argument_list (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 (identifier))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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)))))) (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))

/* gold::Relobj::MASKED(unsigned int) const */

ulonglong __thiscall gold::Relobj::MASKED(Relobj *this,uint param_1)

{
  bool bVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  int iVar4;
  int *piVar5;
  undefined *puVar6;
  int iVar7;
  int *piVar8;
  uint uVar9;
  undefined *puVar10;
  int iVar11;
  int in_a3;
  undefined *puVar12;
  code *pcVar13;
  code *pcVar14;
  ulonglong uVar15;
  
  if (param_1 < (uint)(*(int *)(this + 0x3c) - *(int *)(this + 0x38) >> 2)) {
    puVar3 = (undefined4 *)(*(int *)(this + 0x38) + param_1 * 4);
    return CONCAT44(*puVar3,puVar3);
  }
  uVar9 = 0x5c8;
  puVar10 = PTR_LAB_0043220c + 0x5a90;
  puVar6 = PTR_LAB_0043220c + 0x44a8;
  puVar12 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)();
  iVar4 = *(int *)(puVar6 + 0x84);
  if (uVar9 < (uint)(*(int *)(puVar6 + 0x88) - iVar4 >> 2)) {
    if ((puVar10 == (undefined *)0xffffffff) && (in_a3 == -1)) {
      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);
      *puVar3 = 0xffffffff;
      return CONCAT44(0xffffffff,puVar3);
    }
    if (puVar10 == (undefined *)0x0) {
      piVar5 = (int *)(iVar4 + uVar9 * 4);
      *piVar5 = in_a3;
      return CONCAT44(0xffffffff,piVar5);
    }
  }
  else {
    (**(code **)(puVar12 + 0x37e1d4))
              (*(int *)(puVar12 + 0x37e01c) + 0x44a8,0x81f,*(int *)(puVar12 + 0x37e01c) + 0x5678);
  }
  uVar9 = 0x70;
  pcVar13 = *(code **)(puVar12 + 0x37e1d4);
  iVar11 = *(int *)(puVar12 + 0x37e01c) + 0x5668;
  iVar7 = *(int *)(puVar12 + 0x37e01c) + 0x44bc;
  (*pcVar13)();
  iVar4 = *(int *)(iVar7 + 0x84);
  if (uVar9 < (uint)(*(int *)(iVar7 + 0x88) - iVar4 >> 2)) {
    if ((iVar11 == -1) && (in_a3 == -1)) {
      puVar3 = (undefined4 *)(iVar4 + uVar9 * 4);
      *puVar3 = 0xffffffff;
      return CONCAT44(0xffffffff,puVar3);
    }
    if (iVar11 == 0) {
      piVar5 = (int *)(iVar4 + uVar9 * 4);
      *piVar5 = in_a3;
      return CONCAT44(0xffffffff,piVar5);
    }
  }
  else {
    (**(code **)(pcVar13 + 0x37e124))
              (*(int *)(pcVar13 + 0x37df6c) + 0x44a8,0x81f,*(int *)(pcVar13 + 0x37df6c) + 0x53f4);
  }
  uVar9 = 0x70;
  pcVar14 = *(code **)(pcVar13 + 0x37e124);
  iVar7 = *(int *)(pcVar13 + 0x37df6c) + 0x5668;
  iVar4 = *(int *)(pcVar13 + 0x37df6c) + 0x44bc;
  (*pcVar14)();
  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);
  if (bVar1) {
    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);
    piVar5[1] = in_a3;
    *piVar5 = iVar7;
    return (ulonglong)CONCAT14(bVar1,piVar5);
  }
  uVar9 = 0x81f;
  pcVar13 = *(code **)(pcVar14 + 0x37e074);
  iVar7 = *(int *)(pcVar14 + 0x37debc) + 0x5d60;
  iVar4 = *(int *)(pcVar14 + 0x37debc) + 0x44a8;
  (*pcVar13)();
  bVar1 = uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3);
  if (bVar1) {
    piVar5 = (int *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);
    piVar5[1] = in_a3;
    *piVar5 = iVar7;
    return (ulonglong)CONCAT14(bVar1,piVar5);
  }
  uVar9 = 0x81f;
  pcVar14 = *(code **)(pcVar13 + 0x37e014);
  iVar4 = *(int *)(pcVar13 + 0x37de5c) + 0x44a8;
  (*pcVar14)(iVar4,0x81f,*(int *)(pcVar13 + 0x37de5c) + 0x58ec);
  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {
    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);
  }
  uVar9 = 0x7f7;
  pcVar13 = *(code **)(pcVar14 + 0x37dfb4);
  iVar4 = *(int *)(pcVar14 + 0x37ddfc) + 0x44a8;
  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37ddfc) + 0x5aec);
  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 3)) {
    return *(ulonglong *)(*(int *)(iVar4 + 0x84) + uVar9 * 8);
  }
  uVar9 = 0x7f7;
  pcVar14 = *(code **)(pcVar13 + 0x37df54);
  iVar4 = *(int *)(pcVar13 + 0x37dd9c) + 0x44a8;
  (*pcVar14)(iVar4,0x7f7,*(int *)(pcVar13 + 0x37dd9c) + 0x57b8);
  if (uVar9 < (uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2)) {
    uVar2 = 0xffffffff;
    iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);
    if (iVar4 == -1) {
      iVar4 = -1;
    }
    else {
      uVar2 = 0;
    }
    return CONCAT44(uVar2,iVar4);
  }
  uVar9 = 0x7f7;
  pcVar13 = *(code **)(pcVar14 + 0x37def4);
  iVar4 = *(int *)(pcVar14 + 0x37dd3c) + 0x44a8;
  (*pcVar13)(iVar4,0x7f7,*(int *)(pcVar14 + 0x37dd3c) + 0x5534);
  if ((uint)(*(int *)(iVar4 + 0x88) - *(int *)(iVar4 + 0x84) >> 2) <= uVar9) {
    pcVar14 = *(code **)(pcVar13 + 0x37de88);
    piVar8 = (int *)(*(int *)(pcVar13 + 0x37dcd0) + 0x44a8);
    (*pcVar14)(piVar8,0x7f7,*(int *)(pcVar13 + 0x37dcd0) + 0x52c0);
    iVar4 = *(int *)(pcVar14 + 0x37df34);
    piVar5 = (int *)piVar8[1];
    *piVar8 = iVar4 + 8;
    if (piVar5 == piVar8 + 3) {
      return CONCAT44(iVar4 + 8,piVar5);
    }
                    /* WARNING: Could not recover jumptable at 0x000b45d0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar15 = (**(code **)(pcVar14 + 0x37dce4))(piVar5);
    return uVar15;
  }
  uVar2 = 0xffffffff;
  iVar4 = *(int *)(*(int *)(iVar4 + 0x84) + uVar9 * 4);
  if (iVar4 == -1) {
    iVar4 = -1;
  }
  else {
    uVar2 = 0;
  }
  return CONCAT44(uVar2,iVar4);
}

