
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: bool read_header(Dwarf_pubnames_table * this, off_t offset) */

bool __thiscall gold::Dwarf_pubnames_table::read_header(Dwarf_pubnames_table *this,off_t offset)

{
  undefined1 uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  short sVar6;
  undefined *puVar7;
  uint uVar8;
  _func_int_varargs **pp_Var9;
  int iVar10;
  uchar *puVar11;
  uint uVar12;
  Relobj *pRVar13;
  int in_a2;
  int iVar14;
  Dwarf_info_reader *pDVar15;
  uint in_a3;
  uint *puVar16;
  uint *puVar17;
  _func_int_varargs *p_Var18;
  
  puVar7 = PTR_is_big_endian_004323c8;
  puVar11 = this->buffer_;
  if (puVar11 == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,
                        PTR_s_alize_xindex_004323b4 + -0x5f6c);
  }
  if (-1 < in_a2) {
    uVar8 = (int)this->buffer_end_ - (int)puVar11;
    iVar14 = (uint)(in_a3 + 0xe < in_a3) + in_a2;
    iVar10 = (int)uVar8 >> 0x1f;
    if ((iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))) {
      puVar16 = (uint *)(puVar11 + in_a3);
      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;
      p_Var18 = pp_Var9[3];
      if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {
        iVar10 = (*pp_Var9[0x3a])();
        uVar8 = *puVar16;
      }
      else {
        iVar10 = (*p_Var18)();
        uVar8 = *puVar16;
      }
      if (iVar10 == 0) {
        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +
                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;
      }
      puVar17 = puVar16 + 1;
      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;
      p_Var18 = pp_Var9[3];
      if (uVar8 == 0xffffffff) {
        if (p_Var18 == (_func_int_varargs *)puVar7) {
          iVar10 = (*pp_Var9[0x3a])();
          uVar8 = puVar16[2];
        }
        else {
          iVar10 = (*p_Var18)();
          uVar8 = puVar16[2];
        }
        uVar12 = puVar16[1];
        if (iVar10 == 0) {
          uVar2 = uVar8 & 0xff;
          uVar3 = uVar8 >> 8;
          uVar4 = uVar8 >> 0x10;
          uVar5 = uVar8 >> 0x18;
          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +
                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;
          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000
          ;
        }
        pDVar15 = this->dwinfo_;
        puVar17 = puVar16 + 3;
        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;
        this->offset_size_ = 8;
        pRVar13 = pDVar15->object_;
        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;
        pp_Var9 = (pRVar13->super_Object)._vptr_Object;
        p_Var18 = pp_Var9[3];
      }
      else {
        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;
        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);
        this->offset_size_ = 4;
      }
      puVar11 = (uchar *)((int)puVar17 + uVar8);
      if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {
        puVar11 = this->buffer_end_;
      }
      this->end_of_table_ = puVar11;
      if (p_Var18 == (_func_int_varargs *)puVar7) {
        iVar10 = (*pp_Var9[0x3a])();
        uVar1 = *(undefined1 *)((int)puVar17 + 1);
      }
      else {
        iVar10 = (*p_Var18)();
        uVar1 = *(undefined1 *)((int)puVar17 + 1);
      }
      if (iVar10 == 0) {
        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);
      }
      else {
        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);
      }
      if (sVar6 == 2) {
        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);
        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);
        if (puVar11 < this->buffer_end_) {
          this->pinfo_ = puVar11;
          return true;
        }
      }
    }
  }
  return false;
}



/* gold::Dwarf_pubnames_table::read_header(long long) */

undefined4 gold::Dwarf_pubnames_table::read_header(longlong param_1)

{
  undefined1 uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  short sVar6;
  undefined *puVar7;
  int iVar8;
  uint uVar9;
  int *in_a0;
  int iVar10;
  uint uVar11;
  int *piVar12;
  int in_a2;
  int iVar13;
  uint in_a3;
  uint *puVar14;
  uint *puVar15;
  undefined1 *puVar16;
  code *pcVar17;
  
  puVar7 = PTR_is_big_endian_004323c8;
  iVar10 = in_a0[1];
  if (iVar10 == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,
                        PTR_s_alize_xindex_004323b4 + -0x5f6c);
  }
  if (-1 < in_a2) {
    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;
    iVar8 = in_a0[2] - iVar10 >> 0x1f;
    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {
      puVar14 = (uint *)(iVar10 + in_a3);
      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);
      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {
        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();
        uVar9 = *puVar14;
      }
      else {
        iVar10 = (*pcVar17)();
        uVar9 = *puVar14;
      }
      if (iVar10 == 0) {
        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +
                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;
      }
      puVar15 = puVar14 + 1;
      iVar10 = **(int **)(*in_a0 + 8);
      pcVar17 = *(code **)(iVar10 + 0xc);
      if (uVar9 == 0xffffffff) {
        if (pcVar17 == (code *)puVar7) {
          iVar10 = (**(code **)(iVar10 + 0xe8))();
          uVar9 = puVar14[2];
        }
        else {
          iVar10 = (*pcVar17)();
          uVar9 = puVar14[2];
        }
        uVar11 = puVar14[1];
        if (iVar10 == 0) {
          uVar2 = uVar9 & 0xff;
          uVar3 = uVar9 >> 8;
          uVar4 = uVar9 >> 0x10;
          uVar5 = uVar9 >> 0x18;
          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +
                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;
          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000
          ;
        }
        puVar15 = puVar14 + 3;
        in_a0[9] = uVar9 + 0xc;
        in_a0[4] = 8;
        piVar12 = *(int **)(*in_a0 + 8);
        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;
        iVar10 = *piVar12;
        pcVar17 = *(code **)(iVar10 + 0xc);
      }
      else {
        in_a0[9] = uVar9 + 4;
        in_a0[8] = (uint)(uVar9 + 4 < uVar9);
        in_a0[4] = 4;
      }
      puVar16 = (undefined1 *)((int)puVar15 + uVar9);
      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {
        puVar16 = (undefined1 *)in_a0[2];
      }
      in_a0[6] = (int)puVar16;
      if (pcVar17 == (code *)puVar7) {
        iVar10 = (**(code **)(iVar10 + 0xe8))();
        uVar1 = *(undefined1 *)((int)puVar15 + 1);
      }
      else {
        iVar10 = (*pcVar17)();
        uVar1 = *(undefined1 *)((int)puVar15 + 1);
      }
      if (iVar10 == 0) {
        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);
      }
      else {
        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);
      }
      if (sVar6 == 2) {
        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);
        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);
        if (puVar16 < (undefined1 *)in_a0[2]) {
          in_a0[5] = (int)puVar16;
          return 1;
        }
      }
    }
  }
  return 0;
}


lui gp,0x36
addiu gp,gp,0x6d94
addu gp,gp,t9
addiu sp,sp,-0x38
sw s0,0x24(sp)
or s0,a0,zero
sw gp,0x18(sp)
sw ra,0x34(sp)
sw s3,0x30(sp)
sw s2,0x2c(sp)
sw s1,0x28(sp)
lw a0,0x4(a0)
beq a0,zero,0x000d36a4
_li a1,0x22f
bltz a2,0x000d34a8
_nop
lw v0,0x8(s0)
addiu a1,a3,0xe
sltu v1,a1,a3
subu v0,v0,a0
addu a2,v1,a2
sra v1,v0,0x1f
slt t0,a2,v1
bne t0,zero,0x000d34d0
_nop
beq v1,a2,0x000d34c8
_sltu v0,a1,v0
lw ra,0x34(sp)
or v0,zero,zero
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
beq v0,zero,0x000d34ac
_lw ra,0x34(sp)
lw v0,0x0(s0)
addu s1,a0,a3
lw s3,-0x7e08(gp)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,s3,0x000d366c
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lwl v1,0x0(s1)
beq v0,zero,0x000d35f4
_lwr v1,0x3(s1)
lw a0,0x0(s0)
li v0,-0x1
addiu s2,s1,0x4
lw a0,0x8(a0)
lw a1,0x0(a0)
beq v1,v0,0x000d3600
_lw t9,0xc(a1)
addiu v0,v1,0x4
sltu a2,v0,v1
sw v0,0x24(s0)
li v0,0x4
sw a2,0x20(s0)
sw v0,0x10(s0)
lw a2,0x8(s0)
addu v1,s2,v1
sltu v0,a2,v1
movn v1,a2,v0
bne t9,s3,0x000d365c
_sw v1,0x18(s0)
lw t9,0xe8(a1)
jalr t9
_nop
lbu v1,0x1(s2)
bne v0,zero,0x000d35e8
_lbu a0,0x0(s2)
sll v1,v1,0x8
or v1,v1,a0
li v0,0x2
bne v1,v0,0x000d34ac
_lw ra,0x34(sp)
lw v1,0x30(s0)
addiu s2,s2,0x2
lw a3,0x4(s0)
addiu v0,s0,0x28
or a0,v1,zero
lw v1,0x0(v1)
subu a3,s2,a3
sw v0,0x10(sp)
lw t9,0x14(v1)
jalr t9
_sra a2,a3,0x1f
lw v1,0x10(s0)
lw v0,0x8(s0)
sll v1,v1,0x1
addu s2,s2,v1
sltu v0,s2,v0
beq v0,zero,0x000d34a8
_lw ra,0x34(sp)
li v0,0x1
lw s3,0x30(sp)
lw s1,0x28(sp)
sw s2,0x14(s0)
lw s2,0x2c(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
sll a0,a0,0x8
b 0x000d3574
_or v1,a0,v1
wsbh v1,v1
b 0x000d3508
_rotr v1,v1,0x10
bne t9,s3,0x000d3694
_nop
lw t9,0xe8(a1)
jalr t9
_nop
lwl v1,0x8(s1)
lwl a0,0x4(s1)
lwr v1,0xb(s1)
beq v0,zero,0x000d367c
_lwr a0,0x7(s1)
addiu a1,v1,0xc
lw a2,0x0(s0)
addiu s2,s1,0xc
sltu v0,a1,v1
sw a1,0x24(s0)
addu v0,v0,a0
li a0,0x8
sw a0,0x10(s0)
lw a0,0x8(a2)
sw v0,0x20(s0)
lw a1,0x0(a0)
b 0x000d353c
_lw t9,0xc(a1)
jalr t9
_nop
b 0x000d3564
_lbu v1,0x1(s2)
jalr t9
_nop
b 0x000d3500
_lwl v1,0x0(s1)
wsbh v0,a0
wsbh a0,v1
rotr v0,v0,0x10
rotr a0,a0,0x10
b 0x000d3628
_or v1,v0,zero
jalr t9
_nop
b 0x000d3618
_lwl v1,0x8(s1)
lw a2,-0x7e1c(gp)
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x5f6c
bal 0x000eb2f0
_addiu a0,a0,-0x6368
(translation_unit "/* gold::Dwarf_pubnames_table::read_header(long long) */\n\nundefined4 gold::Dwarf_pubnames_table::read_header(longlong param_1)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  int iVar8;\n  uint uVar9;\n  int *in_a0;\n  int iVar10;\n  uint uVar11;\n  int *piVar12;\n  int in_a2;\n  int iVar13;\n  uint in_a3;\n  uint *puVar14;\n  uint *puVar15;\n  undefined1 *puVar16;\n  code *pcVar17;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  iVar10 = in_a0[1];\n  if (iVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }\n  return 0;\n}\n\n" comment (function_definition "undefined4 gold::Dwarf_pubnames_table::read_header(longlong param_1)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  int iVar8;\n  uint uVar9;\n  int *in_a0;\n  int iVar10;\n  uint uVar11;\n  int *piVar12;\n  int in_a2;\n  int iVar13;\n  uint in_a3;\n  uint *puVar14;\n  uint *puVar15;\n  undefined1 *puVar16;\n  code *pcVar17;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  iVar10 = in_a0[1];\n  if (iVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }\n  return 0;\n}" type_identifier (ERROR "gold::Dwarf_pubnames_table::" identifier : : identifier : :) (function_declarator "read_header(longlong param_1)" identifier (parameter_list "(longlong param_1)" ( (parameter_declaration "longlong param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  int iVar8;\n  uint uVar9;\n  int *in_a0;\n  int iVar10;\n  uint uVar11;\n  int *piVar12;\n  int in_a2;\n  int iVar13;\n  uint in_a3;\n  uint *puVar14;\n  uint *puVar15;\n  undefined1 *puVar16;\n  code *pcVar17;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  iVar10 = in_a0[1];\n  if (iVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }\n  return 0;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "short sVar6;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *in_a0;" primitive_type (pointer_declarator "*in_a0" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint in_a3;" type_identifier identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (expression_statement "puVar7 = PTR_is_big_endian_004323c8;" (assignment_expression "puVar7 = PTR_is_big_endian_004323c8" identifier = identifier) ;) (expression_statement "iVar10 = in_a0[1];" (assignment_expression "iVar10 = in_a0[1]" identifier = (subscript_expression "in_a0[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }" { comment (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5f6c" identifier + number_literal) ))) ;) })) (if_statement "if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(-1 < in_a2)" ( (binary_expression "-1 < in_a2" number_literal < identifier) )) (compound_statement "{\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }" { (expression_statement "iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;" (assignment_expression "iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2" identifier = (binary_expression "(uint)(in_a3 + 0xe < in_a3) + in_a2" (call_expression "(uint)(in_a3 + 0xe < in_a3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a3 + 0xe < in_a3)" ( (binary_expression "in_a3 + 0xe < in_a3" (binary_expression "in_a3 + 0xe" identifier + number_literal) < identifier) ))) + identifier)) ;) (expression_statement "iVar8 = in_a0[2] - iVar10 >> 0x1f;" (assignment_expression "iVar8 = in_a0[2] - iVar10 >> 0x1f" identifier = (binary_expression "in_a0[2] - iVar10 >> 0x1f" (binary_expression "in_a0[2] - iVar10" (subscript_expression "in_a0[2]" identifier [ number_literal ]) - identifier) >> number_literal)) ;) (if_statement "if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }" if (parenthesized_expression "((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10)))))" ( (binary_expression "(iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))" (parenthesized_expression "(iVar13 < iVar8)" ( (binary_expression "iVar13 < iVar8" identifier < identifier) )) || (parenthesized_expression "((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))" ( (parenthesized_expression "(iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10)))" ( (binary_expression "iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))" (binary_expression "iVar8 == iVar13" identifier == identifier) && (parenthesized_expression "(in_a3 + 0xe < (uint)(in_a0[2] - iVar10))" ( (binary_expression "in_a3 + 0xe < (uint)(in_a0[2] - iVar10)" (binary_expression "in_a3 + 0xe" identifier + number_literal) < (call_expression "(uint)(in_a0[2] - iVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a0[2] - iVar10)" ( (binary_expression "in_a0[2] - iVar10" (subscript_expression "in_a0[2]" identifier [ number_literal ]) - identifier) )))) ))) )) ))) )) (compound_statement "{\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }" { (expression_statement "puVar14 = (uint *)(iVar10 + in_a3);" (assignment_expression "puVar14 = (uint *)(iVar10 + in_a3)" identifier = (cast_expression "(uint *)(iVar10 + in_a3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + in_a3)" ( (binary_expression "iVar10 + in_a3" identifier + identifier) )))) ;) (expression_statement "pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);" (assignment_expression "pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*in_a0 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*in_a0 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*in_a0 + 8) + 0xc)" ( (binary_expression "**(int **)(*in_a0 + 8) + 0xc" (pointer_expression "**(int **)(*in_a0 + 8)" * (pointer_expression "*(int **)(*in_a0 + 8)" * (cast_expression "(int **)(*in_a0 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_a0 + 8)" ( (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" if (parenthesized_expression "(pcVar17 == (code *)PTR_is_big_endian_004323c8)" ( (binary_expression "pcVar17 == (code *)PTR_is_big_endian_004323c8" identifier == (cast_expression "(code *)PTR_is_big_endian_004323c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }" { (expression_statement "iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*in_a0 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*in_a0 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*in_a0 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*in_a0 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*in_a0 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*in_a0 + 8) + 0xe8)" ( (binary_expression "**(int **)(*in_a0 + 8) + 0xe8" (pointer_expression "**(int **)(*in_a0 + 8)" * (pointer_expression "*(int **)(*in_a0 + 8)" * (cast_expression "(int **)(*in_a0 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_a0 + 8)" ( (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) }) (else_clause "else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" else (compound_statement "{\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" { (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" identifier = (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) }))) (if_statement "if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }" { (expression_statement "uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10)" ( (binary_expression "(uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10" (binary_expression "(uVar9 >> 0x10) << 0x18" (parenthesized_expression "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar9 >> 0x18) << 0x10" (parenthesized_expression "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff)" ( (binary_expression "(uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff" (binary_expression "(uVar9 & 0xff) << 8" (parenthesized_expression "(uVar9 & 0xff)" ( (binary_expression "uVar9 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar9 >> 8 & 0xff" (binary_expression "uVar9 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "puVar15 = puVar14 + 1;" (assignment_expression "puVar15 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = **(int **)(*in_a0 + 8);" (assignment_expression "iVar10 = **(int **)(*in_a0 + 8)" identifier = (pointer_expression "**(int **)(*in_a0 + 8)" * (pointer_expression "*(int **)(*in_a0 + 8)" * (cast_expression "(int **)(*in_a0 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_a0 + 8)" ( (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" * identifier) + number_literal) )))))) ;) (expression_statement "pcVar17 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar17 = *(code **)(iVar10 + 0xc)" identifier = (pointer_expression "*(code **)(iVar10 + 0xc)" * (cast_expression "(code **)(iVar10 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }" { (if_statement "if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" if (parenthesized_expression "(pcVar17 == (code *)puVar7)" ( (binary_expression "pcVar17 == (code *)puVar7" identifier == (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }" { (expression_statement "iVar10 = (**(code **)(iVar10 + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(iVar10 + 0xe8))()" identifier = (call_expression "(**(code **)(iVar10 + 0xe8))()" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" ( (pointer_expression "**(code **)(iVar10 + 0xe8)" * (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = puVar14[2];" (assignment_expression "uVar9 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" else (compound_statement "{\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" { (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" identifier = (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = puVar14[2];" (assignment_expression "uVar9 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar11 = puVar14[1];" (assignment_expression "uVar11 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }" { (expression_statement "uVar2 = uVar9 & 0xff;" (assignment_expression "uVar2 = uVar9 & 0xff" identifier = (binary_expression "uVar9 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar3 = uVar9 >> 8;" (assignment_expression "uVar3 = uVar9 >> 8" identifier = (binary_expression "uVar9 >> 8" identifier >> number_literal)) ;) (expression_statement "uVar4 = uVar9 >> 0x10;" (assignment_expression "uVar4 = uVar9 >> 0x10" identifier = (binary_expression "uVar9 >> 0x10" identifier >> number_literal)) ;) (expression_statement "uVar5 = uVar9 >> 0x18;" (assignment_expression "uVar5 = uVar9 >> 0x18" identifier = (binary_expression "uVar9 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10)" ( (binary_expression "(uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10" (binary_expression "(uVar11 >> 0x10) << 0x18" (parenthesized_expression "(uVar11 >> 0x10)" ( (binary_expression "uVar11 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar11 >> 0x18) << 0x10" (parenthesized_expression "(uVar11 >> 0x18)" ( (binary_expression "uVar11 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff)" ( (binary_expression "(uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff" (binary_expression "(uVar11 & 0xff) << 8" (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar11 >> 8 & 0xff" (binary_expression "uVar11 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;" (assignment_expression "uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000" identifier = (binary_expression "((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10)" ( (binary_expression "(uVar4 << 0x18 | uVar5 << 0x10) >> 0x10" (parenthesized_expression "(uVar4 << 0x18 | uVar5 << 0x10)" ( (binary_expression "uVar4 << 0x18 | uVar5 << 0x10" (binary_expression "uVar4 << 0x18" identifier << number_literal) | (binary_expression "uVar5 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar2 << 8 | uVar3 & 0xff) * 0x10000" (parenthesized_expression "(uVar2 << 8 | uVar3 & 0xff)" ( (binary_expression "uVar2 << 8 | uVar3 & 0xff" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar3 & 0xff" identifier & number_literal)) )) * number_literal))) ;) })) (expression_statement "puVar15 = puVar14 + 3;" (assignment_expression "puVar15 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) (expression_statement "in_a0[9] = uVar9 + 0xc;" (assignment_expression "in_a0[9] = uVar9 + 0xc" (subscript_expression "in_a0[9]" identifier [ number_literal ]) = (binary_expression "uVar9 + 0xc" identifier + number_literal)) ;) (expression_statement "in_a0[4] = 8;" (assignment_expression "in_a0[4] = 8" (subscript_expression "in_a0[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12 = *(int **)(*in_a0 + 8);" (assignment_expression "piVar12 = *(int **)(*in_a0 + 8)" identifier = (pointer_expression "*(int **)(*in_a0 + 8)" * (cast_expression "(int **)(*in_a0 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_a0 + 8)" ( (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" * identifier) + number_literal) ))))) ;) (expression_statement "in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;" (assignment_expression "in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11" (subscript_expression "in_a0[8]" identifier [ number_literal ]) = (binary_expression "(uVar9 + 0xc < uVar9) + uVar11" (parenthesized_expression "(uVar9 + 0xc < uVar9)" ( (binary_expression "uVar9 + 0xc < uVar9" (binary_expression "uVar9 + 0xc" identifier + number_literal) < identifier) )) + identifier)) ;) (expression_statement "iVar10 = *piVar12;" (assignment_expression "iVar10 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar17 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar17 = *(code **)(iVar10 + 0xc)" identifier = (pointer_expression "*(code **)(iVar10 + 0xc)" * (cast_expression "(code **)(iVar10 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" else (compound_statement "{\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" { (expression_statement "in_a0[9] = uVar9 + 4;" (assignment_expression "in_a0[9] = uVar9 + 4" (subscript_expression "in_a0[9]" identifier [ number_literal ]) = (binary_expression "uVar9 + 4" identifier + number_literal)) ;) (expression_statement "in_a0[8] = (uint)(uVar9 + 4 < uVar9);" (assignment_expression "in_a0[8] = (uint)(uVar9 + 4 < uVar9)" (subscript_expression "in_a0[8]" identifier [ number_literal ]) = (call_expression "(uint)(uVar9 + 4 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 + 4 < uVar9)" ( (binary_expression "uVar9 + 4 < uVar9" (binary_expression "uVar9 + 4" identifier + number_literal) < identifier) )))) ;) (expression_statement "in_a0[4] = 4;" (assignment_expression "in_a0[4] = 4" (subscript_expression "in_a0[4]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "puVar16 = (undefined1 *)((int)puVar15 + uVar9);" (assignment_expression "puVar16 = (undefined1 *)((int)puVar15 + uVar9)" identifier = (cast_expression "(undefined1 *)((int)puVar15 + uVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + uVar9)" ( (binary_expression "(int)puVar15 + uVar9" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }" if (parenthesized_expression "((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9))" ( (binary_expression "(undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)" (cast_expression "(undefined1 *)in_a0[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[2]" identifier [ number_literal ])) < (cast_expression "(undefined1 *)((int)puVar15 + uVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + uVar9)" ( (binary_expression "(int)puVar15 + uVar9" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )) (compound_statement "{\n        puVar16 = (undefined1 *)in_a0[2];\n      }" { (expression_statement "puVar16 = (undefined1 *)in_a0[2];" (assignment_expression "puVar16 = (undefined1 *)in_a0[2]" identifier = (cast_expression "(undefined1 *)in_a0[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[2]" identifier [ number_literal ]))) ;) })) (expression_statement "in_a0[6] = (int)puVar16;" (assignment_expression "in_a0[6] = (int)puVar16" (subscript_expression "in_a0[6]" identifier [ number_literal ]) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" if (parenthesized_expression "(pcVar17 == (code *)puVar7)" ( (binary_expression "pcVar17 == (code *)puVar7" identifier == (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" { (expression_statement "iVar10 = (**(code **)(iVar10 + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(iVar10 + 0xe8))()" identifier = (call_expression "(**(code **)(iVar10 + 0xe8))()" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" ( (pointer_expression "**(code **)(iVar10 + 0xe8)" * (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar1 = *(undefined1 *)((int)puVar15 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar15 + 1)" identifier = (pointer_expression "*(undefined1 *)((int)puVar15 + 1)" * (cast_expression "(undefined1 *)((int)puVar15 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 1)" ( (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" else (compound_statement "{\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" { (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" identifier = (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar1 = *(undefined1 *)((int)puVar15 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar15 + 1)" identifier = (pointer_expression "*(undefined1 *)((int)puVar15 + 1)" * (cast_expression "(undefined1 *)((int)puVar15 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 1)" ( (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }" { (expression_statement "sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);" (assignment_expression "sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15)" identifier = (call_expression "CONCAT11(uVar1,*(undefined1 *)puVar15)" identifier (argument_list "(uVar1,*(undefined1 *)puVar15)" ( identifier , (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) }) (else_clause "else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" else (compound_statement "{\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" { (expression_statement "sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);" (assignment_expression "sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1)" identifier = (call_expression "CONCAT11(*(undefined1 *)puVar15,uVar1)" identifier (argument_list "(*(undefined1 *)puVar15,uVar1)" ( (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) ;) }))) (if_statement "if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }" if (parenthesized_expression "(sVar6 == 2)" ( (binary_expression "sVar6 == 2" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }" { (expression_statement "(**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);" (call_expression "(**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc])" (parenthesized_expression "(**(code **)(*(int *)in_a0[0xc] + 0x14))" ( (pointer_expression "**(code **)(*(int *)in_a0[0xc] + 0x14)" * (pointer_expression "*(code **)(*(int *)in_a0[0xc] + 0x14)" * (cast_expression "(code **)(*(int *)in_a0[0xc] + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)in_a0[0xc] + 0x14)" ( (binary_expression "*(int *)in_a0[0xc] + 0x14" (pointer_expression "*(int *)in_a0[0xc]" * (cast_expression "(int *)in_a0[0xc]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[0xc]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)in_a0[0xc])" ( (cast_expression "(int *)in_a0[0xc]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[0xc]" identifier [ number_literal ])) ))) ;) (expression_statement "puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);" (assignment_expression "puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2)" identifier = (cast_expression "(undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + in_a0[4] * 2 + 2)" ( (binary_expression "(int)puVar15 + in_a0[4] * 2 + 2" (binary_expression "(int)puVar15 + in_a0[4] * 2" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "in_a0[4] * 2" (subscript_expression "in_a0[4]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) ;) (if_statement "if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }" if (parenthesized_expression "(puVar16 < (undefined1 *)in_a0[2])" ( (binary_expression "puVar16 < (undefined1 *)in_a0[2]" identifier < (cast_expression "(undefined1 *)in_a0[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[2]" identifier [ number_literal ]))) )) (compound_statement "{\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }" { (expression_statement "in_a0[5] = (int)puVar16;" (assignment_expression "in_a0[5] = (int)puVar16" (subscript_expression "in_a0[5]" identifier [ number_literal ]) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return 1;" return number_literal ;) })) })) })) })) (return_statement "return 0;" return number_literal ;) })))
(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: bool read_header(Dwarf_pubnames_table * this, off_t offset) */\n\nbool __thiscall gold::Dwarf_pubnames_table::read_header(Dwarf_pubnames_table *this,off_t offset)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  uint uVar8;\n  _func_int_varargs **pp_Var9;\n  int iVar10;\n  uchar *puVar11;\n  uint uVar12;\n  Relobj *pRVar13;\n  int in_a2;\n  int iVar14;\n  Dwarf_info_reader *pDVar15;\n  uint in_a3;\n  uint *puVar16;\n  uint *puVar17;\n  _func_int_varargs *p_Var18;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  puVar11 = this->buffer_;\n  if (puVar11 == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    uVar8 = (int)this->buffer_end_ - (int)puVar11;\n    iVar14 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar10 = (int)uVar8 >> 0x1f;\n    if ((iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))) {\n      puVar16 = (uint *)(puVar11 + in_a3);\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }\n      if (iVar10 == 0) {\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }\n      puVar17 = puVar16 + 1;\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (uVar8 == 0xffffffff) {\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }\n      else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }\n      puVar11 = (uchar *)((int)puVar17 + uVar8);\n      if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {\n        puVar11 = this->buffer_end_;\n      }\n      this->end_of_table_ = puVar11;\n      if (p_Var18 == (_func_int_varargs *)puVar7) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }\n      if (sVar6 == 2) {\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }\n    }\n  }\n  return false;\n}\n\n" comment comment comment (function_definition "bool __thiscall gold::Dwarf_pubnames_table::read_header(Dwarf_pubnames_table *this,off_t offset)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  uint uVar8;\n  _func_int_varargs **pp_Var9;\n  int iVar10;\n  uchar *puVar11;\n  uint uVar12;\n  Relobj *pRVar13;\n  int in_a2;\n  int iVar14;\n  Dwarf_info_reader *pDVar15;\n  uint in_a3;\n  uint *puVar16;\n  uint *puVar17;\n  _func_int_varargs *p_Var18;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  puVar11 = this->buffer_;\n  if (puVar11 == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    uVar8 = (int)this->buffer_end_ - (int)puVar11;\n    iVar14 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar10 = (int)uVar8 >> 0x1f;\n    if ((iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))) {\n      puVar16 = (uint *)(puVar11 + in_a3);\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }\n      if (iVar10 == 0) {\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }\n      puVar17 = puVar16 + 1;\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (uVar8 == 0xffffffff) {\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }\n      else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }\n      puVar11 = (uchar *)((int)puVar17 + uVar8);\n      if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {\n        puVar11 = this->buffer_end_;\n      }\n      this->end_of_table_ = puVar11;\n      if (p_Var18 == (_func_int_varargs *)puVar7) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }\n      if (sVar6 == 2) {\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }\n    }\n  }\n  return false;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwarf_pubnames_table::" identifier : : identifier : :) (function_declarator "read_header(Dwarf_pubnames_table *this,off_t offset)" identifier (parameter_list "(Dwarf_pubnames_table *this,off_t offset)" ( (parameter_declaration "Dwarf_pubnames_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "off_t offset" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  uint uVar8;\n  _func_int_varargs **pp_Var9;\n  int iVar10;\n  uchar *puVar11;\n  uint uVar12;\n  Relobj *pRVar13;\n  int in_a2;\n  int iVar14;\n  Dwarf_info_reader *pDVar15;\n  uint in_a3;\n  uint *puVar16;\n  uint *puVar17;\n  _func_int_varargs *p_Var18;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  puVar11 = this->buffer_;\n  if (puVar11 == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    uVar8 = (int)this->buffer_end_ - (int)puVar11;\n    iVar14 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar10 = (int)uVar8 >> 0x1f;\n    if ((iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))) {\n      puVar16 = (uint *)(puVar11 + in_a3);\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }\n      if (iVar10 == 0) {\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }\n      puVar17 = puVar16 + 1;\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (uVar8 == 0xffffffff) {\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }\n      else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }\n      puVar11 = (uchar *)((int)puVar17 + uVar8);\n      if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {\n        puVar11 = this->buffer_end_;\n      }\n      this->end_of_table_ = puVar11;\n      if (p_Var18 == (_func_int_varargs *)puVar7) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }\n      if (sVar6 == 2) {\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }\n    }\n  }\n  return false;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "short sVar6;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var9;" type_identifier (pointer_declarator "**pp_Var9" * (pointer_declarator "*pp_Var9" * identifier)) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uchar *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "Relobj *pRVar13;" type_identifier (pointer_declarator "*pRVar13" * identifier) ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "Dwarf_info_reader *pDVar15;" type_identifier (pointer_declarator "*pDVar15" * identifier) ;) (declaration "uint in_a3;" type_identifier identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "_func_int_varargs *p_Var18;" type_identifier (pointer_declarator "*p_Var18" * identifier) ;) (expression_statement "puVar7 = PTR_is_big_endian_004323c8;" (assignment_expression "puVar7 = PTR_is_big_endian_004323c8" identifier = identifier) ;) (expression_statement "puVar11 = this->buffer_;" (assignment_expression "puVar11 = this->buffer_" identifier = (field_expression "this->buffer_" identifier -> field_identifier)) ;) (if_statement "if (puVar11 == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }" if (parenthesized_expression "(puVar11 == (uchar *)0x0)" ( (binary_expression "puVar11 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }" { comment (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5f6c" identifier + number_literal) ))) ;) })) (if_statement "if (-1 < in_a2) {\n    uVar8 = (int)this->buffer_end_ - (int)puVar11;\n    iVar14 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar10 = (int)uVar8 >> 0x1f;\n    if ((iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))) {\n      puVar16 = (uint *)(puVar11 + in_a3);\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }\n      if (iVar10 == 0) {\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }\n      puVar17 = puVar16 + 1;\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (uVar8 == 0xffffffff) {\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }\n      else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }\n      puVar11 = (uchar *)((int)puVar17 + uVar8);\n      if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {\n        puVar11 = this->buffer_end_;\n      }\n      this->end_of_table_ = puVar11;\n      if (p_Var18 == (_func_int_varargs *)puVar7) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }\n      if (sVar6 == 2) {\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(-1 < in_a2)" ( (binary_expression "-1 < in_a2" number_literal < identifier) )) (compound_statement "{\n    uVar8 = (int)this->buffer_end_ - (int)puVar11;\n    iVar14 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar10 = (int)uVar8 >> 0x1f;\n    if ((iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))) {\n      puVar16 = (uint *)(puVar11 + in_a3);\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }\n      if (iVar10 == 0) {\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }\n      puVar17 = puVar16 + 1;\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (uVar8 == 0xffffffff) {\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }\n      else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }\n      puVar11 = (uchar *)((int)puVar17 + uVar8);\n      if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {\n        puVar11 = this->buffer_end_;\n      }\n      this->end_of_table_ = puVar11;\n      if (p_Var18 == (_func_int_varargs *)puVar7) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }\n      if (sVar6 == 2) {\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }\n    }\n  }" { (expression_statement "uVar8 = (int)this->buffer_end_ - (int)puVar11;" (assignment_expression "uVar8 = (int)this->buffer_end_ - (int)puVar11" identifier = (binary_expression "(int)this->buffer_end_ - (int)puVar11" (cast_expression "(int)this->buffer_end_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->buffer_end_" identifier -> field_identifier)) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar14 = (uint)(in_a3 + 0xe < in_a3) + in_a2;" (assignment_expression "iVar14 = (uint)(in_a3 + 0xe < in_a3) + in_a2" identifier = (binary_expression "(uint)(in_a3 + 0xe < in_a3) + in_a2" (call_expression "(uint)(in_a3 + 0xe < in_a3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a3 + 0xe < in_a3)" ( (binary_expression "in_a3 + 0xe < in_a3" (binary_expression "in_a3 + 0xe" identifier + number_literal) < identifier) ))) + identifier)) ;) (expression_statement "iVar10 = (int)uVar8 >> 0x1f;" (assignment_expression "iVar10 = (int)uVar8 >> 0x1f" identifier = (binary_expression "(int)uVar8 >> 0x1f" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if ((iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))) {\n      puVar16 = (uint *)(puVar11 + in_a3);\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }\n      if (iVar10 == 0) {\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }\n      puVar17 = puVar16 + 1;\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (uVar8 == 0xffffffff) {\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }\n      else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }\n      puVar11 = (uchar *)((int)puVar17 + uVar8);\n      if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {\n        puVar11 = this->buffer_end_;\n      }\n      this->end_of_table_ = puVar11;\n      if (p_Var18 == (_func_int_varargs *)puVar7) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }\n      if (sVar6 == 2) {\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }\n    }" if (parenthesized_expression "((iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8))))" ( (binary_expression "(iVar14 < iVar10) || ((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))" (parenthesized_expression "(iVar14 < iVar10)" ( (binary_expression "iVar14 < iVar10" identifier < identifier) )) || (parenthesized_expression "((iVar10 == iVar14 && (in_a3 + 0xe < uVar8)))" ( (parenthesized_expression "(iVar10 == iVar14 && (in_a3 + 0xe < uVar8))" ( (binary_expression "iVar10 == iVar14 && (in_a3 + 0xe < uVar8)" (binary_expression "iVar10 == iVar14" identifier == identifier) && (parenthesized_expression "(in_a3 + 0xe < uVar8)" ( (binary_expression "in_a3 + 0xe < uVar8" (binary_expression "in_a3 + 0xe" identifier + number_literal) < identifier) ))) )) ))) )) (compound_statement "{\n      puVar16 = (uint *)(puVar11 + in_a3);\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }\n      if (iVar10 == 0) {\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }\n      puVar17 = puVar16 + 1;\n      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n      p_Var18 = pp_Var9[3];\n      if (uVar8 == 0xffffffff) {\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }\n      else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }\n      puVar11 = (uchar *)((int)puVar17 + uVar8);\n      if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {\n        puVar11 = this->buffer_end_;\n      }\n      this->end_of_table_ = puVar11;\n      if (p_Var18 == (_func_int_varargs *)puVar7) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }\n      if (sVar6 == 2) {\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }\n    }" { (expression_statement "puVar16 = (uint *)(puVar11 + in_a3);" (assignment_expression "puVar16 = (uint *)(puVar11 + in_a3)" identifier = (cast_expression "(uint *)(puVar11 + in_a3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + in_a3)" ( (binary_expression "puVar11 + in_a3" identifier + identifier) )))) ;) (expression_statement "pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var18 = pp_Var9[3];" (assignment_expression "p_Var18 = pp_Var9[3]" identifier = (subscript_expression "pp_Var9[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }" if (parenthesized_expression "(p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8)" ( (binary_expression "p_Var18 == (_func_int_varargs *)PTR_is_big_endian_004323c8" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004323c8" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar8 = *puVar16;\n      }" { (expression_statement "iVar10 = (*pp_Var9[0x3a])();" (assignment_expression "iVar10 = (*pp_Var9[0x3a])()" identifier = (call_expression "(*pp_Var9[0x3a])()" (parenthesized_expression "(*pp_Var9[0x3a])" ( (pointer_expression "*pp_Var9[0x3a]" * (subscript_expression "pp_Var9[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = *puVar16;" (assignment_expression "uVar8 = *puVar16" identifier = (pointer_expression "*puVar16" * identifier)) ;) }) (else_clause "else {\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }" else (compound_statement "{\n        iVar10 = (*p_Var18)();\n        uVar8 = *puVar16;\n      }" { (expression_statement "iVar10 = (*p_Var18)();" (assignment_expression "iVar10 = (*p_Var18)()" identifier = (call_expression "(*p_Var18)()" (parenthesized_expression "(*p_Var18)" ( (pointer_expression "*p_Var18" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = *puVar16;" (assignment_expression "uVar8 = *puVar16" identifier = (pointer_expression "*puVar16" * identifier)) ;) }))) (if_statement "if (iVar10 == 0) {\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;\n      }" { (expression_statement "uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar8 = (((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10)" ( (binary_expression "(uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10" (binary_expression "(uVar8 >> 0x10) << 0x18" (parenthesized_expression "(uVar8 >> 0x10)" ( (binary_expression "uVar8 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar8 >> 0x18) << 0x10" (parenthesized_expression "(uVar8 >> 0x18)" ( (binary_expression "uVar8 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff)" ( (binary_expression "(uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff" (binary_expression "(uVar8 & 0xff) << 8" (parenthesized_expression "(uVar8 & 0xff)" ( (binary_expression "uVar8 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar8 >> 8 & 0xff" (binary_expression "uVar8 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "puVar17 = puVar16 + 1;" (assignment_expression "puVar17 = puVar16 + 1" identifier = (binary_expression "puVar16 + 1" identifier + number_literal)) ;) (expression_statement "pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var18 = pp_Var9[3];" (assignment_expression "p_Var18 = pp_Var9[3]" identifier = (subscript_expression "pp_Var9[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0xffffffff) {\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }\n      else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }\n        uVar12 = puVar16[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        pDVar15 = this->dwinfo_;\n        puVar17 = puVar16 + 3;\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;\n        this->offset_size_ = 8;\n        pRVar13 = pDVar15->object_;\n        *(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;\n        pp_Var9 = (pRVar13->super_Object)._vptr_Object;\n        p_Var18 = pp_Var9[3];\n      }" { (if_statement "if (p_Var18 == (_func_int_varargs *)puVar7) {\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }\n        else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }" if (parenthesized_expression "(p_Var18 == (_func_int_varargs *)puVar7)" ( (binary_expression "p_Var18 == (_func_int_varargs *)puVar7" identifier == (cast_expression "(_func_int_varargs *)puVar7" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar10 = (*pp_Var9[0x3a])();\n          uVar8 = puVar16[2];\n        }" { (expression_statement "iVar10 = (*pp_Var9[0x3a])();" (assignment_expression "iVar10 = (*pp_Var9[0x3a])()" identifier = (call_expression "(*pp_Var9[0x3a])()" (parenthesized_expression "(*pp_Var9[0x3a])" ( (pointer_expression "*pp_Var9[0x3a]" * (subscript_expression "pp_Var9[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = puVar16[2];" (assignment_expression "uVar8 = puVar16[2]" identifier = (subscript_expression "puVar16[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }" else (compound_statement "{\n          iVar10 = (*p_Var18)();\n          uVar8 = puVar16[2];\n        }" { (expression_statement "iVar10 = (*p_Var18)();" (assignment_expression "iVar10 = (*p_Var18)()" identifier = (call_expression "(*p_Var18)()" (parenthesized_expression "(*p_Var18)" ( (pointer_expression "*p_Var18" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = puVar16[2];" (assignment_expression "uVar8 = puVar16[2]" identifier = (subscript_expression "puVar16[2]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar12 = puVar16[1];" (assignment_expression "uVar12 = puVar16[1]" identifier = (subscript_expression "puVar16[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 0) {\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar2 = uVar8 & 0xff;\n          uVar3 = uVar8 >> 8;\n          uVar4 = uVar8 >> 0x10;\n          uVar5 = uVar8 >> 0x18;\n          uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n          uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }" { (expression_statement "uVar2 = uVar8 & 0xff;" (assignment_expression "uVar2 = uVar8 & 0xff" identifier = (binary_expression "uVar8 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar3 = uVar8 >> 8;" (assignment_expression "uVar3 = uVar8 >> 8" identifier = (binary_expression "uVar8 >> 8" identifier >> number_literal)) ;) (expression_statement "uVar4 = uVar8 >> 0x10;" (assignment_expression "uVar4 = uVar8 >> 0x10" identifier = (binary_expression "uVar8 >> 0x10" identifier >> number_literal)) ;) (expression_statement "uVar5 = uVar8 >> 0x18;" (assignment_expression "uVar5 = uVar8 >> 0x18" identifier = (binary_expression "uVar8 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar8 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10)" ( (binary_expression "(uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10" (binary_expression "(uVar12 >> 0x10) << 0x18" (parenthesized_expression "(uVar12 >> 0x10)" ( (binary_expression "uVar12 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar12 >> 0x18) << 0x10" (parenthesized_expression "(uVar12 >> 0x18)" ( (binary_expression "uVar12 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff)" ( (binary_expression "(uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff" (binary_expression "(uVar12 & 0xff) << 8" (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar12 >> 8 & 0xff" (binary_expression "uVar12 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;" (assignment_expression "uVar12 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000" identifier = (binary_expression "((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10)" ( (binary_expression "(uVar4 << 0x18 | uVar5 << 0x10) >> 0x10" (parenthesized_expression "(uVar4 << 0x18 | uVar5 << 0x10)" ( (binary_expression "uVar4 << 0x18 | uVar5 << 0x10" (binary_expression "uVar4 << 0x18" identifier << number_literal) | (binary_expression "uVar5 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar2 << 8 | uVar3 & 0xff) * 0x10000" (parenthesized_expression "(uVar2 << 8 | uVar3 & 0xff)" ( (binary_expression "uVar2 << 8 | uVar3 & 0xff" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar3 & 0xff" identifier & number_literal)) )) * number_literal))) ;) })) (expression_statement "pDVar15 = this->dwinfo_;" (assignment_expression "pDVar15 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "puVar17 = puVar16 + 3;" (assignment_expression "puVar17 = puVar16 + 3" identifier = (binary_expression "puVar16 + 3" identifier + number_literal)) ;) (expression_statement "*(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc;" (assignment_expression "*(uint *)((int)&this->unit_length_ + 4) = uVar8 + 0xc" (pointer_expression "*(uint *)((int)&this->unit_length_ + 4)" * (cast_expression "(uint *)((int)&this->unit_length_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->unit_length_ + 4)" ( (binary_expression "(int)&this->unit_length_ + 4" (cast_expression "(int)&this->unit_length_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->unit_length_" & (field_expression "this->unit_length_" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "uVar8 + 0xc" identifier + number_literal)) ;) (expression_statement "this->offset_size_ = 8;" (assignment_expression "this->offset_size_ = 8" (field_expression "this->offset_size_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pRVar13 = pDVar15->object_;" (assignment_expression "pRVar13 = pDVar15->object_" identifier = (field_expression "pDVar15->object_" identifier -> field_identifier)) ;) (expression_statement "*(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12;" (assignment_expression "*(uint *)&this->unit_length_ = (uVar8 + 0xc < uVar8) + uVar12" (pointer_expression "*(uint *)&this->unit_length_" * (cast_expression "(uint *)&this->unit_length_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->unit_length_" & (field_expression "this->unit_length_" identifier -> field_identifier)))) = (binary_expression "(uVar8 + 0xc < uVar8) + uVar12" (parenthesized_expression "(uVar8 + 0xc < uVar8)" ( (binary_expression "uVar8 + 0xc < uVar8" (binary_expression "uVar8 + 0xc" identifier + number_literal) < identifier) )) + identifier)) ;) (expression_statement "pp_Var9 = (pRVar13->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (pRVar13->super_Object)._vptr_Object" identifier = (field_expression "(pRVar13->super_Object)._vptr_Object" (parenthesized_expression "(pRVar13->super_Object)" ( (field_expression "pRVar13->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var18 = pp_Var9[3];" (assignment_expression "p_Var18 = pp_Var9[3]" identifier = (subscript_expression "pp_Var9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }" else (compound_statement "{\n        *(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;\n        *(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);\n        this->offset_size_ = 4;\n      }" { (expression_statement "*(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4;" (assignment_expression "*(uint *)((int)&this->unit_length_ + 4) = uVar8 + 4" (pointer_expression "*(uint *)((int)&this->unit_length_ + 4)" * (cast_expression "(uint *)((int)&this->unit_length_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->unit_length_ + 4)" ( (binary_expression "(int)&this->unit_length_ + 4" (cast_expression "(int)&this->unit_length_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->unit_length_" & (field_expression "this->unit_length_" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "uVar8 + 4" identifier + number_literal)) ;) (expression_statement "*(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8);" (assignment_expression "*(uint *)&this->unit_length_ = (uint)(uVar8 + 4 < uVar8)" (pointer_expression "*(uint *)&this->unit_length_" * (cast_expression "(uint *)&this->unit_length_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->unit_length_" & (field_expression "this->unit_length_" identifier -> field_identifier)))) = (call_expression "(uint)(uVar8 + 4 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 + 4 < uVar8)" ( (binary_expression "uVar8 + 4 < uVar8" (binary_expression "uVar8 + 4" identifier + number_literal) < identifier) )))) ;) (expression_statement "this->offset_size_ = 4;" (assignment_expression "this->offset_size_ = 4" (field_expression "this->offset_size_" identifier -> field_identifier) = number_literal) ;) }))) (expression_statement "puVar11 = (uchar *)((int)puVar17 + uVar8);" (assignment_expression "puVar11 = (uchar *)((int)puVar17 + uVar8)" identifier = (cast_expression "(uchar *)((int)puVar17 + uVar8)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + uVar8)" ( (binary_expression "(int)puVar17 + uVar8" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)) {\n        puVar11 = this->buffer_end_;\n      }" if (parenthesized_expression "(this->buffer_end_ < (uchar *)((int)puVar17 + uVar8))" ( (binary_expression "this->buffer_end_ < (uchar *)((int)puVar17 + uVar8)" (field_expression "this->buffer_end_" identifier -> field_identifier) < (cast_expression "(uchar *)((int)puVar17 + uVar8)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + uVar8)" ( (binary_expression "(int)puVar17 + uVar8" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )) (compound_statement "{\n        puVar11 = this->buffer_end_;\n      }" { (expression_statement "puVar11 = this->buffer_end_;" (assignment_expression "puVar11 = this->buffer_end_" identifier = (field_expression "this->buffer_end_" identifier -> field_identifier)) ;) })) (expression_statement "this->end_of_table_ = puVar11;" (assignment_expression "this->end_of_table_ = puVar11" (field_expression "this->end_of_table_" identifier -> field_identifier) = identifier) ;) (if_statement "if (p_Var18 == (_func_int_varargs *)puVar7) {\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }\n      else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }" if (parenthesized_expression "(p_Var18 == (_func_int_varargs *)puVar7)" ( (binary_expression "p_Var18 == (_func_int_varargs *)puVar7" identifier == (cast_expression "(_func_int_varargs *)puVar7" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        iVar10 = (*pp_Var9[0x3a])();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }" { (expression_statement "iVar10 = (*pp_Var9[0x3a])();" (assignment_expression "iVar10 = (*pp_Var9[0x3a])()" identifier = (call_expression "(*pp_Var9[0x3a])()" (parenthesized_expression "(*pp_Var9[0x3a])" ( (pointer_expression "*pp_Var9[0x3a]" * (subscript_expression "pp_Var9[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "uVar1 = *(undefined1 *)((int)puVar17 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar17 + 1)" identifier = (pointer_expression "*(undefined1 *)((int)puVar17 + 1)" * (cast_expression "(undefined1 *)((int)puVar17 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 1)" ( (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }" else (compound_statement "{\n        iVar10 = (*p_Var18)();\n        uVar1 = *(undefined1 *)((int)puVar17 + 1);\n      }" { (expression_statement "iVar10 = (*p_Var18)();" (assignment_expression "iVar10 = (*p_Var18)()" identifier = (call_expression "(*p_Var18)()" (parenthesized_expression "(*p_Var18)" ( (pointer_expression "*p_Var18" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar1 = *(undefined1 *)((int)puVar17 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar17 + 1)" identifier = (pointer_expression "*(undefined1 *)((int)puVar17 + 1)" * (cast_expression "(undefined1 *)((int)puVar17 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 1)" ( (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);\n      }" { (expression_statement "sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17);" (assignment_expression "sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar17)" identifier = (call_expression "CONCAT11(uVar1,*(undefined1 *)puVar17)" identifier (argument_list "(uVar1,*(undefined1 *)puVar17)" ( identifier , (pointer_expression "*(undefined1 *)puVar17" * (cast_expression "(undefined1 *)puVar17" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) }) (else_clause "else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }" else (compound_statement "{\n        sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);\n      }" { (expression_statement "sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1);" (assignment_expression "sVar6 = CONCAT11(*(undefined1 *)puVar17,uVar1)" identifier = (call_expression "CONCAT11(*(undefined1 *)puVar17,uVar1)" identifier (argument_list "(*(undefined1 *)puVar17,uVar1)" ( (pointer_expression "*(undefined1 *)puVar17" * (cast_expression "(undefined1 *)puVar17" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) ;) }))) (if_statement "if (sVar6 == 2) {\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }" if (parenthesized_expression "(sVar6 == 2)" ( (binary_expression "sVar6 == 2" identifier == number_literal) )) (compound_statement "{\n        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);\n        puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);\n        if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }\n      }" { (expression_statement "(*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);" (call_expression "(*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_)" (parenthesized_expression "(*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])" ( (pointer_expression "*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5]" * (subscript_expression "this->reloc_mapper_->_vptr_Elf_reloc_mapper[5]" (field_expression "this->reloc_mapper_->_vptr_Elf_reloc_mapper" (field_expression "this->reloc_mapper_" identifier -> field_identifier) -> field_identifier) [ number_literal ])) )) (argument_list "(this->reloc_mapper_)" ( (field_expression "this->reloc_mapper_" identifier -> field_identifier) ))) ;) (expression_statement "puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2);" (assignment_expression "puVar11 = (uchar *)((int)puVar17 + this->offset_size_ * 2 + 2)" identifier = (cast_expression "(uchar *)((int)puVar17 + this->offset_size_ * 2 + 2)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + this->offset_size_ * 2 + 2)" ( (binary_expression "(int)puVar17 + this->offset_size_ * 2 + 2" (binary_expression "(int)puVar17 + this->offset_size_ * 2" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "this->offset_size_ * 2" (field_expression "this->offset_size_" identifier -> field_identifier) * number_literal)) + number_literal) )))) ;) (if_statement "if (puVar11 < this->buffer_end_) {\n          this->pinfo_ = puVar11;\n          return true;\n        }" if (parenthesized_expression "(puVar11 < this->buffer_end_)" ( (binary_expression "puVar11 < this->buffer_end_" identifier < (field_expression "this->buffer_end_" identifier -> field_identifier)) )) (compound_statement "{\n          this->pinfo_ = puVar11;\n          return true;\n        }" { (expression_statement "this->pinfo_ = puVar11;" (assignment_expression "this->pinfo_ = puVar11" (field_expression "this->pinfo_" identifier -> field_identifier) = identifier) ;) (return_statement "return true;" return true ;) })) })) })) })) (return_statement "return false;" return false ;) })))
(translation_unit "undefined4 gold::Dwarf_pubnames_table::read_header(longlong param_1)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  int iVar8;\n  uint uVar9;\n  int *in_a0;\n  int iVar10;\n  uint uVar11;\n  int *piVar12;\n  int in_a2;\n  int iVar13;\n  uint in_a3;\n  uint *puVar14;\n  uint *puVar15;\n  undefined1 *puVar16;\n  code *pcVar17;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  iVar10 = in_a0[1];\n  if (iVar10 == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 gold::Dwarf_pubnames_table::read_header(longlong param_1)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  int iVar8;\n  uint uVar9;\n  int *in_a0;\n  int iVar10;\n  uint uVar11;\n  int *piVar12;\n  int in_a2;\n  int iVar13;\n  uint in_a3;\n  uint *puVar14;\n  uint *puVar15;\n  undefined1 *puVar16;\n  code *pcVar17;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  iVar10 = in_a0[1];\n  if (iVar10 == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }\n  return 0;\n}" type_identifier (ERROR "gold::Dwarf_pubnames_table::" identifier : : identifier : :) (function_declarator "read_header(longlong param_1)" identifier (parameter_list "(longlong param_1)" ( (parameter_declaration "longlong param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  int iVar8;\n  uint uVar9;\n  int *in_a0;\n  int iVar10;\n  uint uVar11;\n  int *piVar12;\n  int in_a2;\n  int iVar13;\n  uint in_a3;\n  uint *puVar14;\n  uint *puVar15;\n  undefined1 *puVar16;\n  code *pcVar17;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  iVar10 = in_a0[1];\n  if (iVar10 == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }\n  return 0;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "short sVar6;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *in_a0;" primitive_type (pointer_declarator "*in_a0" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint in_a3;" type_identifier identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (expression_statement "puVar7 = PTR_is_big_endian_004323c8;" (assignment_expression "puVar7 = PTR_is_big_endian_004323c8" identifier = identifier) ;) (expression_statement "iVar10 = in_a0[1];" (assignment_expression "iVar10 = in_a0[1]" identifier = (subscript_expression "in_a0[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }" { (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5f6c" identifier + number_literal) ))) ;) })) (if_statement "if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(-1 < in_a2)" ( (binary_expression "-1 < in_a2" number_literal < identifier) )) (compound_statement "{\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }" { (expression_statement "iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;" (assignment_expression "iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2" identifier = (binary_expression "(uint)(in_a3 + 0xe < in_a3) + in_a2" (call_expression "(uint)(in_a3 + 0xe < in_a3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a3 + 0xe < in_a3)" ( (binary_expression "in_a3 + 0xe < in_a3" (binary_expression "in_a3 + 0xe" identifier + number_literal) < identifier) ))) + identifier)) ;) (expression_statement "iVar8 = in_a0[2] - iVar10 >> 0x1f;" (assignment_expression "iVar8 = in_a0[2] - iVar10 >> 0x1f" identifier = (binary_expression "in_a0[2] - iVar10 >> 0x1f" (binary_expression "in_a0[2] - iVar10" (subscript_expression "in_a0[2]" identifier [ number_literal ]) - identifier) >> number_literal)) ;) (if_statement "if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }" if (parenthesized_expression "((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10)))))" ( (binary_expression "(iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))" (parenthesized_expression "(iVar13 < iVar8)" ( (binary_expression "iVar13 < iVar8" identifier < identifier) )) || (parenthesized_expression "((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))" ( (parenthesized_expression "(iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10)))" ( (binary_expression "iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))" (binary_expression "iVar8 == iVar13" identifier == identifier) && (parenthesized_expression "(in_a3 + 0xe < (uint)(in_a0[2] - iVar10))" ( (binary_expression "in_a3 + 0xe < (uint)(in_a0[2] - iVar10)" (binary_expression "in_a3 + 0xe" identifier + number_literal) < (call_expression "(uint)(in_a0[2] - iVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a0[2] - iVar10)" ( (binary_expression "in_a0[2] - iVar10" (subscript_expression "in_a0[2]" identifier [ number_literal ]) - identifier) )))) ))) )) ))) )) (compound_statement "{\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }" { (expression_statement "puVar14 = (uint *)(iVar10 + in_a3);" (assignment_expression "puVar14 = (uint *)(iVar10 + in_a3)" identifier = (cast_expression "(uint *)(iVar10 + in_a3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + in_a3)" ( (binary_expression "iVar10 + in_a3" identifier + identifier) )))) ;) (expression_statement "pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);" (assignment_expression "pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*in_a0 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*in_a0 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*in_a0 + 8) + 0xc)" ( (binary_expression "**(int **)(*in_a0 + 8) + 0xc" (pointer_expression "**(int **)(*in_a0 + 8)" * (pointer_expression "*(int **)(*in_a0 + 8)" * (cast_expression "(int **)(*in_a0 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_a0 + 8)" ( (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" if (parenthesized_expression "(pcVar17 == (code *)PTR_is_big_endian_004323c8)" ( (binary_expression "pcVar17 == (code *)PTR_is_big_endian_004323c8" identifier == (cast_expression "(code *)PTR_is_big_endian_004323c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }" { (expression_statement "iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*in_a0 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*in_a0 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*in_a0 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*in_a0 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*in_a0 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*in_a0 + 8) + 0xe8)" ( (binary_expression "**(int **)(*in_a0 + 8) + 0xe8" (pointer_expression "**(int **)(*in_a0 + 8)" * (pointer_expression "*(int **)(*in_a0 + 8)" * (cast_expression "(int **)(*in_a0 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_a0 + 8)" ( (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) }) (else_clause "else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" else (compound_statement "{\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" { (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" identifier = (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) }))) (if_statement "if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }" { (expression_statement "uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10)" ( (binary_expression "(uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10" (binary_expression "(uVar9 >> 0x10) << 0x18" (parenthesized_expression "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar9 >> 0x18) << 0x10" (parenthesized_expression "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff)" ( (binary_expression "(uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff" (binary_expression "(uVar9 & 0xff) << 8" (parenthesized_expression "(uVar9 & 0xff)" ( (binary_expression "uVar9 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar9 >> 8 & 0xff" (binary_expression "uVar9 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "puVar15 = puVar14 + 1;" (assignment_expression "puVar15 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = **(int **)(*in_a0 + 8);" (assignment_expression "iVar10 = **(int **)(*in_a0 + 8)" identifier = (pointer_expression "**(int **)(*in_a0 + 8)" * (pointer_expression "*(int **)(*in_a0 + 8)" * (cast_expression "(int **)(*in_a0 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_a0 + 8)" ( (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" * identifier) + number_literal) )))))) ;) (expression_statement "pcVar17 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar17 = *(code **)(iVar10 + 0xc)" identifier = (pointer_expression "*(code **)(iVar10 + 0xc)" * (cast_expression "(code **)(iVar10 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }" { (if_statement "if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" if (parenthesized_expression "(pcVar17 == (code *)puVar7)" ( (binary_expression "pcVar17 == (code *)puVar7" identifier == (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }" { (expression_statement "iVar10 = (**(code **)(iVar10 + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(iVar10 + 0xe8))()" identifier = (call_expression "(**(code **)(iVar10 + 0xe8))()" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" ( (pointer_expression "**(code **)(iVar10 + 0xe8)" * (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = puVar14[2];" (assignment_expression "uVar9 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" else (compound_statement "{\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" { (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" identifier = (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = puVar14[2];" (assignment_expression "uVar9 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar11 = puVar14[1];" (assignment_expression "uVar11 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }" { (expression_statement "uVar2 = uVar9 & 0xff;" (assignment_expression "uVar2 = uVar9 & 0xff" identifier = (binary_expression "uVar9 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar3 = uVar9 >> 8;" (assignment_expression "uVar3 = uVar9 >> 8" identifier = (binary_expression "uVar9 >> 8" identifier >> number_literal)) ;) (expression_statement "uVar4 = uVar9 >> 0x10;" (assignment_expression "uVar4 = uVar9 >> 0x10" identifier = (binary_expression "uVar9 >> 0x10" identifier >> number_literal)) ;) (expression_statement "uVar5 = uVar9 >> 0x18;" (assignment_expression "uVar5 = uVar9 >> 0x18" identifier = (binary_expression "uVar9 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10)" ( (binary_expression "(uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10" (binary_expression "(uVar11 >> 0x10) << 0x18" (parenthesized_expression "(uVar11 >> 0x10)" ( (binary_expression "uVar11 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar11 >> 0x18) << 0x10" (parenthesized_expression "(uVar11 >> 0x18)" ( (binary_expression "uVar11 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff)" ( (binary_expression "(uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff" (binary_expression "(uVar11 & 0xff) << 8" (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar11 >> 8 & 0xff" (binary_expression "uVar11 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;" (assignment_expression "uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000" identifier = (binary_expression "((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10)" ( (binary_expression "(uVar4 << 0x18 | uVar5 << 0x10) >> 0x10" (parenthesized_expression "(uVar4 << 0x18 | uVar5 << 0x10)" ( (binary_expression "uVar4 << 0x18 | uVar5 << 0x10" (binary_expression "uVar4 << 0x18" identifier << number_literal) | (binary_expression "uVar5 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar2 << 8 | uVar3 & 0xff) * 0x10000" (parenthesized_expression "(uVar2 << 8 | uVar3 & 0xff)" ( (binary_expression "uVar2 << 8 | uVar3 & 0xff" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar3 & 0xff" identifier & number_literal)) )) * number_literal))) ;) })) (expression_statement "puVar15 = puVar14 + 3;" (assignment_expression "puVar15 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) (expression_statement "in_a0[9] = uVar9 + 0xc;" (assignment_expression "in_a0[9] = uVar9 + 0xc" (subscript_expression "in_a0[9]" identifier [ number_literal ]) = (binary_expression "uVar9 + 0xc" identifier + number_literal)) ;) (expression_statement "in_a0[4] = 8;" (assignment_expression "in_a0[4] = 8" (subscript_expression "in_a0[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12 = *(int **)(*in_a0 + 8);" (assignment_expression "piVar12 = *(int **)(*in_a0 + 8)" identifier = (pointer_expression "*(int **)(*in_a0 + 8)" * (cast_expression "(int **)(*in_a0 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_a0 + 8)" ( (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" * identifier) + number_literal) ))))) ;) (expression_statement "in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;" (assignment_expression "in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11" (subscript_expression "in_a0[8]" identifier [ number_literal ]) = (binary_expression "(uVar9 + 0xc < uVar9) + uVar11" (parenthesized_expression "(uVar9 + 0xc < uVar9)" ( (binary_expression "uVar9 + 0xc < uVar9" (binary_expression "uVar9 + 0xc" identifier + number_literal) < identifier) )) + identifier)) ;) (expression_statement "iVar10 = *piVar12;" (assignment_expression "iVar10 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar17 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar17 = *(code **)(iVar10 + 0xc)" identifier = (pointer_expression "*(code **)(iVar10 + 0xc)" * (cast_expression "(code **)(iVar10 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" else (compound_statement "{\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" { (expression_statement "in_a0[9] = uVar9 + 4;" (assignment_expression "in_a0[9] = uVar9 + 4" (subscript_expression "in_a0[9]" identifier [ number_literal ]) = (binary_expression "uVar9 + 4" identifier + number_literal)) ;) (expression_statement "in_a0[8] = (uint)(uVar9 + 4 < uVar9);" (assignment_expression "in_a0[8] = (uint)(uVar9 + 4 < uVar9)" (subscript_expression "in_a0[8]" identifier [ number_literal ]) = (call_expression "(uint)(uVar9 + 4 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 + 4 < uVar9)" ( (binary_expression "uVar9 + 4 < uVar9" (binary_expression "uVar9 + 4" identifier + number_literal) < identifier) )))) ;) (expression_statement "in_a0[4] = 4;" (assignment_expression "in_a0[4] = 4" (subscript_expression "in_a0[4]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "puVar16 = (undefined1 *)((int)puVar15 + uVar9);" (assignment_expression "puVar16 = (undefined1 *)((int)puVar15 + uVar9)" identifier = (cast_expression "(undefined1 *)((int)puVar15 + uVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + uVar9)" ( (binary_expression "(int)puVar15 + uVar9" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }" if (parenthesized_expression "((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9))" ( (binary_expression "(undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)" (cast_expression "(undefined1 *)in_a0[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[2]" identifier [ number_literal ])) < (cast_expression "(undefined1 *)((int)puVar15 + uVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + uVar9)" ( (binary_expression "(int)puVar15 + uVar9" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )) (compound_statement "{\n        puVar16 = (undefined1 *)in_a0[2];\n      }" { (expression_statement "puVar16 = (undefined1 *)in_a0[2];" (assignment_expression "puVar16 = (undefined1 *)in_a0[2]" identifier = (cast_expression "(undefined1 *)in_a0[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[2]" identifier [ number_literal ]))) ;) })) (expression_statement "in_a0[6] = (int)puVar16;" (assignment_expression "in_a0[6] = (int)puVar16" (subscript_expression "in_a0[6]" identifier [ number_literal ]) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" if (parenthesized_expression "(pcVar17 == (code *)puVar7)" ( (binary_expression "pcVar17 == (code *)puVar7" identifier == (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" { (expression_statement "iVar10 = (**(code **)(iVar10 + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(iVar10 + 0xe8))()" identifier = (call_expression "(**(code **)(iVar10 + 0xe8))()" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" ( (pointer_expression "**(code **)(iVar10 + 0xe8)" * (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar1 = *(undefined1 *)((int)puVar15 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar15 + 1)" identifier = (pointer_expression "*(undefined1 *)((int)puVar15 + 1)" * (cast_expression "(undefined1 *)((int)puVar15 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 1)" ( (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" else (compound_statement "{\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" { (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" identifier = (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar1 = *(undefined1 *)((int)puVar15 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar15 + 1)" identifier = (pointer_expression "*(undefined1 *)((int)puVar15 + 1)" * (cast_expression "(undefined1 *)((int)puVar15 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 1)" ( (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }" { (expression_statement "sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);" (assignment_expression "sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15)" identifier = (call_expression "CONCAT11(uVar1,*(undefined1 *)puVar15)" identifier (argument_list "(uVar1,*(undefined1 *)puVar15)" ( identifier , (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) }) (else_clause "else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" else (compound_statement "{\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" { (expression_statement "sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);" (assignment_expression "sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1)" identifier = (call_expression "CONCAT11(*(undefined1 *)puVar15,uVar1)" identifier (argument_list "(*(undefined1 *)puVar15,uVar1)" ( (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) ;) }))) (if_statement "if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }" if (parenthesized_expression "(sVar6 == 2)" ( (binary_expression "sVar6 == 2" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }" { (expression_statement "(**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);" (call_expression "(**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc])" (parenthesized_expression "(**(code **)(*(int *)in_a0[0xc] + 0x14))" ( (pointer_expression "**(code **)(*(int *)in_a0[0xc] + 0x14)" * (pointer_expression "*(code **)(*(int *)in_a0[0xc] + 0x14)" * (cast_expression "(code **)(*(int *)in_a0[0xc] + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)in_a0[0xc] + 0x14)" ( (binary_expression "*(int *)in_a0[0xc] + 0x14" (pointer_expression "*(int *)in_a0[0xc]" * (cast_expression "(int *)in_a0[0xc]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[0xc]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)in_a0[0xc])" ( (cast_expression "(int *)in_a0[0xc]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[0xc]" identifier [ number_literal ])) ))) ;) (expression_statement "puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);" (assignment_expression "puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2)" identifier = (cast_expression "(undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + in_a0[4] * 2 + 2)" ( (binary_expression "(int)puVar15 + in_a0[4] * 2 + 2" (binary_expression "(int)puVar15 + in_a0[4] * 2" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "in_a0[4] * 2" (subscript_expression "in_a0[4]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) ;) (if_statement "if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }" if (parenthesized_expression "(puVar16 < (undefined1 *)in_a0[2])" ( (binary_expression "puVar16 < (undefined1 *)in_a0[2]" identifier < (cast_expression "(undefined1 *)in_a0[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a0[2]" identifier [ number_literal ]))) )) (compound_statement "{\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }" { (expression_statement "in_a0[5] = (int)puVar16;" (assignment_expression "in_a0[5] = (int)puVar16" (subscript_expression "in_a0[5]" identifier [ number_literal ]) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return 1;" return number_literal ;) })) })) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression 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 = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return LIT ;) })) })) })) })) (return_statement return LIT ;) })))
(function_definition "undefined4 gold::Dwarf_pubnames_table::read_header(longlong param_1)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  int iVar8;\n  uint uVar9;\n  int *in_a0;\n  int iVar10;\n  uint uVar11;\n  int *piVar12;\n  int in_a2;\n  int iVar13;\n  uint in_a3;\n  uint *puVar14;\n  uint *puVar15;\n  undefined1 *puVar16;\n  code *pcVar17;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  iVar10 = in_a0[1];\n  if (iVar10 == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }\n  return 0;\n}" (type_identifier "undefined4") (ERROR "gold::Dwarf_pubnames_table::" (identifier "gold") (: ":") (: ":") (identifier "Dwarf_pubnames_table") (: ":") (: ":")) (function_declarator "read_header(longlong param_1)" (identifier "read_header") (parameter_list "(longlong param_1)" (( "(") (parameter_declaration "longlong param_1" (type_identifier "longlong") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  short sVar6;\n  undefined *puVar7;\n  int iVar8;\n  uint uVar9;\n  int *in_a0;\n  int iVar10;\n  uint uVar11;\n  int *piVar12;\n  int in_a2;\n  int iVar13;\n  uint in_a3;\n  uint *puVar14;\n  uint *puVar15;\n  undefined1 *puVar16;\n  code *pcVar17;\n  \n  puVar7 = PTR_is_big_endian_004323c8;\n  iVar10 = in_a0[1];\n  if (iVar10 == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }\n  if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "short sVar6;" (sized_type_specifier "short" (short "short")) (identifier "sVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int *in_a0;" (primitive_type "int") (pointer_declarator "*in_a0" (* "*") (identifier "in_a0")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int in_a2;" (primitive_type "int") (identifier "in_a2") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint in_a3;" (type_identifier "uint") (identifier "in_a3") (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (expression_statement "puVar7 = PTR_is_big_endian_004323c8;" (assignment_expression "puVar7 = PTR_is_big_endian_004323c8" (identifier "puVar7") (= "=") (identifier "PTR_is_big_endian_004323c8")) (; ";")) (expression_statement "iVar10 = in_a0[1];" (assignment_expression "iVar10 = in_a0[1]" (identifier "iVar10") (= "=") (subscript_expression "in_a0[1]" (identifier "in_a0") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar10 == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);\n  }" ({ "{") (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c)" (identifier "do_gold_unreachable") (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,\n                        PTR_s_alize_xindex_004323b4 + -0x5f6c)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x6368")) (, ",") (number_literal "0x22f") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5f6c" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5f6c")) () ")"))) (; ";")) (} "}"))) (if_statement "if (-1 < in_a2) {\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(-1 < in_a2)" (( "(") (binary_expression "-1 < in_a2" (number_literal "-1") (< "<") (identifier "in_a2")) () ")")) (compound_statement "{\n    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;\n    iVar8 = in_a0[2] - iVar10 >> 0x1f;\n    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;" (assignment_expression "iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2" (identifier "iVar13") (= "=") (binary_expression "(uint)(in_a3 + 0xe < in_a3) + in_a2" (call_expression "(uint)(in_a3 + 0xe < in_a3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(in_a3 + 0xe < in_a3)" (( "(") (binary_expression "in_a3 + 0xe < in_a3" (binary_expression "in_a3 + 0xe" (identifier "in_a3") (+ "+") (number_literal "0xe")) (< "<") (identifier "in_a3")) () ")"))) (+ "+") (identifier "in_a2"))) (; ";")) (expression_statement "iVar8 = in_a0[2] - iVar10 >> 0x1f;" (assignment_expression "iVar8 = in_a0[2] - iVar10 >> 0x1f" (identifier "iVar8") (= "=") (binary_expression "in_a0[2] - iVar10 >> 0x1f" (binary_expression "in_a0[2] - iVar10" (subscript_expression "in_a0[2]" (identifier "in_a0") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "iVar10")) (>> ">>") (number_literal "0x1f"))) (; ";")) (if_statement "if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10)))))" (( "(") (binary_expression "(iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))" (parenthesized_expression "(iVar13 < iVar8)" (( "(") (binary_expression "iVar13 < iVar8" (identifier "iVar13") (< "<") (identifier "iVar8")) () ")")) (|| "||") (parenthesized_expression "((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))" (( "(") (parenthesized_expression "(iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10)))" (( "(") (binary_expression "iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))" (binary_expression "iVar8 == iVar13" (identifier "iVar8") (== "==") (identifier "iVar13")) (&& "&&") (parenthesized_expression "(in_a3 + 0xe < (uint)(in_a0[2] - iVar10))" (( "(") (binary_expression "in_a3 + 0xe < (uint)(in_a0[2] - iVar10)" (binary_expression "in_a3 + 0xe" (identifier "in_a3") (+ "+") (number_literal "0xe")) (< "<") (call_expression "(uint)(in_a0[2] - iVar10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(in_a0[2] - iVar10)" (( "(") (binary_expression "in_a0[2] - iVar10" (subscript_expression "in_a0[2]" (identifier "in_a0") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "iVar10")) () ")")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      puVar14 = (uint *)(iVar10 + in_a3);\n      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);\n      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }\n      if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }\n      puVar15 = puVar14 + 1;\n      iVar10 = **(int **)(*in_a0 + 8);\n      pcVar17 = *(code **)(iVar10 + 0xc);\n      if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }\n      puVar16 = (undefined1 *)((int)puVar15 + uVar9);\n      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }\n      in_a0[6] = (int)puVar16;\n      if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }\n      if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }\n    }" ({ "{") (expression_statement "puVar14 = (uint *)(iVar10 + in_a3);" (assignment_expression "puVar14 = (uint *)(iVar10 + in_a3)" (identifier "puVar14") (= "=") (cast_expression "(uint *)(iVar10 + in_a3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + in_a3)" (( "(") (binary_expression "iVar10 + in_a3" (identifier "iVar10") (+ "+") (identifier "in_a3")) () ")")))) (; ";")) (expression_statement "pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);" (assignment_expression "pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc)" (identifier "pcVar17") (= "=") (pointer_expression "*(code **)(**(int **)(*in_a0 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*in_a0 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*in_a0 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*in_a0 + 8) + 0xc" (pointer_expression "**(int **)(*in_a0 + 8)" (* "*") (pointer_expression "*(int **)(*in_a0 + 8)" (* "*") (cast_expression "(int **)(*in_a0 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*in_a0 + 8)" (( "(") (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" (* "*") (identifier "in_a0")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" (if "if") (parenthesized_expression "(pcVar17 == (code *)PTR_is_big_endian_004323c8)" (( "(") (binary_expression "pcVar17 == (code *)PTR_is_big_endian_004323c8" (identifier "pcVar17") (== "==") (cast_expression "(code *)PTR_is_big_endian_004323c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004323c8"))) () ")")) (compound_statement "{\n        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();\n        uVar9 = *puVar14;\n      }" ({ "{") (expression_statement "iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(**(int **)(*in_a0 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*in_a0 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*in_a0 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*in_a0 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*in_a0 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*in_a0 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*in_a0 + 8) + 0xe8" (pointer_expression "**(int **)(*in_a0 + 8)" (* "*") (pointer_expression "*(int **)(*in_a0 + 8)" (* "*") (cast_expression "(int **)(*in_a0 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*in_a0 + 8)" (( "(") (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" (* "*") (identifier "in_a0")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" (identifier "uVar9") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (} "}")) (else_clause "else {\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" (else "else") (compound_statement "{\n        iVar10 = (*pcVar17)();\n        uVar9 = *puVar14;\n      }" ({ "{") (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" (identifier "uVar9") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (} "}")))) (if_statement "if (iVar10 == 0) {\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;\n      }" ({ "{") (expression_statement "uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" (identifier "uVar9") (= "=") (binary_expression "(((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10" (binary_expression "(uVar9 >> 0x10) << 0x18" (parenthesized_expression "(uVar9 >> 0x10)" (( "(") (binary_expression "uVar9 >> 0x10" (identifier "uVar9") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 >> 0x18) << 0x10" (parenthesized_expression "(uVar9 >> 0x18)" (( "(") (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff)" (( "(") (binary_expression "(uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff" (binary_expression "(uVar9 & 0xff) << 8" (parenthesized_expression "(uVar9 & 0xff)" (( "(") (binary_expression "uVar9 & 0xff" (identifier "uVar9") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar9 >> 8 & 0xff" (binary_expression "uVar9 >> 8" (identifier "uVar9") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "puVar15 = puVar14 + 1;" (assignment_expression "puVar15 = puVar14 + 1" (identifier "puVar15") (= "=") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = **(int **)(*in_a0 + 8);" (assignment_expression "iVar10 = **(int **)(*in_a0 + 8)" (identifier "iVar10") (= "=") (pointer_expression "**(int **)(*in_a0 + 8)" (* "*") (pointer_expression "*(int **)(*in_a0 + 8)" (* "*") (cast_expression "(int **)(*in_a0 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*in_a0 + 8)" (( "(") (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" (* "*") (identifier "in_a0")) (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "pcVar17 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar17 = *(code **)(iVar10 + 0xc)" (identifier "pcVar17") (= "=") (pointer_expression "*(code **)(iVar10 + 0xc)" (* "*") (cast_expression "(code **)(iVar10 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (uVar9 == 0xffffffff) {\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }\n      else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0xffffffff)" (( "(") (binary_expression "uVar9 == 0xffffffff" (identifier "uVar9") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }\n        uVar11 = puVar14[1];\n        if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }\n        puVar15 = puVar14 + 3;\n        in_a0[9] = uVar9 + 0xc;\n        in_a0[4] = 8;\n        piVar12 = *(int **)(*in_a0 + 8);\n        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;\n        iVar10 = *piVar12;\n        pcVar17 = *(code **)(iVar10 + 0xc);\n      }" ({ "{") (if_statement "if (pcVar17 == (code *)puVar7) {\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }\n        else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" (if "if") (parenthesized_expression "(pcVar17 == (code *)puVar7)" (( "(") (binary_expression "pcVar17 == (code *)puVar7" (identifier "pcVar17") (== "==") (cast_expression "(code *)puVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) () ")")) (compound_statement "{\n          iVar10 = (**(code **)(iVar10 + 0xe8))();\n          uVar9 = puVar14[2];\n        }" ({ "{") (expression_statement "iVar10 = (**(code **)(iVar10 + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(iVar10 + 0xe8))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(iVar10 + 0xe8))()" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" (( "(") (pointer_expression "**(code **)(iVar10 + 0xe8)" (* "*") (pointer_expression "*(code **)(iVar10 + 0xe8)" (* "*") (cast_expression "(code **)(iVar10 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0xe8)" (( "(") (binary_expression "iVar10 + 0xe8" (identifier "iVar10") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = puVar14[2];" (assignment_expression "uVar9 = puVar14[2]" (identifier "uVar9") (= "=") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" (else "else") (compound_statement "{\n          iVar10 = (*pcVar17)();\n          uVar9 = puVar14[2];\n        }" ({ "{") (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = puVar14[2];" (assignment_expression "uVar9 = puVar14[2]" (identifier "uVar9") (= "=") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "uVar11 = puVar14[1];" (assignment_expression "uVar11 = puVar14[1]" (identifier "uVar11") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar10 == 0) {\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar2 = uVar9 & 0xff;\n          uVar3 = uVar9 >> 8;\n          uVar4 = uVar9 >> 0x10;\n          uVar5 = uVar9 >> 0x18;\n          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;\n          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;\n        }" ({ "{") (expression_statement "uVar2 = uVar9 & 0xff;" (assignment_expression "uVar2 = uVar9 & 0xff" (identifier "uVar2") (= "=") (binary_expression "uVar9 & 0xff" (identifier "uVar9") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar3 = uVar9 >> 8;" (assignment_expression "uVar3 = uVar9 >> 8" (identifier "uVar3") (= "=") (binary_expression "uVar9 >> 8" (identifier "uVar9") (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "uVar4 = uVar9 >> 0x10;" (assignment_expression "uVar4 = uVar9 >> 0x10" (identifier "uVar4") (= "=") (binary_expression "uVar9 >> 0x10" (identifier "uVar9") (>> ">>") (number_literal "0x10"))) (; ";")) (expression_statement "uVar5 = uVar9 >> 0x18;" (assignment_expression "uVar5 = uVar9 >> 0x18" (identifier "uVar5") (= "=") (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18"))) (; ";")) (expression_statement "uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" (identifier "uVar9") (= "=") (binary_expression "(((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +\n                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10" (binary_expression "(uVar11 >> 0x10) << 0x18" (parenthesized_expression "(uVar11 >> 0x10)" (( "(") (binary_expression "uVar11 >> 0x10" (identifier "uVar11") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar11 >> 0x18) << 0x10" (parenthesized_expression "(uVar11 >> 0x18)" (( "(") (binary_expression "uVar11 >> 0x18" (identifier "uVar11") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff)" (( "(") (binary_expression "(uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff" (binary_expression "(uVar11 & 0xff) << 8" (parenthesized_expression "(uVar11 & 0xff)" (( "(") (binary_expression "uVar11 & 0xff" (identifier "uVar11") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar11 >> 8 & 0xff" (binary_expression "uVar11 >> 8" (identifier "uVar11") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000\n          ;" (assignment_expression "uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000" (identifier "uVar11") (= "=") (binary_expression "((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10)" (( "(") (binary_expression "(uVar4 << 0x18 | uVar5 << 0x10) >> 0x10" (parenthesized_expression "(uVar4 << 0x18 | uVar5 << 0x10)" (( "(") (binary_expression "uVar4 << 0x18 | uVar5 << 0x10" (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "uVar5 << 0x10" (identifier "uVar5") (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(uVar2 << 8 | uVar3 & 0xff) * 0x10000" (parenthesized_expression "(uVar2 << 8 | uVar3 & 0xff)" (( "(") (binary_expression "uVar2 << 8 | uVar3 & 0xff" (binary_expression "uVar2 << 8" (identifier "uVar2") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "puVar15 = puVar14 + 3;" (assignment_expression "puVar15 = puVar14 + 3" (identifier "puVar15") (= "=") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "in_a0[9] = uVar9 + 0xc;" (assignment_expression "in_a0[9] = uVar9 + 0xc" (subscript_expression "in_a0[9]" (identifier "in_a0") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "uVar9 + 0xc" (identifier "uVar9") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "in_a0[4] = 8;" (assignment_expression "in_a0[4] = 8" (subscript_expression "in_a0[4]" (identifier "in_a0") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "piVar12 = *(int **)(*in_a0 + 8);" (assignment_expression "piVar12 = *(int **)(*in_a0 + 8)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(*in_a0 + 8)" (* "*") (cast_expression "(int **)(*in_a0 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*in_a0 + 8)" (( "(") (binary_expression "*in_a0 + 8" (pointer_expression "*in_a0" (* "*") (identifier "in_a0")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;" (assignment_expression "in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11" (subscript_expression "in_a0[8]" (identifier "in_a0") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "(uVar9 + 0xc < uVar9) + uVar11" (parenthesized_expression "(uVar9 + 0xc < uVar9)" (( "(") (binary_expression "uVar9 + 0xc < uVar9" (binary_expression "uVar9 + 0xc" (identifier "uVar9") (+ "+") (number_literal "0xc")) (< "<") (identifier "uVar9")) () ")")) (+ "+") (identifier "uVar11"))) (; ";")) (expression_statement "iVar10 = *piVar12;" (assignment_expression "iVar10 = *piVar12" (identifier "iVar10") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "pcVar17 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar17 = *(code **)(iVar10 + 0xc)" (identifier "pcVar17") (= "=") (pointer_expression "*(code **)(iVar10 + 0xc)" (* "*") (cast_expression "(code **)(iVar10 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" (else "else") (compound_statement "{\n        in_a0[9] = uVar9 + 4;\n        in_a0[8] = (uint)(uVar9 + 4 < uVar9);\n        in_a0[4] = 4;\n      }" ({ "{") (expression_statement "in_a0[9] = uVar9 + 4;" (assignment_expression "in_a0[9] = uVar9 + 4" (subscript_expression "in_a0[9]" (identifier "in_a0") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "in_a0[8] = (uint)(uVar9 + 4 < uVar9);" (assignment_expression "in_a0[8] = (uint)(uVar9 + 4 < uVar9)" (subscript_expression "in_a0[8]" (identifier "in_a0") ([ "[") (number_literal "8") (] "]")) (= "=") (call_expression "(uint)(uVar9 + 4 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 + 4 < uVar9)" (( "(") (binary_expression "uVar9 + 4 < uVar9" (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4")) (< "<") (identifier "uVar9")) () ")")))) (; ";")) (expression_statement "in_a0[4] = 4;" (assignment_expression "in_a0[4] = 4" (subscript_expression "in_a0[4]" (identifier "in_a0") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "puVar16 = (undefined1 *)((int)puVar15 + uVar9);" (assignment_expression "puVar16 = (undefined1 *)((int)puVar15 + uVar9)" (identifier "puVar16") (= "=") (cast_expression "(undefined1 *)((int)puVar15 + uVar9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + uVar9)" (( "(") (binary_expression "(int)puVar15 + uVar9" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (identifier "uVar9")) () ")")))) (; ";")) (if_statement "if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {\n        puVar16 = (undefined1 *)in_a0[2];\n      }" (if "if") (parenthesized_expression "((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9))" (( "(") (binary_expression "(undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)" (cast_expression "(undefined1 *)in_a0[2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "in_a0[2]" (identifier "in_a0") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(undefined1 *)((int)puVar15 + uVar9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + uVar9)" (( "(") (binary_expression "(int)puVar15 + uVar9" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (identifier "uVar9")) () ")")))) () ")")) (compound_statement "{\n        puVar16 = (undefined1 *)in_a0[2];\n      }" ({ "{") (expression_statement "puVar16 = (undefined1 *)in_a0[2];" (assignment_expression "puVar16 = (undefined1 *)in_a0[2]" (identifier "puVar16") (= "=") (cast_expression "(undefined1 *)in_a0[2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "in_a0[2]" (identifier "in_a0") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}"))) (expression_statement "in_a0[6] = (int)puVar16;" (assignment_expression "in_a0[6] = (int)puVar16" (subscript_expression "in_a0[6]" (identifier "in_a0") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16"))) (; ";")) (if_statement "if (pcVar17 == (code *)puVar7) {\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }\n      else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" (if "if") (parenthesized_expression "(pcVar17 == (code *)puVar7)" (( "(") (binary_expression "pcVar17 == (code *)puVar7" (identifier "pcVar17") (== "==") (cast_expression "(code *)puVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) () ")")) (compound_statement "{\n        iVar10 = (**(code **)(iVar10 + 0xe8))();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" ({ "{") (expression_statement "iVar10 = (**(code **)(iVar10 + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(iVar10 + 0xe8))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(iVar10 + 0xe8))()" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" (( "(") (pointer_expression "**(code **)(iVar10 + 0xe8)" (* "*") (pointer_expression "*(code **)(iVar10 + 0xe8)" (* "*") (cast_expression "(code **)(iVar10 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0xe8)" (( "(") (binary_expression "iVar10 + 0xe8" (identifier "iVar10") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)((int)puVar15 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar15 + 1)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)((int)puVar15 + 1)" (* "*") (cast_expression "(undefined1 *)((int)puVar15 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + 1)" (( "(") (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" (else "else") (compound_statement "{\n        iVar10 = (*pcVar17)();\n        uVar1 = *(undefined1 *)((int)puVar15 + 1);\n      }" ({ "{") (expression_statement "iVar10 = (*pcVar17)();" (assignment_expression "iVar10 = (*pcVar17)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)((int)puVar15 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar15 + 1)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)((int)puVar15 + 1)" (* "*") (cast_expression "(undefined1 *)((int)puVar15 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + 1)" (( "(") (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar10 == 0) {\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }\n      else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);\n      }" ({ "{") (expression_statement "sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);" (assignment_expression "sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15)" (identifier "sVar6") (= "=") (call_expression "CONCAT11(uVar1,*(undefined1 *)puVar15)" (identifier "CONCAT11") (argument_list "(uVar1,*(undefined1 *)puVar15)" (( "(") (identifier "uVar1") (, ",") (pointer_expression "*(undefined1 *)puVar15" (* "*") (cast_expression "(undefined1 *)puVar15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" (else "else") (compound_statement "{\n        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);\n      }" ({ "{") (expression_statement "sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);" (assignment_expression "sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1)" (identifier "sVar6") (= "=") (call_expression "CONCAT11(*(undefined1 *)puVar15,uVar1)" (identifier "CONCAT11") (argument_list "(*(undefined1 *)puVar15,uVar1)" (( "(") (pointer_expression "*(undefined1 *)puVar15" (* "*") (cast_expression "(undefined1 *)puVar15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (, ",") (identifier "uVar1") () ")")))) (; ";")) (} "}")))) (if_statement "if (sVar6 == 2) {\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }" (if "if") (parenthesized_expression "(sVar6 == 2)" (( "(") (binary_expression "sVar6 == 2" (identifier "sVar6") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);\n        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);\n        if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }\n      }" ({ "{") (expression_statement "(**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);" (call_expression "(**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc])" (parenthesized_expression "(**(code **)(*(int *)in_a0[0xc] + 0x14))" (( "(") (pointer_expression "**(code **)(*(int *)in_a0[0xc] + 0x14)" (* "*") (pointer_expression "*(code **)(*(int *)in_a0[0xc] + 0x14)" (* "*") (cast_expression "(code **)(*(int *)in_a0[0xc] + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)in_a0[0xc] + 0x14)" (( "(") (binary_expression "*(int *)in_a0[0xc] + 0x14" (pointer_expression "*(int *)in_a0[0xc]" (* "*") (cast_expression "(int *)in_a0[0xc]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "in_a0[0xc]" (identifier "in_a0") ([ "[") (number_literal "0xc") (] "]")))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "((int *)in_a0[0xc])" (( "(") (cast_expression "(int *)in_a0[0xc]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "in_a0[0xc]" (identifier "in_a0") ([ "[") (number_literal "0xc") (] "]"))) () ")"))) (; ";")) (expression_statement "puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);" (assignment_expression "puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2)" (identifier "puVar16") (= "=") (cast_expression "(undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + in_a0[4] * 2 + 2)" (( "(") (binary_expression "(int)puVar15 + in_a0[4] * 2 + 2" (binary_expression "(int)puVar15 + in_a0[4] * 2" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (binary_expression "in_a0[4] * 2" (subscript_expression "in_a0[4]" (identifier "in_a0") ([ "[") (number_literal "4") (] "]")) (* "*") (number_literal "2"))) (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (puVar16 < (undefined1 *)in_a0[2]) {\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }" (if "if") (parenthesized_expression "(puVar16 < (undefined1 *)in_a0[2])" (( "(") (binary_expression "puVar16 < (undefined1 *)in_a0[2]" (identifier "puVar16") (< "<") (cast_expression "(undefined1 *)in_a0[2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "in_a0[2]" (identifier "in_a0") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n          in_a0[5] = (int)puVar16;\n          return 1;\n        }" ({ "{") (expression_statement "in_a0[5] = (int)puVar16;" (assignment_expression "in_a0[5] = (int)puVar16" (subscript_expression "in_a0[5]" (identifier "in_a0") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: bool read_header(Dwarf_pubnames_table * this, off_t offset) */

bool __thiscall gold::type_1::function_1(type_1 *this,type_2 offset)

{
  type_3 uVar1;
  type_4 var_14;
  type_4 var_15;
  type_4 var_12;
  type_4 var_13;
  short var_17;
  type_5 *puVar7;
  type_4 var_8;
  type_6 **pp_Var9;
  int var_7;
  type_7 *var_1;
  type_4 var_11;
  type_8 *pRVar13;
  int var_4;
  int var_6;
  type_9 *pDVar15;
  type_4 var_5;
  type_4 *var_10;
  type_4 *puVar17;
  type_6 *var_9;
  
  puVar7 = PTR_is_big_endian_004323c8;
  var_1 = this->buffer_;
  if (var_1 == (type_7 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2(var_3 + -0x6368,0x22f,
                        var_3 + -0x5f6c);
  }
  if (-1 < var_4) {
    var_8 = (int)this->buffer_end_ - (int)var_1;
    var_6 = (type_4)(var_5 + 0xe < var_5) + var_4;
    var_7 = (int)var_8 >> 0x1f;
    if ((var_6 < var_7) || ((var_7 == var_6 && (var_5 + 0xe < var_8)))) {
      var_10 = (type_4 *)(var_1 + var_5);
      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;
      var_9 = pp_Var9[3];
      if (var_9 == (type_6 *)PTR_is_big_endian_004323c8) {
        var_7 = (*pp_Var9[0x3a])();
        var_8 = *var_10;
      }
      else {
        var_7 = (*var_9)();
        var_8 = *var_10;
      }
      if (var_7 == 0) {
        var_8 = (((var_8 >> 0x10) << 0x18 | (var_8 >> 0x18) << 0x10) >> 0x10) +
                ((var_8 & 0xff) << 8 | var_8 >> 8 & 0xff) * 0x10000;
      }
      puVar17 = var_10 + 1;
      pp_Var9 = (this->dwinfo_->object_->super_Object)._vptr_Object;
      var_9 = pp_Var9[3];
      if (var_8 == 0xffffffff) {
        if (var_9 == (type_6 *)puVar7) {
          var_7 = (*pp_Var9[0x3a])();
          var_8 = var_10[2];
        }
        else {
          var_7 = (*var_9)();
          var_8 = var_10[2];
        }
        var_11 = var_10[1];
        if (var_7 == 0) {
          var_14 = var_8 & 0xff;
          var_15 = var_8 >> 8;
          var_12 = var_8 >> 0x10;
          var_13 = var_8 >> 0x18;
          var_8 = (((var_11 >> 0x10) << 0x18 | (var_11 >> 0x18) << 0x10) >> 0x10) +
                  ((var_11 & 0xff) << 8 | var_11 >> 8 & 0xff) * 0x10000;
          var_11 = ((var_12 << 0x18 | var_13 << 0x10) >> 0x10) + (var_14 << 8 | var_15 & 0xff) * 0x10000
          ;
        }
        pDVar15 = this->dwinfo_;
        puVar17 = var_10 + 3;
        *(type_4 *)((int)&this->unit_length_ + 4) = var_8 + 0xc;
        this->offset_size_ = 8;
        pRVar13 = pDVar15->object_;
        *(type_4 *)&this->unit_length_ = (var_8 + 0xc < var_8) + var_11;
        pp_Var9 = (pRVar13->super_Object)._vptr_Object;
        var_9 = pp_Var9[3];
      }
      else {
        *(type_4 *)((int)&this->unit_length_ + 4) = var_8 + 4;
        *(type_4 *)&this->unit_length_ = (type_4)(var_8 + 4 < var_8);
        this->offset_size_ = 4;
      }
      var_1 = (type_7 *)((int)puVar17 + var_8);
      if (this->buffer_end_ < (type_7 *)((int)puVar17 + var_8)) {
        var_1 = this->buffer_end_;
      }
      this->end_of_table_ = var_1;
      if (var_9 == (type_6 *)puVar7) {
        var_7 = (*pp_Var9[0x3a])();
        uVar1 = *(type_3 *)((int)puVar17 + 1);
      }
      else {
        var_7 = (*var_9)();
        uVar1 = *(type_3 *)((int)puVar17 + 1);
      }
      if (var_7 == 0) {
        var_17 = var_16(uVar1,*(type_3 *)puVar17);
      }
      else {
        var_17 = var_16(*(type_3 *)puVar17,uVar1);
      }
      if (var_17 == 2) {
        (*this->reloc_mapper_->_vptr_Elf_reloc_mapper[5])(this->reloc_mapper_);
        var_1 = (type_7 *)((int)puVar17 + this->offset_size_ * 2 + 2);
        if (var_1 < this->buffer_end_) {
          this->pinfo_ = var_1;
          return true;
        }
      }
    }
  }
  return false;
}


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

/* gold::Dwarf_pubnames_table::MASKED(long long) */

undefined4 gold::Dwarf_pubnames_table::MASKED(longlong param_1)

{
  undefined1 uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  short sVar6;
  undefined *puVar7;
  int iVar8;
  uint uVar9;
  int *in_a0;
  int iVar10;
  uint uVar11;
  int *piVar12;
  int in_a2;
  int iVar13;
  uint in_a3;
  uint *puVar14;
  uint *puVar15;
  undefined1 *puVar16;
  code *pcVar17;
  
  puVar7 = PTR_is_big_endian_004323c8;
  iVar10 = in_a0[1];
  if (iVar10 == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x22f,
                        PTR_s_alize_xindex_004323b4 + -0x5f6c);
  }
  if (-1 < in_a2) {
    iVar13 = (uint)(in_a3 + 0xe < in_a3) + in_a2;
    iVar8 = in_a0[2] - iVar10 >> 0x1f;
    if ((iVar13 < iVar8) || ((iVar8 == iVar13 && (in_a3 + 0xe < (uint)(in_a0[2] - iVar10))))) {
      puVar14 = (uint *)(iVar10 + in_a3);
      pcVar17 = *(code **)(**(int **)(*in_a0 + 8) + 0xc);
      if (pcVar17 == (code *)PTR_is_big_endian_004323c8) {
        iVar10 = (**(code **)(**(int **)(*in_a0 + 8) + 0xe8))();
        uVar9 = *puVar14;
      }
      else {
        iVar10 = (*pcVar17)();
        uVar9 = *puVar14;
      }
      if (iVar10 == 0) {
        uVar9 = (((uVar9 >> 0x10) << 0x18 | (uVar9 >> 0x18) << 0x10) >> 0x10) +
                ((uVar9 & 0xff) << 8 | uVar9 >> 8 & 0xff) * 0x10000;
      }
      puVar15 = puVar14 + 1;
      iVar10 = **(int **)(*in_a0 + 8);
      pcVar17 = *(code **)(iVar10 + 0xc);
      if (uVar9 == 0xffffffff) {
        if (pcVar17 == (code *)puVar7) {
          iVar10 = (**(code **)(iVar10 + 0xe8))();
          uVar9 = puVar14[2];
        }
        else {
          iVar10 = (*pcVar17)();
          uVar9 = puVar14[2];
        }
        uVar11 = puVar14[1];
        if (iVar10 == 0) {
          uVar2 = uVar9 & 0xff;
          uVar3 = uVar9 >> 8;
          uVar4 = uVar9 >> 0x10;
          uVar5 = uVar9 >> 0x18;
          uVar9 = (((uVar11 >> 0x10) << 0x18 | (uVar11 >> 0x18) << 0x10) >> 0x10) +
                  ((uVar11 & 0xff) << 8 | uVar11 >> 8 & 0xff) * 0x10000;
          uVar11 = ((uVar4 << 0x18 | uVar5 << 0x10) >> 0x10) + (uVar2 << 8 | uVar3 & 0xff) * 0x10000
          ;
        }
        puVar15 = puVar14 + 3;
        in_a0[9] = uVar9 + 0xc;
        in_a0[4] = 8;
        piVar12 = *(int **)(*in_a0 + 8);
        in_a0[8] = (uVar9 + 0xc < uVar9) + uVar11;
        iVar10 = *piVar12;
        pcVar17 = *(code **)(iVar10 + 0xc);
      }
      else {
        in_a0[9] = uVar9 + 4;
        in_a0[8] = (uint)(uVar9 + 4 < uVar9);
        in_a0[4] = 4;
      }
      puVar16 = (undefined1 *)((int)puVar15 + uVar9);
      if ((undefined1 *)in_a0[2] < (undefined1 *)((int)puVar15 + uVar9)) {
        puVar16 = (undefined1 *)in_a0[2];
      }
      in_a0[6] = (int)puVar16;
      if (pcVar17 == (code *)puVar7) {
        iVar10 = (**(code **)(iVar10 + 0xe8))();
        uVar1 = *(undefined1 *)((int)puVar15 + 1);
      }
      else {
        iVar10 = (*pcVar17)();
        uVar1 = *(undefined1 *)((int)puVar15 + 1);
      }
      if (iVar10 == 0) {
        sVar6 = CONCAT11(uVar1,*(undefined1 *)puVar15);
      }
      else {
        sVar6 = CONCAT11(*(undefined1 *)puVar15,uVar1);
      }
      if (sVar6 == 2) {
        (**(code **)(*(int *)in_a0[0xc] + 0x14))((int *)in_a0[0xc]);
        puVar16 = (undefined1 *)((int)puVar15 + in_a0[4] * 2 + 2);
        if (puVar16 < (undefined1 *)in_a0[2]) {
          in_a0[5] = (int)puVar16;
          return 1;
        }
      }
    }
  }
  return 0;
}

